29 #include <QStringList>
39 class OverlapStatistics;
139 void addHolds(QString holdListName);
141 void calculateStatistics(
double samplingPercent,
145 void recalculateStatistics(QString inStatsFileName);
146 void importStatistics(QString instatsFileName);
147 void applyCorrection(QString toListName);
150 void write(QString outstatsFileName);
152 double evaluate(
double dn,
int imageIndex,
int bandIndex)
const;
168 gains.push_back(gain);
172 offsets.push_back(offset);
176 avgs.push_back(average);
184 return offsets[index];
192 double result =
Null;
194 double gain = gains[index];
195 if (m_sType != OverlapNormalization::GainsWithoutNormalization) {
196 double offset = offsets[index];
197 double avg = avgs[index];
198 result = (dn - avg) * gain + offset + avg;
208 vector<double> gains;
209 vector<double> offsets;
233 m_linc = (int) (100.0 / percent + 0.5);
238 void operator()(
Buffer &in)
const;
241 virtual void addStats(
Buffer &in)
const;
258 m_adjustment = adjustment;
269 void loadInputs(QString fromListName);
270 void setInput(
int index, QString value);
275 void calculateBandStatistics();
276 void calculateOverlapStatistics();
278 virtual void fillOutList(
FileList &outList, QString toListName);
279 virtual void errorCheck(QString fromListName);
281 void generateOutputs(
FileList &outList);
282 void loadOutputs(
FileList &outList, QString toListName);
287 void clearAdjustments();
288 void addAdjustment(ImageAdjustment *adjustment);
290 void clearNormalizations();
291 void clearOverlapStatistics();
293 void addValid(
int count);
294 void addInvalid(
int count);
297 void setSolved(
bool solved);
298 bool isSolved()
const;
302 QVector<int> validateInputStatistics(QString instatsFileName);
305 bool m_recalculating;
310 double m_samplingPercent;
322 vector<ImageAdjustment *> m_adjustments;
323 vector<int> m_holdIndices;
324 vector<bool> m_doesOverlapList;
325 vector<bool> m_alreadyCalculated;
326 vector<OverlapNormalization *> m_overlapNorms;
327 vector<OverlapStatistics *> m_overlapStats;
Buffer for reading and writing cube data.
Definition: Buffer.h:68
ImageAdjustment(OverlapNormalization::SolutionType sType)
Definition: Equalization.h:164
const double Null
Value for an Isis Null pixel.
Definition: SpecialPixel.h:109
This class is used as a functor calculate image statistics.
Definition: Equalization.h:222
void addOffset(double offset)
Definition: Equalization.h:171
Internalizes a list of files.
Definition: FileList.h:67
SolutionType
Enumeration for whether user/programmer wants to calculate new gains, offsets, or both when solving...
Definition: OverlapNormalization.h:125
double getGain(int index) const
Definition: Equalization.h:179
This class is used as a functor to apply adjustments (equalize) to an image.
Definition: Equalization.h:255
double getOffset(int index) const
Definition: Equalization.h:183
SolveMethod
Definition: LeastSquares.h:130
This class is used to accumulate statistics on double arrays.
Definition: Statistics.h:109
void addAverage(double average)
Definition: Equalization.h:175
CalculateFunctor(Statistics *stats, double percent)
Constructs a CalculateFunctor.
Definition: Equalization.h:231
virtual ~CalculateFunctor()
Definition: Equalization.h:236
Calculate the bases and multipliers for normalizing overlapping "data sets" (e.g., cubes).
Definition: OverlapNormalization.h:75
Definition: Equalization.h:162
This class can be used to calculate, read in, and/or apply equalization statistics for a list of file...
Definition: Equalization.h:134
ApplyFunctor(const ImageAdjustment *adjustment)
Definition: Equalization.h:257
Contains multiple PvlContainers.
Definition: PvlGroup.h:57
double evaluate(double dn, int index) const
Definition: Equalization.h:191
~ImageAdjustment()
Definition: Equalization.h:165
Container for cube-like labels.
Definition: Pvl.h:135
void addGain(double gain)
Definition: Equalization.h:167
double getAverage(int index) const
Definition: Equalization.h:187
Contains Pvl Groups and Pvl Objects.
Definition: PvlObject.h:74