File failed to load: https://isis.astrogeology.usgs.gov/6.0.0/Object/assets/jax/output/NativeMML/config.js
Isis 3 Programmer Reference
OverlapNormalization.h
1 #ifndef OverlapNormalization_h
2 #define OverlapNormalization_h
3 
8 /* SPDX-License-Identifier: CC0-1.0 */
9 #include "Statistics.h"
10 #include "LeastSquares.h"
11 
12 namespace Isis {
13  class BasisFunction;
14 
62  public:
63 
64  OverlapNormalization(std::vector<Statistics *> statsList);
65 
66  virtual ~OverlapNormalization();
67 
75  enum AddStatus {
76 
81 
86 
91  };
92 
93  AddStatus AddOverlap(const Statistics &area1, const unsigned index1,
94  const Statistics &area2, const unsigned index2,
95  double weight = 1.0);
96 
103  inline void AddHold(unsigned holdIndex) {
104  m_idHoldList.push_back(holdIndex);
105  };
106 
112 
117 
122 
127 
136  };
137 
138  void Solve(SolutionType type = Both,
140 
141  double Average(const unsigned index) const;
142  double Gain(const unsigned index) const;
143  double Offset(const unsigned index) const;
144 
145  double Evaluate(double dn, unsigned index) const;
146 
147  private:
148 
152  std::vector<Statistics *> m_statsList;
153 
158  std::vector<int> m_idHoldList;
159 
169  class Overlap {
170  public:
171 
176 
181 
186  int index1;
187 
192  int index2;
193  };
194 
198  std::vector<Overlap> m_overlapList;
199 
204  std::vector<double> m_deltas;
205 
209  std::vector<double> m_weights;
210 
211 
215  bool m_solved;
216 
222 
226  std::vector<double> m_gains;
227 
231  std::vector<double> m_offsets;
232 
233 
238 
243 
248 
253 
256 
259  };
260 };
261 
262 #endif
Isis::OverlapNormalization::m_solved
bool m_solved
Whether or not the least squares solution has been solved.
Definition: OverlapNormalization.h:215
Isis::OverlapNormalization::m_weights
std::vector< double > m_weights
Vector of weights for every valid overlap.
Definition: OverlapNormalization.h:209
Isis::OverlapNormalization::Gains
@ Gains
Calculate only the gains.
Definition: OverlapNormalization.h:116
Isis::Statistics
This class is used to accumulate statistics on double arrays.
Definition: Statistics.h:94
Isis::OverlapNormalization::m_gainLsq
LeastSquares * m_gainLsq
The least squares object that solves for the new gains.
Definition: OverlapNormalization.h:247
Isis::OverlapNormalization::SolutionType
SolutionType
Enumeration for whether user/programmer wants to calculate new gains, offsets, or both when solving.
Definition: OverlapNormalization.h:111
Isis::OverlapNormalization::m_statsList
std::vector< Statistics * > m_statsList
Vector of Statistics objects for each data set.
Definition: OverlapNormalization.h:152
Isis::OverlapNormalization::Overlap::index1
int index1
Index corresponding to m_statsList for the first overlapping data set.
Definition: OverlapNormalization.h:186
Isis::OverlapNormalization::m_deltas
std::vector< double > m_deltas
Vector of delta values (differences between the averages of two overlapping data sets) for every vali...
Definition: OverlapNormalization.h:204
Isis::BasisFunction
Generic linear equation class.
Definition: BasisFunction.h:48
Isis::OverlapNormalization::Overlap::area2
Statistics area2
Overlapping area for the second data set.
Definition: OverlapNormalization.h:180
Isis::OverlapNormalization::m_gains
std::vector< double > m_gains
Vector of calculated gains filled by the Solve method.
Definition: OverlapNormalization.h:226
Isis::OverlapNormalization::NoContrast
@ NoContrast
One or both areas contain no valid average.
Definition: OverlapNormalization.h:90
Isis::OverlapNormalization::Offset
double Offset(const unsigned index) const
Returns the calculated offset (base) for the given data set.
Definition: OverlapNormalization.cpp:335
Isis::OverlapNormalization::OverlapNormalization
OverlapNormalization(std::vector< Statistics * > statsList)
Constructs an OverlapNormalization object.
Definition: OverlapNormalization.cpp:29
Isis::OverlapNormalization::Offsets
@ Offsets
Calculate only the offsets.
Definition: OverlapNormalization.h:121
Isis::LeastSquares::SolveMethod
SolveMethod
Definition: LeastSquares.h:112
Isis::OverlapNormalization::m_idHoldList
std::vector< int > m_idHoldList
Vector of indices corresponding to the m_statsList vector representing data sets to be held in soluti...
Definition: OverlapNormalization.h:158
Isis::LeastSquares
Generic least square fitting class.
Definition: LeastSquares.h:99
Isis::OverlapNormalization::Overlap
Store statistics pertaining to the overlapping areas and indices (corresponding to the statistics lis...
Definition: OverlapNormalization.h:169
Isis::OverlapNormalization::m_solutionType
SolutionType m_solutionType
Whether the user of this class wants to solve for the offsets, the gains, or both.
Definition: OverlapNormalization.h:221
Isis::OverlapNormalization::GainsWithoutNormalization
@ GainsWithoutNormalization
The equation being solved for Gains, Offsets, and Both is output = (input - average) * gain + offset ...
Definition: OverlapNormalization.h:135
Isis::OverlapNormalization::AddOverlap
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 ...
Definition: OverlapNormalization.cpp:90
Isis::OverlapNormalization::AddStatus
AddStatus
The result of the attempt to add overlap data to the list of valid overlaps, where Success is a succe...
Definition: OverlapNormalization.h:75
Isis::OverlapNormalization
Calculate the bases and multipliers for normalizing overlapping "data sets" (e.g.,...
Definition: OverlapNormalization.h:61
Isis::OverlapNormalization::AddHold
void AddHold(unsigned holdIndex)
Sets the list of files to be held during the solving process.
Definition: OverlapNormalization.h:103
Isis::OverlapNormalization::m_offsetLsq
LeastSquares * m_offsetLsq
The least squares object that calculates offsets.
Definition: OverlapNormalization.h:252
Isis::OverlapNormalization::Gain
double Gain(const unsigned index) const
Returns the calculated gain (multiplier) for the given data set.
Definition: OverlapNormalization.cpp:314
Isis::OverlapNormalization::Success
@ Success
Overlap is valid and was added successfully.
Definition: OverlapNormalization.h:80
Isis::OverlapNormalization::~OverlapNormalization
virtual ~OverlapNormalization()
Destroys the OverlapNormalization object, frees up pointers.
Definition: OverlapNormalization.cpp:56
Isis::OverlapNormalization::m_offsetFunction
BasisFunction * m_offsetFunction
The offset function to be solved.
Definition: OverlapNormalization.h:242
Isis::LeastSquares::QRD
@ QRD
QR Decomposition.
Definition: LeastSquares.h:113
Isis::OverlapNormalization::Both
@ Both
Calculate both gains and offsets.
Definition: OverlapNormalization.h:126
Isis::OverlapNormalization::m_offsets
std::vector< double > m_offsets
Vector of calculated offsets filled by the Solve method.
Definition: OverlapNormalization.h:231
Isis::OverlapNormalization::OverlapNormalization
OverlapNormalization(const OverlapNormalization &)
Cannot copy this object.
Isis::OverlapNormalization::m_gainFunction
BasisFunction * m_gainFunction
The gain function to be solved.
Definition: OverlapNormalization.h:237
Isis::OverlapNormalization::Overlap::index2
int index2
Index corresponding to m_statsList for the second overlapping data set.
Definition: OverlapNormalization.h:192
Isis::OverlapNormalization::Solve
void Solve(SolutionType type=Both, LeastSquares::SolveMethod method=LeastSquares::QRD)
Attempts to solve the least squares equation for all data sets.
Definition: OverlapNormalization.cpp:147
Isis::OverlapNormalization::Average
double Average(const unsigned index) const
Returns the calculated average DN value for the given data set.
Definition: OverlapNormalization.cpp:293
Isis::OverlapNormalization::Evaluate
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...
Definition: OverlapNormalization.cpp:358
Isis::OverlapNormalization::operator=
OverlapNormalization & operator=(const OverlapNormalization &)
Cannot copy this object.
Isis::OverlapNormalization::NoOverlap
@ NoOverlap
Data sets do not overlap one another.
Definition: OverlapNormalization.h:85
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::OverlapNormalization::Overlap::area1
Statistics area1
Overlapping area for the first data set.
Definition: OverlapNormalization.h:175
Isis::OverlapNormalization::m_overlapList
std::vector< Overlap > m_overlapList
Vector of valid overlaps collected.
Definition: OverlapNormalization.h:198

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 USGS Astrogeology Discussion Board
To report a bug, or suggest a feature go to: ISIS Github
File Modified: 07/13/2023 15:16:59