OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimRS1SarModel.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // Author: Oscar Kramer
6 //
7 // Description:
8 //
9 // Sensor Model for Radarsat1 SAR sensor.
10 //
11 //*******************************************************************
12 // $Id:$
13 
14 #ifndef ossimRS1SarModel_HEADER
15 #define ossimRS1SarModel_HEADER 1
16 
20 #include <ossim/base/ossimGpt.h>
21 #include <ossim/base/ossimDrect.h>
27 
28 // Namespace class forward class declaration.
29 namespace NEWMAT
30 {
31  class Matrix;
32 }
33 
34 //*****************************************************************************
35 // CLASS: ossimRS1SarModel
36 //*****************************************************************************
38 {
39 public:
41  ossimRS1SarModel(const ossimFilename& imageDir);
42 
43  virtual ~ossimRS1SarModel();
44 
46  {
48  SCN, // ScanSAR Narrow Beam
49  SCW, // ScanSAR Wide Beam
50  SGC, // SAR Georeferenced Coarse Resolution
51  SGF, // SAR Georeferenced Fine Resolution
52  SGX, // SAR Georeferenced Extra Fine Resolution
53  SLC, // Single Look Complex
54  SPG, // SAR Precision Geocoded
55  SSG, // SAR Systematically Geocoded
56  RAW,
58  };
59 
61  {
65  };
66 
69  virtual bool saveState(ossimKeywordlist& kwl, const char* prefix=NULL) const;
70 
73  virtual bool loadState(const ossimKeywordlist& kwl, const char* prefix=NULL);
74 
76  virtual void lineSampleHeightToWorld(const ossimDpt& imagePt,
77  const double& heightAboveEllipsoid,
78  ossimGpt& worldPt) const;
79 
82  virtual void imagingRay(const ossimDpt& image_point, ossimEcefRay& image_ray) const;
83 
84  inline virtual bool useForward() const { return false; }
85 
87  virtual ossimObject* dup() const { return 0; } // TBR
88 
89 protected:
90  void setImagingMode(char* modeStr);
91  void initFromCeos(const ossimFilename& dataDir);
92  void initAdjParms();
93  void establishEphemeris();
94  void eciToEcfXform(const double& julianDay, NEWMAT::Matrix& xform) const;
95  void establishOrpInterp();
96  void establishOrpGrid();
97  void establishVehicleSpace();
98  void interpolatedScanORP(const ossimDpt& orp, ossimEcefPoint& orp_ecf) const;
99  void deallocateMemory();
100 
109  double theRefHeight;
110  double theGHA; // Greenwich Hour Angle of first eph. pt.
111  double theEphFirstSampTime; // in seconds from start of day
114  double theSinSkew;
117  int theFirstLineDay; // julian day
118  double theFirstLineTime; // seconds
119  double theTimePerLine; // seconds
121  double theSrGrCoeff[6];
123  //***
124  // Additional data members used for scan-mode imagery:
125  //***
128 
129  //***
130  // Adjustable Parameters:
131  //***
132  double theInTrackOffset; // meters
133  double theCrTrackOffset; // meters
134  double theRadialOffset; // meters
135  double theLineScale;
136  double theSkew;
137  double theOrientation; // degrees
138 
139  //***
140  // Adjustable model parameters array indexes:
141  //***
143  {
150  NUM_ADJUSTABLE_PARAMS // not a parameter
151  };
152 
153 };
154 
155 
156 #endif
ossimRefPtr< ossimLagrangeInterpolator > theArpPosInterp
ossimRefPtr< ossimLagrangeInterpolator > theLocalOrpInterp
Represents serializable keyword/value map.
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=NULL) const
Fulfills ossimObject base-class pure virtuals.
ossimEcefPoint theORP
virtual ossimObject * dup() const
image to ground faster
void interpolatedScanORP(const ossimDpt &orp, ossimEcefPoint &orp_ecf) const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=NULL)
Fulfills ossimObject base-class pure virtuals.
virtual bool useForward() const
DirectionFlag theDirectionFlag
virtual void imagingRay(const ossimDpt &image_point, ossimEcefRay &image_ray) const
Given an image point, returns a ray originating at some arbitrarily high point (in this model at the ...
virtual ~ossimRS1SarModel()
ossimRefPtr< ossimLagrangeInterpolator > theArpVelInterp
ossimEcefVector thePosCorrection
Definition: newmat.h:543
ImagingMode theImagingMode
ossimDblGrid theLonGrid
ossimDblGrid theLatGrid
void setImagingMode(char *modeStr)
void eciToEcfXform(const double &julianDay, NEWMAT::Matrix &xform) const
virtual void lineSampleHeightToWorld(const ossimDpt &imagePt, const double &heightAboveEllipsoid, ossimGpt &worldPt) const
Establishes geographic 3D point given image line, sample and ellipsoid height.
ossimLsrSpace theVehicleSpace
void initFromCeos(const ossimFilename &dataDir)
ossimRefPtr< ossimCeosData > theCeosData