From 6b87b4c990f332f63aadccb861f1062ce602cdbc Mon Sep 17 00:00:00 2001
From: Cyrille Valladeau <cyrille.valladeau@c-s.fr>
Date: Mon, 21 Dec 2009 15:52:57 +0100
Subject: [PATCH] ENH : change in TSX ProductDoc parsing

---
 .../ossim/ossimTerraSarProductDoc.cpp         | 53 ++++++++++++++-----
 .../ossim/ossimTerraSarProductDoc.h           |  2 +-
 2 files changed, 42 insertions(+), 13 deletions(-)

diff --git a/Utilities/otbossimplugins/ossim/ossimTerraSarProductDoc.cpp b/Utilities/otbossimplugins/ossim/ossimTerraSarProductDoc.cpp
index 8f80d056fc..c60045bf72 100644
--- a/Utilities/otbossimplugins/ossim/ossimTerraSarProductDoc.cpp
+++ b/Utilities/otbossimplugins/ossim/ossimTerraSarProductDoc.cpp
@@ -718,12 +718,12 @@ bool ossimplugins::ossimTerraSarProductDoc::getRadiometricCorrection(
 }
 
 
-bool ossimplugins::ossimTerraSarProductDoc::getReferencePoint(
-   const ossimXmlDocument* xdoc, ossimString& s) const
-{
-   ossimString path = "/level1Product/productSpecific/projectedImageInfo/slantToGroundRangeProjection/referencePoint";
-   return ossim::getPath(path, xdoc, s);
-}
+ bool ossimplugins::ossimTerraSarProductDoc::getReferencePoint(
+    const ossimXmlDocument* xdoc, ossimString& s) const
+ {
+    ossimString path = "/level1Product/productSpecific/projectedImageInfo/slantToGroundRangeProjection/referencePoint";
+    return ossim::getPath(path, xdoc, s);
+ }
 
 bool ossimplugins::ossimTerraSarProductDoc::getImageDataStrartWith(
    const ossimXmlDocument* xdoc, ossimString& s) const
@@ -848,17 +848,46 @@ bool ossimplugins::ossimTerraSarProductDoc::getRadarCenterFrequency(
 bool ossimplugins::ossimTerraSarProductDoc::getAzimuthStartTime(
    const ossimXmlDocument* xdoc, ossimString& s) const
 {
-   ossimString path =
-      "/level1Product/instrument/settings/rxGainSetting/startTimeUTC";
-   return ossim::getPath(path, xdoc, s);
+  ossimString path = 
+    "/level1Product/productInfo/sceneInfo/start/timeUTC";
+
+  bool res = ossim::getPath(path, xdoc, s);
+
+  if(!res)
+  {
+   if (traceDebug())
+   {
+      ossimNotify(ossimNotifyLevel_DEBUG)<< "Node \"/level1Product/productInfo/sceneInfo/start/timeUTC\" invalid, trying \"/level1Product/instrument/settings/rxGainSetting/startTimeUTC\"...\n";
+   }  
+    path = "/level1Product/instrument/settings/rxGainSetting/startTimeUTC";
+    res = ossim::getPath(path, xdoc, s);
+  }
+
+  return res;
 }
 
 bool ossimplugins::ossimTerraSarProductDoc::getAzimuthStopTime(
    const ossimXmlDocument* xdoc, ossimString& s) const
 {
-   ossimString path =
-     "/level1Product/instrument/settings/rxGainSetting/stopTimeUTC";
-   return ossim::getPath(path, xdoc, s);
+    std::cout<<"getAzimuthStopTimegetAzimuthStopTimegetAzimuthStopTimegetAzimuthStopTimegetAzimuthStopTimeres"<<std::endl;
+  ossimString path = 
+    "/level1Product/productInfo/sceneInfo/stop/timeUTC";
+  
+  bool res = ossim::getPath(path, xdoc, s);
+  
+  if(!res)
+    {
+      if (traceDebug())
+	{
+	  ossimNotify(ossimNotifyLevel_DEBUG)<< "Node \"/level1Product/productInfo/sceneInfo/stop/timeUTC\" invalid, trying \"/level1Product/instrument/settings/rxGainSetting/stopTimeUTC\"...\n";
+	}  
+      path = "/level1Product/instrument/settings/settingRecord/dataSegment segmentID/stopTimeUTC";//  rxGainSetting/stopTimeUTC";
+      res = ossim::getPath(path, xdoc, s);
+      std::cout<<res<<std::endl;
+    }
+  
+  return res;
+
 }
 
 bool ossimplugins::ossimTerraSarProductDoc::getCommonPrf(
diff --git a/Utilities/otbossimplugins/ossim/ossimTerraSarProductDoc.h b/Utilities/otbossimplugins/ossim/ossimTerraSarProductDoc.h
index 8beecec796..0f4f1b727d 100644
--- a/Utilities/otbossimplugins/ossim/ossimTerraSarProductDoc.h
+++ b/Utilities/otbossimplugins/ossim/ossimTerraSarProductDoc.h
@@ -121,7 +121,7 @@ namespace ossimplugins
                          ossimString& s) const;
       
       bool getReferencePoint(const ossimXmlDocument* xdoc,
-                             ossimString& s) const;
+			     ossimString& s) const;
       
       bool getImageDataStrartWith(const ossimXmlDocument* xdoc,
                                   ossimString& s) const;
-- 
GitLab