Isis Developer Reference
|
This class is used to accumulate statistics on double arrays. More...
#include <Statistics.h>
Public Member Functions | |
Statistics (QObject *parent=0) | |
Constructs an IsisStats object with accumulators and counters set to zero. More... | |
Statistics (Project *project, XmlStackedHandlerReader *xmlReader, QObject *parent=0) | |
Statistics (const PvlGroup &inStats, QObject *parent=0) | |
Constructs a Statistics object from an input Pvl. More... | |
Statistics (const Statistics &other) | |
virtual | ~Statistics () |
Destroys the IsisStats object. More... | |
Statistics & | operator= (const Statistics &other) |
void | Reset () |
Reset all accumulators and counters to zero. More... | |
void | AddData (const double *data, const unsigned int count) |
Add an array of doubles to the accumulators and counters. More... | |
void | AddData (const double data) |
Add a double to the accumulators and counters. More... | |
void | RemoveData (const double *data, const unsigned int count) |
Remove an array of doubles from the accumulators and counters. More... | |
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. More... | |
double | StandardDeviation () const |
Computes and returns the standard deviation. More... | |
double | Variance () const |
Computes and returns the variance. More... | |
double | Sum () const |
Returns the sum of all the data. More... | |
double | SumSquare () const |
Returns the sum of all the squared data. More... | |
double | Rms () const |
Computes and returns the rms. More... | |
double | Minimum () const |
Returns the absolute minimum double found in all data passed through the AddData method. More... | |
double | Maximum () const |
Returns the absolute maximum double found in all data passed through the AddData method. More... | |
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). More... | |
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). More... | |
double | BestMinimum (const double percent=99.5) const |
This method returns the better of the absolute minimum or the Chebyshev minimum. More... | |
double | BestMaximum (const double percent=99.5) const |
This method returns the better of the absolute maximum or the Chebyshev maximum. More... | |
double | ZScore (const double value) const |
This method returns the better of the z-score of the given value. More... | |
BigInt | TotalPixels () const |
Returns the total number of pixels processed (valid and invalid). More... | |
BigInt | ValidPixels () const |
Returns the total number of valid pixels processed. More... | |
BigInt | OverRangePixels () const |
Returns the total number of pixels over the valid range encountered. More... | |
BigInt | UnderRangePixels () const |
Returns the total number of pixels under the valid range encountered. More... | |
BigInt | NullPixels () const |
Returns the total number of NULL pixels encountered. More... | |
BigInt | LisPixels () const |
Returns the total number of low instrument saturation (LIS) pixels encountered. More... | |
BigInt | LrsPixels () const |
Returns the total number of low representation saturation (LRS) pixels encountered. More... | |
BigInt | HisPixels () const |
Returns the total number of high instrument saturation (HIS) pixels encountered. More... | |
BigInt | HrsPixels () const |
Returns the total number of high representation saturation (HRS) pixels encountered. More... | |
BigInt | OutOfRangePixels () const |
Returns the total number of pixels outside of the valid range encountered. More... | |
bool | RemovedData () const |
PvlGroup | toPvl (QString name="Statistics") const |
Serialize statistics as a pvl group. More... | |
void | save (QXmlStreamWriter &stream, const Project *project) const |
QDataStream & | write (QDataStream &stream) const |
Order saved must match the offsets in the static compoundH5DataType() method. More... | |
QDataStream & | read (QDataStream &stream) |
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:
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).
Isis::Statistics::Statistics | ( | QObject * | parent = 0 | ) |
Constructs an IsisStats object with accumulators and counters set to zero.
References Reset(), and SetValidRange().
Isis::Statistics::Statistics | ( | Project * | project, |
XmlStackedHandlerReader * | xmlReader, | ||
QObject * | parent = 0 |
||
) |
References Isis::XmlStackedHandlerReader::pushContentHandler(), Reset(), and SetValidRange().
Constructs a Statistics object from an input Pvl.
const | PvlGroup & - The input statistics |
References Reset(), and SetValidRange().
Isis::Statistics::Statistics | ( | const Statistics & | other | ) |
|
virtual |
Destroys the IsisStats object.
bool Isis::Statistics::AboveRange | ( | const double | value | ) |
Referenced by AddData(), InRange(), and RemoveData().
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. |
Referenced by Isis::ImageHistogram::AddData(), Isis::MultivariateStatistics::AddData(), Isis::HiEqualization::HiCalculateFunctor::addStats(), Isis::CameraStatistics::addStats(), Isis::averageLines(), Isis::averageSamples(), Isis::Process::CalculateStatistics(), Isis::IndependentCubeViewport::cubeDataChanged(), Isis::GainLineStat(), Isis::ControlNetStatistics::GenerateImageStats(), Isis::ControlPoint::GetLineResidualRms(), Isis::ControlPoint::GetResidualRms(), Isis::ControlPoint::GetSampleResidualRms(), Isis::ControlPoint::GetStatistic(), Isis::ZeroBufferFit::guess(), Isis::StandardDeviationOperator::Interest(), Isis::BundleSolutionInfo::outputHeader(), Isis::ControlPointGraphicsItem::paint(), Isis::AutoReg::Reduce(), Isis::ReseauDistortionMap::SetFocalPlane(), Isis::VisualDisplay::setPixelData(), Isis::ReseauDistortionMap::SetUndistortedFocalPlane(), Isis::Chip::Statistics(), Isis::Cube::statistics(), Isis::StretchTool::statsFromBuffer(), and Isis::StretchTool::statsFromCube().
void Isis::Statistics::AddData | ( | const double | data | ) |
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. |
References AboveRange(), BelowRange(), Isis::IsHisPixel(), Isis::IsHrsPixel(), Isis::IsLisPixel(), Isis::IsLrsPixel(), and Isis::IsNullPixel().
double Isis::Statistics::Average | ( | ) | const |
Computes and returns the average.
If there are no valid pixels, then NULL8 is returned.
References Isis::NULL8.
Referenced by Isis::OverlapNormalization::AddOverlap(), Isis::averageLines(), Isis::ControlNet::AverageResidual(), Isis::averageSamples(), ChebyshevMaximum(), ChebyshevMinimum(), Isis::MultivariateStatistics::Covariance(), Isis::ControlNetStatistics::GenerateControlNetStats(), Isis::ZeroBufferFit::guess(), Isis::ControlPointGraphicsItem::paint(), Isis::VisualDisplay::paintPixmap(), Isis::AutoReg::Reduce(), Isis::HistogramTool::refreshPlot(), Isis::CameraStatistics::toPvl(), toPvl(), and ZScore().
bool Isis::Statistics::BelowRange | ( | const double | value | ) |
Referenced by AddData(), InRange(), and RemoveData().
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. |
References ChebyshevMaximum(), Maximum(), Minimum(), and Isis::NULL8.
Referenced by Isis::IndependentCubeViewport::cubeDataChanged(), Isis::StretchTool::histFromBuffer(), Isis::VisualDisplay::setPixelData(), Isis::LinearStretchType::setStretch(), Isis::StretchTool::stretchBand(), and Isis::StretchTool::stretchBuffer().
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. |
References ChebyshevMinimum(), Maximum(), Minimum(), and Isis::NULL8.
Referenced by Isis::IndependentCubeViewport::cubeDataChanged(), Isis::StretchTool::histFromBuffer(), Isis::VisualDisplay::setPixelData(), Isis::LinearStretchType::setStretch(), Isis::StretchTool::stretchBand(), and Isis::StretchTool::stretchBuffer().
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 |
References _FILEINFO_, Average(), Isis::NULL8, Isis::IException::Programmer, 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 |
References _FILEINFO_, Average(), Isis::NULL8, Isis::IException::Programmer, and StandardDeviation().
Referenced by BestMinimum().
BigInt Isis::Statistics::HisPixels | ( | ) | const |
Returns the total number of high instrument saturation (HIS) pixels encountered.
Referenced by toPvl().
BigInt Isis::Statistics::HrsPixels | ( | ) | const |
Returns the total number of high representation saturation (HRS) pixels encountered.
Referenced by toPvl().
bool Isis::Statistics::InRange | ( | const double | value | ) |
References AboveRange(), and BelowRange().
Referenced by Isis::ImageHistogram::AddData().
BigInt Isis::Statistics::LisPixels | ( | ) | const |
Returns the total number of low instrument saturation (LIS) pixels encountered.
Referenced by toPvl().
BigInt Isis::Statistics::LrsPixels | ( | ) | const |
Returns the total number of low representation saturation (LRS) pixels encountered.
Referenced by toPvl().
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. |
References _FILEINFO_, Isis::NULL8, and Isis::IException::Programmer.
Referenced by BestMaximum(), BestMinimum(), Isis::IndependentCubeViewport::cubeDataChanged(), Isis::QnetPointJigsawErrorFilter::filter(), Isis::QnetPointRegistrationErrorFilter::filter(), Isis::GaussianStretch::GaussianStretch(), Isis::ControlNetStatistics::GenerateControlNetStats(), Isis::ControlNet::GetMaximumResidual(), Isis::ControlPointGraphicsItem::paint(), Isis::VisualDisplay::paintPixmap(), Isis::HistogramTool::refreshPlot(), Isis::SawtoothStretchType::SawtoothStretchType(), Isis::ScatterPlotData::ScatterPlotData(), Isis::HistogramWidget::setHistogram(), Isis::BinaryStretchType::setStretch(), Isis::StretchTool::stretchBuffer(), Isis::CameraStatistics::toPvl(), toPvl(), 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. |
References _FILEINFO_, Isis::NULL8, and Isis::IException::Programmer.
Referenced by BestMaximum(), BestMinimum(), Isis::IndependentCubeViewport::cubeDataChanged(), Isis::GaussianStretch::GaussianStretch(), Isis::ControlNetStatistics::GenerateControlNetStats(), Isis::VisualDisplay::paintPixmap(), Isis::HistogramTool::refreshPlot(), Isis::SawtoothStretchType::SawtoothStretchType(), Isis::ScatterPlotData::ScatterPlotData(), Isis::HistogramWidget::setHistogram(), Isis::BinaryStretchType::setStretch(), Isis::StretchTool::stretchBuffer(), Isis::CameraStatistics::toPvl(), and toPvl().
BigInt Isis::Statistics::NullPixels | ( | ) | const |
Returns the total number of NULL pixels encountered.
Referenced by toPvl().
Statistics & Isis::Statistics::operator= | ( | const Statistics & | other | ) |
BigInt Isis::Statistics::OutOfRangePixels | ( | ) | const |
Returns the total number of pixels outside of the valid range encountered.
BigInt Isis::Statistics::OverRangePixels | ( | ) | const |
Returns the total number of pixels over the valid range encountered.
Referenced by toPvl().
QDataStream & Isis::Statistics::read | ( | QDataStream & | stream | ) |
Referenced by Isis::operator>>().
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. |
IException::Message | RemoveData is trying to remove data that doesn't exist. |
Referenced by Isis::ImageHistogram::RemoveData(), and Isis::MultivariateStatistics::RemoveData().
void Isis::Statistics::RemoveData | ( | const double | data | ) |
bool Isis::Statistics::RemovedData | ( | ) | const |
void Isis::Statistics::Reset | ( | ) |
Reset all accumulators and counters to zero.
Referenced by Isis::ZeroBufferFit::guess(), Isis::AutoReg::Reduce(), Isis::MultivariateStatistics::Reset(), Isis::VisualDisplay::setLines(), Isis::VisualDisplay::setPixelData(), Isis::VisualDisplay::setSamples(), and Statistics().
double Isis::Statistics::Rms | ( | ) | const |
Computes and returns the rms.
If there are no valid pixels, then NULL8 is returned.
References Isis::NULL8.
Referenced by Isis::ControlPoint::GetLineResidualRms(), Isis::ControlPoint::GetResidualRms(), Isis::ControlPoint::GetSampleResidualRms(), and Isis::BundleSolutionInfo::outputHeader().
void Isis::Statistics::save | ( | QXmlStreamWriter & | stream, |
const Project * | project | ||
) | const |
References Isis::toString().
void Isis::Statistics::SetValidRange | ( | const double | minimum = Isis::ValidMinimum , |
const double | maximum = Isis::ValidMaximum |
||
) |
References _FILEINFO_, Isis::IException::Programmer, and Isis::toString().
Referenced by Isis::StandardDeviationOperator::Interest(), Isis::Histogram::SetValidRange(), Isis::Chip::Statistics(), Isis::Cube::statistics(), and Statistics().
double Isis::Statistics::StandardDeviation | ( | ) | const |
Computes and returns the standard deviation.
If there are no valid pixels, then NULL8 is returned.
References Isis::NULL8, and Variance().
Referenced by ChebyshevMaximum(), ChebyshevMinimum(), Isis::MultivariateStatistics::Correlation(), Isis::StandardDeviationOperator::Interest(), Isis::VisualDisplay::paintPixmap(), Isis::HistogramTool::refreshPlot(), Isis::ReseauDistortionMap::SetFocalPlane(), Isis::ReseauDistortionMap::SetUndistortedFocalPlane(), Isis::CameraStatistics::toPvl(), toPvl(), and ZScore().
double Isis::Statistics::Sum | ( | ) | const |
Returns the sum of all the data.
Referenced by Isis::MultivariateStatistics::Covariance(), Isis::MultivariateStatistics::LinearRegression(), and toPvl().
double Isis::Statistics::SumSquare | ( | ) | const |
Returns the sum of all the squared data.
Referenced by Isis::MultivariateStatistics::LinearRegression(), and toPvl().
PvlGroup Isis::Statistics::toPvl | ( | QString | name = "Statistics" | ) | const |
Serialize statistics as a pvl group.
QString | name (Default value is "Statistics") - Name of the statistics group |
References Average(), HisPixels(), HrsPixels(), LisPixels(), LrsPixels(), Maximum(), Minimum(), NullPixels(), OverRangePixels(), StandardDeviation(), Sum(), SumSquare(), Isis::toString(), TotalPixels(), UnderRangePixels(), ValidMaximum(), ValidMinimum(), ValidPixels(), and Variance().
Referenced by Isis::MultivariateStatistics::toPvl().
BigInt Isis::Statistics::TotalPixels | ( | ) | const |
Returns the total number of pixels processed (valid and invalid).
Referenced by Isis::VisualDisplay::paintPixmap(), and toPvl().
BigInt Isis::Statistics::UnderRangePixels | ( | ) | const |
Returns the total number of pixels under the valid range encountered.
Referenced by toPvl().
double Isis::Statistics::ValidMaximum | ( | ) | const |
Referenced by toPvl().
double Isis::Statistics::ValidMinimum | ( | ) | const |
Referenced by toPvl().
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.
Referenced by Isis::OverlapNormalization::AddOverlap(), Isis::IndependentCubeViewport::cubeDataChanged(), Isis::QHistogram::Load(), Isis::HistogramTool::refreshPlot(), Isis::StretchTool::stretchBuffer(), toPvl(), and Isis::StretchTool::updateHistograms().
double Isis::Statistics::Variance | ( | ) | const |
Computes and returns the variance.
If there are no valid pixels, then NULL8 is returned.
References Isis::NULL8.
Referenced by Isis::HistogramTool::refreshPlot(), StandardDeviation(), and toPvl().
QDataStream & Isis::Statistics::write | ( | QDataStream & | stream | ) | const |
Order saved must match the offsets in the static compoundH5DataType() method.
Referenced by Isis::operator<<().
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. |
References _FILEINFO_, Average(), Maximum(), Isis::IException::Programmer, StandardDeviation(), and Isis::toString().