Isis Developer Reference
Statistics.h
Go to the documentation of this file.
1#ifndef Statistics_h
2#define Statistics_h
8/* SPDX-License-Identifier: CC0-1.0 */
9
10#include <QObject>
11#include <QString>
12
13#include "Constants.h"
14#include "PvlGroup.h"
15#include "SpecialPixel.h"
16
17class QDataStream;
18class QUuid;
19class QXmlStreamWriter;
20class QXmlStreamReader;
21
22namespace Isis {
23 class Project;// ??? does xml stuff need project???
93 class Statistics : public QObject {
94 Q_OBJECT
95 public:
96 Statistics(QObject *parent = 0);
97 Statistics(QXmlStreamReader *xmlReader, QObject *parent = 0);
98 void readStatistics(QXmlStreamReader *xmlReader);
99 Statistics(const PvlGroup &inStats, QObject *parent = 0);
100 // TODO: does xml read/write stuff need Project input???
101 Statistics(const Statistics &other);
102 virtual ~Statistics();
103 Statistics &operator=(const Statistics &other);
104
105 void Reset();
106
107 void AddData(const double *data, const unsigned int count);
108 void AddData(const double data);
109
110 void RemoveData(const double *data, const unsigned int count);
111 void RemoveData(const double data);
112
113 void SetValidRange(const double minimum = Isis::ValidMinimum,
114 const double maximum = Isis::ValidMaximum);
115
116 double ValidMinimum() const;
117 double ValidMaximum() const;
118 bool InRange(const double value);
119 bool AboveRange(const double value);
120 bool BelowRange(const double value);
121
122 double Average() const;
123 double StandardDeviation() const;
124 double Variance() const;
125 double Sum() const;
126 double SumSquare() const;
127 double Rms() const;
128
129 double Minimum() const;
130 double Maximum() const;
131 double ChebyshevMinimum(const double percent = 99.5) const;
132 double ChebyshevMaximum(const double percent = 99.5) const;
133 double BestMinimum(const double percent = 99.5) const;
134 double BestMaximum(const double percent = 99.5) const;
135 double ZScore(const double value) const;
136
137 BigInt TotalPixels() const;
138 BigInt ValidPixels() const;
139 BigInt OverRangePixels() const;
140 BigInt UnderRangePixels() const;
141 BigInt NullPixels() const;
142 BigInt LisPixels() const;
143 BigInt LrsPixels() const;
144 BigInt HisPixels() const;
145 BigInt HrsPixels() const;
146 BigInt OutOfRangePixels() const;
147 bool RemovedData() const;
148
149 PvlGroup toPvl(QString name = "Statistics") const;
150
151 void save(QXmlStreamWriter &stream, const Project *project) const;
152 // TODO: does xml stuff need project???
153
154 QDataStream &write(QDataStream &stream) const;
155 QDataStream &read(QDataStream &stream);
156
157 private:
158
159 void fromPvl(const PvlGroup &inStats);
160
161// QUuid *m_id; /**< A unique ID for this object (useful for others to reference
162// this object when saving to disk).*/
163 double m_sum;
164 double m_sumsum;
166 double m_minimum;
167 double m_maximum;
168 double m_validMinimum;
169 double m_validMaximum;
170 BigInt m_totalPixels;
171 BigInt m_validPixels;
172 BigInt m_nullPixels;
173 BigInt m_lrsPixels;
174 BigInt m_lisPixels;
175 BigInt m_hrsPixels;
176 BigInt m_hisPixels;
177 BigInt m_underRangePixels;
178 BigInt m_overRangePixels;
179 bool m_removedData;
181 };
182
183 // operators to read/write Statistics to/from binary data
184 QDataStream &operator<<(QDataStream &stream, const Statistics &statistics);
185 QDataStream &operator>>(QDataStream &stream, Statistics &statistics);
186
187} // end namespace isis
188
189#endif
The main project for ipce.
Definition Project.h:287
Contains multiple PvlContainers.
Definition PvlGroup.h:41
This class is used to accumulate statistics on double arrays.
Definition Statistics.h:93
BigInt NullPixels() const
Returns the total number of NULL pixels encountered.
Definition Statistics.cpp:616
BigInt OverRangePixels() const
Returns the total number of pixels over the valid range encountered.
Definition Statistics.cpp:595
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...
Definition Statistics.cpp:696
double Sum() const
Returns the sum of all the data.
Definition Statistics.cpp:492
BigInt UnderRangePixels() const
Returns the total number of pixels under the valid range encountered.
Definition Statistics.cpp:606
double Average() const
Computes and returns the average.
Definition Statistics.cpp:451
void SetValidRange(const double minimum=Isis::ValidMinimum, const double maximum=Isis::ValidMaximum)
Definition Statistics.cpp:406
BigInt LisPixels() const
Returns the total number of low instrument saturation (LIS) pixels encountered.
Definition Statistics.cpp:627
virtual ~Statistics()
Destroys the IsisStats object.
Definition Statistics.cpp:228
double Minimum() const
Returns the absolute minimum double found in all data passed through the AddData method.
Definition Statistics.cpp:533
QDataStream & read(QDataStream &stream)
Definition Statistics.cpp:937
BigInt HrsPixels() const
Returns the total number of high representation saturation (HRS) pixels encountered.
Definition Statistics.cpp:660
BigInt HisPixels() const
Returns the total number of high instrument saturation (HIS) pixels encountered.
Definition Statistics.cpp:649
double BestMinimum(const double percent=99.5) const
This method returns the better of the absolute minimum or the Chebyshev minimum.
Definition Statistics.cpp:749
bool RemovedData() const
Definition Statistics.cpp:676
BigInt OutOfRangePixels() const
Returns the total number of pixels outside of the valid range encountered.
Definition Statistics.cpp:671
double ValidMinimum() const
Definition Statistics.cpp:420
BigInt ValidPixels() const
Returns the total number of valid pixels processed.
Definition Statistics.cpp:584
double ValidMaximum() const
Definition Statistics.cpp:425
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...
Definition Statistics.cpp:723
double ZScore(const double value) const
This method returns the better of the z-score of the given value.
Definition Statistics.cpp:800
double SumSquare() const
Returns the sum of all the squared data.
Definition Statistics.cpp:502
BigInt TotalPixels() const
Returns the total number of pixels processed (valid and invalid).
Definition Statistics.cpp:571
QDataStream & write(QDataStream &stream) const
Order saved must match the offsets in the static compoundH5DataType() method.
Definition Statistics.cpp:914
void readStatistics(QXmlStreamReader *xmlReader)
Definition Statistics.cpp:42
bool AboveRange(const double value)
Definition Statistics.cpp:435
PvlGroup toPvl(QString name="Statistics") const
Serialize statistics as a pvl group.
Definition Statistics.cpp:846
void AddData(const double *data, const unsigned int count)
Add an array of doubles to the accumulators and counters.
Definition Statistics.cpp:292
double Rms() const
Computes and returns the rms.
Definition Statistics.cpp:516
double BestMaximum(const double percent=99.5) const
This method returns the better of the absolute maximum or the Chebyshev maximum.
Definition Statistics.cpp:776
double Maximum() const
Returns the absolute maximum double found in all data passed through the AddData method.
Definition Statistics.cpp:554
BigInt LrsPixels() const
Returns the total number of low representation saturation (LRS) pixels encountered.
Definition Statistics.cpp:638
void RemoveData(const double *data, const unsigned int count)
Remove an array of doubles from the accumulators and counters.
Definition Statistics.cpp:357
double StandardDeviation() const
Computes and returns the standard deviation.
Definition Statistics.cpp:463
double Variance() const
Computes and returns the variance.
Definition Statistics.cpp:479
Statistics & operator=(const Statistics &other)
Definition Statistics.cpp:234
bool BelowRange(const double value)
Definition Statistics.cpp:440
void save(QXmlStreamWriter &stream, const Project *project) const
Definition Statistics.cpp:877
Statistics(QObject *parent=0)
Constructs an IsisStats object with accumulators and counters set to zero.
Definition Statistics.cpp:28
void Reset()
Reset all accumulators and counters to zero.
Definition Statistics.cpp:264
bool InRange(const double value)
Definition Statistics.cpp:430
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
const double ValidMaximum
The maximum valid double value for Isis pixels.
Definition SpecialPixel.h:122
long long int BigInt
Big int.
Definition Constants.h:49
const double ValidMinimum
The minimum valid double value for Isis pixels.
Definition SpecialPixel.h:87
std::istream & operator>>(std::istream &is, CSVReader &csv)
Input read operator for input stream sources.
Definition CSVReader.cpp:447
QDebug operator<<(QDebug debug, const Hillshade &hillshade)
Print this class out to a QDebug object.
Definition Hillshade.cpp:313