OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | List of all members
ossimplugins::ossimTerraSarProductDoc Class Reference

Class to encapsulate parsing TerraSAR product xml file. More...

#include <ossimTerraSarProductDoc.h>

Public Member Functions

 ossimTerraSarProductDoc ()
 default constructor More...
 
 ~ossimTerraSarProductDoc ()
 destructor More...
 
bool isTerraSarX (const ossimXmlDocument *xdoc) const
 Checks for node /level1Product/generalHeader/mission containing "TSX-1". More...
 
bool initPlatformPosition (const ossimXmlDocument *xdoc, PlatformPosition *pos) const
 Method to initialize PlatformPosition object from TerraSAR product xml file. More...
 
bool initSensorParams (const ossimXmlDocument *xdoc, SensorParams *sp) const
 Method to initialize SensorParams object from TerraSAR product xml file. More...
 
bool initImageSize (const ossimXmlDocument *xdoc, ossimIpt &imageSize) const
 Method to initialize image size from TerraSAR product xml file. More...
 
bool initGsd (const ossimXmlDocument *xdoc, ossimDpt &gsd) const
 Method to initialize gsd from TerraSAR product xml file. More...
 
bool initTiePoints (const ossimXmlDocument *xdoc, std::list< ossimGpt > &gcp, std::list< ossimDpt > &icp) const
 Method to initialize image tie points from TerraSAR product xml file. More...
 
bool isProductGeoreferenced (const ossimXmlDocument *xdoc) const
 
