Here is an attempt to get the contour maps displayed. The complexity is in finding the matching columns. The column names are inconsistent. The below script illustrates the kind of things that you will need to do, to do a better job of matching the columns. The script has been annotated to allow better understanding of what is being used to attempt the matching
Names Default To Here( 1 );
dt = Data Table( "WAT_Contour" );
// Build list of columns to be graphed
headerTypeList = {};
colNameList = {}; // The full name of the column
deviceTypeList = {}; // The P or N
commonNameList = {}; // The items that are common between P and N columns
// Loop across all columns to find target columns
// The code here is a best guess on determining the items needed to be able
// to match up the columns. There are inconsistancies in the column names,
// between VTSAT and VTHSAT etc. and also within a single type like VTSAT
// This section will need to be worked out to get all of the matches
For( i = 1, i <= N Col( dt ), i++,
colName = Trim( Column( dt, i ) << get name );
If(
Word( 1, colName, "_" ) == "VTSAT",
Insert Into( headerTypeList, "VTSAT" );
Insert Into( colNameList, colName );
If( Word( 2, colName, "_" ) == "N" | Word( 2, colName, "_" ) == "P",
Insert Into( deviceTypeList, Word( 2, colName, "_" ) );
Insert Into(
commonNameList,
Substr(
colName,
Length( Word( 1, colNameList[N Items( colNameList )], "_" ) )
+Length( Word( 2, deviceTypeList[N Items( deviceTypeList )], "_" ) ) + 4
)
);
,
Insert Into( deviceTypeList, Substr( Word( 3, colName, "_" ), 1, 1 ) );
Insert Into(
commonNameList,
Substr(
colName,
Length( Word( 1, colName, "_" ) ) + Length( Word( 2, colName, "_" ) )
+Length( Word( 3, colName, "_" ) ) + 4
)
);
);,
Word( 1, colName, "_" ) == "VTHSAT",
Insert Into( headerTypeList, "VTHSAT" );
Insert Into( colNameList, colName );
Insert Into( deviceTypeList, Substr( Word( 3, colName, "_" ), 1, 1 ) );
Insert Into(
commonNameList,
Substr(
colName,
Length( Word( 1, colName, "_" ) ) + Length( Word( 2, colName, "_" ) )
+Length( Word( 3, colName, "_" ) ) + 4
)
);
);
);
dtNames = New Table( "Names",
New Column( "Header", character, values( headerTypeList ) ),
New Column( "Column Name", character, values( colNameList ) ),
New Column( "Device Type", character, values( deviceTypeList ) ),
New Column( "Common", character, values( commonNameList ) )
);
// Split data table to get columns that match
dtSplit = dtNames << Split(
Split By( :Device Type ),
Split( :Column Name ),
Group( :Header, :Common ),
Sort by Column Property
);
// Delete non matching rows
dtSplit << select where(:P == "" | :N == "" );
dtSplit << delete rows;
// Create the Contour Maps
New Window( "Contour Maps", lub = Lineup Box( N Col( 3 ) ) );
// Loop across matches
For( i = 1, i <= N Rows( dtSplit ), i++,
lub << append(
dt << Contour Plot(
X( Column( dt, dtSplit:N[i] ), Column( dt, dtSplit:P[i] ) ),
Y( :"W/C BSCAN VMIN YIELD"n ),
Show Data Points( 0 ),
Fill Areas( 0 ),
Label Contours( 0 ),
Transform( "Range Normalized" ),
Specify Contours( Min( 0.5 ), Max( 0.9 ), N( 5 ) )
)
)
);
// Clean up the data tables no longer needed.
// Uncomment the below lines when having the interium tables
// no longer need to be displayed
// close( dtNames, nosave );
// close( dtSplit, nosave );
Jim