You could make a graph of the data like this. It looks like there are some outliers!
data extracted from the zip file and graphed to see outliers.
/*
00 to 01 bytes: indicates the date. If the value is num, the date calculation method is as follows:
year=floor(num/2048)+2004;
month=floor(mod(num,2048)/100);
day=mod(mod(num,2048),100);
02 to 03 bytes: indicates the number of minutes from 0 o 'clock to the present
04 to 07 bytes: float
08 to 11 bytes: float
12 to 15 bytes: float
16 to 19 bytes: float
20 to 23 bytes: float
24 to 27 bytes: integer
28 to 31 bytes :(reserved)
*/
za = Open( "z:/445.zip", "zip" ); // open the zip file
datasetname = (za << dir)[1];
blobdata = za << read( datasetname, Format( blob ) ); // load the member as a blob
//
// the following 3 lines import ALL of the data each time. Later,
// only use the columns that were really in that format.
//
integer2 = Blob To Matrix( blobdata, "uint", 2, "little", 16 ); // get the 2-byte unsigned ints for columns 0-1 and 2-3
integer4 = Blob To Matrix( blobdata, "uint", 4, "little", 8 ); // get the 4-byte unsigned ints for columns 24-27 and 28-31
float4 = Blob To Matrix( blobdata, "float", 4, "little", 8 ); // get the 4-byte floats for columns 4-23
// pre-process the matrix columns; no explicit loop is required...
years = Floor( integer2[0, 1] / 2048 ) + 2004;
months = Floor( Mod( integer2[0, 1], 2048 ) / 100 );
days = Mod( Mod( integer2[0, 1], 2048 ), 100 );
seconds = 60 * integer2[0, 2];
// create a table. You could also use new table, but the v1...v5 would be a little more code to type
dt = As Table(
years,
months,
days,
seconds,
float4[0, 2 :: 6],
integer4[0, 7 :: 8],
<<columnnames( {"year", "month", "day", "second", "v1", "v2", "v3", "v4", "v5", "xx", "reserved"} )
);
// add a JMP date-time formula column
dt << New Column( "date",
Numeric,
"Continuous",
Format( "yyyy-mm-ddThh:mm:ss", 19, 0 ),
Input Format( "yyyy-mm-ddThh:mm:ss", 0 ),
Formula( Date DMY( :day, :month, :year ) + :second ),
set selected
);
dt << run formulas; // make sure the formula completes
// clean up a bit
dt << move selected columns( to first );
dt << Clear Column Selection();
dt:date << deleteformula;
dt << deletecolumns( {"year", "month", "day", "second"} );
dt << setname(datasetname);
dt << Optimize Display;
// make a graph
dt << Graph Builder(
Size( 1125, 610 ),
Show Control Panel( 0 ),
Variables( X( :date ), Y( :v5 ), Y( :v4 ), Y( :v3 ), Y( :v2 ), Y( :v1 ), Y( :xx ) ),
Elements( Position( 1, 1 ), Points( X, Y, Legend( 57 ) ) ),
Elements( Position( 1, 2 ), Points( X, Y, Legend( 59 ) ) ),
Elements( Position( 1, 3 ), Points( X, Y, Legend( 61 ) ) ),
Elements( Position( 1, 4 ), Points( X, Y, Legend( 63 ) ) ),
Elements( Position( 1, 5 ), Points( X, Y, Legend( 65 ) ) ),
Elements( Position( 1, 6 ), Points( X, Y, Legend( 67 ) ) ),
SendToReport( Dispatch( {}, "graph title", TextEditBox, {Set Text( datasetname )} ) )
);
Craige