OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimGeometricSarSensorModel.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 //
3 // "Copyright Centre National d'Etudes Spatiales"
4 //
5 // License: LGPL
6 //
7 // See LICENSE.txt file in the top level directory for more details.
8 //
9 //----------------------------------------------------------------------------
10 // $Id$
11 
12 #ifndef ossimGeometricSarSensorModel_H
13 #define ossimGeometricSarSensorModel_H 1
14 
18 
19 #include <list>
20 #include <vector>
21 
22 namespace ossimplugins
23 {
24 
25 class PlatformPosition;
26 class SensorParams;
27 class RefPoint;
28 class SarSensor;
29 class JSDDateTime;
30 
37 {
38 public:
39  static const char* CREATE_OCG_PREF_KW;
40 
43 
46 
49 
54  virtual double getSlantRangeFromGeoreferenced(double col) const=0;
55 
60  virtual double getSlantRange(double col) const;
61 
66  virtual JSDDateTime getTime(double line) const;
67 
74  virtual bool getPlatformPositionAtLine(double line, vector<double>& position, vector<double>& speed);
75 
83  virtual void lineSampleHeightToWorld(const ossimDpt& image_point,
84  const double& heightEllipsoid,
85  ossimGpt& worldPoint) const;
86 
87 
103  virtual bool optimizeModel(const std::list<ossimGpt> & groundCoordinates,
104  const std::list<ossimDpt> & imageCoordinates) ;
105 
111  virtual void clearGCPlist() ;
112 
121  virtual void getGCPlist(std::list<ossimGpt> &groundCoordinates,
122  std::list<ossimDpt> & imageCoordinates) ;
123 
124 
125 
132  inline virtual bool useForward() const {return false;}
133 
140  virtual bool saveState(ossimKeywordlist& kwl,
141  const char* prefix=0) const;
142 
148  virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0);
149 
154  virtual std::ostream& print(std::ostream& out) const;
155 
159  double get_optimizationFactorX() const { return _optimizationFactorX; }
160  double get_optimizationFactorY() const { return _optimizationFactorY; }
161  double get_optimizationBiasX() const { return _optimizationBiasX; }
162  double get_optimizationBiasY() const { return _optimizationBiasY; }
163 
165 
166  virtual void lineSampleToWorld(const ossimDpt& image_point,
167  ossimGpt& gpt) const;
168 
172  void set_platformPosition(PlatformPosition* platformPosition);
173  void set_sensorParams(SensorParams* sensorParams);
174  void set_refPoint(RefPoint* refPoint);
175  PlatformPosition* get_platformPosition() const;
176  SensorParams* get_sensorParams() const;
177  RefPoint* get_refPoint() const;
178 
179 protected:
185  bool createReplacementOCG();
186 
193  // Note that this is only mutable because of bad design of the
194  // classes, with a bunch of classes initializing the variables of
195  // the base class directly, the 3 variable above must be made
196  // private.
198 
203 
208  std::list<ossimDpt> _optimizationGCPsImageCoordinates ;
209 
217 
220 
222 
223 private:
227  virtual bool InitPlatformPosition(const ossimKeywordlist &kwl, const char *prefix)=0;
231  virtual bool InitSensorParams(const ossimKeywordlist &kwl, const char *prefix)=0;
235  virtual bool InitRefPoint(const ossimKeywordlist &kwl, const char *prefix)=0;
239  virtual bool InitSRGR(const ossimKeywordlist &kwl, const char *prefix)=0;
240 
241 
242 TYPE_DATA
243 
244 };
245 }
246 
247 #endif
std::list< ossimGpt > _optimizationGCPsGroundCoordinates
List Ground Control Points used by the optimization.
ossimRefPtr< ossimCoarseGridModel > _replacementOcgModel
OSSIM_DLL ossim_int64 getTime()
Gets the current time.
This class handles the platform position.
Represents serializable keyword/value map.
This class handles the referential point.
Definition: RefPoint.h:29
std::ostream & print(H5::H5File *file, std::ostream &out)
Print method.
Definition: ossimH5Util.cpp:41
This class handles the sensor parameters.
Definition: SensorParams.h:29
This class provides basic location services for SAR sensors.
Definition: SarSensor.h:31
bool _isProductGeoreferenced
True iff the product is ground range.
This class allows for direct localisation and indirect localisation using the geometric model of SAR ...
#define TYPE_DATA
Definition: ossimRtti.h:339
#define OSSIM_PLUGINS_DLL
PlatformPosition * _platformPosition
Handle the position of the platform.
double _optimizationFactorX
Optimization result : linear error correction in both dimensions.
double get_optimizationFactorX() const
Accessors to the optimization parameters.
This class represents a date.
Definition: JSDDateTime.h:30
ossimRefPtr< ossimCoarseGridModel > getReplacementOcgModel()
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23