OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimLandSatModel.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // DESCRIPTION: Contains declaration of LandSat sensor model class.
6 //
7 // SOFTWARE HISTORY:
8 // 01AUG2002 Oscar Kramer, ImageLinks
9 // Initial coding.
10 // 21NOV2002 Oscar Kramer, ImageLinks
11 // Modified selection of adjustable parameters..
12 //
13 //*****************************************************************************
14 // $Id: ossimLandSatModel.h 15766 2009-10-20 12:37:09Z gpotts $
15 
16 #ifndef ossimLandSatModel_HEADER
17 #define ossimLandSatModel_HEADER
18 
21 #include <ossim/base/ossimIpt.h>
23 #include <ossim/base/ossimGpt.h>
24 #include <ossim/base/ossimDpt.h>
28 #include <iostream>
29 
30 class ossimFfL7;
31 class ossimString;
32 class ossimMapProjection;
33 
34 //******************************************************************************
35 //*
36 //* CLASS: ossimLandSatModel
37 //*
38 //*******************************************************************************
40 {
41 public:
46  ossimLandSatModel(const ossimFfL7& head);
47  ossimLandSatModel(const ossimFilename& init_file);
48  ossimLandSatModel(const ossimKeywordlist& geom_kwl);
50  virtual ossimObject* dup()const;
51 
53  {
54  UNKNOWN_PROJECTION = 0,
58  SOM_ORBIT
59  };
60 
62  {
63  INTRACK_OFFSET = 0,
71  NUM_ADJUSTABLE_PARAMS // not an index
72  };
73 
74 
78  virtual std::ostream& print(std::ostream& out) const;
79 
84  virtual bool saveState(ossimKeywordlist& kwl,
85  const char* prefix=0) const;
86 
87  virtual bool loadState(const ossimKeywordlist& kwl,
88  const char* prefix=0);
89 
94  static void writeGeomTemplate(ostream& os);
95 
96  //***
97  // Overrides base class pure virtual.
98  //***
99  virtual void lineSampleHeightToWorld(const ossimDpt& image_point,
100  const double& heightEllipsoid,
101  ossimGpt& worldPoint) const;
102 
107  virtual void imagingRay(const ossimDpt& image_point,
108  ossimEcefRay& image_ray) const;
109 
115  virtual void updateModel();
116 
120  inline virtual bool useForward()const {return false;}
121  virtual bool setupOptimizer(const ossimString& init_file);
122 
123 protected:
124 
125  virtual ~ossimLandSatModel();
129  void initFromHeader(const ossimFfL7& head);
130 
131  virtual void initAdjustableParameters();
132  void initMapProjection();
133 
134  //***
135  // Image constant parameters:
136  //***
147 
150 
152  double theMapAzimCos;
157 
158  //***
159  // Adjustable parameters:
160  //***
163  double theLineGsdCorr;
164  double theSampGsdCorr;
166  double theYawOffset;
167  double theYawRate;
168  double theMapRotation;
169 
170  //***
171  // Quantities derived from the adjustable parameters:
172  //***
173  NEWMAT::Matrix theRollRotMat;
174 
175  TYPE_DATA
176 };
177 
178 #endif
virtual ossimObject * dup() const =0
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
#define OSSIMDLLEXPORT
virtual bool setupOptimizer(const ossimString &setup)
setupFromString() Derived classes should implement as needed. Initialize parameters needed for optimi...
Represents serializable keyword/value map.
NEWMAT::Matrix theRollRotMat
#define TYPE_DATA
Definition: ossimRtti.h:339
virtual void lineSampleHeightToWorld(const ossimDpt &lineSampPt, const double &heightEllipsoid, ossimGpt &worldPt) const =0
virtual void imagingRay(const ossimDpt &image_point, ossimEcefRay &image_ray) const
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual std::ostream & print(std::ostream &out) const
virtual void updateModel()
static void writeGeomTemplate(ostream &os)
virtual bool useForward() const
ProjectionType theProjectionType
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23
ossimRefPtr< ossimMapProjection > theMapProjection