OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimSensorModelTuple.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: Base class for tuple-based ossimSensorModel metric operations.
8 //----------------------------------------------------------------------------
9 // $Id: ossimSensorModelTuple.h 21806 2012-10-05 14:20:45Z dhicks $
10 #ifndef ossimSensorModelTuple_HEADER
11 #define ossimSensorModelTuple_HEADER
12 
14 #include <ossim/base/ossimDpt.h>
16 #include <ossim/matrix/newmat.h>
17 
18 // Forward class declarations:
20 
21 typedef vector<ossimDpt> DptSet_t;
22 
30 {
31 public:
34  ossim_float64 theRpcElevationAngle; // decimal degrees
35  ossim_float64 theRpcAzimuthAngle; // decimal degrees
39  NEWMAT::Matrix theSurfaceCovMatrix;
40 };
41 
43 {
44 public:
45 
47  {
48  OBS_INIT =-99,
49  EVALUATE =-98,
50  P_WRT_X = -1,
51  P_WRT_Y = -2,
52  P_WRT_Z = -3
53  };
54 
56  {
57  OP_SUCCESS = 0,
58  ERROR_PROP_FAIL = 1,
59  OP_FAIL = 2
60  };
61 
64 
67 
71  void addImage(ossimSensorModel* image);
72 
76  std::ostream& print(std::ostream& out) const;
77 
78 
89  const DptSet_t obs,
90  ossimEcefPoint& pt,
91  NEWMAT::Matrix& covMat) const;
92 
104  const ossim_int32& img,
105  const ossimDpt& obs,
106  ossimEcefPoint& pt,
107  NEWMAT::Matrix& covMat);
108 
124  const ossim_int32& img,
125  const ossimDpt& obs,
126  const ossim_float64& heightAboveEllipsoid,
127  ossimEcefPoint& pt,
128  NEWMAT::Matrix& covMat);
129 
139  bool setIntersectionSurfaceAccuracy(const ossim_float64& surfCE90,
140  const ossim_float64& surfLE90);
141 
143  void getRpcPqeInputs(ossimRpcPqeInputs& obj) const;
144 
145 private:
146  mutable std::vector<ossimRefPtr<ossimSensorModel> > theImages;
147 
149 
154 
159 
171  bool computeSingleInterCov(const ossim_int32& img,
172  const ossimDpt& obs,
173  const ossimGpt& ptG,
174  HeightRefType_t cRefType,
175  NEWMAT::Matrix& covMat);
176 
177 
191  bool getGroundObsEqComponents(const ossim_int32 img,
192  const ossimDpt& obs,
193  const ossimGpt& ptEst,
194  ossimDpt& resid,
195  NEWMAT::Matrix& B,
196  NEWMAT::SymmetricMatrix& W) const;
197 
198  NEWMAT::Matrix invert(const NEWMAT::Matrix& m) const;
199 
200 };
201 
202 
203 #endif /* #ifndef ossimSensorModelTuple_HEADER */
NEWMAT::Matrix theSurfaceCovMatrix
ossim_float64 theRpcAzimuthAngle
ossim_float64 theRpcRandError
std::ostream & print(H5::H5File *file, std::ostream &out)
Print method.
Definition: ossimH5Util.cpp:41
ossim_float64 theRpcBiasError
vector< ossimDpt > DptSet_t
ossim_float64 theRpcElevationAngle
double ossim_float64
std::vector< ossimRefPtr< ossimSensorModel > > theImages
Container class to hold computed rpc model inputs to the ossimPositionQualityEvaluator constructor...
#define OSSIM_DLL
ossimColumnVector3d theSurfaceNormalVector
HeightRefType_t
Definition: ossimHgtRef.h:17
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23
int ossim_int32
ossimRpcPqeInputs theRpcPqeInputs
Rpc model only, container to capture pqe inputs for report purposes only.