diff --git a/Code/UtilitiesAdapters/OssimAdapters/otbPlatformPositionAdapter.cxx b/Code/UtilitiesAdapters/OssimAdapters/otbPlatformPositionAdapter.cxx
index 734a92940df9c39ed99fd9a5b37ca4c6b3093b85..0cd55e7845b579f9b13764ac41828a31cff4717d 100644
--- a/Code/UtilitiesAdapters/OssimAdapters/otbPlatformPositionAdapter.cxx
+++ b/Code/UtilitiesAdapters/OssimAdapters/otbPlatformPositionAdapter.cxx
@@ -22,9 +22,11 @@
 #include "otbImageKeywordlist.h"
 
 #include "ossimGeometricSarSensorModel.h"
+#include "otb/PlatformPosition.h"
 #include "projection/ossimProjection.h"
 #include "ossim/ossimPluginProjectionFactory.h"
 
+
 namespace otb {
 
 PlatformPositionAdapter::PlatformPositionAdapter():
@@ -65,4 +67,10 @@ void PlatformPositionAdapter::GetPlatformPosition(
   m_SensorModel->getPlatformPositionAtLine(line, position, speed);
 }
 
+void PlatformPositionAdapter::GetPlatformPositionAtTime(
+    ossimplugins::JSDDateTime time, std::vector<double>& position, std::vector<double>& speed)
+{
+	m_SensorModel->get_platformPosition()->getPlatformPositionAtTime(time, position, speed);
+}
+
 } // namespace otb
diff --git a/Code/UtilitiesAdapters/OssimAdapters/otbPlatformPositionAdapter.h b/Code/UtilitiesAdapters/OssimAdapters/otbPlatformPositionAdapter.h
index 337a997c2e977917c387bec96dfdd011971cf80e..19a91f0dd8cda94b0e849515829ac47e8085ef36 100644
--- a/Code/UtilitiesAdapters/OssimAdapters/otbPlatformPositionAdapter.h
+++ b/Code/UtilitiesAdapters/OssimAdapters/otbPlatformPositionAdapter.h
@@ -26,6 +26,7 @@
 namespace ossimplugins
 {
 class ossimGeometricSarSensorModel;
+class JSDDateTime;
 }
 
 namespace otb
@@ -60,9 +61,14 @@ public:
 
   void CreateSensorModel(const ImageKeywordlist& image_kwl);
 
+  /** Get the platform position and speed for a given line. */
   void GetPlatformPosition(
       double line, std::vector<double>& position, std::vector<double>& speed);
 
+  /** Get the platform position at a given date and time. */
+  void GetPlatformPositionAtTime(
+      ossimplugins::JSDDateTime time, std::vector<double>& position, std::vector<double>& speed);
+
 protected:
   PlatformPositionAdapter();
   virtual ~PlatformPositionAdapter();
diff --git a/Utilities/otbossimplugins/ossim/otb/PlatformPosition.cpp b/Utilities/otbossimplugins/ossim/otb/PlatformPosition.cpp
index 74a55f5e59102675ebbe032d22b7fc243bfa556a..abc273567a84b22a313a2ddef090d0ce8d3673bc 100644
--- a/Utilities/otbossimplugins/ossim/otb/PlatformPosition.cpp
+++ b/Utilities/otbossimplugins/ossim/otb/PlatformPosition.cpp
@@ -13,7 +13,8 @@
 #include <string>
 #include <cmath>
 #include <iomanip>
-
+#include <vector>
+ 
 #include <otb/PlatformPosition.h>
 #include <otb/Ephemeris.h>
 #include <otb/HermiteInterpolator.h>
@@ -170,6 +171,23 @@ Ephemeris* PlatformPosition::Interpolate(JSDDateTime date) const
    return ephem;
 }
 
+bool PlatformPosition::getPlatformPositionAtTime(JSDDateTime time, std::vector<double>& position, std::vector<double>& speed)
+{
+  Ephemeris* ephemeris = this->Interpolate(time);
+  double* position_ptr = ephemeris->get_position();
+  double* speed_ptr = ephemeris->get_speed();
+  if (position.size() != 3) position.resize(3);
+  if (speed.size() != 3) speed.resize(3);
+  position[0] = position_ptr[0];
+  position[1] = position_ptr[1];
+  position[2] = position_ptr[2];
+  speed[0] = speed_ptr[0];
+  speed[1] = speed_ptr[1];
+  speed[2] = speed_ptr[2];
+  return true;
+}
+
+
 void PlatformPosition::setData(Ephemeris** data, int nbrData)
 {
    Clear();
diff --git a/Utilities/otbossimplugins/ossim/otb/PlatformPosition.h b/Utilities/otbossimplugins/ossim/otb/PlatformPosition.h
index ea6bf78c8d8a2d0fc0dd852f561620ffa336fdcc..dbec894a11f8a2dbb90b8694f722f04cc8094960 100644
--- a/Utilities/otbossimplugins/ossim/otb/PlatformPosition.h
+++ b/Utilities/otbossimplugins/ossim/otb/PlatformPosition.h
@@ -12,6 +12,7 @@
 #ifndef PlatformPosition_h
 #define PlatformPosition_h
 
+#include <vector>
 #include <ossimPluginConstants.h>
 #include <otb/JSDDateTime.h>
 
@@ -67,6 +68,14 @@ public:
     */
    Ephemeris* Interpolate(JSDDateTime date) const;
 
+
+   /**
+    * @brief This function interpolates its ephemeris to create and extract platform's position and speed
+    * @param date Date and time at wich the interpolation have to be done
+    * @return true, or false if an error occurs
+    */
+   bool getPlatformPositionAtTime(JSDDateTime time, std::vector<double>& position, std::vector<double>& speed);
+
    PlatformPosition* Clone() const
    {
       return new PlatformPosition(*this);