This program compares two cube files pixel by pixel, with results written
to the log and/or user specified output file.
The files are different if any pair of pixels is different, otherwise the files are identical.
The sample of the first pair of pixels that is different
The line of the first pair of pixels that is different
The band of the first pair of pixels that is different
The average absolute value of the differences of all pairs of pixels
The standard deviation of the absolute value of the differences of all pairs of pixels
The variance of the absolute value of the differences of all pairs of pixels
The smallest absolute value of the differences of all pairs of pixels
The largest absolute value of the differences of all pairs of pixels
The sample of the pair of pixels with the largest difference
The line of the pair of pixels with the largest difference
The band of the pair of pixels with the largest difference
The number of pairs of nonspecial pixels that are different
The number of pairs of pixels that are different where at least one pixel is special
The minimum value of the approximate number of significant figures of the differences of all pairs of pixels. The approximation is given by floor(log10(in1)) - floor(log10(abs(in1 - in2)) where in1 and in2 are the pair of pixels.
The sample of the first pair of pixels where SigFigAccuracy in minimized
The line of the first pair of pixels where SigFigAccuracy in minimized
The band of the first pair of pixels where SigFigAccuracy in minimized
Add user parameter, IGNORESPECIAL, which indicates whether special
pixel values in either file are ignored in the comparison.
K Teal Thompson
K Teal Thompson
Make images smaller
Added the band number to the logged information
Fixed multipal run bug where once the inputs were reported as different
any files entered after that would aldo be reported as different.
Modified schema location from astogeology... to isis.astrogeology...
Modified filename parameters to be cube parameters where necessary
Changed default extension handling mechanism
Modified results pvl to not include the results group
Changed the IGNORESPECIAL from a string to a bool.
Modified to output statistical data about the differences
Added ValidPixelDifferences to output
Documentation correction-Description said program
exited at first difference. This is no longer the case,
all pixels are compared and statistics are collected.
Added tabular output option. Option allows the program to
collect and print out a table of the differences found
Changed name from compare to cubediff
Fixed problems with the special pixel comparisons:
changed IGNORESPECIAL to only ignore the case where one pixel has a DN value and the other pixel is special,
fixed a problem where the special pixel difference would never be the first difference,
fixed a comparison of DN value differences before checking if the pixel is special.
Added significant figure reports for testing purposes.
Updated example images
Fixed bug where sig. fig. accuracy would report "1" when it should report "0"
Integrated WriteTabular and Column (tabular output objects) as
Changed output, if no valid pixel differences, output zero instead of
Incuded keywords MaxDifference Line, Sample and Band in the output to
indicate the line, sample, band where the max cube difference occured
This parameter allows a tolerance when comparing values. If the
difference between pixel values is less than or equal to
TOLERANCE,the values are considered to be equal. The default
value, DBL_EPSILON, is machine specific, but a possible value
is 2.2204460492503131e-16. It is defined in float.h.
This determines if the differences will be output to a
table. If it is checked, the options below will be opened up and
used to determine the specifics of the table to which the data will
be written. The differences are written out as a table, where the
columns represent the sample number, once for each image, and the
rows represent the line number, with the data being the DN at that