Isis 3.0 Object Programmers' Reference
Home
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
Statistics.h
Go to the documentation of this file.
1
#ifndef Statistics_h
2
#define Statistics_h
3
24
#include "
SpecialPixel.h
"
25
#include "
Constants.h
"
26
27
namespace
Isis {
78
class
Statistics
{
79
public
:
80
Statistics
();
81
~Statistics
();
82
83
void
Reset
();
84
void
AddData
(
const
double
*data,
const
unsigned
int
count);
94
inline
void
AddData
(
const
double
data) {
95
p_totalPixels
++;
96
if
(
Isis::IsValidPixel
(data) && InRange(data)) {
97
p_sum
+= data;
98
p_sumsum
+= data * data;
99
if
(data <
p_minimum
)
p_minimum
= data;
100
if
(data >
p_maximum
)
p_maximum
= data;
101
p_validPixels
++;
102
}
103
else
if
(
Isis::IsNullPixel
(data)) {
104
p_nullPixels
++;
105
}
106
else
if
(
Isis::IsHisPixel
(data)) {
107
p_hisPixels
++;
108
}
109
else
if
(
Isis::IsHrsPixel
(data)) {
110
p_hrsPixels
++;
111
}
112
else
if
(
Isis::IsLisPixel
(data)) {
113
p_lisPixels
++;
114
}
115
else
if
(
Isis::IsLrsPixel
(data)) {
116
p_lrsPixels
++;
117
}
118
else
if
(AboveRange(data)) {
119
p_overRangePixels
++;
120
}
121
else
{
122
p_underRangePixels
++;
123
}
124
}
125
126
void
RemoveData
(
const
double
*data,
const
unsigned
int
count);
127
void
RemoveData
(
const
double
data);
128
void
SetValidRange(
const
double
minimum =
Isis::ValidMinimum
,
const
double
maximum =
Isis::ValidMaximum
);
129
130
double
ValidMinimum()
const
{
131
return
p_validMinimum
;
132
}
133
double
ValidMaximum()
const
{
134
return
p_validMaximum
;
135
}
136
bool
InRange(
const
double
value) {
137
return
(value >=
p_validMinimum
&& value <=
p_validMaximum
);
138
}
139
bool
AboveRange(
const
double
value) {
140
return
(value >
p_validMaximum
);
141
}
142
bool
BelowRange(
const
double
value) {
143
return
(value <
p_validMinimum
);
144
}
145
146
double
Average
()
const
;
147
double
StandardDeviation
()
const
;
148
double
Variance
()
const
;
149
double
Rms
()
const
;
150
151
double
Minimum
()
const
;
152
double
Maximum
()
const
;
153
double
ChebyshevMinimum
(
const
double
percent = 99.5)
const
;
154
double
ChebyshevMaximum
(
const
double
percent = 99.5)
const
;
155
double
BestMinimum
(
const
double
percent = 99.5)
const
;
156
double
BestMaximum
(
const
double
percent = 99.5)
const
;
157
double
ZScore
(
const
double
value)
const
;
158
159
BigInt
TotalPixels
()
const
;
160
BigInt
ValidPixels
()
const
;
161
BigInt
OverRangePixels
()
const
;
162
BigInt
UnderRangePixels
()
const
;
163
BigInt
NullPixels
()
const
;
164
BigInt
LisPixels
()
const
;
165
BigInt
LrsPixels
()
const
;
166
BigInt
HisPixels
()
const
;
167
BigInt
HrsPixels
()
const
;
168
BigInt
OutOfRangePixels
()
const
;
169
170
176
double
Sum
()
const
{
177
return
p_sum
;
178
};
179
185
double
SumSquare
()
const
{
186
return
p_sumsum
;
187
};
188
189
private
:
190
double
p_sum
;
191
double
p_sumsum
;
192
double
p_minimum
;
193
double
p_maximum
;
194
double
p_validMinimum
;
195
double
p_validMaximum
;
196
BigInt
p_totalPixels
;
197
BigInt
p_validPixels
;
198
BigInt
p_nullPixels
;
199
BigInt
p_lrsPixels
;
200
BigInt
p_lisPixels
;
201
BigInt
p_hrsPixels
;
202
BigInt
p_hisPixels
;
203
BigInt
p_underRangePixels
;
204
BigInt
p_overRangePixels
;
205
bool
p_removedData
;
207
};
208
}
// end namespace isis
209
210
#endif
211