bool getMission (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool geNumberOfLayers (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getImageFile (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getSceneId (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getProjection (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getReferencePoint (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getImageDataStrartWith (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getOrbitDirection (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getLookDirection (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getGenerationTime (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getRangeGateFirstPixel (const ossimXmlDocument *xdoc, ossimString &s) const
 one based??? More...
 
bool getRangeGateLastPixel (const ossimXmlDocument *xdoc, ossimString &s) const
 one based??? More...
 
bool getSceneCenterAzimuthTime (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getSceneCenterRangeTime (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getSceneCenterRefColumn (const ossimXmlDocument *xdoc, ossimString &s) const
 one based More...
 
bool getSceneCenterRefRow (const ossimXmlDocument *xdoc, ossimString &s) const
 one based More...
 
bool getSceneCenterLat (const ossimXmlDocument *xdoc, ossimString &s) const
 latitude More...
 
bool getSceneCenterLon (const ossimXmlDocument *xdoc, ossimString &s) const
 longitude More...
 
bool getSceneAverageHeight (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getRadarCenterFrequency (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getAzimuthStartTime (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getAzimuthStopTime (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getRangeFirstPixelTime (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getRangeLastPixelTime (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getCommonPrf (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getCommonRsf (const ossimXmlDocument *xdoc, ossimString &s) const
 range sampling rate More...
 
bool getNumberOfRangeLooks (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getNumberOfAzimuthLooks (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getNumberOfColumns (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getNumberOfRows (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getColumnSpacing (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getRowSpacing (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getProjectedSpacingSlantRange (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getProjectedSpacingAzimuth (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getGeodeticTerrainHeight (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getProductType (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getProductVariant (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getRadiometricCorrection (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getImagingMode (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getAcquisitionSensor (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getPolarisationMode (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool getPolLayerList (const ossimXmlDocument *xdoc, std::vector< ossimString > &s) const
 
bool getCalFactor (const ossimXmlDocument *xdoc, std::vector< ossimString > &s) const
 
bool getRadarFrequency (const ossimXmlDocument *xdoc, ossimString &s) const
 
bool initSceneCoord (const ossimXmlDocument *xdoc, SceneCoord *pos) const
 Method to initialize IncidenceAngles object from TerraSAR product xml file. More...
 
bool initNoise (const ossimXmlDocument *xdoc, Noise *pos) const
 Method to initialize Noise object from TerraSAR product xml file. More...
 

Detailed Description

Class to encapsulate parsing TerraSAR product xml file.

Definition at line 42 of file ossimTerraSarProductDoc.h.

Constructor & Destructor Documentation

◆ ossimTerraSarProductDoc()

ossimplugins::ossimTerraSarProductDoc::ossimTerraSarProductDoc ( )

default constructor

Definition at line 42 of file ossimTerraSarProductDoc.cpp.

43 {
44 }

◆ ~ossimTerraSarProductDoc()

ossimplugins::ossimTerraSarProductDoc::~ossimTerraSarProductDoc ( )

destructor

Definition at line 46 of file ossimTerraSarProductDoc.cpp.

47 {
48 }

Member Function Documentation

◆ geNumberOfLayers()

bool ossimplugins::ossimTerraSarProductDoc::geNumberOfLayers ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 705 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initAcquisitionInfo().

707 {
708  ossimString path = "/level1Product/productInfo/imageDataInfo/numberOfLayers";
709  ossim::getPath(path, xdoc, s);
710 
711  return ossim::getPath(path, xdoc, s);
712 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getAcquisitionSensor()

bool ossimplugins::ossimTerraSarProductDoc::getAcquisitionSensor ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 1124 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initAcquisitionInfo().

1126 {
1127  ossimString path =
1128  "/level1Product/productInfo/acquisitionInfo/sensor";
1129  return ossim::getPath(path, xdoc, s);
1130 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getAzimuthStartTime()

bool ossimplugins::ossimTerraSarProductDoc::getAzimuthStartTime ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 901 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath(), ossimNotify(), and ossimNotifyLevel_DEBUG.

Referenced by ossimplugins::ossimTerraSarModel::initRefPoint(), and ossimplugins::ossimTerraSarModel::open().

903 {
904  ossimString path =
905  "/level1Product/productInfo/sceneInfo/start/timeUTC";
906 
907  bool res = ossim::getPath(path, xdoc, s);
908 
909  if(!res)
910  {
911  if (traceDebug())
912  {
913  ossimNotify(ossimNotifyLevel_DEBUG)<< "Node \"/level1Product/productInfo/sceneInfo/start/timeUTC\" invalid, trying \"/level1Product/instrument/settings/rxGainSetting/startTimeUTC\"...\n";
914  }
915  path = "/level1Product/instrument/settings/rxGainSetting/startTimeUTC";
916  res = ossim::getPath(path, xdoc, s);
917  }
918 
919  return res;
920 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ getAzimuthStopTime()

bool ossimplugins::ossimTerraSarProductDoc::getAzimuthStopTime ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 922 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath(), ossimNotify(), and ossimNotifyLevel_DEBUG.

Referenced by ossimplugins::ossimTerraSarModel::initRefPoint(), and ossimplugins::ossimTerraSarModel::open().

924 {
925  ossimString path =
926  "/level1Product/productInfo/sceneInfo/stop/timeUTC";
927 
928  bool res = ossim::getPath(path, xdoc, s);
929 
930  if(!res)
931  {
932  if (traceDebug())
933  {
934  ossimNotify(ossimNotifyLevel_DEBUG)<< "Node \"/level1Product/productInfo/sceneInfo/stop/timeUTC\" invalid, trying \"/level1Product/instrument/settings/rxGainSetting/stopTimeUTC\"...\n";
935  }
936  path = "/level1Product/instrument/settings/settingRecord/dataSegment segmentID/stopTimeUTC";
937  res = ossim::getPath(path, xdoc, s);
938  }
939 
940  return res;
941 
942 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ getCalFactor()

bool ossimplugins::ossimTerraSarProductDoc::getCalFactor ( const ossimXmlDocument xdoc,
std::vector< ossimString > &  s 
) const

Definition at line 1145 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

1147 {
1148  ossimString path =
1149  "/level1Product/calibration/calibrationConstant/calFactor";
1150  return ossim::getPath(path, xdoc, s);
1151 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getColumnSpacing()

bool ossimplugins::ossimTerraSarProductDoc::getColumnSpacing ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 1084 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

1086 {
1087  ossimString path =
1088  "/level1Product/productInfo/imageDataInfo/imageRaster/columnSpacing";
1089  return ossim::getPath(path, xdoc, s);
1090 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getCommonPrf()

bool ossimplugins::ossimTerraSarProductDoc::getCommonPrf ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 968 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::findFirstNode(), and ossimXmlDocument::findNodes().

970 {
971  bool result = true;
972  ossimString path = "/level1Product/productSpecific/complexImageInfo";
973  std::vector<ossimRefPtr<ossimXmlNode> > xnodes;
974  xdoc->findNodes(path, xnodes);
975  if ( xnodes.size() )
976  {
977  for (ossim_uint32 i = 0; i < xnodes.size(); ++i)
978  {
979  if (xnodes[i].valid())
980  {
981  result = ossim::findFirstNode(ossimString("commonPRF"),
982  xnodes[i], s);
983  }
984  }
985  }
986  else
987  {
988  result=false;
989  }
990  return result;
991 }
unsigned int ossim_uint32
bool findFirstNode(const ossimString &path, ossimRefPtr< ossimXmlNode > node, ossimString &s)
Finds from node with path from node and initializes string.
void findNodes(const ossimString &xpath, std::vector< ossimRefPtr< ossimXmlNode > > &nodelist) const
Appends any matching nodes to the list supplied (should be empty):

◆ getCommonRsf()

bool ossimplugins::ossimTerraSarProductDoc::getCommonRsf ( const ossimXmlDocument xdoc,
ossimString s 
) const

range sampling rate

Definition at line 993 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::findFirstNode(), and ossimXmlDocument::findNodes().

995 {
996  bool result = true;
997  ossimString path = "/level1Product/productSpecific/complexImageInfo";
998  std::vector<ossimRefPtr<ossimXmlNode> > xnodes;
999  xdoc->findNodes(path, xnodes);
1000  if ( xnodes.size() )
1001  {
1002  for (ossim_uint32 i = 0; i < xnodes.size(); ++i)
1003  {
1004  if (xnodes[i].valid())
1005  {
1006  result = ossim::findFirstNode(ossimString("commonRSF"),
1007  xnodes[i], s);
1008  }
1009  }
1010  }
1011  else
1012  {
1013  result=false;
1014  }
1015  return result;
1016 }
unsigned int ossim_uint32
bool findFirstNode(const ossimString &path, ossimRefPtr< ossimXmlNode > node, ossimString &s)
Finds from node with path from node and initializes string.
void findNodes(const ossimString &xpath, std::vector< ossimRefPtr< ossimXmlNode > > &nodelist) const
Appends any matching nodes to the list supplied (should be empty):

◆ getGenerationTime()

bool ossimplugins::ossimTerraSarProductDoc::getGenerationTime ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 821 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::open().

823 {
824  ossimString path =
825  "/level1Product/generalHeader/generationTime";
826  return ossim::getPath(path, xdoc, s);
827 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getGeodeticTerrainHeight()

bool ossimplugins::ossimTerraSarProductDoc::getGeodeticTerrainHeight ( const ossimXmlDocument xdoc,
ossimString s 
) const

◆ getImageDataStrartWith()

bool ossimplugins::ossimTerraSarProductDoc::getImageDataStrartWith ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 781 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::findFirstNode(), and ossimXmlDocument::findNodes().

783 {
784  bool result = true;
785  ossimString path = "/level1Product/productSpecific/complexImageInfo";
786  std::vector<ossimRefPtr<ossimXmlNode> > xnodes;
787  xdoc->findNodes(path, xnodes);
788  if ( xnodes.size() )
789  {
790  for (ossim_uint32 i = 0; i < xnodes.size(); ++i)
791  {
792  if (xnodes[i].valid())
793  {
794  result = ossim::findFirstNode(ossimString("imageDataStartWith"),
795  xnodes[i], s);
796  }
797  }
798  }
799  else
800  {
801  result=false;
802  }
803  return result;
804 }
unsigned int ossim_uint32
bool findFirstNode(const ossimString &path, ossimRefPtr< ossimXmlNode > node, ossimString &s)
Finds from node with path from node and initializes string.
void findNodes(const ossimString &xpath, std::vector< ossimRefPtr< ossimXmlNode > > &nodelist) const
Appends any matching nodes to the list supplied (should be empty):

◆ getImageFile()

bool ossimplugins::ossimTerraSarProductDoc::getImageFile ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 715 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarTiffReader::open().

717 {
718  bool result = false;
719  ossimString subDir;
720  ossimString fileName;
721 
722  ossimString path = "/level1Product/productComponents/imageData/file/location/path";
723 
724  if ( ossim::getPath(path, xdoc, subDir) )
725  {
726  path = "/level1Product/productComponents/imageData/file/location/filename";
727  if ( ossim::getPath(path, xdoc, fileName) )
728  {
729  result = true;
730  s = subDir;
731  s += "/";
732  s += fileName;
733  }
734  }
735  return result;
736 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getImagingMode()

bool ossimplugins::ossimTerraSarProductDoc::getImagingMode ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 1116 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initAcquisitionInfo().

1118 {
1119  ossimString path =
1120  "/level1Product/productInfo/acquisitionInfo/imagingMode";
1121  return ossim::getPath(path, xdoc, s);
1122 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getLookDirection()

bool ossimplugins::ossimTerraSarProductDoc::getLookDirection ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 813 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initAcquisitionInfo().

815 {
816  ossimString path =
817  "/level1Product/productInfo/acquisitionInfo/lookDirection";
818  return ossim::getPath(path, xdoc, s);
819 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getMission()

bool ossimplugins::ossimTerraSarProductDoc::getMission ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 696 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initAcquisitionInfo(), and ossimplugins::ossimTerraSarModel::open().

698 {
699  ossimString path = "/level1Product/generalHeader/mission";
700  ossim::getPath(path, xdoc, s);
701 
702  return ossim::getPath(path, xdoc, s);
703 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getNumberOfAzimuthLooks()

bool ossimplugins::ossimTerraSarProductDoc::getNumberOfAzimuthLooks ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 1043 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::findFirstNode(), and ossimXmlDocument::findNodes().

1045 {
1046  bool result = true;
1047  ossimString path = "/level1Product/processing/processingParameter";
1048  std::vector<ossimRefPtr<ossimXmlNode> > xnodes;
1049  xdoc->findNodes(path, xnodes);
1050  if ( xnodes.size() )
1051  {
1052  for (ossim_uint32 i = 0; i < xnodes.size(); ++i)
1053  {
1054  if (xnodes[i].valid())
1055  {
1056  result = ossim::findFirstNode(ossimString("azimuthLooks"),
1057  xnodes[i], s);
1058  }
1059  }
1060  }
1061  else
1062  {
1063  result=false;
1064  }
1065  return result;
1066 }
unsigned int ossim_uint32
bool findFirstNode(const ossimString &path, ossimRefPtr< ossimXmlNode > node, ossimString &s)
Finds from node with path from node and initializes string.
void findNodes(const ossimString &xpath, std::vector< ossimRefPtr< ossimXmlNode > > &nodelist) const
Appends any matching nodes to the list supplied (should be empty):

◆ getNumberOfColumns()

bool ossimplugins::ossimTerraSarProductDoc::getNumberOfColumns ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 1068 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

1070 {
1071  ossimString path =
1072  "/level1Product/productInfo/imageDataInfo/imageRaster/numberOfColumns";
1073  return ossim::getPath(path, xdoc, s);
1074 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getNumberOfRangeLooks()

bool ossimplugins::ossimTerraSarProductDoc::getNumberOfRangeLooks ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 1018 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::findFirstNode(), and ossimXmlDocument::findNodes().

1020 {
1021  bool result = true;
1022  ossimString path = "/level1Product/processing/processingParameter";
1023  std::vector<ossimRefPtr<ossimXmlNode> > xnodes;
1024  xdoc->findNodes(path, xnodes);
1025  if ( xnodes.size() )
1026  {
1027  for (ossim_uint32 i = 0; i < xnodes.size(); ++i)
1028  {
1029  if (xnodes[i].valid())
1030  {
1031  result = ossim::findFirstNode(ossimString("rangeLooks"),
1032  xnodes[i], s);
1033  }
1034  }
1035  }
1036  else
1037  {
1038  result=false;
1039  }
1040  return result;
1041 }
unsigned int ossim_uint32
bool findFirstNode(const ossimString &path, ossimRefPtr< ossimXmlNode > node, ossimString &s)
Finds from node with path from node and initializes string.
void findNodes(const ossimString &xpath, std::vector< ossimRefPtr< ossimXmlNode > > &nodelist) const
Appends any matching nodes to the list supplied (should be empty):

◆ getNumberOfRows()

bool ossimplugins::ossimTerraSarProductDoc::getNumberOfRows ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 1076 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

1078 {
1079  ossimString path =
1080  "/level1Product/productInfo/imageDataInfo/imageRaster/numberOfRows";
1081  return ossim::getPath(path, xdoc, s);
1082 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getOrbitDirection()

bool ossimplugins::ossimTerraSarProductDoc::getOrbitDirection ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 806 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initSRGR().

808 {
809  ossimString path = "/level1Product/productInfo/missionInfo/orbitDirection";
810  return ossim::getPath(path, xdoc, s);
811 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getPolarisationMode()

bool ossimplugins::ossimTerraSarProductDoc::getPolarisationMode ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 1131 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initAcquisitionInfo().

1133 {
1134  ossimString path =
1135  "/level1Product/productInfo/acquisitionInfo/polarisationMode";
1136  return ossim::getPath(path, xdoc, s);
1137 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getPolLayerList()

bool ossimplugins::ossimTerraSarProductDoc::getPolLayerList ( const ossimXmlDocument xdoc,
std::vector< ossimString > &  s 
) const

Definition at line 1138 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initAcquisitionInfo().

1140 {
1141  ossimString path =
1142  "/level1Product/productInfo/acquisitionInfo/polarisationList/polLayer";
1143  return ossim::getPath(path, xdoc, s);
1144 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getProductType()

bool ossimplugins::ossimTerraSarProductDoc::getProductType ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 752 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::open().

754 {
755  ossimString path = "/level1Product/productInfo/productVariantInfo/productType";
756  return ossim::getPath(path, xdoc, s);
757 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getProductVariant()

bool ossimplugins::ossimTerraSarProductDoc::getProductVariant ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 759 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

761 {
762  ossimString path = "/level1Product/productInfo/productVariantInfo/productVariant";
763  return ossim::getPath(path, xdoc, s);
764 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getProjectedSpacingAzimuth()

bool ossimplugins::ossimTerraSarProductDoc::getProjectedSpacingAzimuth ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 1108 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

1110 {
1111  ossimString path =
1112  "/level1Product/productSpecific/complexImageInfo/projectedSpacingAzimuth";
1113  return ossim::getPath(path, xdoc, s);
1114 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getProjectedSpacingSlantRange()

bool ossimplugins::ossimTerraSarProductDoc::getProjectedSpacingSlantRange ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 1100 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

1102 {
1103  ossimString path =
1104  "/level1Product/productSpecific/complexImageInfo/projectedSpacingRange/slantRange";
1105  return ossim::getPath(path, xdoc, s);
1106 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getProjection()

bool ossimplugins::ossimTerraSarProductDoc::getProjection ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 745 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarTiffReader::getInternalImageGeometry(), and ossimplugins::ossimTerraSarModel::open().

747 {
748  ossimString path = "/level1Product/productInfo/productVariantInfo/projection";
749  return ossim::getPath(path, xdoc, s);
750 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getRadarCenterFrequency()

bool ossimplugins::ossimTerraSarProductDoc::getRadarCenterFrequency ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 893 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

895 {
896  ossimString path =
897  "/level1Product/instrument/radarParameters/centerFrequency";
898  return ossim::getPath(path, xdoc, s);
899 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getRadarFrequency()

bool ossimplugins::ossimTerraSarProductDoc::getRadarFrequency ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 1152 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::open().

1154 {
1155  ossimString path =
1156  "/level1Product/instrument/radarParameters/centerFrequency";
1157  return ossim::getPath(path, xdoc, s);
1158 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getRadiometricCorrection()

bool ossimplugins::ossimTerraSarProductDoc::getRadiometricCorrection ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 766 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::open().

768 {
769  ossimString path = "/level1Product/productInfo/productVariantInfo/radiometricCorrection";
770  return ossim::getPath(path, xdoc, s);
771 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getRangeFirstPixelTime()

bool ossimplugins::ossimTerraSarProductDoc::getRangeFirstPixelTime ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 944 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::open().

946 {
947  ossimString path =
948  "/level1Product/productInfo/sceneInfo/rangeTime/firstPixel";
949 
950  bool res = ossim::getPath(path, xdoc, s);
951 
952  return res;
953 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getRangeGateFirstPixel()

bool ossimplugins::ossimTerraSarProductDoc::getRangeGateFirstPixel ( const ossimXmlDocument xdoc,
ossimString s 
) const

one based???

Definition at line 829 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initSRGR().

831 {
832  ossimString path = "/level1Product/productInfo/sceneInfo/rangeTime/firstPixel";
833  return ossim::getPath(path, xdoc, s);
834 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getRangeGateLastPixel()

bool ossimplugins::ossimTerraSarProductDoc::getRangeGateLastPixel ( const ossimXmlDocument xdoc,
ossimString s 
) const

one based???

Definition at line 836 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initSRGR().

838 {
839  ossimString path = "/level1Product/productInfo/sceneInfo/rangeTime/lastPixel";
840  return ossim::getPath(path, xdoc, s);
841 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getRangeLastPixelTime()

bool ossimplugins::ossimTerraSarProductDoc::getRangeLastPixelTime ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 955 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::open().

957 {
958  ossimString path =
959  "/level1Product/productInfo/sceneInfo/rangeTime/lastPixel";
960 
961  bool res = ossim::getPath(path, xdoc, s);
962 
963  return res;
964 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getReferencePoint()

bool ossimplugins::ossimTerraSarProductDoc::getReferencePoint ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 774 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initSRGR().

776  {
777  ossimString path = "/level1Product/productSpecific/projectedImageInfo/slantToGroundRangeProjection/referencePoint";
778  return ossim::getPath(path, xdoc, s);
779  }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getRowSpacing()

bool ossimplugins::ossimTerraSarProductDoc::getRowSpacing ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 1092 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

1094 {
1095  ossimString path =
1096  "/level1Product/productInfo/imageDataInfo/imageRaster/rowSpacing";
1097  return ossim::getPath(path, xdoc, s);
1098 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getSceneAverageHeight()

bool ossimplugins::ossimTerraSarProductDoc::getSceneAverageHeight ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 885 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

887 {
888  ossimString path =
889  "/level1Product/productInfo/sceneInfo/sceneAverageHeight";
890  return ossim::getPath(path, xdoc, s);
891 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getSceneCenterAzimuthTime()

bool ossimplugins::ossimTerraSarProductDoc::getSceneCenterAzimuthTime ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 843 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initRefPoint().

845 {
846  ossimString path = "/level1Product/productInfo/sceneInfo/sceneCenterCoord/azimuthTimeUTC";
847  return ossim::getPath(path, xdoc, s);
848 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getSceneCenterLat()

bool ossimplugins::ossimTerraSarProductDoc::getSceneCenterLat ( const ossimXmlDocument xdoc,
ossimString s 
) const

latitude

Definition at line 871 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initRefPoint().

873 {
874  ossimString path = "/level1Product/productInfo/sceneInfo/sceneCenterCoord/lat";
875  return ossim::getPath(path, xdoc, s);
876 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getSceneCenterLon()

bool ossimplugins::ossimTerraSarProductDoc::getSceneCenterLon ( const ossimXmlDocument xdoc,
ossimString s 
) const

longitude

Definition at line 878 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initRefPoint().

880 {
881  ossimString path = "/level1Product/productInfo/sceneInfo/sceneCenterCoord/lon";
882  return ossim::getPath(path, xdoc, s);
883 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getSceneCenterRangeTime()

bool ossimplugins::ossimTerraSarProductDoc::getSceneCenterRangeTime ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 850 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initRefPoint(), and ossimplugins::ossimTerraSarModel::initSRGR().

852 {
853  ossimString path = "/level1Product/productInfo/sceneInfo/sceneCenterCoord/rangeTime";
854  return ossim::getPath(path, xdoc, s);
855 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getSceneCenterRefColumn()

bool ossimplugins::ossimTerraSarProductDoc::getSceneCenterRefColumn ( const ossimXmlDocument xdoc,
ossimString s 
) const

one based

Definition at line 857 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initRefPoint(), and ossimplugins::ossimTerraSarModel::initSRGR().

859 {
860  ossimString path = "/level1Product/productInfo/sceneInfo/sceneCenterCoord/refColumn";
861  return ossim::getPath(path, xdoc, s);
862 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getSceneCenterRefRow()

bool ossimplugins::ossimTerraSarProductDoc::getSceneCenterRefRow ( const ossimXmlDocument xdoc,
ossimString s 
) const

one based

Definition at line 864 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::initRefPoint().

866 {
867  ossimString path = "/level1Product/productInfo/sceneInfo/sceneCenterCoord/refRow";
868  return ossim::getPath(path, xdoc, s);
869 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ getSceneId()

bool ossimplugins::ossimTerraSarProductDoc::getSceneId ( const ossimXmlDocument xdoc,
ossimString s 
) const

Definition at line 738 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::getPath().

Referenced by ossimplugins::ossimTerraSarModel::open().

740 {
741  ossimString path = "/level1Product/productInfo/sceneInfo/sceneID";
742  return ossim::getPath(path, xdoc, s);
743 }
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.

◆ initGsd()

bool ossimplugins::ossimTerraSarProductDoc::initGsd ( const ossimXmlDocument xdoc,
ossimDpt gsd 
) const

Method to initialize gsd from TerraSAR product xml file.

Parameters
xdocOpened product.xml file.
gsdThe point to initialize.
Returns
true on success, false on error.

Definition at line 477 of file ossimTerraSarProductDoc.cpp.

References ossimNotify(), ossimNotifyLevel_DEBUG, ossimString::toFloat64(), ossimDpt::x, and ossimDpt::y.

Referenced by ossimplugins::ossimTerraSarModel::open().

479 {
480  bool result = true;
481 
482  if (xdoc)
483  {
484  ossimString s;
485 
486  if ( getProductVariant(xdoc, s) )
487  {
488  if (s == "SSC")
489  {
490  if ( getProjectedSpacingSlantRange(xdoc, s) )
491  {
492  gsd.x = s.toFloat64();
493  }
494  else
495  {
496  result = false;
497  }
498  if ( getProjectedSpacingAzimuth(xdoc, s) )
499  {
500  gsd.y = s.toFloat64();
501  }
502  else
503  {
504  result = false;
505  }
506  }
507  else
508  {
509  if ( getRowSpacing(xdoc, s) )
510  {
511  gsd.x = s.toFloat64(s);
512  }
513  else
514  {
515  result = false;
516  }
517  if ( getColumnSpacing(xdoc, s) )
518  {
519  gsd.y = s.toFloat64();
520  }
521  else
522  {
523  result = false;
524  }
525  }
526  }
527  else
528  {
529  result = false;
530  }
531  }
532  else
533  {
534  result = false;
535  }
536 
537  if (traceDebug())
538  {
540  << "ossimplugins::ossimTerraSarProductDoc::initGsd DEBUG:\ngsd: "
541  << gsd
542  << "\nexit status = " << (result?"true":"false")
543  << std::endl;
544  }
545 
546  return result;
547 }
bool getProjectedSpacingAzimuth(const ossimXmlDocument *xdoc, ossimString &s) const
double y
Definition: ossimDpt.h:165
bool getProjectedSpacingSlantRange(const ossimXmlDocument *xdoc, ossimString &s) const
bool getProductVariant(const ossimXmlDocument *xdoc, ossimString &s) const
ossim_float64 toFloat64() const
bool getColumnSpacing(const ossimXmlDocument *xdoc, ossimString &s) const
bool getRowSpacing(const ossimXmlDocument *xdoc, ossimString &s) const
double x
Definition: ossimDpt.h:164
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ initImageSize()

bool ossimplugins::ossimTerraSarProductDoc::initImageSize ( const ossimXmlDocument xdoc,
ossimIpt imageSize 
) const

Method to initialize image size from TerraSAR product xml file.

Parameters
xdocOpened product.xml file.
imageSizeThe point to initialize.
Returns
true on success, false on error.

Definition at line 435 of file ossimTerraSarProductDoc.cpp.

References ossimNotify(), ossimNotifyLevel_DEBUG, ossimString::toFloat64(), ossimIpt::x, and ossimIpt::y.

Referenced by ossimplugins::ossimTerraSarModel::open().

437 {
438  bool result = true;
439 
440  if (xdoc)
441  {
442  ossimString s;
443  if ( getNumberOfColumns(xdoc, s) )
444  {
445  imageSize.x = static_cast<ossim_int32>(s.toFloat64());
446  }
447  else
448  {
449  result = false;
450  }
451  if ( getNumberOfRows(xdoc, s) )
452  {
453  imageSize.y = static_cast<ossim_int32>(s.toFloat64());
454  }
455  else
456  {
457  result = false;
458  }
459  }
460  else
461  {
462  result = false;
463  }
464 
465  if (traceDebug())
466  {
468  << "ossimplugins::ossimTerraSarProductDoc::initImageSize DEBUG:\nimage size: "
469  << imageSize
470  << "\nexit status = " << (result?"true":"false")
471  << std::endl;
472  }
473 
474  return result;
475 }
ossim_float64 toFloat64() const
bool getNumberOfColumns(const ossimXmlDocument *xdoc, ossimString &s) const
ossim_int32 y
Definition: ossimIpt.h:142
bool getNumberOfRows(const ossimXmlDocument *xdoc, ossimString &s) const
ossim_int32 x
Definition: ossimIpt.h:141
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
int ossim_int32

◆ initNoise()

bool ossimplugins::ossimTerraSarProductDoc::initNoise ( const ossimXmlDocument xdoc,
ossimplugins::Noise noise 
) const

Method to initialize Noise object from TerraSAR product xml file.

Parameters
xdocOpened product xml file.
posPointer to PlatformPosition object.
Returns
true on success, false on error.

Definition at line 1311 of file ossimTerraSarProductDoc.cpp.

References ossimXmlNode::findChildNodes(), ossimplugins::ossim::findFirstNode(), ossimXmlDocument::findNodes(), ossimplugins::ossim::getPath(), ossimNotify(), ossimNotifyLevel_DEBUG, ossimNotifyLevel_WARN, ossimplugins::Noise::set_imageNoise(), ossimplugins::Noise::set_numberOfNoiseRecords(), ossimplugins::ImageNoise::set_polynomialCoefficients(), ossimplugins::ImageNoise::set_polynomialDegree(), ossimplugins::ImageNoise::set_referencePoint(), ossimplugins::ImageNoise::set_timeUTC(), ossimplugins::ImageNoise::set_validityRangeMax(), ossimplugins::ImageNoise::set_validityRangeMin(), ossimString::toDouble(), and ossimString::toInt32().

1313 {
1314  static const char MODULE[] =
1315  "ossimplugins::ossimTerraSarProductDoc::initImageNoise";
1316  if (traceDebug())
1317  {
1318  ossimNotify(ossimNotifyLevel_DEBUG)<< MODULE << " entered...\n";
1319  }
1320 
1321  bool result = true;
1322 
1323  if ( xdoc && noise )
1324  {
1325  ossimString path =
1326  "/level1Product/noise/numberOfNoiseRecords";
1327  ossimString s;
1328  ossim::getPath(path, xdoc, s);
1329  std::vector<ImageNoise> tabImageNoise;
1330  tabImageNoise.clear();
1331  noise->set_numberOfNoiseRecords(s.toInt32());
1332 
1333  // Get all the stateVector nodes.
1334  path =
1335  "/level1Product/noise/imageNoise";
1336  std::vector<ossimRefPtr<ossimXmlNode> > xnodes;
1337  xdoc->findNodes(path, xnodes);
1338  if ( xnodes.size() )
1339  {
1340  const std::vector<ossimRefPtr<ossimXmlNode> >::size_type COUNT =
1341  xnodes.size();
1342 // ossim::iso8601TimeStringToCivilDate(
1343 
1344  int nbrData = 0; // to keep track of good stateVector count.
1345 
1346  ossimRefPtr<ossimXmlNode> svNode = 0; // stateVector node
1347 
1348  for (ossim_uint32 i = 0 ; i < COUNT; ++i)
1349  {
1350  ImageNoise ev;
1351  svNode = xnodes[i];
1352  if ( !svNode )
1353  {
1354  result = false;
1355  break;
1356  }
1357 
1358  ossimString s;
1359 
1360  path = "timeUTC";
1361  result = ossim::findFirstNode(path, svNode, s);
1362  if (result)
1363  {
1364  ev.set_timeUTC(s);
1365  }
1366  else
1367  {
1368  result = false;
1370  << MODULE << " ERROR:\nNode not found: " << path
1371  << std::endl;
1372  break;
1373  }
1374 
1375  path = "noiseEstimate/validityRangeMin";
1376  result = ossim::findFirstNode(path, svNode, s);
1377  if (result)
1378  {
1379  ev.set_validityRangeMin( s.toDouble() );
1380  }
1381  else
1382  {
1383  result = false;
1385  << MODULE << " ERROR:\nNode not found: " << path
1386  << std::endl;
1387  break;
1388  }
1389  path = "noiseEstimate/validityRangeMax";
1390  result = ossim::findFirstNode(path, svNode, s);
1391  if (result)
1392  {
1393  ev.set_validityRangeMax( s.toDouble() );
1394  }
1395  else
1396  {
1397  result = false;
1399  << MODULE << " ERROR:\nNode not found: " << path
1400  << std::endl;
1401  break;
1402  }
1403  path = "noiseEstimate/referencePoint";
1404  result = ossim::findFirstNode(path, svNode, s);
1405  if (result)
1406  {
1407  ev.set_referencePoint( s.toDouble() );
1408  }
1409  else
1410  {
1411  result = false;
1413  << MODULE << " ERROR:\nNode not found: " << path
1414  << std::endl;
1415  break;
1416  }
1417  path = "noiseEstimate/polynomialDegree";
1418  result = ossim::findFirstNode(path, svNode, s);
1419  if (result)
1420  {
1421  ev.set_polynomialDegree( s.toInt32() );
1422  }
1423  else
1424  {
1425  result = false;
1427  << MODULE << " ERROR:\nNode not found: " << path
1428  << std::endl;
1429  break;
1430  }
1431  //Read Coefficient
1432 
1433  ossimXmlNode::ChildListType nodelist;
1434  svNode->findChildNodes("noiseEstimate/coefficient",nodelist);
1435 
1436  ossimXmlNode::ChildListType::const_iterator child_iter = nodelist.begin();
1437  std::vector<double> polynomialCoefficients;
1438  while(child_iter != nodelist.end())
1439  {
1440  double coefficient = ((*child_iter)->getText()).toDouble() ;
1441  polynomialCoefficients.push_back(coefficient);
1442  ++child_iter;
1443  }
1444  ev.set_polynomialCoefficients( polynomialCoefficients );
1445 
1446  tabImageNoise.push_back(ev);
1447  ++nbrData;
1448 
1449 
1450  } // matches: for (ossim_uint32 i = 0 ; i < COUNT; ++i)
1451 
1452  noise->set_imageNoise(tabImageNoise);
1453 
1454  } // matches: if ( xnodes.size() )
1455 
1456  } // matches: if (xdoc && pos)
1457  else
1458  {
1459  result = false;
1460  }
1461 
1462  if (traceDebug())
1463  {
1465  << MODULE << " exit status = " << (result?"true\n":"false\n");
1466  }
1467 
1468  return result;
1469 }
void findChildNodes(const ossimString &rel_xpath, ossimXmlNode::ChildListType &nodelist) const
void set_imageNoise(const std::vector< ImageNoise > &image_noise)
Definition: Noise.h:75
std::vector< ossimRefPtr< ossimXmlNode > > ChildListType
Definition: ossimXmlNode.h:30
ossim_int32 toInt32() const
unsigned int ossim_uint32
double toDouble() const
bool findFirstNode(const ossimString &path, ossimRefPtr< ossimXmlNode > node, ossimString &s)
Finds from node with path from node and initializes string.
bool getPath(const ossimString &path, const ossimXmlDocument *xdoc, ossimString &s)
Gets path from doc and initializes string.
void findNodes(const ossimString &xpath, std::vector< ossimRefPtr< ossimXmlNode > > &nodelist) const
Appends any matching nodes to the list supplied (should be empty):
void set_numberOfNoiseRecords(const ossim_int32 &numberOfNoiseRecords)
Definition: Noise.h:71
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ initPlatformPosition()

bool ossimplugins::ossimTerraSarProductDoc::initPlatformPosition ( const ossimXmlDocument xdoc,
ossimplugins::PlatformPosition pos 
) const

Method to initialize PlatformPosition object from TerraSAR product xml file.

Parameters
xdocOpened product xml file.
posPointer to PlatformPosition object.
Returns
true on success, false on error.

Definition at line 67 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::findFirstNode(), ossimXmlDocument::findNodes(), ossimXmlNode::getAttributeValue(), ossimplugins::ossim::iso8601TimeStringToCivilDate(), ossimNotify(), ossimNotifyLevel_DEBUG, ossimNotifyLevel_WARN, ossimplugins::PlatformPosition::setData(), and ossimString::toDouble().

Referenced by ossimplugins::ossimTerraSarModel::initPlatformPosition().

69 {
70  static const char MODULE[] =
71  "ossimplugins::ossimTerraSarProductDoc::initPlatformPosition";
72  if (traceDebug())
73  {
74  ossimNotify(ossimNotifyLevel_DEBUG)<< MODULE << " entered...\n";
75  }
76 
77  bool result = true;
78 
79  if ( xdoc && pos )
80  {
81  // Get all the stateVector nodes.
82  ossimString path =
83  "/level1Product/platform/orbit/stateVec";
84  std::vector<ossimRefPtr<ossimXmlNode> > xnodes;
85  xdoc->findNodes(path, xnodes);
86  if ( xnodes.size() )
87  {
88  const std::vector<ossimRefPtr<ossimXmlNode> >::size_type COUNT =
89  xnodes.size();
90 
91  std::vector<Ephemeris*> ev;
92 
93  int nbrData = 0; // to keep track of good stateVector count.
94 
95  ossimRefPtr<ossimXmlNode> svNode = 0; // stateVector node
96 
97  for (ossim_uint32 i = 0 ; i < COUNT; ++i)
98  {
99  svNode = xnodes[i];
100  if ( !svNode )
101  {
102  result = false;
103  break;
104  }
105 
106  ossimString s;
107 
108  // TSX ephemerisis quality indicator (1:good, 0: wrong)
109  svNode->getAttributeValue(s, "qualInd");
110 
111  if (s == "1")
112  {
113  double pos[3];
114  double vit[3];
115  CivilDateTime eph_civil_date;
116 
117  path = "timeUTC";
118  result = ossim::findFirstNode(path, svNode, s);
119  if (result)
120  {
121  ossim::iso8601TimeStringToCivilDate(s, eph_civil_date);
122  }
123  else
124  {
125  result = false;
127  << MODULE << " ERROR:\nNode not found: " << path
128  << std::endl;
129  break;
130  }
131 
132  path = "posX";
133  result = ossim::findFirstNode(path, svNode, s);
134  if (result)
135  {
136  pos[0] = s.toDouble();
137  }
138  else
139  {
140  result = false;
142  << MODULE << " ERROR:\nNode not found: " << path
143  << std::endl;
144  break;
145  }
146 
147  path = "posY";
148  result = ossim::findFirstNode(path, svNode, s);
149  if (result)
150  {
151  pos[1] = s.toDouble();
152  }
153  else
154  {
155  result = false;
157  << MODULE << " ERROR:\nNode not found: " << path
158  << std::endl;
159  break;
160  }
161 
162  path = "posZ";
163  result = ossim::findFirstNode(path, svNode, s);
164  if (result)
165  {
166  pos[2] = s.toDouble();
167  }
168  else
169  {
170  result = false;
172  << MODULE << " ERROR:\nNode not found: " << path
173  << std::endl;
174  break;
175  }
176 
177  path = "velX";
178  result = ossim::findFirstNode(path, svNode, s);
179  if (result)
180  {
181  vit[0] = s.toDouble();
182  }
183  else
184  {
185  result = false;
187  << MODULE << " ERROR:\nNode not found: " << path
188  << std::endl;
189  break;
190  }
191 
192  path = "velY";
193  result = ossim::findFirstNode(path, svNode, s);
194  if (result)
195  {
196  vit[1] = s.toDouble();
197  }
198  else
199  {
200  result = false;
202  << MODULE << " ERROR:\nNode not found: " << path
203  << std::endl;
204  break;
205  }
206 
207  path = "velZ";
208  result = ossim::findFirstNode(path, svNode, s);
209  if (result)
210  {
211  vit[2] = s.toDouble();
212  }
213  else
214  {
215  result = false;
217  << MODULE << " ERROR:\nNode not found: " << path
218  << std::endl;
219  break;
220  }
221 
222  JSDDateTime eph_jsd_date(eph_civil_date);
223  GeographicEphemeris* eph =
224  new GeographicEphemeris(eph_jsd_date, pos, vit);
225  ev.push_back(eph);
226  ++nbrData;
227  } // matches: if (s == "1")
228 
229  } // matches: for (ossim_uint32 i = 0 ; i < COUNT; ++i)
230 
231  if (result && ev.size())
232  {
233  Ephemeris** ephemeris = new Ephemeris*[ev.size()];
234  for ( std::vector<Ephemeris*>::size_type evIdx = 0;
235  evIdx < ev.size();
236  ++evIdx )
237  {
238  ephemeris[evIdx] = ev[evIdx];
239  }
240  if (traceDebug())
241  {
243  << " DEBUG\nnbrData: " << nbrData << "\n";
244  }
245  pos->setData(ephemeris, nbrData);
246  }
247  else
248  {
249  std::vector<Ephemeris*>::iterator evIdx = ev.begin();
250  while (evIdx != ev.end())
251  {
252  delete (*evIdx);
253  (*evIdx) = 0;
254  }
255  ev.clear();
256  }
257 
258  } // matches: if ( xnodes.size() )
259  else
260  {
261  result = false;
263  << MODULE << " ERROR:\nNodes not found: " << path << std::endl;
264  }
265 
266  } // matches: if (xdoc && pos)
267  else
268  {
269  result = false;
270  }
271 
272  if (traceDebug())
273  {
275  << MODULE << " exit status = " << (result?"true\n":"false\n");
276  }
277 
278  return result;
279 }
bool iso8601TimeStringToCivilDate(const std::string &dataString, CivilDateTime &outputDate)
Converts date string from ISO 8601 format to CivilDateTime.
bool getAttributeValue(ossimString &value, const ossimString &name) const
unsigned int ossim_uint32
double toDouble() const
bool findFirstNode(const ossimString &path, ossimRefPtr< ossimXmlNode > node, ossimString &s)
Finds from node with path from node and initializes string.
void findNodes(const ossimString &xpath, std::vector< ossimRefPtr< ossimXmlNode > > &nodelist) const
Appends any matching nodes to the list supplied (should be empty):
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ initSceneCoord()

bool ossimplugins::ossimTerraSarProductDoc::initSceneCoord ( const ossimXmlDocument xdoc,
ossimplugins::SceneCoord sceneCoord 
) const

Method to initialize IncidenceAngles object from TerraSAR product xml file.

Parameters
xdocOpened product xml file.
posPointer to PlatformPosition object.
Returns
true on success, false on error.

Definition at line 1226 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::findFirstNode(), ossimXmlDocument::findNodes(), ossimNotify(), ossimNotifyLevel_DEBUG, ossimplugins::InfoSceneCoord::set_azimuthTimeUTC(), ossimplugins::SceneCoord::set_centerSceneCoord(), ossimplugins::SceneCoord::set_cornersSceneCoord(), ossimplugins::InfoSceneCoord::set_incidenceAngle(), ossimplugins::InfoSceneCoord::set_lat(), ossimplugins::InfoSceneCoord::set_lon(), ossimplugins::SceneCoord::set_numberOfSceneCoord(), ossimplugins::InfoSceneCoord::set_rangeTime(), ossimplugins::InfoSceneCoord::set_refColumn(), ossimplugins::InfoSceneCoord::set_refRow(), ossimString::toDouble(), and ossimString::toUInt32().

Referenced by ossimplugins::ossimTerraSarModel::initSceneCoord().

1227 {
1228  static const char MODULE[] = "ossimplugins::ossimTerraSarProductDoc::initSceneCoord";
1229  if (traceDebug())
1230  {
1231  ossimNotify(ossimNotifyLevel_DEBUG)<< MODULE << " entered...\n";
1232  }
1233 
1234  bool result = true;
1235 
1236  if ( xdoc && sceneCoord )
1237  {
1238  ossimString stmp;
1239 
1240  ossimString path = "/level1Product/productInfo/sceneInfo/sceneCenterCoord";
1241  std::vector<ossimRefPtr<ossimXmlNode> > xnodes;
1242  xdoc->findNodes(path, xnodes);
1243 
1244  if ( (xnodes.size() == 1) && (xnodes[0].valid()) )
1245  {
1246  InfoSceneCoord isc;
1247 
1248  result = ossim::findFirstNode(ossimString("refRow"), xnodes[0], stmp);
1249  isc.set_refRow( stmp.toUInt32() );
1250  result = ossim::findFirstNode(ossimString("refColumn"), xnodes[0], stmp);
1251  isc.set_refColumn( stmp.toUInt32() );
1252  result = ossim::findFirstNode(ossimString("lat"), xnodes[0], stmp);
1253  isc.set_lat( stmp.toDouble() );
1254  result = ossim::findFirstNode(ossimString("lon"), xnodes[0], stmp);
1255  isc.set_lon( stmp.toDouble() );
1256  result = ossim::findFirstNode(ossimString("azimuthTimeUTC"), xnodes[0], stmp);
1257  isc.set_azimuthTimeUTC( stmp );
1258  result = ossim::findFirstNode(ossimString("rangeTime"), xnodes[0], stmp);
1259  isc.set_rangeTime( stmp.toDouble() );
1260  result = ossim::findFirstNode(ossimString("incidenceAngle"), xnodes[0], stmp);
1261  isc.set_incidenceAngle( stmp.toDouble() );
1262 
1263  sceneCoord->set_centerSceneCoord(isc);
1264 
1265  ossimString path2 = "/level1Product/productInfo/sceneInfo/sceneCornerCoord";
1266  std::vector<ossimRefPtr<ossimXmlNode> > xnodes2;
1267 
1268  xdoc->findNodes(path2, xnodes2);
1269  if ( xnodes2.size() )
1270  {
1271  std::vector<InfoSceneCoord> tabIsc;
1272 
1273  for (ossim_uint32 i = 0; i < xnodes2.size(); ++i)
1274  {
1275  if (xnodes2[i].valid())
1276  {
1277  InfoSceneCoord isc2;
1278 
1279  result = ossim::findFirstNode(ossimString("refRow"), xnodes2[i], stmp);
1280  isc2.set_refRow( stmp.toUInt32() );
1281  result = ossim::findFirstNode(ossimString("refColumn"), xnodes2[i], stmp);
1282  isc2.set_refColumn( stmp.toUInt32() );
1283  result = ossim::findFirstNode(ossimString("lat"), xnodes[0], stmp);
1284  isc2.set_lat( stmp.toDouble() );
1285  result = ossim::findFirstNode(ossimString("lon"), xnodes[0], stmp);
1286  isc2.set_lon( stmp.toDouble() );
1287  result = ossim::findFirstNode(ossimString("azimuthTimeUTC"), xnodes[0], stmp);
1288  isc2.set_azimuthTimeUTC( stmp );
1289  result = ossim::findFirstNode(ossimString("rangeTime"), xnodes[0], stmp);
1290  isc2.set_rangeTime( stmp.toDouble() );
1291  result = ossim::findFirstNode(ossimString("incidenceAngle"), xnodes2[i], stmp);
1292  isc2.set_incidenceAngle( stmp.toDouble() );
1293 
1294  tabIsc.push_back(isc2);
1295  }
1296  }
1297 
1298  sceneCoord->set_cornersSceneCoord( tabIsc );
1299  sceneCoord->set_numberOfSceneCoord( tabIsc.size() );
1300  }
1301  }
1302  else
1303  {
1304  result = false;
1305  }
1306  }
1307 
1308  return result;
1309 }
void set_numberOfSceneCoord(const ossim_uint32 &numberOfSceneCoord)
Definition: SceneCoord.h:72
ossim_uint32 toUInt32() const
void set_centerSceneCoord(const InfoSceneCoord &centerSceneCoord)
Definition: SceneCoord.h:76
unsigned int ossim_uint32
double toDouble() const
bool findFirstNode(const ossimString &path, ossimRefPtr< ossimXmlNode > node, ossimString &s)
Finds from node with path from node and initializes string.
void set_cornersSceneCoord(const std::vector< InfoSceneCoord > &cornersSceneCoord)
Definition: SceneCoord.h:80
void findNodes(const ossimString &xpath, std::vector< ossimRefPtr< ossimXmlNode > > &nodelist) const
Appends any matching nodes to the list supplied (should be empty):
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ initSensorParams()

bool ossimplugins::ossimTerraSarProductDoc::initSensorParams ( const ossimXmlDocument xdoc,
SensorParams sp 
) const

Method to initialize SensorParams object from TerraSAR product xml file.

Parameters
xdocOpened product.xml file.
spPointer to SensorParams object.
Returns
true on success, false on error.

Definition at line 281 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::SensorParams::Left, ossimplugins::SensorParams::Right, ossimplugins::SensorParams::set_col_direction(), ossimplugins::SensorParams::set_lin_direction(), ossimplugins::SensorParams::set_nAzimuthLook(), ossimplugins::SensorParams::set_nRangeLook(), ossimplugins::SensorParams::set_prf(), ossimplugins::SensorParams::set_rwl(), ossimplugins::SensorParams::set_semiMajorAxis(), ossimplugins::SensorParams::set_semiMinorAxis(), ossimplugins::SensorParams::set_sf(), ossimplugins::SensorParams::set_sightDirection(), ossimString::toDouble(), and ossimString::upcase().

Referenced by ossimplugins::ossimTerraSarModel::initSensorParams().

283 {
284  bool result = true;
285 
286  if (xdoc && sp)
287  {
288  ossimString s;
289 
290  // Get the number of azimuth looks.
291  if ( getNumberOfAzimuthLooks(xdoc, s) )
292  {
293  sp->set_nAzimuthLook(s.toDouble());
294  }
295  else
296  {
297  result = false;
298  }
299 
300  // Get the number of range looks.
301  if ( getNumberOfRangeLooks(xdoc, s) )
302  {
303  sp->set_nRangeLook(s.toDouble());
304  }
305  else
306  {
307  result = false;
308  }
309 
310  // Get the nominal PRF
311  if ( getCommonPrf(xdoc, s) )
312  {
313  sp->set_prf(s.toDouble());
314  }
315  else
316  {
317  result = false;
318  }
319 
320  // Get the radar wave length.
321  if ( getRadarCenterFrequency(xdoc, s) )
322  {
323  const double CLUM = 2.99792458e+8 ;
324  double waveLength = CLUM / s.toDouble();
325  sp->set_rwl(waveLength);
326  }
327  else
328  {
329  result = false;
330  }
331 
332  if ( getLookDirection(xdoc, s) )
333  {
334  if (s.upcase() == "RIGHT")
335  {
336  sp->set_sightDirection(SensorParams::Right);
337  }
338  else
339  {
340  sp->set_sightDirection(SensorParams::Left);
341  }
342  }
343  else
344  {
345  result = false;
346  }
347 
348  // Get the Sampling frequency.
349  if ( getCommonRsf(xdoc, s) )
350  {
351  sp->set_sf(s.toDouble());
352  }
353  else
354  {
355  result = false;
356  }
357 
358  // Ellipsoid hard coded to WGS84.
359  const double SEMI_MAJOR = 6378137.0;
360  const double SEMI_MINOR = 6356752.3142;
361  sp->set_semiMajorAxis(SEMI_MAJOR);
362  sp->set_semiMinorAxis(SEMI_MINOR);
363 
364  if ( isProductGeoreferenced(xdoc) )
365  {
366  if ( getOrbitDirection(xdoc, s) )
367  {
368  int orbitDirectionSign;
369  if ( s.upcase() == "DESCENDING" )
370  {
371  orbitDirectionSign = 1 ;
372  }
373  else
374  {
375  orbitDirectionSign = -1 ;
376  }
377 
378  if ( getImageDataStrartWith(xdoc, s) )
379  {
380  if (s=="EARLYAZNEARRG")
381  {
382  sp->set_col_direction(orbitDirectionSign);
383  sp->set_lin_direction(orbitDirectionSign);
384  }
385  else if (s=="EARLYAZFARRG")
386  {
387  sp->set_col_direction(-orbitDirectionSign);
388  sp->set_lin_direction(orbitDirectionSign);
389  }
390  else if (s=="LATEAZNEARRG")
391  {
392  sp->set_col_direction(orbitDirectionSign);
393  sp->set_lin_direction(-orbitDirectionSign);
394  }
395  else if (s=="LATEAZFARRG") {
396  sp->set_col_direction(-orbitDirectionSign);
397  sp->set_lin_direction(-orbitDirectionSign);
398  }
399  else
400  {
401  //---
402  // COSAR Files are stored ing with early azimuth,
403  // near range
404  //---
405  sp->set_col_direction(orbitDirectionSign);
406  sp->set_lin_direction(orbitDirectionSign);
407  }
408  }
409  else
410  {
411  result = false;
412  }
413  }
414  else
415  {
416  result = false;
417  }
418 
419  } // matches: if ( isProductGeoreferenced(xdoc) )
420  else
421  {
422  sp->set_col_direction(1);
423  sp->set_lin_direction(1);
424  }
425 
426  } // matches: if (xdoc && sp)
427  else
428  {
429  result = false;
430  }
431 
432  return result;
433 }
static ossimString upcase(const ossimString &aString)
Definition: ossimString.cpp:34
bool getNumberOfRangeLooks(const ossimXmlDocument *xdoc, ossimString &s) const
bool isProductGeoreferenced(const ossimXmlDocument *xdoc) const
bool getNumberOfAzimuthLooks(const ossimXmlDocument *xdoc, ossimString &s) const
bool getRadarCenterFrequency(const ossimXmlDocument *xdoc, ossimString &s) const
bool getLookDirection(const ossimXmlDocument *xdoc, ossimString &s) const
bool getImageDataStrartWith(const ossimXmlDocument *xdoc, ossimString &s) const
double toDouble() const
bool getCommonRsf(const ossimXmlDocument *xdoc, ossimString &s) const
range sampling rate
bool getCommonPrf(const ossimXmlDocument *xdoc, ossimString &s) const
bool getOrbitDirection(const ossimXmlDocument *xdoc, ossimString &s) const

◆ initTiePoints()

bool ossimplugins::ossimTerraSarProductDoc::initTiePoints ( const ossimXmlDocument xdoc,
std::list< ossimGpt > &  gcp,
std::list< ossimDpt > &  icp 
) const

Method to initialize image tie points from TerraSAR product xml file.

Parameters
xdocOpened product.xml file.
imageSizeThe point to initialize.
Returns
true on success, false on error.

Definition at line 549 of file ossimTerraSarProductDoc.cpp.

References ossimplugins::ossim::findFirstNode(), ossimXmlDocument::findNodes(), ossimGpt::hgt, ossimGpt::lat, ossimGpt::lon, ossimNotify(), ossimNotifyLevel_DEBUG, ossimString::toDouble(), ossimString::toFloat64(), ossimDpt::x, and ossimDpt::y.

Referenced by ossimplugins::ossimTerraSarModel::initRefPoint().

553 {
554  static const char MODULE[] = "ossimplugins::ossimTerraSarProductDoc::initTiePoints";
555 
556  bool result = true;
557 
558  if (traceDebug())
559  {
560  ossimNotify(ossimNotifyLevel_DEBUG) << MODULE << " DEBUG:\n";
561  }
562 
563  if (xdoc)
564  {
565  ossimString s;
566  ossimDpt dpt;
567  ossimGpt gpt;
568 
569  // Get the height.
570  result = getSceneAverageHeight(xdoc, s);
571  if (result)
572  {
573  gpt.hgt = s.toFloat64();
574  }
575 
576  // Get the scene center.
577  result = getSceneCenterRefColumn(xdoc, s);
578  if (result)
579  {
580  dpt.x = s.toFloat64() - 1.0;
581  }
582  result = getSceneCenterRefRow(xdoc, s);
583  if (result)
584  {
585  dpt.y = s.toFloat64() - 1.0;
586  }
587  icp.push_back(dpt);
588 
589  result = getSceneCenterLat(xdoc, s);
590  if (result)
591  {
592  gpt.lat = s.toFloat64();
593  }
594  result = getSceneCenterLon(xdoc, s);
595  if (result)
596  {
597  gpt.lon = s.toFloat64();
598  }
599  gcp.push_back(gpt);
600 
601  ossimString path =
602  "/level1Product/productInfo/sceneInfo/sceneCornerCoord";
603  std::vector<ossimRefPtr<ossimXmlNode> > xnodes;
604  xdoc->findNodes(path, xnodes);
605  if ( xnodes.size() )
606  {
607  for (ossim_uint32 i = 0; i < xnodes.size(); ++i)
608  {
609  if (xnodes[i].valid())
610  {
611  result = ossim::findFirstNode(ossimString("refRow"),
612  xnodes[i], s);
613  if (result)
614  {
615  dpt.y = s.toDouble() - 1.0;
616  }
617  result = ossim::findFirstNode(ossimString("refColumn"),
618  xnodes[i], s);
619  if (result)
620  {
621  dpt.x = s.toDouble() - 1.0;
622  }
623  icp.push_back(dpt);
624 
625  if (traceDebug())
626  {
628  << "dpt" << i << ": " << dpt
629  << "\n";
630  }
631 
632  result = ossim::findFirstNode(ossimString("lat"),
633  xnodes[i], s);
634  if (result)
635  {
636  gpt.lat = s.toFloat64();
637  }
638  result = ossim::findFirstNode(ossimString("lon"),
639  xnodes[i], s);
640  if (result)
641  {
642  gpt.lon = s.toDouble();
643  }
644  gcp.push_back(gpt);
645 
646  if (traceDebug())
647  {
649  << "gpt" << i << ": " << gpt
650  << "\n";
651  }
652 
653  } // matches: if (xnodes[i].valid())
654  else
655  {
656  result = false;
657  }
658 
659  } // mathches: for (ossim_uint32 i = 0; i < xnodes.size(); ++i)
660 
661  } // matches: if ( xnodes.size() )
662  else
663  {
664  result = false; // No nodes found.
665  }
666  } // matches: if (xdoc)
667  else
668  {
669  result = false; // Null pointer passed in.
670  }
671 
672  if (traceDebug())
673  {
675  << MODULE << " DEBUG: exit status = " << (result?"true":"false")
676  << std::endl;
677  }
678 
679  return result;
680 }
bool getSceneCenterLon(const ossimXmlDocument *xdoc, ossimString &s) const
longitude
bool getSceneAverageHeight(const ossimXmlDocument *xdoc, ossimString &s) const
bool getSceneCenterRefColumn(const ossimXmlDocument *xdoc, ossimString &s) const
one based
double y
Definition: ossimDpt.h:165
ossim_float64 hgt
Height in meters above the ellipsiod.
Definition: ossimGpt.h:274
ossim_float64 lon
Definition: ossimGpt.h:266
unsigned int ossim_uint32
double toDouble() const
ossim_float64 toFloat64() const
bool getSceneCenterLat(const ossimXmlDocument *xdoc, ossimString &s) const
latitude
bool findFirstNode(const ossimString &path, ossimRefPtr< ossimXmlNode > node, ossimString &s)
Finds from node with path from node and initializes string.
bool getSceneCenterRefRow(const ossimXmlDocument *xdoc, ossimString &s) const
one based
double x
Definition: ossimDpt.h:164
ossim_float64 lat
Definition: ossimGpt.h:265
void findNodes(const ossimString &xpath, std::vector< ossimRefPtr< ossimXmlNode > > &nodelist) const
Appends any matching nodes to the list supplied (should be empty):
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

◆ isProductGeoreferenced()

bool ossimplugins::ossimTerraSarProductDoc::isProductGeoreferenced ( const ossimXmlDocument xdoc) const

Definition at line 682 of file ossimTerraSarProductDoc.cpp.

Referenced by ossimplugins::ossimTerraSarModel::initSRGR().

684 {
685  bool result = false;
686 
687  ossimString s;
688  if ( getProjection(xdoc, s) )
689  {
690  result = (s == "GROUNDRANGE");
691  }
692 
693  return result;
694 }
bool getProjection(const ossimXmlDocument *xdoc, ossimString &s) const

◆ isTerraSarX()

bool ossimplugins::ossimTerraSarProductDoc::isTerraSarX ( const ossimXmlDocument xdoc) const

Checks for node /level1Product/generalHeader/mission containing "TSX-1".

Returns
true if present, false if not.

Definition at line 50 of file ossimTerraSarProductDoc.cpp.

References ossimString::upcase().

Referenced by ossimplugins::ossimTerraSarTiffReader::isTerraSarProductFile(), and ossimplugins::ossimTerraSarModel::open().

52 {
53  bool result = false;
54  if (xdoc)
55  {
56  ossimString s;
57  getMission(xdoc, s);
58  s.upcase();
59  if ( (s == "TSX-1") || (s == "TDX-1") )
60  {
61  result = true;
62  }
63  }
64  return result;
65 }
static ossimString upcase(const ossimString &aString)
Definition: ossimString.cpp:34
bool getMission(const ossimXmlDocument *xdoc, ossimString &s) const

The documentation for this class was generated from the following files: