|
Isis 3.0 Object Programmers' Reference |
Home |
#include <Statistics.h>
Inheritance diagram for Isis::Statistics:


This class is used to accumulate statistics on double arrays. In particular, it is highly useful for obtaining statistics on cube data. Parameters which can be computed are 1) average, 2) standard deviation, 3) variance, 4) minimum, 5) maximum and 6) various counts of valid and/or special pixels.
The following example shows a simple set up and usage of the Statistics class to calculate the average of a set of values:
Statistics myStats ; double myData [] = { 1.0, 3.0, 2.4, 7.5 } ; myStats.AddData (myData, 4) ; double myAverage = myStats.Average () ; cout << "The average of the data is " << myAverage << endl ;
For an example of how the Statistics object is used in Isis, see the Histogram object (inherits from Statistics) and the stats application, stats.cpp (uses the Statistics child class Histogram).
For internal use only.
Definition at line 76 of file Statistics.h.
Public Member Functions | |
| Statistics () | |
| Constructs an IsisStats object with accumulators and counters set to zero. | |
| ~Statistics () | |
| Destroys the IsisStats object. | |
| void | Reset () |
| Reset all accumulators and counters to zero. | |
| void | AddData (const double *data, const unsigned int count) |
| Add an array of doubles to the accumulators and counters. | |
| void | AddData (const double data) |
| Add a double to the accumulators and counters. | |
| void | RemoveData (const double *data, const unsigned int count) |
| Remove an array of doubles from the accumulators and counters. | |
| void | RemoveData (const double data) |
| void | SetValidRange (const double minimum=Isis::ValidMinimum, const double maximum=Isis::ValidMaximum) |
| double | ValidMinimum () const |
| double | ValidMaximum () const |
| bool | InRange (const double value) |
| bool | AboveRange (const double value) |
| bool | BelowRange (const double value) |
| double | Average () const |
| Computes and returns the average. | |
| double | StandardDeviation () const |
| Computes and returns the standard deviation. | |
| double | Variance () const |
| Computes and returns the variance. | |
| double | Minimum () const |
| Returns the absolute minimum double found in all data passed through the AddData method. | |
| double | Maximum () const |
| Returns the absolute maximum double found in all data passed through the AddData method. | |
| double | ChebyshevMinimum (const double percent=99.5) const |
| This method returns a minimum such that X percent of the data will fall with K standard deviations of the average (Chebyshev's Theorem). | |
| double | ChebyshevMaximum (const double percent=99.5) const |
| This method returns a maximum such that X percent of the data will fall with K standard deviations of the average (Chebyshev's Theorem). | |
| double | BestMinimum (const double percent=99.5) const |
| This method returns the better of the absolute minimum or the Chebyshev minimum. | |
| double | BestMaximum (const double percent=99.5) const |
| This method returns the better of the absolute maximum or the Chebyshev maximum. | |
| double | ZScore (const double value) const |
| This method returns the better of the z-score of the given value. | |
| BigInt | TotalPixels () const |
| Returns the total number of pixels processed (valid and invalid). | |
| BigInt | ValidPixels () const |
| Returns the total number of valid pixels processed. | |
| BigInt | OverRangePixels () const |
| Returns the total number of pixels over the valid range encountered. | |
| BigInt | UnderRangePixels () const |
| Returns the total number of pixels under the valid range encountered. | |
| BigInt | NullPixels () const |
| Returns the total number of NULL pixels encountered. | |
| BigInt | LisPixels () const |
| Returns the total number of low instrument saturation (LIS) pixels encountered. | |
| BigInt | LrsPixels () const |
| Returns the total number of low representation saturation (LRS) pixels encountered. | |
| BigInt | HisPixels () const |
| Returns the total number of high instrument saturation (HIS) pixels encountered. | |
| BigInt | HrsPixels () const |
| Returns the total number of high representation saturation (HRS) pixels encountered. | |
| BigInt | OutOfRangePixels () const |
| Returns the total number of pixels outside of the valid range encountered. | |
| double | Sum () const |
| Returns the sum of all the data. | |
| double | SumSquare () const |
| Returns the sum of all the squared data. | |
Private Attributes | |
| double | p_sum |
| Sum accumulator. | |
| double | p_sumsum |
| Sum-squared accumulator. | |
| double | p_minimum |
| Minimum double value encountered. | |
| double | p_maximum |
| Maximum double value encountered. | |
| double | p_validMinimum |
| Minimum valid pixel value. | |
| double | p_validMaximum |
| Maximum valid pixel value. | |
| BigInt | p_totalPixels |
| Count of total pixels processed. | |
| BigInt | p_validPixels |
| Count of valid pixels (non-special) processed. | |
| BigInt | p_nullPixels |
| Count of null pixels processed. | |
| BigInt | p_lrsPixels |
| Count of low instrument saturation pixels processed. | |
| BigInt | p_lisPixels |
| Count of low representation saturation pixels processed. | |
| BigInt | p_hrsPixels |
| Count of high instrument saturation pixels processed. | |
| BigInt | p_hisPixels |
| Count of high instrument representation pixels processed. | |
| BigInt | p_underRangePixels |
| Count of pixels less than the valid range. | |
| BigInt | p_overRangePixels |
| Count of pixels greater than the valid range. | |
| bool | p_removedData |
| Indicates the RemoveData method was called which implies p_minimum and p_maximum are invalid. | |
| Isis::Statistics::Statistics | ( | ) |
Constructs an IsisStats object with accumulators and counters set to zero.
Definition at line 30 of file Statistics.cpp.
References Reset(), and SetValidRange().
Referenced by Isis::Histogram::InitializeFromCube().
| Isis::Statistics::~Statistics | ( | ) |
| void Isis::Statistics::AddData | ( | const double | data | ) | [inline] |
Add a double to the accumulators and counters.
This method can be invoked multiple times (for example: once for each pixel in a cube) before obtaining statistics.
| data | The data to be added to the data set used for statistical calculations. |
Definition at line 92 of file Statistics.h.
References AboveRange(), InRange(), Isis::IsHisPixel(), Isis::IsHrsPixel(), Isis::IsLisPixel(), Isis::IsLrsPixel(), Isis::IsNullPixel(), Isis::IsValidPixel(), p_hisPixels, p_hrsPixels, p_lisPixels, p_lrsPixels, p_maximum, p_minimum, p_nullPixels, p_overRangePixels, p_sum, p_sumsum, p_totalPixels, p_underRangePixels, and p_validPixels.
| void Isis::Statistics::AddData | ( | const double * | data, | |
| const unsigned int | count | |||
| ) |
Add an array of doubles to the accumulators and counters.
This method can be invoked multiple times (for example: once for each line in a cube) before obtaining statistics.
| data | The data to be added to the data set used for statistical calculations. | |
| count | The number of elements in the incoming data to be added. |
Reimplemented in Isis::Histogram.
Definition at line 66 of file Statistics.cpp.
References value.
Referenced by Isis::MultivariateStatistics::AddData(), Isis::Histogram::AddData(), Isis::BundleAdjust::AddPartials(), Qisis::PlotTool::changePlot(), Isis::AutoReg::ComputeChipZScore(), Isis::Histogram::InitializeFromCube(), Isis::StandardDeviationOperator::Interest(), Isis::AutoReg::Reduce(), Isis::ReseauDistortionMap::SetFocalPlane(), Qisis::VisualDisplay::setPixelData(), Isis::ReseauDistortionMap::SetUndistortedFocalPlane(), Isis::Cube::Statistics(), Isis::Chip::Statistics(), and Isis::Gruen::TestConstraints().
| double Isis::Statistics::Average | ( | ) | const |
Computes and returns the average.
If there are no valid pixels, then NULL8 is returned.
Definition at line 140 of file Statistics.cpp.
References Isis::NULL8, p_sum, and p_validPixels.
Referenced by Isis::OverlapNormalization::AddOverlap(), Qisis::HistogramTool::changePlot(), ChebyshevMaximum(), ChebyshevMinimum(), Isis::MultivariateStatistics::Covariance(), Isis::operator<<(), Qisis::VisualDisplay::paintPixmap(), Isis::AutoReg::Reduce(), Isis::Histogram::Skew(), Isis::Gruen::StatsLog(), and ZScore().
| double Isis::Statistics::BestMaximum | ( | const double | percent = 99.5 |
) | const |
This method returns the better of the absolute maximum or the Chebyshev maximum.
The better value is considered the value closest to the mean.
| percent | The probability that the maximum is within K standard deviations of the mean (Used to compute the Chebyshev maximum). Default value = 99.5. |
Definition at line 401 of file Statistics.cpp.
References ChebyshevMaximum(), Maximum(), Isis::NULL8, and p_validPixels.
Referenced by Qisis::MosaicItem::getStretch(), Isis::Histogram::InitializeFromCube(), Qisis::VisualDisplay::setPixelData(), Qisis::StretchTool::stretchBuffer(), and Qisis::StretchTool::stretchEntireCube().
| double Isis::Statistics::BestMinimum | ( | const double | percent = 99.5 |
) | const |
This method returns the better of the absolute minimum or the Chebyshev minimum.
The better value is considered the value closest to the mean.
| percent | The probability that the minimum is within K standard deviations of the mean (Used to compute the Chebyshev minimum). Default value = 99.5. |
Definition at line 379 of file Statistics.cpp.
References ChebyshevMinimum(), Minimum(), Isis::NULL8, and p_validPixels.
Referenced by Qisis::MosaicItem::getStretch(), Isis::Histogram::InitializeFromCube(), Qisis::VisualDisplay::setPixelData(), Qisis::StretchTool::stretchBuffer(), and Qisis::StretchTool::stretchEntireCube().
| double Isis::Statistics::ChebyshevMaximum | ( | const double | percent = 99.5 |
) | const |
This method returns a maximum such that X percent of the data will fall with K standard deviations of the average (Chebyshev's Theorem).
It can be used to obtain a minimum that does not include statistical outliers.
| percent | The probability that the maximum is within K standard deviations of the mean. Default value = 99.5. |
| Isis::iException::Message |
Definition at line 354 of file Statistics.cpp.
References _FILEINFO_, Average(), Isis::iException::Message(), Isis::NULL8, p_validPixels, and StandardDeviation().
Referenced by BestMaximum().
| double Isis::Statistics::ChebyshevMinimum | ( | const double | percent = 99.5 |
) | const |
This method returns a minimum such that X percent of the data will fall with K standard deviations of the average (Chebyshev's Theorem).
It can be used to obtain a minimum that does not include statistical outliers.
| percent | The probability that the minimum is within K standard deviations of the mean. Default value = 99.5. |
| Isis::iException::Message |
Definition at line 328 of file Statistics.cpp.
References _FILEINFO_, Average(), Isis::iException::Message(), Isis::NULL8, p_validPixels, and StandardDeviation().
Referenced by BestMinimum().
| BigInt Isis::Statistics::HisPixels | ( | ) | const |
Returns the total number of high instrument saturation (HIS) pixels encountered.
Definition at line 289 of file Statistics.cpp.
References p_hisPixels.
| BigInt Isis::Statistics::HrsPixels | ( | ) | const |
Returns the total number of high representation saturation (HRS) pixels encountered.
Definition at line 299 of file Statistics.cpp.
References p_hrsPixels.
| BigInt Isis::Statistics::LisPixels | ( | ) | const |
Returns the total number of low instrument saturation (LIS) pixels encountered.
Definition at line 269 of file Statistics.cpp.
References p_lisPixels.
| BigInt Isis::Statistics::LrsPixels | ( | ) | const |
Returns the total number of low representation saturation (LRS) pixels encountered.
Definition at line 279 of file Statistics.cpp.
References p_lrsPixels.
| double Isis::Statistics::Maximum | ( | ) | const |
Returns the absolute maximum double found in all data passed through the AddData method.
If there are no valid pixels, then NULL8 is returned.
| Isis::iException::Message | The data set is blank, so the maximum is invalid. |
Definition at line 202 of file Statistics.cpp.
References _FILEINFO_, Isis::iException::Message(), Isis::NULL8, p_maximum, p_removedData, and p_validPixels.
Referenced by BestMaximum(), Qisis::PlotTool::changePlot(), Qisis::HistogramTool::changePlot(), Isis::AutoReg::ComputeChipZScore(), Isis::GaussianStretch::GaussianStretch(), Qisis::VisualDisplay::paintPixmap(), Qisis::HistogramWidget::setHistogram(), Qisis::StretchTool::setStretch(), Isis::Gruen::StatsLog(), Qisis::StretchTool::stretchBuffer(), Qisis::StretchTool::stretchEntireCube(), Qisis::StretchTool::updateTool(), and ZScore().
| double Isis::Statistics::Minimum | ( | ) | const |
Returns the absolute minimum double found in all data passed through the AddData method.
If there are no valid pixels, then NULL8 is returned.
| Isis::iException::Message | The data set is blank, so the minimum is invalid. |
Definition at line 182 of file Statistics.cpp.
References _FILEINFO_, Isis::iException::Message(), Isis::NULL8, p_minimum, p_removedData, and p_validPixels.
Referenced by BestMinimum(), Qisis::PlotTool::changePlot(), Qisis::HistogramTool::changePlot(), Isis::AutoReg::ComputeChipZScore(), Isis::GaussianStretch::GaussianStretch(), Qisis::VisualDisplay::paintPixmap(), Qisis::HistogramWidget::setHistogram(), Qisis::StretchTool::setStretch(), Isis::Gruen::StatsLog(), Qisis::StretchTool::stretchBuffer(), Qisis::StretchTool::stretchEntireCube(), and Qisis::StretchTool::updateTool().
| BigInt Isis::Statistics::NullPixels | ( | ) | const |
Returns the total number of NULL pixels encountered.
Definition at line 259 of file Statistics.cpp.
References p_nullPixels.
| BigInt Isis::Statistics::OutOfRangePixels | ( | ) | const |
Returns the total number of pixels outside of the valid range encountered.
Definition at line 309 of file Statistics.cpp.
References p_overRangePixels, and p_underRangePixels.
| BigInt Isis::Statistics::OverRangePixels | ( | ) | const |
Returns the total number of pixels over the valid range encountered.
Definition at line 240 of file Statistics.cpp.
References p_overRangePixels.
| void Isis::Statistics::RemoveData | ( | const double * | data, | |
| const unsigned int | count | |||
| ) |
Remove an array of doubles from the accumulators and counters.
Note that is invalidates the absolute minimum and maximum. They will no longer be usable.
| data | The data to be removed from data set used for statistical calculations. | |
| count | The number of elements in the data to be removed. |
| Isis::iException::Message | RemoveData is trying to remove data that doesn't exist. |
Reimplemented in Isis::Histogram.
Definition at line 88 of file Statistics.cpp.
References _FILEINFO_, AboveRange(), InRange(), Isis::IsHisPixel(), Isis::IsHrsPixel(), Isis::IsLisPixel(), Isis::IsLrsPixel(), Isis::IsNullPixel(), Isis::IsValidPixel(), Isis::iException::Message(), p_hisPixels, p_hrsPixels, p_lisPixels, p_lrsPixels, p_nullPixels, p_overRangePixels, p_removedData, p_sum, p_sumsum, p_totalPixels, p_underRangePixels, and p_validPixels.
Referenced by RemoveData(), Isis::MultivariateStatistics::RemoveData(), and Isis::Histogram::RemoveData().
| void Isis::Statistics::Reset | ( | ) |
Reset all accumulators and counters to zero.
Reimplemented in Isis::Histogram.
Definition at line 36 of file Statistics.cpp.
References p_hisPixels, p_hrsPixels, p_lisPixels, p_lrsPixels, p_maximum, p_minimum, p_nullPixels, p_overRangePixels, p_removedData, p_sum, p_sumsum, p_totalPixels, p_underRangePixels, and p_validPixels.
Referenced by Isis::AutoReg::Reduce(), Isis::MultivariateStatistics::Reset(), Isis::Histogram::Reset(), Isis::Gruen::resetStats(), Qisis::VisualDisplay::setLines(), Qisis::VisualDisplay::setPixelData(), Qisis::VisualDisplay::setSamples(), Isis::BundleAdjust::Solve(), and Statistics().
| double Isis::Statistics::StandardDeviation | ( | ) | const |
Computes and returns the standard deviation.
If there are no valid pixels, then NULL8 is returned.
Reimplemented in Isis::GaussianDistribution.
Definition at line 151 of file Statistics.cpp.
References Isis::NULL8, p_validPixels, and Variance().
Referenced by Qisis::HistogramTool::changePlot(), ChebyshevMaximum(), ChebyshevMinimum(), Isis::MultivariateStatistics::Correlation(), Isis::StandardDeviationOperator::Interest(), Isis::operator<<(), Qisis::VisualDisplay::paintPixmap(), Isis::ReseauDistortionMap::SetFocalPlane(), Isis::ReseauDistortionMap::SetUndistortedFocalPlane(), Isis::Histogram::Skew(), Isis::Gruen::StatsLog(), and ZScore().
| double Isis::Statistics::Sum | ( | ) | const [inline] |
Returns the sum of all the data.
Definition at line 156 of file Statistics.h.
References p_sum.
Referenced by Isis::MultivariateStatistics::Covariance(), and Isis::MultivariateStatistics::LinearRegression().
| double Isis::Statistics::SumSquare | ( | ) | const [inline] |
Returns the sum of all the squared data.
Definition at line 163 of file Statistics.h.
References p_sumsum.
Referenced by Isis::MultivariateStatistics::LinearRegression(), and Isis::BundleAdjust::Solve().
| BigInt Isis::Statistics::TotalPixels | ( | ) | const |
Returns the total number of pixels processed (valid and invalid).
Definition at line 218 of file Statistics.cpp.
References p_totalPixels.
Referenced by Isis::operator<<(), Qisis::VisualDisplay::paintPixmap(), and Isis::BundleAdjust::Solve().
| BigInt Isis::Statistics::UnderRangePixels | ( | ) | const |
Returns the total number of pixels under the valid range encountered.
Definition at line 250 of file Statistics.cpp.
References p_underRangePixels.
| BigInt Isis::Statistics::ValidPixels | ( | ) | const |
Returns the total number of valid pixels processed.
Only valid pixels are utilized when computing the average, standard deviation, variance, minimum and maximum.
Definition at line 230 of file Statistics.cpp.
References p_validPixels.
Referenced by Isis::OverlapNormalization::AddOverlap(), Qisis::HistogramTool::changePlot(), Qisis::StretchTool::getHistogramPercent(), Isis::Histogram::InitializeFromCube(), Qisis::QHistogram::Load(), Isis::operator<<(), Isis::Histogram::Percent(), and Isis::Histogram::Skew().
| double Isis::Statistics::Variance | ( | ) | const |
Computes and returns the variance.
If there are no valid pixels, then NULL8 is returned.
For internal use only.
Definition at line 166 of file Statistics.cpp.
References Isis::NULL8, p_sum, p_sumsum, and p_validPixels.
Referenced by Qisis::HistogramTool::changePlot(), Isis::operator<<(), and StandardDeviation().
| double Isis::Statistics::ZScore | ( | const double | value | ) | const |
This method returns the better of the z-score of the given value.
The z-score is the number of standard deviations the value lies above or below the average.
| value | The value to calculate the z-score of. |
Definition at line 420 of file Statistics.cpp.
References _FILEINFO_, Average(), Maximum(), Isis::iException::Message(), and StandardDeviation().
Referenced by Isis::AutoReg::ComputeChipZScore().
BigInt Isis::Statistics::p_hisPixels [private] |
Count of high instrument representation pixels processed.
Definition at line 178 of file Statistics.h.
Referenced by AddData(), HisPixels(), RemoveData(), and Reset().
BigInt Isis::Statistics::p_hrsPixels [private] |
Count of high instrument saturation pixels processed.
Definition at line 177 of file Statistics.h.
Referenced by AddData(), HrsPixels(), RemoveData(), and Reset().
BigInt Isis::Statistics::p_lisPixels [private] |
Count of low representation saturation pixels processed.
Definition at line 176 of file Statistics.h.
Referenced by AddData(), LisPixels(), RemoveData(), and Reset().
BigInt Isis::Statistics::p_lrsPixels [private] |
Count of low instrument saturation pixels processed.
Definition at line 175 of file Statistics.h.
Referenced by AddData(), LrsPixels(), RemoveData(), and Reset().
double Isis::Statistics::p_maximum [private] |
double Isis::Statistics::p_minimum [private] |
BigInt Isis::Statistics::p_nullPixels [private] |
Count of null pixels processed.
Definition at line 174 of file Statistics.h.
Referenced by AddData(), NullPixels(), RemoveData(), and Reset().
BigInt Isis::Statistics::p_overRangePixels [private] |
Count of pixels greater than the valid range.
Definition at line 180 of file Statistics.h.
Referenced by AddData(), OutOfRangePixels(), OverRangePixels(), RemoveData(), and Reset().
bool Isis::Statistics::p_removedData [private] |
Indicates the RemoveData method was called which implies p_minimum and p_maximum are invalid.
Definition at line 181 of file Statistics.h.
Referenced by Maximum(), Minimum(), RemoveData(), and Reset().
double Isis::Statistics::p_sum [private] |
Sum accumulator.
Definition at line 163 of file Statistics.h.
Referenced by AddData(), Average(), RemoveData(), Reset(), Sum(), and Variance().
double Isis::Statistics::p_sumsum [private] |
Sum-squared accumulator.
Definition at line 167 of file Statistics.h.
Referenced by AddData(), RemoveData(), Reset(), SumSquare(), and Variance().
BigInt Isis::Statistics::p_totalPixels [private] |
Count of total pixels processed.
Definition at line 172 of file Statistics.h.
Referenced by AddData(), RemoveData(), Reset(), and TotalPixels().
BigInt Isis::Statistics::p_underRangePixels [private] |
Count of pixels less than the valid range.
Definition at line 179 of file Statistics.h.
Referenced by AddData(), OutOfRangePixels(), RemoveData(), Reset(), and UnderRangePixels().
double Isis::Statistics::p_validMaximum [private] |
Maximum valid pixel value.
Definition at line 171 of file Statistics.h.
Referenced by AboveRange(), InRange(), SetValidRange(), and ValidMaximum().
double Isis::Statistics::p_validMinimum [private] |
Minimum valid pixel value.
Definition at line 170 of file Statistics.h.
Referenced by BelowRange(), InRange(), SetValidRange(), and ValidMinimum().
BigInt Isis::Statistics::p_validPixels [private] |
Count of valid pixels (non-special) processed.
Definition at line 173 of file Statistics.h.
Referenced by AddData(), Average(), BestMaximum(), BestMinimum(), ChebyshevMaximum(), ChebyshevMinimum(), Maximum(), Minimum(), RemoveData(), Reset(), StandardDeviation(), ValidPixels(), and Variance().