OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimSpot5Model.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // Author: Oscar Kramer <okramer@imagelinks.com>
6 // ossim port by David Burken <dburken@imagelinks.com>
7 //
8 // Description:
9 //
10 // Contains declaration of class ossimSpot5Model.
11 //
12 //*****************************************************************************
13 // $Id: ossimSpot5Model.h 15766 2009-10-20 12:37:09Z gpotts $
14 #ifndef ossimSpot5Model_HEADER
15 #define ossimSpot5Model_HEADER
16 
17 #include <iostream>
18 using namespace std;
19 
21 #include <ossim/base/ossimIpt.h>
23 #include <ossim/base/ossimGpt.h>
24 #include <ossim/base/ossimDpt.h>
28 
30 
32 {
33 public:
39  ossimSpot5Model(const ossimFilename& init_file);
40  ossimSpot5Model(const ossimKeywordlist& geom_kwl);
41  ossimSpot5Model(const ossimSpot5Model& rhs);
42 
43  virtual ~ossimSpot5Model();
44 
46  {
47  ROLL_OFFSET = 0,
54  NUM_ADJUSTABLE_PARAMS // not an index
55  };
56 
61  virtual ossimObject* dup() const;
62 
66  virtual std::ostream& print(std::ostream& out) const;
67 
72  virtual bool saveState(ossimKeywordlist& kwl,
73  const char* prefix=NULL) const;
74 
75  virtual bool loadState(const ossimKeywordlist& kwl,
76  const char* prefix=NULL);
77 
82  static void writeGeomTemplate(ostream& os);
83 
87  virtual void lineSampleHeightToWorld(const ossimDpt& image_point,
88  const ossim_float64& heightEllipsoid,
89  ossimGpt& worldPoint) const;
90 
95  virtual void imagingRay(const ossimDpt& image_point,
96  ossimEcefRay& image_ray) const;
97 
103  virtual void updateModel();
104 
108  inline virtual bool useForward()const {return false;}
109  virtual bool setupOptimizer(const ossimString& init_file);
110 
111  bool initFromMetadata(ossimSpotDimapSupportData* sd);
112 protected:
113 
117  void initAdjustableParameters();
118 
119  void loadGeometry(FILE*);
120  void loadSupportData();
121  //void computeSatToOrbRotation(ossim_float64 t)const;
122  void computeSatToOrbRotation(NEWMAT::Matrix& result, ossim_float64 t)const;
123 
124 /* virtual ossimDpt extrapolate (const ossimGpt& gp) const; */
125 /* virtual ossimGpt extrapolate (const ossimDpt& ip, */
126 /* const double& height=ossim::nan()) const; */
127 
129 
130  //---
131  // Image constant parameters:
132  //---
138 
141 
144 // mutable NEWMAT::Matrix theSatToOrbRotation;
145 // mutable NEWMAT::Matrix theOrbToEcfRotation;
146 
147  //---
148  // Adjustable parameters:
149  //---
153  ossim_float64 theRollRate; // degrees/sec
154  ossim_float64 thePitchRate; // degrees/sec
155  ossim_float64 theYawRate; // degrees/sec
156  ossim_float64 theFocalLenOffset; // percent deviation from nominal
157 
158 TYPE_DATA
159 };
160 
161 #endif /* #ifndef ossimSpot5Model_HEADER */
ossim_float64 theRefImagingTime
ossim_float64 theYawOffset
ossim_float64 thePositionError
#define OSSIMDLLEXPORT
Represents serializable keyword/value map.
ossim_float64 theIllumElevation
ossimDpt theSpotSubImageOffset
ossim_float64 theRefImagingTimeLine
relative to full image
ossimFilename theMetaDataFile
ossim_float64 theRollRate
std::ostream & print(H5::H5File *file, std::ostream &out)
Print method.
Definition: ossimH5Util.cpp:41
ossim_float64 theFocalLenOffset
ossimRefPtr< ossimSpotDimapSupportData > theSupportData
ossim_float64 theIllumAzimuth
double ossim_float64
ossim_float64 theRollOffset
ossim_float64 theYawRate
ossim_float64 theLineSamplingPeriod
#define TYPE_DATA
Definition: ossimRtti.h:339
virtual bool useForward() const
ossim_float64 thePitchOffset
ossim_float64 thePitchRate
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23