From f7a546d3b151ef3a0123efd76aa668772625f348 Mon Sep 17 00:00:00 2001
From: Guillaume Pasero <guillaume.pasero@c-s.fr>
Date: Thu, 29 Nov 2012 15:03:13 +0100
Subject: [PATCH] BUG: 602: fix loading of geom file

---
 .../OssimAdapters/otbImageKeywordlist.cxx     | 31 ++++++++++++-------
 1 file changed, 20 insertions(+), 11 deletions(-)

diff --git a/Code/UtilitiesAdapters/OssimAdapters/otbImageKeywordlist.cxx b/Code/UtilitiesAdapters/OssimAdapters/otbImageKeywordlist.cxx
index 21b8922e09..dca6b68dfa 100644
--- a/Code/UtilitiesAdapters/OssimAdapters/otbImageKeywordlist.cxx
+++ b/Code/UtilitiesAdapters/OssimAdapters/otbImageKeywordlist.cxx
@@ -233,6 +233,14 @@ ReadGeometryFromImage(const std::string& filename)
           otb_kwl.SetKeywordlist(geom_kwl);
           }
         }
+      
+      // If still no metadata, try the ".geom" file
+      if (!hasMetaData && otb_kwl.GetSize() == 0)
+        {
+        ossimFilename ossimGeomFile = ossimFilename(filename).setExtension(".geom");
+        otb_kwl = ReadGeometryFromGEOMFile(ossimGeomFile);
+        }
+      
       }
     // Free memory
     delete handler;
@@ -266,17 +274,18 @@ ReadGeometryFromGEOMFile(const std::string& filename)
     // Check that the geom file results in a valid ossimKeywordlist
     if (kwl.getErrorStatus() == ossimErrorCodes::OSSIM_OK)
       {
-      // Be sure there is a corresponding instance of ossimSensorModel
-      // which understands this kwl
-      SensorModelAdapter::Pointer sensorModel = SensorModelAdapter::New();
-      ImageKeywordlist otbkwl;
-      otbkwl.SetKeywordlist(kwl);
-      sensorModel->CreateProjection(otbkwl);
-
-      if (sensorModel->IsValidSensorModel())
-        {
-        geom_kwl = kwl;
-        }
+//       // Be sure there is a corresponding instance of ossimSensorModel
+//       // which understands this kwl
+//       SensorModelAdapter::Pointer sensorModel = SensorModelAdapter::New();
+//       ImageKeywordlist otbkwl;
+//       otbkwl.SetKeywordlist(kwl);
+//       sensorModel->CreateProjection(otbkwl);
+// 
+//       if (sensorModel->IsValidSensorModel())
+//         {
+//         geom_kwl = kwl;
+//         }
+      geom_kwl = kwl;
       }
     }
 
-- 
GitLab