Hi, I have a script that creates the attached graph of some data points and overlays it with an additional line graph. I need to now be able to calculate the delta between the high and low points in multiple different x coordinates. I am able to do the first one since it includes all the x coordinate values, but I am stumped on how to do it for only the x coordinate values in-between the orange calculated lines, as well as only the only the initial curve on both the left and right side inside of the orange line calculations. Than I wanted to display these values on the graph if possible, or in a text box that is displayed when the graph is made. I have included some images that help to explain the 4 different ranges I need to calculate the delta from, as well as included my current script. The orange line may change depending on the data, since it is based off of a value that the user inputs when you run the script. Any assistance is greatly appreciated. Thanks!
Edge_of_frame_field.JPG
Frame_field.JPG
Full_field.JPG
framex_value = "";
w = New Window( "Frame size X",// opens a window with a title and this content...
<<Return Result,
Border Box( top( 20 ), bottom( 20 ), Left( 20 ), Right( 20 ), // window dressing
V List Box( // V and H lists nest to organize the display boxes
H Center Box( Text Box( "Frame size X" ) ), // a second title, centered
Spacer Box( size( 1, 20 ) ), // a little vertical space
H List Box( Text Box( "Frame size X: " ), framex = Number Edit Box( "." ) ), // data entry
Spacer Box( size( 1, 10 ) ), // a little vertical space
H Center Box( // center the button
Button Box( "Create graph", // this script runs when the button is pressed...
framex_value = framex << get ;
column("X coordinate")<<data type(Numeric)<<Modeling Type(Continuous)<<Format(Best,12);
New Column ( "New Y", Numeric, Nominal, Width( 5), Formula(Round(Y coordinate)));
dt =Current Data Table();
dt << select where( :New Y != 50503 );
dt << delete rows;
New Column ( "Normalized", Numeric, Continuous, Width( 10 ), Precision ( 7 ), Formula(IntenCD/Col Max(IntenCD)) );
New Column ( "Delta" , Numeric, Continuous, Width( 10 ), Precision ( 7 ), Formula(Col Max(IntenCD)-(Col Min(IntenCD))));
FullMat = matrix(Col Max(IntenCD)-(Col Min(IntenCD)));
New Column ( "Normalized Field", Numeric, Continuous, Width( 10 ), Precision ( 7 ));
//New Column ( "Normalized Field", Numeric, Continuous, Width( 10 ), Precision ( 7 ));
//dt << select where( :X coordinate > (76200 - framex_value/2) & :X coordinate < (76200 - framex_value/2) );
//dt << delete rows:
//FieldMat = matrix(Col Max(IntenCD)-(Col Min(IntenCD)));
New Window( " Delta results: ", modal,
Border Box( top( 20 ), bottom( 20 ), Left( 20 ), Right( 20 ), // window dressing
V List Box( // V and H lists nest to organize the display boxes
H List Box( Text Box( "Full plate delta: " ), TextBox( Char( FullMat ) ) ),
//Spacer Box( size( 1, 10 ) ), // a little vertical space
//H List Box( Text Box( "Full field delta: " ), TextBox( Char( FieldMat ) ) ),
//Spacer Box( size( 1, 10 ) ), // a little vertical space
//H List Box( Text Box( "Edge of field delta: " ), TextBox( Char( 0 ) ) ),
))
);
// Determine X Matrix
xMat = matrix(76200 - (framex_value/2)) |/ matrix(76200 - (framex_value/2)) |/
matrix(76200 + (framex_value/2)) |/ matrix(76200 + (framex_value/2));
// The yMat is static
yMat = [1, 0.92, 0.92, 1];
gb = dt << Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :X Coordinate ), Y( :Normalized ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
Report( gb )[FrameBox( 1 )] << Add Graphics Script(
Pen Color( "orange" );
Pen Size( 2 );
Line( xmat, ymat );
);
report(gb)[AxisBox(2)] << min(.91);
w << closeWindow; // just the dialog, not the report
)
)
)
)
);