OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimAdjustmentExecutive.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // Author: David Hicks
6 // test
7 //
8 // Description: Executive class for adjustment operations.
9 //----------------------------------------------------------------------------
10 #ifndef ossimAdjustmentExecutive_HEADER
11 #define ossimAdjustmentExecutive_HEADER
12 
13 #include <ossim/base/ossimObject.h>
15 #include <ossim/base/ossimDpt.h>
16 #include <ossim/base/ossimGpt.h>
17 #include <ossim/base/ossimString.h>
18 #include <ossim/matrix/newmat.h>
19 #include <ossim/matrix/newmatap.h>
20 #include <ossim/matrix/newmatio.h>
21 
22 #include <ctime>
23 #include <vector>
24 #include <iostream>
25 
28 
29 
31 {
32 public:
33 
38 
44 
45 
48 
56  bool initializeSolution(ossimObservationSet& obsSet);
57 
63  bool runSolution();
64 
68  void summarizeSolution() const;
69 
70 
78  bool computeResidualStatistics(NEWMAT::Matrix& res);
79 
80 
86  double computeSEUW();
87 
91  std::ostream& printParameterCorrectionSummary(std::ostream& out) const;
92 
96  std::ostream& printObservationCorrectionSummary(std::ostream& out) const;
97 
101  std::ostream& printResidualSummary(std::ostream& out) const;
102 
103 
104  inline bool isValid() const { return theExecValid; }
105 
106  void setMaxIter(const int maxIter) { theMaxIter = maxIter; }
107 
108  void setConvCriteria(const int convCriteria) { theConvCriteria = convCriteria; }
109 
110 protected:
112 
113  // Observation set
115 
116  // Optimizer
118 
119  // Attribute interface
121 
122  // Status parameters
128 
129  // Traits
134  int theRankN;
135 
136  // Solution arrays
137  NEWMAT::Matrix theMeasResiduals; // theNumMeasurements X 2
138  NEWMAT::Matrix theObjPartials; // theNumObjObs*3 X 2
139  NEWMAT::Matrix theParPartials; // theNumImages*(npar/image) X 2
140 
141  // Statistics
142  double theXrms;
143  double theYrms;
144  double theXmean;
145  double theYmean;
146  std::vector<double> theSEUW;
147 
148  // Adjustable parameter info
149  std::vector<double> theParInitialValues;
150  std::vector<double> theParInitialStdDev;
151  std::vector<ossimString> theParDesc;
152  std::vector<int> theImgs;
153 
154  // Observation info
155  std::vector<double> theObsInitialValues;
156  std::vector<double> theObsInitialStdDev;
157 
159 
160 
164  bool updateParameters();
165 
169  bool updateObservations();
170 
171 };
172 
173 #endif // #ifndef ossimAdjustmentExecutive_HEADER
void setMaxIter(const int maxIter)
std::vector< ossimString > theParDesc
std::vector< double > theParInitialStdDev
std::vector< double > theObsInitialStdDev
void setConvCriteria(const int convCriteria)
std::vector< double > theParInitialValues
#define OSSIM_DLL
ossimAdjSolutionAttributes * theSolAttributes
ossimWLSBundleSolution * theSol
std::vector< double > theObsInitialValues
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23