Isis 3.0 Object Programmers' Reference Home

Isis::Statistics Class Reference [Statistics]

This class is used to accumulate statistics on double arrays. More...

`#include <Statistics.h>`

Inheritance diagram for Isis::Statistics:
[legend]
Collaboration diagram for Isis::Statistics:
[legend]

List of all members.

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.
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 Rms () const
Computes and returns the rms.
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.

Detailed Description

This class is used to accumulate statistics on double arrays.

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 } ;

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.

History:
2002-05-08 Jeff Anderson - Added Chebyshev and Best minimum/maximum methods.
History:
2004-05-11 Jeff Anderson - Moved Reset, AddData and RemoveData methods into public space.
History:
2004-06-28 Jeff Anderson - Added Sum and SumSquare methods.
History:
2005-02-17 Deborah Lee Soltesz - Modified file to support Doxygen documentation.
History:
2005-05-23 Jeff Anderson - Changed to support 2GB+ files
History:
2006-02-15 Jacob Danton - Added Valid Range options/methods
History:
2006-03-10 Jacob Danton - Added Z-score method
History:
2007-01-18 Robert Sucharski - Added AddData method for a single double value
History:
2008-05-06 Steven Lambright - Added AboveRange, BelowRange methods
History:
2010-03-18 Sharmila Prasad - Error message more meaningful for SetValidRange function
History:
2011-06-13 Ken Edmundson - Added Rms method
Todo:
2005-02-07 Deborah Lee Soltesz - add example using cube data to the class documentation

Definition at line 78 of file Statistics.h.

Constructor & Destructor Documentation

 Isis::Statistics::Statistics ( )

Constructs an IsisStats object with accumulators and counters set to zero.

Definition at line 30 of file Statistics.cpp.

References Reset().

 Isis::Statistics::~Statistics ( )

Destroys the IsisStats object.

Definition at line 54 of file Statistics.cpp.

Member Function Documentation

 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.

Parameters:
 data The data to be added to the data set used for statistical calculations.

Reimplemented in Isis::Histogram.

Definition at line 94 of file Statistics.h.

 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.

Parameters:
 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.

 double Isis::Statistics::Average ( ) const

Computes and returns the average.

If there are no valid pixels, then NULL8 is returned.

Returns:
The Average

Definition at line 150 of file Statistics.cpp.

References p_sum, and p_validPixels.

 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.

Parameters:
 percent The probability that the maximum is within K standard deviations of the mean (Used to compute the Chebyshev maximum). Default value = 99.5.
Returns:
Best of absolute and Chebyshev maximums
Statistics::Maximum Statistics::ChebyshevMaximum

Definition at line 427 of file Statistics.cpp.

References ChebyshevMaximum(), Maximum(), and p_validPixels.

 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.

Parameters:
 percent The probability that the minimum is within K standard deviations of the mean (Used to compute the Chebyshev minimum). Default value = 99.5.
Returns:
Best of absolute and Chebyshev minimums
Statistics::Minimum Statistics::ChebyshevMinimum

Definition at line 405 of file Statistics.cpp.

References ChebyshevMinimum(), min(), Minimum(), and p_validPixels.

 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.

Parameters:
 percent The probability that the maximum is within K standard deviations of the mean. Default value = 99.5.
Returns:
maximum value excluding statistical outliers
Exceptions:
 Isis::IException::Message

Definition at line 380 of file Statistics.cpp.

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.

Parameters:
 percent The probability that the minimum is within K standard deviations of the mean. Default value = 99.5.
Returns:
Minimum value (excluding statistical outliers)
Exceptions:
 Isis::IException::Message

Definition at line 354 of file Statistics.cpp.

Referenced by BestMinimum().

 BigInt Isis::Statistics::HisPixels ( ) const

Returns the total number of high instrument saturation (HIS) pixels encountered.

Returns:
The number of HIS pixels (data) processed

Definition at line 315 of file Statistics.cpp.

References p_hisPixels.

 BigInt Isis::Statistics::HrsPixels ( ) const

Returns the total number of high representation saturation (HRS) pixels encountered.

Returns:
The number of HRS pixels (data) processed

Definition at line 325 of file Statistics.cpp.

References p_hrsPixels.

 BigInt Isis::Statistics::LisPixels ( ) const

Returns the total number of low instrument saturation (LIS) pixels encountered.

Returns:
The number of LIS pixels (data) processed

Definition at line 295 of file Statistics.cpp.

References p_lisPixels.

 BigInt Isis::Statistics::LrsPixels ( ) const

Returns the total number of low representation saturation (LRS) pixels encountered.

Returns:
The number of LRS pixels (data) processed

Definition at line 305 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.

Returns:
Current maximum value in data set
Exceptions:
 Isis::IException::Message The data set is blank, so the maximum is invalid.

Definition at line 228 of file Statistics.cpp.

References _FILEINFO_, p_maximum, p_removedData, p_validPixels, and Isis::IException::Programmer.

 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.

Returns:
Current minimum value in data set.
Exceptions:
 Isis::IException::Message The data set is blank, so the minimum is invalid.

