Isis 3.0 Programmer Reference
Back | Home
OverlapNormalization.h
Go to the documentation of this file.
1 #ifndef OverlapNormalization_h
2 #define OverlapNormalization_h
3 
25 #include "Statistics.h"
26 #include "LeastSquares.h"
27 
28 namespace Isis {
29  class BasisFunction;
30 
76  public:
77 
78  OverlapNormalization(std::vector<Statistics *> statsList);
79 
80  virtual ~OverlapNormalization();
81 
89  enum AddStatus {
90 
95 
100 
105  };
106 
107  AddStatus AddOverlap(const Statistics &area1, const unsigned index1,
108  const Statistics &area2, const unsigned index2,
109  double weight = 1.0);
110 
117  inline void AddHold(unsigned holdIndex) {
118  m_idHoldList.push_back(holdIndex);
119  };
120 
126 
131 
136 
141 
150  };
151 
152  void Solve(SolutionType type = Both,
154 
155  double Average(const unsigned index) const;
156  double Gain(const unsigned index) const;
157  double Offset(const unsigned index) const;
158 
159  double Evaluate(double dn, unsigned index) const;
160 
161  private:
162 
166  std::vector<Statistics *> m_statsList;
167 
172  std::vector<int> m_idHoldList;
173 
183  class Overlap {
184  public:
185 
190 
195 
200  int index1;
201 
206  int index2;
207  };
208 
212  std::vector<Overlap> m_overlapList;
213 
218  std::vector<double> m_deltas;
219 
223  std::vector<double> m_weights;
224 
225 
229  bool m_solved;
230 
236 
240  std::vector<double> m_gains;
241 
245  std::vector<double> m_offsets;
246 
247 
252 
257 
262 
267 
270 
273  };
274 };
275 
276 #endif
OverlapNormalization(std::vector< Statistics * > statsList)
Constructs an OverlapNormalization object.
int index2
Index corresponding to m_statsList for the second overlapping data set.
AddStatus AddOverlap(const Statistics &area1, const unsigned index1, const Statistics &area2, const unsigned index2, double weight=1.0)
Attempts to add the given overlap data to a collection of valid overlaps, and returns the success or ...
void Solve(SolutionType type=Both, LeastSquares::SolveMethod method=LeastSquares::QRD)
Attempts to solve the least squares equation for all data sets.
QR Decomposition.
Definition: LeastSquares.h:131
std::vector< double > m_offsets
Vector of calculated offsets filled by the Solve method.
Store statistics pertaining to the overlapping areas and indices (corresponding to the statistics lis...
double Offset(const unsigned index) const
Returns the calculated offset (base) for the given data set.
Statistics area2
Overlapping area for the second data set.
std::vector< Overlap > m_overlapList
Vector of valid overlaps collected.
SolutionType
Enumeration for whether user/programmer wants to calculate new gains, offsets, or both when solving...
LeastSquares * m_gainLsq
The least squares object that solves for the new gains.
One or both areas contain no valid average.
void AddHold(unsigned holdIndex)
Sets the list of files to be held during the solving process.
BasisFunction * m_gainFunction
The gain function to be solved.
double Evaluate(double dn, unsigned index) const
Returns a new DN from an old using the calculated gains and offsets of the data set the pixel belongs...
This class is used to accumulate statistics on double arrays.
Definition: Statistics.h:109
Calculate the bases and multipliers for normalizing overlapping &quot;data sets&quot; (e.g., cubes).
int index1
Index corresponding to m_statsList for the first overlapping data set.
std::vector< int > m_idHoldList
Vector of indices corresponding to the m_statsList vector representing data sets to be held in soluti...
virtual ~OverlapNormalization()
Destroys the OverlapNormalization object, frees up pointers.
OverlapNormalization & operator=(const OverlapNormalization &)
Cannot copy this object.
Overlap is valid and was added successfully.
double Gain(const unsigned index) const
Returns the calculated gain (multiplier) for the given data set.
Generic least square fitting class.
Definition: LeastSquares.h:117
AddStatus
The result of the attempt to add overlap data to the list of valid overlaps, where Success is a succe...
The equation being solved for Gains, Offsets, and Both is output = (input - average) * gain + offset ...
SolutionType m_solutionType
Whether the user of this class wants to solve for the offsets, the gains, or both.
bool m_solved
Whether or not the least squares solution has been solved.
BasisFunction * m_offsetFunction
The offset function to be solved.
Calculate both gains and offsets.
double Average(const unsigned index) const
Returns the calculated average DN value for the given data set.
Generic linear equation class.
Definition: BasisFunction.h:64
std::vector< double > m_gains
Vector of calculated gains filled by the Solve method.
Statistics area1
Overlapping area for the first data set.
std::vector< double > m_weights
Vector of weights for every valid overlap.
Data sets do not overlap one another.
LeastSquares * m_offsetLsq
The least squares object that calculates offsets.
std::vector< Statistics * > m_statsList
Vector of Statistics objects for each data set.
std::vector< double > m_deltas
Vector of delta values (differences between the averages of two overlapping data sets) for every vali...

U.S. Department of the Interior | U.S. Geological Survey
ISIS | Privacy & Disclaimers | Astrogeology Research Program
To contact us, please post comments and questions on the ISIS Support Center
File Modified: 07/12/2023 23:25:11