casacore
|
Class to calculate statistics using the so-called Chauvenet criterion. More...
#include <ChauvenetCriterionStatistics.h>
Public Member Functions | |
ChauvenetCriterionStatistics ()=delete | |
ChauvenetCriterionStatistics (Double zscore=-1, Int maxIterations=0) | |
If zscore is not negative, use that value to discard outliers beyond zscore standard deviations from the mean, and compute statistics based on the remaining data. More... | |
ChauvenetCriterionStatistics (const ChauvenetCriterionStatistics< CASA_STATP > &other) | |
virtual | ~ChauvenetCriterionStatistics () |
ChauvenetCriterionStatistics < CASA_STATP > & | operator= (const ChauvenetCriterionStatistics< CASA_STATP > &other) |
copy semantics More... | |
virtual StatisticsAlgorithm < CASA_STATP > * | clone () const |
Clone this instance. More... | |
virtual StatisticsData::ALGORITHM | algorithm () const |
get the algorithm that this object uses for computing stats More... | |
virtual void | reset () |
reset object to initial state. More... | |
void | setCalculateAsAdded (Bool c) |
This class does not allow statistics to be calculated as datasets are added, so an exception will be thrown if c is True. More... | |
uInt | getNiter () const |
get the number of iterations More... | |
Public Member Functions inherited from casacore::ConstrainedRangeStatistics< CASA_STATP > | |
ConstrainedRangeStatistics ()=delete | |
virtual | ~ConstrainedRangeStatistics () |
virtual CASA_STATP | getMedian (CountedPtr< uInt64 > knownNpts=nullptr, CountedPtr< CASA_STATP > knownMin=nullptr, CountedPtr< CASA_STATP > knownMax=nullptr, uInt binningThreshholdSizeBytes=4096 *4096, Bool persistSortedArray=False, uInt nBins=10000) |
In the following group of methods, if the size of the composite dataset is smaller than binningThreshholdSizeBytes , the composite dataset will be (perhaps partially) sorted and persisted in memory during the call. More... | |
virtual CASA_STATP | getMedianAbsDevMed (CountedPtr< uInt64 > knownNpts=nullptr, CountedPtr< CASA_STATP > knownMin=nullptr, CountedPtr< CASA_STATP > knownMax=nullptr, uInt binningThreshholdSizeBytes=4096 *4096, Bool persistSortedArray=False, uInt nBins=10000) |
get the median of the absolute deviation about the median of the data. More... | |
virtual CASA_STATP | getMedianAndQuantiles (std::map< Double, CASA_STATP > &quantileToValue, const std::set< Double > &quantiles, CountedPtr< uInt64 > knownNpts=nullptr, CountedPtr< CASA_STATP > knownMin=nullptr, CountedPtr< CASA_STATP > knownMax=nullptr, uInt binningThreshholdSizeBytes=4096 *4096, Bool persistSortedArray=False, uInt nBins=10000) |
If one needs to compute both the median and quantile values, it is better to call getMedianAndQuantiles() rather than getMedian() and getQuantiles() separately, as the first will scan large data sets fewer times than calling the seperate methods. More... | |
virtual std::map< Double, CASA_STATP > | getQuantiles (const std::set< Double > &quantiles, CountedPtr< uInt64 > knownNpts=nullptr, CountedPtr< CASA_STATP > knownMin=nullptr, CountedPtr< CASA_STATP > knownMax=NULL, uInt binningThreshholdSizeBytes=4096 *4096, Bool persistSortedArray=False, uInt nBins=10000) |
Get the specified quantiles. More... | |
virtual void | getMinMax (CASA_STATP &mymin, CASA_STATP &mymax) |
get the min and max of the data set More... | |
virtual uInt64 | getNPts () |
scan the dataset(s) that have been added, and find the number of good points. More... | |
virtual LocationType | getStatisticIndex (StatisticsData::STATS stat) |
see base class description More... | |
Public Member Functions inherited from casacore::ClassicalStatistics< CASA_STATP > | |
ClassicalStatistics () | |
ClassicalStatistics (const ClassicalStatistics &cs) | |
copy semantics More... | |
virtual | ~ClassicalStatistics () |
ClassicalStatistics & | operator= (const ClassicalStatistics &other) |
copy semantics More... | |
virtual void | getMinMaxNpts (uInt64 &npts, CASA_STATP &mymin, CASA_STATP &mymax) |
virtual void | setDataProvider (StatsDataProvider< CASA_STATP > *dataProvider) |
An exception will be thrown if setCalculateAsAdded(True) has been called. More... | |
void | setQuantileComputer (CountedPtr< ClassicalQuantileComputer< CASA_STATP >> qc) |
Allow derived objects to set the quantile computer object. More... | |
virtual void | setStatsToCalculate (std::set< StatisticsData::STATS > &stats) |
Provide guidance to algorithms by specifying a priori which statistics the caller would like calculated. More... | |
Public Member Functions inherited from casacore::StatisticsAlgorithm< CASA_STATP > | |
virtual | ~StatisticsAlgorithm () |
void | addData (const DataIterator &first, uInt nr, uInt dataStride=1, Bool nrAccountsForStride=False) |
Add a dataset to an existing set of datasets on which statistics are to be calculated. More... | |
void | addData (const DataIterator &first, uInt nr, const DataRanges &dataRanges, Bool isInclude=True, uInt dataStride=1, Bool nrAccountsForStride=False) |
void | addData (const DataIterator &first, const const Bool *&maskFirst, uInt nr, uInt dataStride=1, Bool nrAccountsForStride=False, uInt maskStride=1) |
void | addData (const DataIterator &first, const const Bool *&maskFirst, uInt nr, const DataRanges &dataRanges, Bool isInclude=True, uInt dataStride=1, Bool nrAccountsForStride=False, uInt maskStride=1) |
void | addData (const DataIterator &first, const DataIterator &weightFirst, uInt nr, uInt dataStride=1, Bool nrAccountsForStride=False) |
void | addData (const DataIterator &first, const DataIterator &weightFirst, uInt nr, const DataRanges &dataRanges, Bool isInclude=True, uInt dataStride=1, Bool nrAccountsForStride=False) |
void | addData (const DataIterator &first, const DataIterator &weightFirst, const const Bool *&maskFirst, uInt nr, uInt dataStride=1, Bool nrAccountsForStride=False, uInt maskStride=1) |
void | addData (const DataIterator &first, const DataIterator &weightFirst, const const Bool *&maskFirst, uInt nr, const DataRanges &dataRanges, Bool isInclude=True, uInt dataStride=1, Bool nrAccountsForStride=False, uInt maskStride=1) |
CASA_STATP | getQuantile (Double quantile, CountedPtr< uInt64 > knownNpts=nullptr, CountedPtr< CASA_STATP > knownMin=nullptr, CountedPtr< CASA_STATP > knownMax=nullptr, uInt binningThreshholdSizeBytes=4096 *4096, Bool persistSortedArray=False, uInt nBins=10000) |
Purposefully not virtual. More... | |
CASA_STATP | getStatistic (StatisticsData::STATS stat) |
get the value of the specified statistic. More... | |
StatsData< CASA_STATP > | getStatistics () |
Return statistics. More... | |
void | setData (const DataIterator &first, uInt nr, uInt dataStride=1, Bool nrAccountsForStride=False) |
setdata() clears any current datasets or data provider and then adds the specified data set as the first dataset in the (possibly new) set of data sets for which statistics are to be calculated. More... | |
void | setData (const DataIterator &first, uInt nr, const DataRanges &dataRanges, Bool isInclude=True, uInt dataStride=1, Bool nrAccountsForStride=False) |
void | setData (const DataIterator &first, const const Bool *&maskFirst, uInt nr, uInt dataStride=1, Bool nrAccountsForStride=False, uInt maskStride=1) |
void | setData (const DataIterator &first, const const Bool *&maskFirst, uInt nr, const DataRanges &dataRanges, Bool isInclude=True, uInt dataStride=1, Bool nrAccountsForStride=False, uInt maskStride=1) |
void | setData (const DataIterator &first, const DataIterator &weightFirst, uInt nr, uInt dataStride=1, Bool nrAccountsForStride=False) |
void | setData (const DataIterator &first, const DataIterator &weightFirst, uInt nr, const DataRanges &dataRanges, Bool isInclude=True, uInt dataStride=1, Bool nrAccountsForStride=False) |
void | setData (const DataIterator &first, const DataIterator &weightFirst, const const Bool *&maskFirst, uInt nr, uInt dataStride=1, Bool nrAccountsForStride=False, uInt maskStride=1) |
void | setData (const DataIterator &first, const DataIterator &weightFirst, const const Bool *&maskFirst, uInt nr, const DataRanges &dataRanges, Bool isInclude=True, uInt dataStride=1, Bool nrAccountsForStride=False, uInt maskStride=1) |
Private Member Functions | |
void | _setRange () |
derived classes need to implement how to set their respective range More... | |
Private Attributes | |
Double | _zscore |
Int | _maxIterations |
Bool | _rangeIsSet |
uInt | _niter |
Additional Inherited Members | |
Protected Member Functions inherited from casacore::ConstrainedRangeStatistics< CASA_STATP > | |
ConstrainedRangeStatistics (CountedPtr< ConstrainedRangeQuantileComputer< CASA_STATP >> qc) | |
Concrete derived classes are responsible for providing an appropriate QuantileComputer object to the constructor, which is ultimately passed up the instantiation hierarchy and stored at the StatisticsAlgorithm level. More... | |
ConstrainedRangeStatistics (const ConstrainedRangeStatistics< CASA_STATP > &other) | |
copy semantics More... | |
ConstrainedRangeStatistics < CASA_STATP > & | operator= (const ConstrainedRangeStatistics< CASA_STATP > &other) |
copy semantics More... | |
virtual void | _accumNpts (uInt64 &npts, const DataIterator &dataStart, uInt64 nr, uInt dataStride) const |
scan through the data set to determine the number of good (unmasked, weight > 0, within range) points. More... | |
virtual void | _accumNpts (uInt64 &npts, const DataIterator &dataStart, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) const |
virtual void | _accumNpts (uInt64 &npts, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const const Bool *&maskBegin, uInt maskStride) const |
virtual void | _accumNpts (uInt64 &npts, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const const Bool *&maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) const |
virtual void | _accumNpts (uInt64 &npts, const DataIterator &dataBegin, const DataIterator &weightsBegin, uInt64 nr, uInt dataStride) const |
virtual void | _accumNpts (uInt64 &npts, const DataIterator &dataBegin, const DataIterator &weightsBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) const |
virtual void | _accumNpts (uInt64 &npts, const DataIterator &dataBegin, const DataIterator &weightsBegin, uInt64 nr, uInt dataStride, const const Bool *&maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) const |
virtual void | _accumNpts (uInt64 &npts, const DataIterator &dataBegin, const DataIterator &weightBegin, uInt64 nr, uInt dataStride, const const Bool *&maskBegin, uInt maskStride) const |
virtual CASA_STATP | _getStatistic (StatisticsData::STATS stat) |
virtual StatsData< CASA_STATP > | _getStatistics () |
virtual void | _minMax (CountedPtr< CASA_STATP > &mymin, CountedPtr< CASA_STATP > &mymax, const DataIterator &dataBegin, uInt64 nr, uInt dataStride) const |
virtual void | _minMax (CountedPtr< CASA_STATP > &mymin, CountedPtr< CASA_STATP > &mymax, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) const |
virtual void | _minMax (CountedPtr< CASA_STATP > &mymin, CountedPtr< CASA_STATP > &mymax, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const const Bool *&maskBegin, uInt maskStride) const |
virtual void | _minMax (CountedPtr< CASA_STATP > &mymin, CountedPtr< CASA_STATP > &mymax, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const const Bool *&maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) const |
virtual void | _minMax (CountedPtr< CASA_STATP > &mymin, CountedPtr< CASA_STATP > &mymax, const DataIterator &dataBegin, const DataIterator &weightsBegin, uInt64 nr, uInt dataStride) const |
virtual void | _minMax (CountedPtr< CASA_STATP > &mymin, CountedPtr< CASA_STATP > &mymax, const DataIterator &dataBegin, const DataIterator &weightsBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) const |
virtual void | _minMax (CountedPtr< CASA_STATP > &mymin, CountedPtr< CASA_STATP > &mymax, const DataIterator &dataBegin, const DataIterator &weightsBegin, uInt64 nr, uInt dataStride, const const Bool *&maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) const |
virtual void | _minMax (CountedPtr< CASA_STATP > &mymin, CountedPtr< CASA_STATP > &mymax, const DataIterator &dataBegin, const DataIterator &weightBegin, uInt64 nr, uInt dataStride, const const Bool *&maskBegin, uInt maskStride) const |
virtual void | _minMaxNpts (uInt64 &npts, CountedPtr< CASA_STATP > &mymin, CountedPtr< CASA_STATP > &mymax, const DataIterator &dataBegin, uInt64 nr, uInt dataStride) const |
Sometimes we want the min, max, and npts all in one scan. More... | |
virtual void | _minMaxNpts (uInt64 &npts, CountedPtr< CASA_STATP > &mymin, CountedPtr< CASA_STATP > &mymax, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) const |
virtual void | _minMaxNpts (uInt64 &npts, CountedPtr< CASA_STATP > &mymin, CountedPtr< CASA_STATP > &mymax, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const const Bool *&maskBegin, uInt maskStride) const |
virtual void | _minMaxNpts (uInt64 &npts, CountedPtr< CASA_STATP > &mymin, CountedPtr< CASA_STATP > &mymax, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const const Bool *&maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) const |
virtual void | _minMaxNpts (uInt64 &npts, CountedPtr< CASA_STATP > &mymin, CountedPtr< CASA_STATP > &mymax, const DataIterator &dataBegin, const DataIterator &weightsBegin, uInt64 nr, uInt dataStride) const |
virtual void | _minMaxNpts (uInt64 &npts, CountedPtr< CASA_STATP > &mymin, CountedPtr< CASA_STATP > &mymax, const DataIterator &dataBegin, const DataIterator &weightsBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) const |
virtual void | _minMaxNpts (uInt64 &npts, CountedPtr< CASA_STATP > &mymin, CountedPtr< CASA_STATP > &mymax, const DataIterator &dataBegin, const DataIterator &weightsBegin, uInt64 nr, uInt dataStride, const const Bool *&maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) const |
virtual void | _minMaxNpts (uInt64 &npts, CountedPtr< CASA_STATP > &mymin, CountedPtr< CASA_STATP > &mymax, const DataIterator &dataBegin, const DataIterator &weightBegin, uInt64 nr, uInt dataStride, const const Bool *&maskBegin, uInt maskStride) const |
void | _setRange (CountedPtr< std::pair< CASA_STATP, CASA_STATP > > r) |
This method is purposefully non-virtual. More... | |
virtual void | _unweightedStats (StatsData< CASA_STATP > &stats, uInt64 &ngood, LocationType &location, const DataIterator &dataBegin, uInt64 nr, uInt dataStride) |
no weights, no mask, no ranges More... | |
virtual void | _unweightedStats (StatsData< CASA_STATP > &stats, uInt64 &ngood, LocationType &location, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) |
no weights, no mask More... | |
virtual void | _unweightedStats (StatsData< CASA_STATP > &stats, uInt64 &ngood, LocationType &location, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const const Bool *&maskBegin, uInt maskStride) |
virtual void | _unweightedStats (StatsData< CASA_STATP > &stats, uInt64 &ngood, LocationType &location, const DataIterator &dataBegin, uInt64 nr, uInt dataStride, const const Bool *&maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) |
virtual void | _weightedStats (StatsData< CASA_STATP > &stats, LocationType &location, const DataIterator &dataBegin, const DataIterator &weightsBegin, uInt64 nr, uInt dataStride) |
has weights, but no mask, no ranges More... | |
virtual void | _weightedStats (StatsData< CASA_STATP > &stats, LocationType &location, const DataIterator &dataBegin, const DataIterator &weightsBegin, uInt64 nr, uInt dataStride, const DataRanges &ranges, Bool isInclude) |
virtual void | _weightedStats (StatsData< CASA_STATP > &stats, LocationType &location, const DataIterator &dataBegin, const DataIterator &weightBegin, uInt64 nr, uInt dataStride, const const Bool *&maskBegin, uInt maskStride) |
virtual void | _weightedStats (StatsData< CASA_STATP > &stats, LocationType &location, const DataIterator &dataBegin, const DataIterator &weightBegin, uInt64 nr, uInt dataStride, const const Bool *&maskBegin, uInt maskStride, const DataRanges &ranges, Bool isInclude) |
Protected Member Functions inherited from casacore::ClassicalStatistics< CASA_STATP > | |
ClassicalStatistics (CountedPtr< ClassicalQuantileComputer< CASA_STATP > > qc) | |
This constructor should be used by derived objects in order to set the proper quantile computer object. More... | |
void | _accumulate (StatsData< CASA_STATP > &stats, const CASA_STATP &datum, const LocationType &location) |
void | _accumulate (StatsData< CASA_STATP > &stats, const CASA_STATP &datum, const CASA_STATP &weight, const LocationType &location) |
void | _addData () |
Allows derived classes to do things after data is set or added. More... | |
void | _clearStats () |
Bool | _getDoMaxMin () const |
virtual StatsData< CASA_STATP > | _getInitialStats () const |
virtual StatsData< CASA_STATP > & | _getStatsData () |
Retrieve stats structure. More... | |
virtual const StatsData < CASA_STATP > & | _getStatsData () const |
CountedPtr < StatisticsAlgorithmQuantileComputer < CASA_STATP > > | _getQuantileComputer () |
virtual void | _updateDataProviderMaxMin (const StatsData< CASA_STATP > &threadStats) |
Protected Member Functions inherited from casacore::StatisticsAlgorithm< CASA_STATP > | |
StatisticsAlgorithm () | |
StatisticsAlgorithm (const StatisticsAlgorithm &other) | |
use copy semantics, except for the data provider which uses reference semantics More... | |
StatisticsAlgorithm & | operator= (const StatisticsAlgorithm &other) |
use copy semantics, except for the data provider which uses reference semantics More... | |
const StatisticsDataset < CASA_STATP > & | _getDataset () const |
These methods are purposefully not virtual. More... | |
StatisticsDataset< CASA_STATP > & | _getDataset () |
const std::set < StatisticsData::STATS > | _getStatsToCalculate () const |
virtual const std::set < StatisticsData::STATS > & | _getUnsupportedStatistics () const |
void | _setUnsupportedStatistics (const std::set< StatisticsData::STATS > &stats) |
Derived classes should normally call this in their constructors, if applicable. More... | |
Class to calculate statistics using the so-called Chauvenet criterion.
This method iteratively calculates statistics by discarding outliers on the basis of Chauvenet's criterion, until the specified maximum number of iterations is reached, or the final iteration results in no additional points being discarded. Alternatively, one can specify a z-score which indicates the number of standard deviations beyond which to discard points, which is held fixed while iterating.
When instantiated, objects of this class use a ConstrainedRangeQuantileComputer object for computing quantile-like statistics. See class documentation for StatisticsAlgorithm for details of QuantileComputer classes.
Definition at line 55 of file ChauvenetCriterionStatistics.h.
|
delete |
casacore::ChauvenetCriterionStatistics< AccumType, DataIterator, MaskIterator, WeightsIterator >::ChauvenetCriterionStatistics | ( | Double | zscore = -1 , |
Int | maxIterations = 0 |
||
) |
If zscore
is not negative, use that value to discard outliers beyond zscore standard deviations from the mean, and compute statistics based on the remaining data.
If zscore
is negative, use Chauvenet's Criterion to determine which outliers to discard. maxIterations
is the maximum number of iterations to use before stopping. If negative, continue iterating until the set zscore or Chauvenet's criterion is met (ie that there are no remaining outliers).
casacore::ChauvenetCriterionStatistics< AccumType, DataIterator, MaskIterator, WeightsIterator >::ChauvenetCriterionStatistics | ( | const ChauvenetCriterionStatistics< CASA_STATP > & | other | ) |
|
virtual |
|
privatevirtual |
derived classes need to implement how to set their respective range
Implements casacore::ConstrainedRangeStatistics< CASA_STATP >.
|
inlinevirtual |
get the algorithm that this object uses for computing stats
Reimplemented from casacore::ClassicalStatistics< CASA_STATP >.
Definition at line 85 of file ChauvenetCriterionStatistics.h.
References casacore::StatisticsData::CHAUVENETCRITERION.
|
virtual |
Clone this instance.
Reimplemented from casacore::ClassicalStatistics< CASA_STATP >.
|
inline |
get the number of iterations
Definition at line 99 of file ChauvenetCriterionStatistics.h.
References casacore::ChauvenetCriterionStatistics< AccumType, DataIterator, MaskIterator, WeightsIterator >::_niter.
ChauvenetCriterionStatistics<CASA_STATP>& casacore::ChauvenetCriterionStatistics< AccumType, DataIterator, MaskIterator, WeightsIterator >::operator= | ( | const ChauvenetCriterionStatistics< CASA_STATP > & | other | ) |
copy semantics
|
virtual |
reset object to initial state.
Clears all private fields including data, accumulators, global range. It does not affect the fence factor (_f), which was set at object construction.
Reimplemented from casacore::ConstrainedRangeStatistics< CASA_STATP >.
|
virtual |
This class does not allow statistics to be calculated as datasets are added, so an exception will be thrown if c
is True.
Reimplemented from casacore::ClassicalStatistics< CASA_STATP >.
|
private |
Definition at line 104 of file ChauvenetCriterionStatistics.h.
|
private |
Definition at line 106 of file ChauvenetCriterionStatistics.h.
Referenced by casacore::ChauvenetCriterionStatistics< AccumType, DataIterator, MaskIterator, WeightsIterator >::getNiter().
|
private |
Definition at line 105 of file ChauvenetCriterionStatistics.h.
|
private |
Definition at line 103 of file ChauvenetCriterionStatistics.h.