Definition at line 208 of file Statistics.cpp.

References _FILEINFO_, p_minimum, p_removedData, p_validPixels, and Isis::IException::Programmer.

 BigInt Isis::Statistics::NullPixels ( ) const

Returns the total number of NULL pixels encountered.

Returns:
The number of NULL pixels (data) processed

Definition at line 285 of file Statistics.cpp.

References p_nullPixels.

 BigInt Isis::Statistics::OutOfRangePixels ( ) const

Returns the total number of pixels outside of the valid range encountered.

Returns:
The number of Out of Range pixels (data) processed

Definition at line 335 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.

Returns:
The number of pixels less than the ValidMaximum() processed

Definition at line 266 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.

Parameters:
 data The data to be removed from data set used for statistical calculations. count The number of elements in the data to be removed.
Exceptions:
 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.

Referenced by Isis::MultivariateStatistics::RemoveData().

 void Isis::Statistics::Reset ( )

Reset all accumulators and counters to zero.

Reimplemented in Isis::Histogram.

Definition at line 36 of file Statistics.cpp.

 double Isis::Statistics::Rms ( ) const

Computes and returns the rms.

If there are no valid pixels, then NULL8 is returned.

Returns:
The rms (root mean square)

For internal use only.

History:
2011-06-13 Ken Edmundson.

Definition at line 192 of file Statistics.cpp.

References p_sumsum, and p_validPixels.

 double Isis::Statistics::StandardDeviation ( ) const

Computes and returns the standard deviation.

If there are no valid pixels, then NULL8 is returned.

Returns:
The standard deviation

Reimplemented in Isis::GaussianDistribution.

Definition at line 161 of file Statistics.cpp.

References p_validPixels, and Variance().

 double Isis::Statistics::Sum ( ) const` [inline]`

Returns the sum of all the data.

Returns:
The sum of the data

Definition at line 176 of file Statistics.h.

References p_sum.

 double Isis::Statistics::SumSquare ( ) const` [inline]`

Returns the sum of all the squared data.

Returns:
The sum of the squared data

Definition at line 185 of file Statistics.h.

References p_sumsum.

 BigInt Isis::Statistics::TotalPixels ( ) const

Returns the total number of pixels processed (valid and invalid).

Returns:
The number of pixels (data) processed

Definition at line 244 of file Statistics.cpp.

References p_totalPixels.

 BigInt Isis::Statistics::UnderRangePixels ( ) const

Returns the total number of pixels under the valid range encountered.

Returns:
The number of pixels less than the ValidMinimum() processed

Definition at line 276 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.

Returns:
The number of valid pixels (data) processed

Definition at line 256 of file Statistics.cpp.

References p_validPixels.

 double Isis::Statistics::Variance ( ) const

Computes and returns the variance.

If there are no valid pixels, then NULL8 is returned.

Returns:
The variance

For internal use only.

History:
2003-08-27 Jeff Anderson - Modified Variance method to compute using n*(n-1) instead of n*n.

Definition at line 176 of file Statistics.cpp.

References p_sum, p_sumsum, and p_validPixels.

Referenced by Isis::HistogramTool::refreshPlot(), 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.

Parameters:
 value The value to calculate the z-score of.
Returns:
z-score

Definition at line 446 of file Statistics.cpp.

References _FILEINFO_, Average(), Maximum(), Isis::IException::Programmer, and StandardDeviation().

Referenced by Isis::AutoReg::ComputeChipZScore().

Member Data Documentation

 BigInt Isis::Statistics::p_hisPixels` [private]`

Count of high instrument representation pixels processed.

Definition at line 202 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 201 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 200 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 199 of file Statistics.h.

Referenced by AddData(), LrsPixels(), RemoveData(), and Reset().

 double Isis::Statistics::p_maximum` [private]`

Maximum double value encountered.

Definition at line 193 of file Statistics.h.

Referenced by AddData(), Maximum(), and Reset().

 double Isis::Statistics::p_minimum` [private]`

Minimum double value encountered.

Definition at line 192 of file Statistics.h.

Referenced by AddData(), Minimum(), and Reset().

 BigInt Isis::Statistics::p_nullPixels` [private]`

Count of null pixels processed.

Definition at line 198 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 204 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 205 of file Statistics.h.

Referenced by Maximum(), Minimum(), RemoveData(), and Reset().

 double Isis::Statistics::p_sum` [private]`

Sum accumulator.

Definition at line 187 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 191 of file Statistics.h.

Referenced by AddData(), RemoveData(), Reset(), Rms(), SumSquare(), and Variance().

 BigInt Isis::Statistics::p_totalPixels` [private]`

Count of total pixels processed.

Definition at line 196 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 203 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 195 of file Statistics.h.

 double Isis::Statistics::p_validMinimum` [private]`

Minimum valid pixel value.

Definition at line 194 of file Statistics.h.

 BigInt Isis::Statistics::p_validPixels` [private]`

Count of valid pixels (non-special) processed.

Definition at line 197 of file Statistics.h.

The documentation for this class was generated from the following files: