29 #include <QStringList> 39 class OverlapStatistics;
143 void addHolds(QString holdListName);
145 void calculateStatistics(
double samplingPercent,
149 void recalculateStatistics(QString inStatsFileName);
150 void importStatistics(QString instatsFileName);
151 void applyCorrection(QString toListName);
154 void write(QString outstatsFileName);
156 double evaluate(
double dn,
int imageIndex,
int bandIndex)
const;
172 gains.push_back(gain);
176 offsets.push_back(offset);
180 avgs.push_back(average);
188 return offsets[index];
196 double result =
Null;
198 double gain = gains[index];
199 if (m_sType != OverlapNormalization::GainsWithoutNormalization) {
200 double offset = offsets[index];
201 double avg = avgs[index];
202 result = (dn - avg) * gain + offset + avg;
212 vector<double> gains;
213 vector<double> offsets;
237 m_linc = (int) (100.0 / percent + 0.5);
242 void operator()(
Buffer &in)
const;
245 virtual void addStats(
Buffer &in)
const;
262 m_adjustment = adjustment;
273 void loadInputs(QString fromListName);
274 void setInput(
int index, QString value);
279 void calculateBandStatistics();
280 void calculateOverlapStatistics();
282 virtual void fillOutList(
FileList &outList, QString toListName);
283 virtual void errorCheck(QString fromListName);
285 void generateOutputs(
FileList &outList);
286 void loadOutputs(
FileList &outList, QString toListName);
291 void clearAdjustments();
292 void addAdjustment(ImageAdjustment *adjustment);
294 void clearNormalizations();
295 void clearOverlapStatistics();
297 void addValid(
int count);
298 void addInvalid(
int count);
301 void setSolved(
bool solved);
302 bool isSolved()
const;
306 QVector<int> validateInputStatistics(QString instatsFileName);
309 bool m_recalculating;
314 double m_samplingPercent;
326 vector<ImageAdjustment *> m_adjustments;
327 vector<int> m_holdIndices;
328 vector<bool> m_doesOverlapList;
329 vector<bool> m_alreadyCalculated;
330 vector<OverlapNormalization *> m_overlapNorms;
331 vector<OverlapStatistics *> m_overlapStats;
Buffer for reading and writing cube data.
Definition: Buffer.h:69
ImageAdjustment(OverlapNormalization::SolutionType sType)
Definition: Equalization.h:168
const double Null
Value for an Isis Null pixel.
Definition: SpecialPixel.h:110
This class is used as a functor calculate image statistics.
Definition: Equalization.h:226
void addOffset(double offset)
Definition: Equalization.h:175
Namespace for the standard library.
Internalizes a list of files.
Definition: FileList.h:70
SolutionType
Enumeration for whether user/programmer wants to calculate new gains, offsets, or both when solving...
Definition: OverlapNormalization.h:127
This class is used as a functor to apply adjustments (equalize) to an image.
Definition: Equalization.h:259
SolveMethod
Definition: LeastSquares.h:128
This class is used to accumulate statistics on double arrays.
Definition: Statistics.h:107
double getAverage(int index) const
Definition: Equalization.h:191
void addAverage(double average)
Definition: Equalization.h:179
CalculateFunctor(Statistics *stats, double percent)
Constructs a CalculateFunctor.
Definition: Equalization.h:235
virtual ~CalculateFunctor()
Definition: Equalization.h:240
Calculate the bases and multipliers for normalizing overlapping "data sets" (e.g., cubes).
Definition: OverlapNormalization.h:77
Definition: Equalization.h:166
This class can be used to calculate, read in, and/or apply equalization statistics for a list of file...
Definition: Equalization.h:138
ApplyFunctor(const ImageAdjustment *adjustment)
Definition: Equalization.h:261
Contains multiple PvlContainers.
Definition: PvlGroup.h:57
double getGain(int index) const
Definition: Equalization.h:183
~ImageAdjustment()
Definition: Equalization.h:169
Container for cube-like labels.
Definition: Pvl.h:135
double getOffset(int index) const
Definition: Equalization.h:187
double evaluate(double dn, int index) const
Definition: Equalization.h:195
Namespace for ISIS/Bullet specific routines.
Definition: Apollo.h:31
void addGain(double gain)
Definition: Equalization.h:171
Contains Pvl Groups and Pvl Objects.
Definition: PvlObject.h:74