Isis 3 Programmer Reference
|
Calculates statistics in the area of overlap between two projected cubes. More...
#include <OverlapStatistics.h>
Public Member Functions | |
OverlapStatistics (Isis::Cube &x, Isis::Cube &y, QString progressMsg="Gathering Overlap Statistics", double sampPercent=100.0) | |
Constructs an OverlapStatistics object. | |
OverlapStatistics (const PvlObject &inStats) | |
Constructs an OverlapStatistics from a PvlObject. | |
bool | HasOverlap (int band) const |
Checks the specified band for an overlap. | |
bool | HasOverlap () const |
Checks all bands of the cubes for an overlap, and will only return false if none of the bands overlap. | |
Isis::FileName | FileNameX () const |
Returns the filename of the first cube. | |
Isis::FileName | FileNameY () const |
Returns the filename of the second cube. | |
Isis::MultivariateStatistics | GetMStats (int band) const |
Returns the MultivariateStatistics object containing all the data from both cubes in the overlapping area. | |
int | Lines () const |
Returns the number of lines in the overlapping area. | |
int | Samples () const |
Returns the number of samples in the overlapping area. | |
int | Bands () const |
Returns the number of bands both cubes have. | |
double | SampPercent () const |
Returns the percentage of cube lines sampled. | |
int | StartSampleX () const |
Returns the starting sample position of the overlap in the first cube. | |
int | EndSampleX () const |
Returns the ending sample position of the overlap in the first cube. | |
int | StartLineX () const |
Returns the starting line position of the overlap in the first cube. | |
int | EndLineX () const |
Returns the ending line position of the overlap in the first cube. | |
int | StartSampleY () const |
Returns the starting sample position of the overlap in the second cube. | |
int | EndSampleY () const |
Returns the ending sample position of the overlap in the second cube. | |
int | StartLineY () const |
Returns the starting line position of the overlap in the second cube. | |
int | EndLineY () const |
Returns the ending line position of the overlap in the second cube. | |
void | SetMincount (unsigned int mincnt) |
Sets the minimum number of valid pixels for the overlap to be considered valid for PVL output. | |
int | MinCount () const |
bool | IsValid (unsigned int band) const |
Returns whether the overlap meets the minimum valid pixel requirement. | |
PvlObject | toPvl (QString name="OverlapStatistics") const |
Creates a Pvl containing the following Overlap Statistics information File1 File2 Width Height Bands SamplingPercent MinCount MutlivariateStatisticsN (N = current band) Covariance Correlation SumXY ValidPixels InvalidPixels TotalPixels LinearRegression ValidOverlap XStatistics #FileX Statistics information YStatistics #FileY Statistics information File1 StartSample EndSample StartLine EndLine Average StandardDeviation Variance File2 StartSample EndSample StartLine EndLine Average StandardDeviation Variance. | |
Private Member Functions | |
void | fromPvl (const PvlObject &inStats) |
Unserialize overlap statistics from a Pvl. | |
void | init () |
Reset member variables to default values. | |
Private Attributes | |
int | p_bands |
Number of bands. | |
double | p_sampPercent |
Percentage of lines sampled. | |
Isis::FileName | p_xFile |
FileName of X cube. | |
Isis::FileName | p_yFile |
FileName of Y cube. | |
int | p_sampRange |
Sample range of overlap. | |
int | p_lineRange |
Line range of overlap. | |
int | p_minSampX |
Starting Sample of overlap in X cube. | |
int | p_maxSampX |
Ending Sample of overlap in X cube. | |
int | p_minSampY |
Starting Sample of overlap in Y cube. | |
int | p_maxSampY |
Ending Sample of overlap in Y cube. | |
int | p_minLineX |
Starting Line of overlap in X cube. | |
int | p_maxLineX |
Ending Line of overlap in X cube. | |
int | p_minLineY |
Starting Line of overlap in Y cube. | |
int | p_maxLineY |
Ending Line of overlap in Y cube. | |
int | p_mincnt |
Minimum valid pixels to be valid overlap. | |
std::vector< Isis::MultivariateStatistics > | p_stats |
Multivariate Stats object for overlap data from both cubes. | |
Calculates statistics in the area of overlap between two projected cubes.
This class finds the overlap between two cubes. It allows the user to check whether or not two cubes overlap, and also creates a MultivariateStatistics object containing the data from each cube in the overlapping area. The cubes entered into the constructor for this class must both be projections, and must have the same projection parameters.
If you would like to see OverlapStatistics being used in implementation, see equalizer.cpp
2005-11-18 Elizabeth Miller - added 1e-9 to the min and max values when computing the ranges to fix rounding issue
2006-01-12 Elizabeth Miller - removed unwanted print statements
2006-03-31 Elizabeth Miller - added unitTest
2006-04-03 Elizabeth Miller - added .001 to the min and max values when computing the ranges to re-fix rounding issue
2007-08-27 Steven Koechle - removed space from standard deviation keyword
2008-06-18 Steven Koechle - fixed Documentation Errors
2009-03-12 Travis Addair - added tracking for percent processed
2009-06-24 Travis Addair - optimized statistic gathering, changed PVL print-out for readability, and added functionality to allow the user to specify a "sampling percent" when gathering statistics to save processing time
2012-04-16 Jeannie Backer - Added forward declaration for PvlObject and ordered #includes in the implementation file. Added documentation.
2016-07-15 Ian Humphrey - Modified toPvl() method to get the internal multivariate statistics. Added init() method to initialize primitive members during construction. Added new constructor that creates an OverlapStatistics object from a PvlObject. Added private fromPvl() method to implement these details. Updated unitTest to test these changes. References #2282.
Definition at line 61 of file OverlapStatistics.h.
Isis::OverlapStatistics::OverlapStatistics | ( | Isis::Cube & | x, |
Isis::Cube & | y, | ||
QString | progressMsg = "Gathering Overlap Statistics", | ||
double | sampPercent = 100.0 ) |
Constructs an OverlapStatistics object.
Compares the two input cubes and finds where they overlap.
x | The first input cube |
y | The second input cube |
progressMsg | (Default value of "Gathering Overlap Statistics") Text for indicating progress during statistic gathering |
sampPercent | (Default value of 100.0) Sampling percent, or the percentage of lines to consider during the statistic gathering procedure |
Isis::IException::User | - All images must have the same number of bands |
Definition at line 51 of file OverlapStatistics.cpp.
References Isis::Progress::AddSteps(), Isis::Cube::bandCount(), Isis::Progress::CheckStatus(), Isis::Cube::fileName(), init(), Isis::Cube::lineCount(), Isis::FileName::name(), p_bands, p_lineRange, p_maxLineX, p_maxLineY, p_maxSampX, p_maxSampY, p_minLineX, p_minLineY, p_minSampX, p_minSampY, p_sampPercent, p_sampRange, p_stats, p_xFile, p_yFile, Isis::Cube::pixelType(), Isis::IException::Programmer, Isis::Cube::projection(), Isis::Cube::read(), Isis::Cube::sampleCount(), Isis::Progress::SetMaximumSteps(), Isis::Progress::SetText(), and Isis::IException::User.
Isis::OverlapStatistics::OverlapStatistics | ( | const PvlObject & | inStats | ) |
Constructs an OverlapStatistics from a PvlObject.
inStats | The serialized OverlapStatistics PvlObject |
Definition at line 32 of file OverlapStatistics.cpp.
|
inline |
Returns the number of bands both cubes have.
Definition at line 138 of file OverlapStatistics.h.
References p_bands.
|
inline |
Returns the ending line position of the overlap in the first cube.
Definition at line 183 of file OverlapStatistics.h.
References p_maxLineX.
Referenced by toPvl().
|
inline |
Returns the ending line position of the overlap in the second cube.
Definition at line 219 of file OverlapStatistics.h.
References p_maxLineY.
Referenced by toPvl().
|
inline |
Returns the ending sample position of the overlap in the first cube.
Definition at line 165 of file OverlapStatistics.h.
References p_maxSampX.
Referenced by toPvl().
|
inline |
Returns the ending sample position of the overlap in the second cube.
Definition at line 201 of file OverlapStatistics.h.
References p_maxSampY.
Referenced by toPvl().
|
inline |
Returns the filename of the first cube.
Definition at line 87 of file OverlapStatistics.h.
References p_xFile.
Referenced by toPvl().
|
inline |
Returns the filename of the second cube.
Definition at line 96 of file OverlapStatistics.h.
References p_yFile.
Referenced by toPvl().
|
private |
Unserialize overlap statistics from a Pvl.
const | PvlObject & - The pvl object to initialize the overlap statistics with |
Definition at line 295 of file OverlapStatistics.cpp.
References Bands(), Isis::PvlObject::findObject(), init(), p_bands, p_lineRange, p_maxLineX, p_maxLineY, p_maxSampX, p_maxSampY, p_mincnt, p_minLineX, p_minLineY, p_minSampX, p_minSampY, p_sampPercent, p_sampRange, p_stats, p_xFile, p_yFile, and Isis::toString().
Referenced by OverlapStatistics().
|
inline |
Returns the MultivariateStatistics object containing all the data from both cubes in the overlapping area.
band | The band number the MultivariateStatistics object needs to contain data from |
Definition at line 111 of file OverlapStatistics.h.
References p_stats.
bool Isis::OverlapStatistics::HasOverlap | ( | ) | const |
Checks all bands of the cubes for an overlap, and will only return false if none of the bands overlap.
Definition at line 175 of file OverlapStatistics.cpp.
References p_bands, and p_stats.
Referenced by toPvl().
|
inline |
Checks the specified band for an overlap.
band | The band number of the cubes to be checked for an overlap |
Definition at line 76 of file OverlapStatistics.h.
References p_stats.
|
private |
Reset member variables to default values.
Definition at line 332 of file OverlapStatistics.cpp.
References p_bands, p_lineRange, p_maxLineX, p_maxLineY, p_maxSampX, p_maxSampY, p_mincnt, p_minLineX, p_minLineY, p_minSampX, p_minSampY, p_sampPercent, and p_sampRange.
Referenced by fromPvl(), OverlapStatistics(), and OverlapStatistics().
|
inline |
Returns whether the overlap meets the minimum valid pixel requirement.
band | The band to check |
Definition at line 244 of file OverlapStatistics.h.
References GetMStats(), p_mincnt, and Isis::MultivariateStatistics::ValidPixels().
Referenced by toPvl().
|
inline |
Returns the number of lines in the overlapping area.
Definition at line 120 of file OverlapStatistics.h.
References p_lineRange.
Referenced by toPvl().
|
inline |
Definition at line 233 of file OverlapStatistics.h.
|
inline |
Returns the number of samples in the overlapping area.
Definition at line 129 of file OverlapStatistics.h.
References p_sampRange.
Referenced by toPvl().
|
inline |
Returns the percentage of cube lines sampled.
Definition at line 147 of file OverlapStatistics.h.
References p_sampPercent.
Referenced by toPvl().
|
inline |
Sets the minimum number of valid pixels for the overlap to be considered valid for PVL output.
mincnt | The minimum valid pixel value to set |
Definition at line 229 of file OverlapStatistics.h.
References p_mincnt.
|
inline |
Returns the starting line position of the overlap in the first cube.
Definition at line 174 of file OverlapStatistics.h.
References p_minLineX.
Referenced by toPvl().
|
inline |
Returns the starting line position of the overlap in the second cube.
Definition at line 210 of file OverlapStatistics.h.
References p_minLineY.
Referenced by toPvl().
|
inline |
Returns the starting sample position of the overlap in the first cube.
Definition at line 156 of file OverlapStatistics.h.
References p_minSampX.
Referenced by toPvl().
|
inline |
Returns the starting sample position of the overlap in the second cube.
Definition at line 192 of file OverlapStatistics.h.
References p_minSampY.
Referenced by toPvl().
PvlObject Isis::OverlapStatistics::toPvl | ( | QString | name = "OverlapStatistics" | ) | const |
Creates a Pvl containing the following Overlap Statistics information File1 File2 Width Height Bands SamplingPercent MinCount MutlivariateStatisticsN (N = current band) Covariance Correlation SumXY ValidPixels InvalidPixels TotalPixels LinearRegression ValidOverlap XStatistics #FileX Statistics information YStatistics #FileY Statistics information File1 StartSample EndSample StartLine EndLine Average StandardDeviation Variance File2 StartSample EndSample StartLine EndLine Average StandardDeviation Variance.
Serialize overlap statistics as a PvlObject.
QString | name (Default value of "OverlapStatistics") Name of the PvlObject created |
Isis::IException::User | - Trivial overlap between [File1] and [File2] |
Definition at line 192 of file OverlapStatistics.cpp.
References Bands(), EndLineX(), EndLineY(), EndSampleX(), EndSampleY(), FileNameX(), FileNameY(), GetMStats(), HasOverlap(), IsValid(), Lines(), Isis::FileName::name(), Samples(), SampPercent(), StartLineX(), StartLineY(), StartSampleX(), StartSampleY(), toPvl(), Isis::toString(), and Isis::IException::User.
Referenced by toPvl().
|
private |
Number of bands.
Definition at line 299 of file OverlapStatistics.h.
Referenced by Bands(), fromPvl(), HasOverlap(), init(), and OverlapStatistics().
|
private |
Line range of overlap.
Definition at line 304 of file OverlapStatistics.h.
Referenced by fromPvl(), init(), Lines(), and OverlapStatistics().
|
private |
Ending Line of overlap in X cube.
Definition at line 310 of file OverlapStatistics.h.
Referenced by EndLineX(), fromPvl(), init(), and OverlapStatistics().
|
private |
Ending Line of overlap in Y cube.
Definition at line 312 of file OverlapStatistics.h.
Referenced by EndLineY(), fromPvl(), init(), and OverlapStatistics().
|
private |
Ending Sample of overlap in X cube.
Definition at line 306 of file OverlapStatistics.h.
Referenced by EndSampleX(), fromPvl(), init(), and OverlapStatistics().
|
private |
Ending Sample of overlap in Y cube.
Definition at line 308 of file OverlapStatistics.h.
Referenced by EndSampleY(), fromPvl(), init(), and OverlapStatistics().
|
private |
Minimum valid pixels to be valid overlap.
Definition at line 313 of file OverlapStatistics.h.
Referenced by fromPvl(), init(), IsValid(), and SetMincount().
|
private |
Starting Line of overlap in X cube.
Definition at line 309 of file OverlapStatistics.h.
Referenced by fromPvl(), init(), OverlapStatistics(), and StartLineX().
|
private |
Starting Line of overlap in Y cube.
Definition at line 311 of file OverlapStatistics.h.
Referenced by fromPvl(), init(), OverlapStatistics(), and StartLineY().
|
private |
Starting Sample of overlap in X cube.
Definition at line 305 of file OverlapStatistics.h.
Referenced by fromPvl(), init(), OverlapStatistics(), and StartSampleX().
|
private |
Starting Sample of overlap in Y cube.
Definition at line 307 of file OverlapStatistics.h.
Referenced by fromPvl(), init(), OverlapStatistics(), and StartSampleY().
|
private |
Percentage of lines sampled.
Definition at line 300 of file OverlapStatistics.h.
Referenced by fromPvl(), init(), OverlapStatistics(), and SampPercent().
|
private |
Sample range of overlap.
Definition at line 303 of file OverlapStatistics.h.
Referenced by fromPvl(), init(), OverlapStatistics(), and Samples().
|
private |
Multivariate Stats object for overlap data from both cubes.
Definition at line 316 of file OverlapStatistics.h.
Referenced by fromPvl(), GetMStats(), HasOverlap(), HasOverlap(), and OverlapStatistics().
|
private |
FileName of X cube.
Definition at line 301 of file OverlapStatistics.h.
Referenced by FileNameX(), fromPvl(), and OverlapStatistics().
|
private |
FileName of Y cube.
Definition at line 302 of file OverlapStatistics.h.
Referenced by FileNameY(), fromPvl(), and OverlapStatistics().