OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimRadarSat2ProductDoc.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------------
2 //
3 // License: LGPL
4 //
5 // See LICENSE.txt file in the top level directory for more details.
6 //
7 // Description: Utility class to encapsulate parsing RadarSat2 product.xml
8 // file.
9 //
10 //----------------------------------------------------------------------------
11 // $Id$
12 #ifndef ossimRadarSat2ProductDoc_HEADER
13 #define ossimRadarSat2ProductDoc_HEADER 1
14 
17 #include <ossim/base/ossimRefPtr.h>
18 
19 #include <list>
20 #include <vector>
21 #include <sstream>
22 #include <vector>
23 
24 class ossimDpt;
25 class ossimGpt;
26 class ossimIpt;
27 class ossimXmlDocument;
28 class ossimXmlNode;
29 class ossimString;
30 
31 
32 using namespace std;
33 
34 typedef struct
35 {
36  double biasError;
37  double randomError;
40  double lineOffset;
41  double pixelOffset;
44  double heightOffset;
45  double lineScale;
46  double pixelScale;
47  double latitudeScale;
49  double heightScale;
50  vector<double> lineNumeratorCoefficients;
54 
55 }RPCModel;
56 
57 namespace ossimplugins
58 {
59 class PlatformPosition;
60 class RefPoint;
61 class SensorParams;
62 
65 {
66 public:
69 
72 
79  bool isRadarSat2(const ossimXmlDocument* xdoc) const;
80 
81  RPCModel getRpcData(const ossimXmlDocument* xdoc) const;
82 
90  bool initPlatformPosition(const ossimXmlDocument* xdoc,
91  PlatformPosition* pos) const;
92 
100  bool initSensorParams(const ossimXmlDocument* xdoc,
101  SensorParams* sp) const;
102 
110  bool initImageSize(const ossimXmlDocument* xdoc,
111  ossimIpt& imageSize) const;
112 
120  bool initGsd(const ossimXmlDocument* xdoc,
121  ossimDpt& gsd) const;
122 
130  bool initTiePoints(const ossimXmlDocument* xdoc,
131  std::list<ossimGpt>& gcp,
132  std::list<ossimDpt>& icp) const;
133  bool getSatellite(const ossimXmlDocument* xdoc,
134  ossimString& s) const;
135 
136  bool getSensor(const ossimXmlDocument* xdoc,
137  ossimString& s) const;
138 
140  bool getBeamModeMnemonic(const ossimXmlDocument* xdoc,
141  ossimString& s) const;
142 
143  bool getImageId(const ossimXmlDocument* xdoc,
144  ossimString& s) const;
145 
146  bool getImageFile(const ossimXmlDocument* xdoc, ossimString& s) const;
147 
149  bool getAcquisitionType(const ossimXmlDocument* xdoc,
150  ossimString& s) const;
151 
152  bool getRadarCenterFrequency(const ossimXmlDocument* xdoc,
153  ossimString& s) const;
154 
155  bool getNominalPrf(const ossimXmlDocument* xdoc, double& prf) const;
156 
157  bool getPulseRepetitionFrequency(const ossimXmlDocument* xdoc,
158  std::vector<ossimString>& v) const;
159 
160  bool getAntennaPointing(const ossimXmlDocument* xdoc,
161  ossimString& s) const;
162 
163  bool getAdcSamplingRate(const ossimXmlDocument* xdoc,
164  ossimString& s) const;
165 
166  bool getPassDirection(const ossimXmlDocument* xdoc,
167  ossimString& s) const;
168 
169  bool getProductType(const ossimXmlDocument* xdoc,
170  ossimString& s) const;
171 
172  bool getZeroDopplerTimeFirstLine(const ossimXmlDocument* xdoc,
173  ossimString& s) const;
174 
175  bool getNumberOfRangeLooks(const ossimXmlDocument* xdoc,
176  ossimString& s) const;
177 
178  bool getNumberOfAzimuthLooks(const ossimXmlDocument* xdoc,
179  ossimString& s) const;
180 
181  bool getSlantRangeNearEdge(const ossimXmlDocument* xdoc,
182  ossimString& s) const;
183 
184  bool getZeroDopplerAzimuthTime(const ossimXmlDocument* xdoc,
185  std::vector<ossimString>& v) const;
186 
187  bool getGroundRangeOrigin(const ossimXmlDocument* xdoc,
188  std::vector<ossimString>& v) const;
189 
190  bool getGroundToSlantRangeCoefficients(const ossimXmlDocument* xdoc,
191  std::vector<ossimString>& v) const;
192 
193  bool getSemiMajorAxis(const ossimXmlDocument* xdoc,
194  ossimString& s) const;
195 
196  bool getSemiMinorAxis(const ossimXmlDocument* xdoc,
197  ossimString& s) const;
198 
199  bool getNumberOfSamplesPerLine(const ossimXmlDocument* xdoc,
200  ossimString& s) const;
201 
202  bool getNumberOfLines(const ossimXmlDocument* xdoc,
203  ossimString& s) const;
204 
205  bool getSampledPixelSpacing(const ossimXmlDocument* xdoc,
206  ossimString& s) const;
207 
208  bool getSampledLineSpacing(const ossimXmlDocument* xdoc,
209  ossimString& s) const;
210 
211  bool getLineTimeOrdering(const ossimXmlDocument* xdoc,
212  ossimString& s) const;
213 
214  bool getPixelTimeOrdering(const ossimXmlDocument* xdoc,
215  ossimString& s) const;
216 
217  bool getGeodeticTerrainHeight(const ossimXmlDocument* xdoc,
218  ossimString& s) const;
219 
220  bool getIncidenceAngleNearRange(const ossimXmlDocument* xdoc,
221  ossimString& s) const;
222 
223  bool getIncidenceAngleFarRange(const ossimXmlDocument* xdoc,
224  ossimString& s) const;
225 
226  bool getSatelliteHeight(const ossimXmlDocument* xdoc,
227  ossimString& s) const;
228 };
229 }
230 
231 #endif /* matches: #ifndef ossimRadarSat2ProductDoc_HEADER */
This class handles the platform position.
Class to encapsulate parsing RadarSat2 product.xml file.
vector< double > pixelNumeratorCoefficients
This class handles the sensor parameters.
Definition: SensorParams.h:29
#define OSSIM_PLUGINS_DLL
vector< double > lineNumeratorCoefficients
vector< double > pixelDenominatorCoefficients
vector< double > lineDenominatorCoefficients