OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimTerraSarModel.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 ossimTerraSarModel_H
13 #define ossimTerraSarModel_H
14 
18 #include <ossim/base/ossimIpt.h>
20 #include <ossim/base/ossimGpt.h>
21 #include <ossim/base/ossimDpt.h>
22 #include <ossim/base/ossimString.h>
23 #include <iostream>
24 #include <list>
25 
26 #include <otb/CivilDateTime.h>
27 #include <otb/Noise.h>
28 #include <otb/SceneCoord.h>
29 
30 // Forward class declarations outside of namespace ossimplugins.
31 class ossimXmlDocument;
32 
33 namespace ossimplugins
34 {
35  // Forward class declarations inside of namespace ossimplugins.
36  class ossimTerraSarProductDoc;
37 
44  {
45  public:
48 
51 
53  virtual ~ossimTerraSarModel();
54 
59  virtual ossimString getClassName() const;
60 
64  virtual ossimObject* dup() const;
65 
71  virtual double getSlantRangeFromGeoreferenced(double col) const;
72 
81  bool open(const ossimFilename& file);
82 
89  virtual bool saveState(ossimKeywordlist& kwl,
90  const char* prefix=0) const;
91 
97  virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0);
98 
103  virtual std::ostream& print(std::ostream& out) const;
104 
105  //---
106  // Convenient method to print important image info:
107  //---
108  void printInfo (ostream& os) const;
109 
110  private:
111 
112  virtual bool InitPlatformPosition(const ossimKeywordlist &kwl,
113  const char *prefix);
114  virtual bool InitSensorParams(const ossimKeywordlist &kwl,
115  const char *prefix);
116  virtual bool InitRefPoint(const ossimKeywordlist &kwl, const char *prefix);
117 
122  virtual bool InitSRGR(const ossimKeywordlist &kwl, const char *prefix);
123 
127  bool initSRGR(const ossimXmlDocument* xdoc,
128  const ossimTerraSarProductDoc& rsDoc);
129 
130  bool initPlatformPosition(const ossimXmlDocument* xdoc,
131  const ossimTerraSarProductDoc& rsDoc);
132 
133  bool initSensorParams(const ossimXmlDocument* xdoc,
134  const ossimTerraSarProductDoc& rsDoc);
135 
142  bool initRefPoint(const ossimXmlDocument* xdoc,
143  const ossimTerraSarProductDoc& rsDoc);
150  bool initAcquisitionInfo( const ossimXmlDocument* xdoc,
151  const ossimTerraSarProductDoc& tsDoc);
152 
159  bool initCalibration( const ossimXmlDocument* xmlDocument,
160  const ossimTerraSarProductDoc& tsDoc);
161 
168  bool initSceneCoord(
169  const ossimXmlDocument* xdoc, const ossimTerraSarProductDoc& tsDoc);
170 
177  bool initNoise( const ossimXmlDocument* xmlDocument, const ossimTerraSarProductDoc& tsDoc);
178 
185  bool getNoiseAtGivenNode( const ossimRefPtr<ossimXmlNode> xmlDocument, ossimplugins::Noise& noise);
186 
194  bool findTSXLeader(const ossimFilename& file, ossimFilename& metadataFile);
195 
196 
203  bool getPolLayerFromImageFile( const ossimXmlDocument* xmlDocument, const ossimFilename& imageFilename);
204 
208  double _SrToGr_R0;
209 
213  std::vector<int> _SrToGr_exponent;
214 
218  std::vector<double> _SrToGr_coeffs;
223 
228 
232  std::vector<double> _alt_srgr_coefset;
233 
238 
243 
248 
253 
258 
263 
268  std::vector<ossimString> _polLayerList;
269 
273  std::vector<Noise> _noise;
274 
279 
283  std::vector<double> _calFactor;
284 
289 
294 
299 
304 
309 
314 
315 
320 
322 
323  TYPE_DATA
324 
325  };
326 
327 } // End: namespace ossimplugins
328 
329 #endif /* #ifndef ossimTerraSarModel_H */
ossimString _rgLastPixelTime
Last pixel Range Time (Start acquisition time in range direction).
Class to encapsulate parsing TerraSAR product xml file.
double _sceneCenterRangeTime
Scene Center range time.
This class represents Scence coordinate.
Definition: SceneCoord.h:29
Represents serializable keyword/value map.
double _radarFrequency
centerFrequency (instrument node).
ossimString _rgFirstPixelTime
First pixel Range Time (Start acquisition time in range direction).
ossim_uint32 _numberOfLayers
number of layer (ImageDataInfo node).
This class allows for direct localisation and indirect localisation using the TerraSar sensor model...
std::ostream & print(H5::H5File *file, std::ostream &out)
Print method.
Definition: ossimH5Util.cpp:41
ossimString _acquisitionSensor
Sensor (AcquisitionInfo node).
ossimString _radiometricCorrection
RadiometricCorrection.
ossimString _generationTime
Generation time.
std::vector< double > _alt_srgr_coefset
alternative SRGR computation coefficients.
ossimString _azStartTime
Azimuthal Start Time (Start acquisition time).
ossimString _azStopTime
Azimuthal Stop Time (Start acquisition time).
This class allows for direct localisation and indirect localisation using the geometric model of SAR ...
double _SrToGr_scaling_factor
Slant Range TO Ground Range scaling factor at scene center.
ossimString _lookDirection
LookDirection (AcquisitionInfo node).
ossimString _productType
ProductType.
#define TYPE_DATA
Definition: ossimRtti.h:339
unsigned int ossim_uint32
ossimString _polLayer
PolLayer (AcquisitionInfo node).
#define OSSIM_PLUGINS_DLL
This class represents an Noise.
Definition: Noise.h:28
std::vector< double > _calFactor
CalFactor (Calibration node).
std::vector< ossimString > _polLayerList
std::vector< Noise > _noise
Noise (Noise node).
std::vector< int > _SrToGr_exponent
Slant Range TO Ground Range Projection exponents.
const char * getClassName(int idx)
ossimString _imagingMode
ImagingMode (AcquisitionInfo node).
std::vector< double > _SrToGr_coeffs
Slant Range TO Ground Range Projection coefficients.
ossimString _polarisationMode
PolarisationMode (AcquisitionInfo node).
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23
SceneCoord * _sceneCoord
SceneCoord (SceneInfo node)
double _SrToGr_R0
Slant Range TO Ground Range Projection reference point.