OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimAdjSolutionAttributes.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // Author: David Hicks
6 //
7 // Description: Helper interface class for ossimAdjustmentExecutive
8 // and ossimWLSBundleSolution.
9 //----------------------------------------------------------------------------
10 #ifndef ossimAdjSolutionAttributes_HEADER
11 #define ossimAdjSolutionAttributes_HEADER
12 
13 #include <ossim/base/ossimString.h>
14 #include <ossim/matrix/newmat.h>
15 #include <ossim/matrix/newmatap.h>
16 #include <ossim/matrix/newmatio.h>
17 #include <iostream>
18 #include <map>
19 #include <cmath>
20 
21 
22 typedef std::multimap<int, int> ObjImgMap_t;
23 typedef ObjImgMap_t::iterator ObjImgMapIter_t;
24 typedef std::map<int, int> ImgNumparMap_t;
25 typedef ImgNumparMap_t::iterator ImgNumparMapIter_t;
26 typedef std::pair<ObjImgMapIter_t, ObjImgMapIter_t> ObjImgMapIterPair_t;
27 
28 
30 {
31 public:
33  (const int& numObjObs, const int& numImages, const int& numMeas, const int& rank);
34 
36 
37  // Access traits
38  inline int numObjObs() const { return theNumObjObs; }
39  inline int numImages() const { return theNumImages; }
40  inline int fullRank() const { return theFullRank; }
41 
42 
43  friend class ossimWLSBundleSolution;
45 
46 
47 protected:
48  // Traits
53 
54  // Stacked observation evaluation matrices
55  NEWMAT::Matrix theMeasResiduals; // theNumMeasurements X 2
56  NEWMAT::Matrix theObjPartials; // theNumObjObs*3 X 2
57  NEWMAT::Matrix theParPartials; // theNumImages*(npar/image) X 2
58 
59  // Stacked a priori covariance matrices
60  NEWMAT::Matrix theImagePtCov; // theNumMeasurements*2 X 2
61  NEWMAT::Matrix theObjectPtCov; // theNumObjObs*3 X 3
62 
63  // Full parameter covariance matrix
64  // TODO.... This is not stacked because npar/image may vary. However, it's
65  // not treated as a full matrix in the solution due to
66  // current use of simple partitioning, assuming no correlation.
67  NEWMAT::Matrix theAdjParCov; // theNumImages*(npar/image) X theNumImages*(npar/image)
68 
69  // Correction vectors
70  NEWMAT::ColumnVector theLastCorrections; // theFullRank X 1
71  NEWMAT::ColumnVector theTotalCorrections; // theFullRank X 1
72 
73  // A posteriori full covariance matrix
74  NEWMAT::UpperTriangularMatrix theFullCovMatrix;
75 
76  // Map obj vs. images (measurements)
78 
79  // Map images vs. number of adj parameters
81 
82  // Output operator
84 
85 };
86 #endif // ossimAdjSolutionAttributes_HEADER
87 
NEWMAT::UpperTriangularMatrix theFullCovMatrix
std::map< int, int > ImgNumparMap_t
std::multimap< int, int > ObjImgMap_t
ImgNumparMap_t::iterator ImgNumparMapIter_t
ossimAdjSolutionAttributes(const int &numObjObs, const int &numImages, const int &numMeas, const int &rank)
std::pair< ObjImgMapIter_t, ObjImgMapIter_t > ObjImgMapIterPair_t
ObjImgMap_t::iterator ObjImgMapIter_t
NEWMAT::ColumnVector theTotalCorrections
friend std::ostream & operator<<(std::ostream &, ossimAdjSolutionAttributes &)
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23