diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/AttitudeData.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/AttitudeData.cpp
similarity index 97%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/AttitudeData.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/AttitudeData.cpp
index ed786b1dc18a5770d891b493a084944143471e11..e5eb04555caee9e62a610d80755f41e5c9772f45 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/AttitudeData.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/AttitudeData.cpp
@@ -10,7 +10,7 @@
 // $Id$
 
 
-#include <RadarSat/Leader/AttitudeData.h>
+#include "AttitudeData.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/AttitudeData.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/AttitudeData.h
similarity index 98%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/AttitudeData.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/AttitudeData.h
index feacf416a6db4bee672bfb6c89caf8cb88443906..483f65ee9cd52ebb4db55fe7cab4589d4590f3f3 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/AttitudeData.h
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/AttitudeData.h
@@ -17,7 +17,7 @@
 #include <RadarSat/RadarSatRecord.h>
 #include <RadarSat/RadarSatRecordHeader.h>
 
-#include <RadarSat/Leader/DataPointDataRecord.h>
+#include "DataPointDataRecord.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/BeamInformationRecord.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/BeamInformationRecord.cpp
similarity index 96%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/BeamInformationRecord.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/BeamInformationRecord.cpp
index 9a897359a18c457704c07ae57e893d6779179b50..e3b93112460275c77d070045d686f55add604829 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/BeamInformationRecord.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/BeamInformationRecord.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/BeamInformationRecord.h>
+#include "BeamInformationRecord.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/BeamInformationRecord.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/BeamInformationRecord.h
similarity index 100%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/BeamInformationRecord.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/BeamInformationRecord.h
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/BeamPixelCountRecord.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/BeamPixelCountRecord.cpp
similarity index 96%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/BeamPixelCountRecord.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/BeamPixelCountRecord.cpp
index b87cef103228f175fee09d70d0820784c900267f..2788e46d55fb126a96b1f5118bad71a35bd535a0 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/BeamPixelCountRecord.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/BeamPixelCountRecord.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/BeamPixelCountRecord.h>
+#include "BeamPixelCountRecord.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/BeamPixelCountRecord.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/BeamPixelCountRecord.h
similarity index 100%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/BeamPixelCountRecord.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/BeamPixelCountRecord.h
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/CompensationDataRecord.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/CompensationDataRecord.cpp
similarity index 98%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/CompensationDataRecord.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/CompensationDataRecord.cpp
index 953aa199dd50a5a9ba8944f392b0a720627ef87f..7fad21f8fad306e58cb26c61813f33c84ef6d6fc 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/CompensationDataRecord.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/CompensationDataRecord.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/CompensationDataRecord.h>
+#include "CompensationDataRecord.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/CompensationDataRecord.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/CompensationDataRecord.h
similarity index 100%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/CompensationDataRecord.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/CompensationDataRecord.h
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataHistogramRecord.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataHistogramRecord.cpp
similarity index 98%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/DataHistogramRecord.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataHistogramRecord.cpp
index 4bcffd9a13e58a15a2d3889fc6ee4754bb90468d..ba16b03668c1acffe0042b7480c4f43025a3234c 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataHistogramRecord.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataHistogramRecord.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/DataHistogramRecord.h>
+#include "DataHistogramRecord.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataHistogramRecord.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataHistogramRecord.h
similarity index 100%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/DataHistogramRecord.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataHistogramRecord.h
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataHistogramSignalData.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataHistogramSignalData.cpp
similarity index 97%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/DataHistogramSignalData.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataHistogramSignalData.cpp
index e9fbf901c7fa522405a8c6bc26413ce5cba89e94..05cd9a3f727f5366ddbd0aad886c3496033bc96e 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataHistogramSignalData.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataHistogramSignalData.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/DataHistogramSignalData.h>
+#include "DataHistogramSignalData.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataHistogramSignalData.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataHistogramSignalData.h
similarity index 98%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/DataHistogramSignalData.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataHistogramSignalData.h
index dc334abccfcba62d412bb19c113196da7b36da75..d57cbf435a96f006bbca42729c86e4fe34d13e28 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataHistogramSignalData.h
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataHistogramSignalData.h
@@ -16,7 +16,7 @@
 
 #include <RadarSat/RadarSatRecord.h>
 #include <RadarSat/RadarSatRecordHeader.h>
-#include <RadarSat/Leader/DataHistogramRecord.h>
+#include "DataHistogramRecord.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataPointDataRecord.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataPointDataRecord.cpp
similarity index 98%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/DataPointDataRecord.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataPointDataRecord.cpp
index 22b13f535876e6f310e5f4b696e9325461868f46..d2e4245279fedf8b24f1abb405f7672b7c9ede44 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataPointDataRecord.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataPointDataRecord.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/DataPointDataRecord.h>
+#include "DataPointDataRecord.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataPointDataRecord.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataPointDataRecord.h
similarity index 100%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/DataPointDataRecord.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataPointDataRecord.h
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataQuality.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataQuality.cpp
similarity index 99%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/DataQuality.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataQuality.cpp
index e74faa9a5dfb88ef04904094e8c3ddcf36a41aca..521c052d22e9fa046c1975479fffa0d8bd342405 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataQuality.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataQuality.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/DataQuality.h>
+#include "DataQuality.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataQuality.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataQuality.h
similarity index 98%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/DataQuality.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataQuality.h
index 980a4e0d414326820b801f7c2ae0f013539b6c79..a1575a7fc8aba0ec849289fb18cfc604edf13395 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataQuality.h
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataQuality.h
@@ -17,8 +17,8 @@
 #include <RadarSat/RadarSatRecord.h>
 #include <RadarSat/RadarSatRecordHeader.h>
 
-#include <RadarSat/Leader/RadiometryUncertaintyRecord.h>
-#include <RadarSat/Leader/MisregistrationRecord.h>
+#include "RadiometryUncertaintyRecord.h"
+#include "MisregistrationRecord.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataSetSummary.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataSetSummary.cpp
similarity index 99%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/DataSetSummary.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataSetSummary.cpp
index c79d84e77230cfd45f9c0a38e15e0d1b6ee50e73..180f028a1a40ff6c6cf3fbbc7fbb2541878be81c 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataSetSummary.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataSetSummary.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/DataSetSummary.h>
+#include "DataSetSummary.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataSetSummary.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataSetSummary.h
similarity index 100%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/DataSetSummary.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DataSetSummary.h
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DopplerCentroidEstimateRecord.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DopplerCentroidEstimateRecord.cpp
similarity index 96%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/DopplerCentroidEstimateRecord.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DopplerCentroidEstimateRecord.cpp
index a21ab971458cb61a3235e89eb5cec1ee304e5b0c..22e563e2c01512236f7c70397a51924393cc8b00 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DopplerCentroidEstimateRecord.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DopplerCentroidEstimateRecord.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/DopplerCentroidEstimateRecord.h>
+#include "DopplerCentroidEstimateRecord.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DopplerCentroidEstimateRecord.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DopplerCentroidEstimateRecord.h
similarity index 100%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/DopplerCentroidEstimateRecord.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/DopplerCentroidEstimateRecord.h
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/FileDescriptor.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/FileDescriptor.cpp
similarity index 99%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/FileDescriptor.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/FileDescriptor.cpp
index 112aeda16e55155ec62f54b7f5793cf2ba24b2bb..a86fa26b2db14ee8eae84631f4aea846b0ec2259 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/FileDescriptor.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/FileDescriptor.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/FileDescriptor.h>
+#include "FileDescriptor.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/FileDescriptor.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/FileDescriptor.h
similarity index 100%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/FileDescriptor.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/FileDescriptor.h
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/MisregistrationRecord.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/MisregistrationRecord.cpp
similarity index 95%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/MisregistrationRecord.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/MisregistrationRecord.cpp
index 707337d343bf6b34f1d35549aaee11a284d944c2..7b016d1e10a550825f40d7d1ab91751a38a11de8 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/MisregistrationRecord.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/MisregistrationRecord.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/MisregistrationRecord.h>
+#include "MisregistrationRecord.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/MisregistrationRecord.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/MisregistrationRecord.h
similarity index 100%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/MisregistrationRecord.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/MisregistrationRecord.h
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/ProcessingParameters.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/ProcessingParameters.cpp
similarity index 99%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/ProcessingParameters.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/ProcessingParameters.cpp
index 44b576c8008a9b5d0130b2ebd83c0283af284700..4cab356005cd3e45560b31a881c07c095361d053 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/ProcessingParameters.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/ProcessingParameters.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/ProcessingParameters.h>
+#include "ProcessingParameters.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/ProcessingParameters.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/ProcessingParameters.h
similarity index 98%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/ProcessingParameters.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/ProcessingParameters.h
index 4f0101acc1ddb792bf06a95f35a9198e9300a9b7..fea93d96e701a5c512c26c6c605f4c6fdbc061a0 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/ProcessingParameters.h
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/ProcessingParameters.h
@@ -16,11 +16,11 @@
 #include <RadarSat/RadarSatRecord.h>
 #include <RadarSat/RadarSatRecordHeader.h>
 
-#include <RadarSat/Leader/BeamInformationRecord.h>
-#include <RadarSat/Leader/DopplerCentroidEstimateRecord.h>
-#include <RadarSat/Leader/BeamPixelCountRecord.h>
-#include <RadarSat/Leader/SRGRCoefficientSetRecord.h>
-#include <RadarSat/Leader/TemperatureSettingsRecord.h>
+#include "BeamInformationRecord.h"
+#include "DopplerCentroidEstimateRecord.h"
+#include "BeamPixelCountRecord.h"
+#include "SRGRCoefficientSetRecord.h"
+#include "TemperatureSettingsRecord.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/RadiometricCompensationData.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometricCompensationData.cpp
similarity index 96%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/RadiometricCompensationData.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometricCompensationData.cpp
index 2a2210ad538ca0baa3f1cb32935afe296852365e..9f74e9f4b9f7cf3ae8ebf8cb7c868067ab225799 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/RadiometricCompensationData.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometricCompensationData.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/RadiometricCompensationData.h>
+#include "RadiometricCompensationData.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/RadiometricCompensationData.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometricCompensationData.h
similarity index 98%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/RadiometricCompensationData.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometricCompensationData.h
index 012899ebc7ec521bcc1572fa25ce1adb34e1da03..bab56506c3df7c60be8fae350cb847134e8a9c50 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/RadiometricCompensationData.h
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometricCompensationData.h
@@ -17,7 +17,7 @@
 #include <RadarSat/RadarSatRecord.h>
 #include <RadarSat/RadarSatRecordHeader.h>
 
-#include <RadarSat/Leader/CompensationDataRecord.h>
+#include "CompensationDataRecord.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/RadiometricData.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometricData.cpp
similarity index 98%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/RadiometricData.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometricData.cpp
index ee3cc3e07a03c21774a1f4d697aaba79fb7ade66..b8a4e4022e14c8616fbc3ae09711ad7a8920e741 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/RadiometricData.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometricData.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/RadiometricData.h>
+#include "RadiometricData.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/RadiometricData.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometricData.h
similarity index 100%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/RadiometricData.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometricData.h
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/RadiometryUncertaintyRecord.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometryUncertaintyRecord.cpp
similarity index 95%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/RadiometryUncertaintyRecord.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometryUncertaintyRecord.cpp
index 1276bd93a4f90662f04e5033035e705f7afeae07..11d3530a93950d3afc49d6ceb8300940e4bc483e 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/RadiometryUncertaintyRecord.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometryUncertaintyRecord.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/RadiometryUncertaintyRecord.h>
+#include "RadiometryUncertaintyRecord.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/RadiometryUncertaintyRecord.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometryUncertaintyRecord.h
similarity index 100%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/RadiometryUncertaintyRecord.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometryUncertaintyRecord.h
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/SRGRCoefficientSetRecord.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/SRGRCoefficientSetRecord.cpp
similarity index 96%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/SRGRCoefficientSetRecord.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/SRGRCoefficientSetRecord.cpp
index d9d499a725bb43a61f3fea93056b5c9e29739371..2bb85d8a1a4fc733cfbd47ae0615904ae7c541e1 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/SRGRCoefficientSetRecord.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/SRGRCoefficientSetRecord.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/SRGRCoefficientSetRecord.h>
+#include "SRGRCoefficientSetRecord.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/SRGRCoefficientSetRecord.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/SRGRCoefficientSetRecord.h
similarity index 100%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/SRGRCoefficientSetRecord.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/SRGRCoefficientSetRecord.h
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/TemperatureSettingsRecord.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/TemperatureSettingsRecord.cpp
similarity index 95%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/TemperatureSettingsRecord.cpp
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/TemperatureSettingsRecord.cpp
index 1108ecafc889a4aedd8ad534e773d17d58ffbee9..363420df81d0abc385c3f44854d21913845620aa 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/TemperatureSettingsRecord.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/TemperatureSettingsRecord.cpp
@@ -9,7 +9,7 @@
 //----------------------------------------------------------------------------
 // $Id$
 
-#include <RadarSat/Leader/TemperatureSettingsRecord.h>
+#include "TemperatureSettingsRecord.h"
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/TemperatureSettingsRecord.h b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/TemperatureSettingsRecord.h
similarity index 100%
rename from Utilities/otbossimplugins/ossim/RadarSat/Leader/TemperatureSettingsRecord.h
rename to Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/TemperatureSettingsRecord.h
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataHistogramProcessedData.h b/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataHistogramProcessedData.h
index 5421fcc245b7dd1b9df2c36bde45ea9008d6cb4c..d4cd6299d977dbe4b3e729dddcd007cdd6d1e718 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataHistogramProcessedData.h
+++ b/Utilities/otbossimplugins/ossim/RadarSat/Leader/DataHistogramProcessedData.h
@@ -16,7 +16,7 @@
 
 #include <RadarSat/RadarSatRecord.h>
 #include <RadarSat/RadarSatRecordHeader.h>
-#include <RadarSat/Leader/DataHistogramRecord.h>
+#include <RadarSat/CommonRecord/DataHistogramRecord.h>
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/Leader.cpp b/Utilities/otbossimplugins/ossim/RadarSat/Leader/Leader.cpp
index bb1a3494b315dda42f27d956d3e42c8a3568a64b..fab314933d0e85ad0615afc1ed26820c6e95167b 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/Leader.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/Leader/Leader.cpp
@@ -13,16 +13,18 @@
 #include <RadarSat/Leader/LeaderFactory.h>
 #include <RadarSat/RadarSatRecordHeader.h>
 
-#include <RadarSat/Leader/DataHistogramSignalData.h>
-#include <RadarSat/Leader/DataQuality.h>
-#include <RadarSat/Leader/DataSetSummary.h>
-#include <RadarSat/Leader/FileDescriptor.h>
 #include <RadarSat/Leader/DataHistogramProcessedData.h>
-#include <RadarSat/Leader/ProcessingParameters.h>
 #include <RadarSat/Leader/PlatformPositionData.h>
-#include <RadarSat/Leader/AttitudeData.h>
-#include <RadarSat/Leader/RadiometricData.h>
-#include <RadarSat/Leader/RadiometricCompensationData.h>
+
+#include <RadarSat/CommonRecord/DataHistogramSignalData.h>
+#include <RadarSat/CommonRecord/DataQuality.h>
+#include <RadarSat/CommonRecord/DataSetSummary.h>
+#include <RadarSat/CommonRecord/FileDescriptor.h>
+#include <RadarSat/CommonRecord/ProcessingParameters.h>
+#include <RadarSat/CommonRecord/AttitudeData.h>
+#include <RadarSat/CommonRecord/RadiometricData.h>
+#include <RadarSat/CommonRecord/RadiometricCompensationData.h>
+
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/Leader.h b/Utilities/otbossimplugins/ossim/RadarSat/Leader/Leader.h
index d276d582f55c20a46c13596c36cdbf6d3405796b..3adeca3c44f1fa0f6956ef61eccb4068e3d2f82b 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/Leader.h
+++ b/Utilities/otbossimplugins/ossim/RadarSat/Leader/Leader.h
@@ -13,10 +13,10 @@
 #define Leader_h
 
 #include <iostream>
-#include "FileDescriptor.h"
-#include "DataSetSummary.h"
-#include "DataQuality.h"
-#include "DataHistogramSignalData.h"
+#include <RadarSat/CommonRecord/FileDescriptor.h>
+#include <RadarSat/CommonRecord/DataSetSummary.h>
+#include <RadarSat/CommonRecord/DataQuality.h>
+#include <RadarSat/CommonRecord/DataHistogramSignalData.h>
 #include "DataHistogramProcessedData.h"
 #include <map>
 
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Leader/LeaderFactory.cpp b/Utilities/otbossimplugins/ossim/RadarSat/Leader/LeaderFactory.cpp
index 3b5bd1cded3c2b8dd9f4071d25f53d354b7deba9..2c1dad85d4dc48ebb86b55c5b5cc830f8e564b67 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Leader/LeaderFactory.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/Leader/LeaderFactory.cpp
@@ -11,16 +11,16 @@
 
 #include <RadarSat/Leader/LeaderFactory.h>
 
-#include <RadarSat/Leader/DataHistogramSignalData.h>
-#include <RadarSat/Leader/DataQuality.h>
-#include <RadarSat/Leader/DataSetSummary.h>
-#include <RadarSat/Leader/FileDescriptor.h>
+#include <RadarSat/CommonRecord/DataHistogramSignalData.h>
+#include <RadarSat/CommonRecord/DataQuality.h>
+#include <RadarSat/CommonRecord/DataSetSummary.h>
+#include <RadarSat/CommonRecord/FileDescriptor.h>
 #include <RadarSat/Leader/DataHistogramProcessedData.h>
-#include <RadarSat/Leader/ProcessingParameters.h>
+#include <RadarSat/CommonRecord/ProcessingParameters.h>
 #include <RadarSat/Leader/PlatformPositionData.h>
-#include <RadarSat/Leader/AttitudeData.h>
-#include <RadarSat/Leader/RadiometricData.h>
-#include <RadarSat/Leader/RadiometricCompensationData.h>
+#include <RadarSat/CommonRecord/AttitudeData.h>
+#include <RadarSat/CommonRecord/RadiometricData.h>
+#include <RadarSat/CommonRecord/RadiometricCompensationData.h>
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Trailer/Trailer.cpp b/Utilities/otbossimplugins/ossim/RadarSat/Trailer/Trailer.cpp
index 09e2f1b431eb1ce5541bb56ae790cb51fe7b4d1d..6d4b25e0e3dda1194518865a26bac3bad4517178 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Trailer/Trailer.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/Trailer/Trailer.cpp
@@ -13,14 +13,14 @@
 #include <RadarSat/Trailer/TrailerFactory.h>
 #include <RadarSat/RadarSatRecordHeader.h>
 
-#include <RadarSat/Leader/DataHistogramSignalData.h>
-#include <RadarSat/Leader/DataQuality.h>
-#include <RadarSat/Leader/DataSetSummary.h>
-#include <RadarSat/Leader/FileDescriptor.h>
-#include <RadarSat/Leader/ProcessingParameters.h>
-#include <RadarSat/Leader/AttitudeData.h>
-#include <RadarSat/Leader/RadiometricData.h>
-#include <RadarSat/Leader/RadiometricCompensationData.h>
+#include <RadarSat/CommonRecord/DataHistogramSignalData.h>
+#include <RadarSat/CommonRecord/DataQuality.h>
+#include <RadarSat/CommonRecord/DataSetSummary.h>
+#include <RadarSat/CommonRecord/FileDescriptor.h>
+#include <RadarSat/CommonRecord/ProcessingParameters.h>
+#include <RadarSat/CommonRecord/AttitudeData.h>
+#include <RadarSat/CommonRecord/RadiometricData.h>
+#include <RadarSat/CommonRecord/RadiometricCompensationData.h>
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Trailer/Trailer.h b/Utilities/otbossimplugins/ossim/RadarSat/Trailer/Trailer.h
index 3b3b900700480b678fe1d25a9cb7c38f29b47b46..a5125bbc0f0e9e8c1a5308a6fa6c97022eeedef1 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Trailer/Trailer.h
+++ b/Utilities/otbossimplugins/ossim/RadarSat/Trailer/Trailer.h
@@ -13,10 +13,10 @@
 #define Trailer_h
 
 #include <iostream>
-#include <RadarSat/Leader/FileDescriptor.h>
-#include <RadarSat/Leader/DataSetSummary.h>
-#include <RadarSat/Leader/DataQuality.h>
-#include <RadarSat/Leader/DataHistogramSignalData.h>
+#include <RadarSat/CommonRecord/FileDescriptor.h>
+#include <RadarSat/CommonRecord/DataSetSummary.h>
+#include <RadarSat/CommonRecord/DataQuality.h>
+#include <RadarSat/CommonRecord/DataHistogramSignalData.h>
 #include <map>
 
 namespace ossimplugins
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/Trailer/TrailerFactory.cpp b/Utilities/otbossimplugins/ossim/RadarSat/Trailer/TrailerFactory.cpp
index 50b165adf3d4f555f41f09a0cfc07798ba3025d9..c984ff6d7f5013fec61a7b7cd1a600a80fc855b8 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/Trailer/TrailerFactory.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/Trailer/TrailerFactory.cpp
@@ -11,15 +11,15 @@
 
 #include <RadarSat/Trailer/TrailerFactory.h>
 
-#include <RadarSat/Leader/DataHistogramSignalData.h>
-#include <RadarSat/Leader/DataQuality.h>
-#include <RadarSat/Leader/DataSetSummary.h>
-#include <RadarSat/Leader/FileDescriptor.h>
+#include <RadarSat/CommonRecord/DataHistogramSignalData.h>
+#include <RadarSat/CommonRecord/DataQuality.h>
+#include <RadarSat/CommonRecord/DataSetSummary.h>
+#include <RadarSat/CommonRecord/FileDescriptor.h>
 #include <RadarSat/Leader/DataHistogramProcessedData.h>
-#include <RadarSat/Leader/ProcessingParameters.h>
-#include <RadarSat/Leader/AttitudeData.h>
-#include <RadarSat/Leader/RadiometricData.h>
-#include <RadarSat/Leader/RadiometricCompensationData.h>
+#include <RadarSat/CommonRecord/ProcessingParameters.h>
+#include <RadarSat/CommonRecord/AttitudeData.h>
+#include <RadarSat/CommonRecord/RadiometricData.h>
+#include <RadarSat/CommonRecord/RadiometricCompensationData.h>
 
 namespace ossimplugins
 {
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/FilePointerRecord.cpp b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/FilePointerRecord.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..04c45b23337881ef53e323502360b15e48fa85ca
--- /dev/null
+++ b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/FilePointerRecord.cpp
@@ -0,0 +1,163 @@
+//----------------------------------------------------------------------------
+//
+// "Copyright Centre National d'Etudes Spatiales"
+//
+// License:  LGPL
+//
+// See LICENSE.txt file in the top level directory for more details.
+//
+//----------------------------------------------------------------------------
+// $Id$
+
+#include "FilePointerRecord.h"
+
+namespace ossimplugins
+{
+FilePointerRecord::FilePointerRecord() : RadarSatRecord("file_pntr_rec")
+{
+}
+
+FilePointerRecord::~FilePointerRecord()
+{
+}
+
+std::ostream& operator<<(std::ostream& os, const FilePointerRecord& data)
+{
+  os<<"ascii_flag:"<<data._ascii_flag.c_str()<<std::endl;
+  os<<"file_num:"<<data._file_num<<std::endl;
+  os<<"file_name:"<<data._file_name.c_str()<<std::endl;
+  os<<"file_class:"<<data._file_class.c_str()<<std::endl;
+  os<<"file_code:"<<data._file_code.c_str()<<std::endl;
+  os<<"data_type:"<<data._data_type.c_str()<<std::endl;
+  os<<"data_code:"<<data._data_code.c_str()<<std::endl;
+  os<<"nrec:"<<data._nrec<<std::endl;
+  os<<"first_len:"<<data._first_len<<std::endl;
+  os<<"max_len:"<<data._max_len<<std::endl;
+  os<<"len_type:"<<data._len_type.c_str()<<std::endl;
+  os<<"len_code:"<<data._len_code.c_str()<<std::endl;
+  os<<"first_phyvol:"<<data._first_phyvol<<std::endl;
+  os<<"last_phyvol:"<<data._last_phyvol<<std::endl;
+  os<<"first_rec:"<<data._first_rec<<std::endl;
+  os<<"last_rec:"<<data._last_rec<<std::endl;
+  return os;
+}
+
+std::istream& operator>>(std::istream& is, FilePointerRecord& data)
+{
+  char buf[349]; // 361-12 (size of header)
+  buf[348] = '\0';
+
+  is.read(buf, 2);
+  buf[2] = '\0';
+  data._ascii_flag = buf;
+
+  is.read(buf, 2); // spare1
+
+  is.read(buf, 4);
+  buf[4] = '\0';
+  data._file_num = atoi(buf);
+
+  is.read(buf, 16);
+  buf[16] = '\0';
+  data._file_name = buf;
+
+  is.read(buf, 28);
+  buf[28] = '\0';
+  data._file_class = buf;
+
+  is.read(buf, 4);
+  buf[4] = '\0';
+  data._file_code = buf;
+
+  is.read(buf, 28);
+  buf[28] = '\0';
+  data._data_type = buf;
+
+  is.read(buf, 4);
+  buf[4] = '\0';
+  data._data_code = buf;
+
+  is.read(buf, 8);
+  buf[8] = '\0';
+  data._nrec = atoi(buf);
+
+  is.read(buf, 8);
+  buf[8] = '\0';
+  data._first_len = atoi(buf);
+
+  is.read(buf, 8);
+  buf[8] = '\0';
+  data._max_len = atoi(buf);
+
+  is.read(buf, 12);
+  buf[12] = '\0';
+  data._len_type = buf;
+
+  is.read(buf, 4);
+  buf[4] = '\0';
+  data._len_code = buf;
+
+  is.read(buf, 2);
+  buf[2] = '\0';
+  data._first_phyvol = atoi(buf);
+
+  is.read(buf, 2);
+  buf[2] = '\0';
+  data._last_phyvol = atoi(buf);
+
+  is.read(buf, 8);
+  buf[8] = '\0';
+  data._first_rec = atoi(buf);
+
+  is.read(buf, 8);
+  buf[8] = '\0';
+  data._last_rec = atoi(buf);
+
+  is.read(buf, 100); // spare2
+
+  is.read(buf, 100); // spare3
+  return is;
+}
+
+FilePointerRecord::FilePointerRecord(const FilePointerRecord& rhs):
+  RadarSatRecord(rhs),
+  _ascii_flag(rhs._ascii_flag),
+  _file_num(rhs._file_num),
+  _file_name(rhs._file_name),
+  _file_class(rhs._file_class),
+  _file_code(rhs._file_code),
+  _data_type(rhs._data_type),
+  _data_code(rhs._data_code),
+  _nrec(rhs._nrec),
+  _first_len(rhs._first_len),
+  _max_len(rhs._max_len),
+  _len_type(rhs._len_type),
+  _len_code(rhs._len_code),
+  _first_phyvol(rhs._first_phyvol),
+  _last_phyvol(rhs._last_phyvol),
+  _first_rec(rhs._first_rec),
+  _last_rec(rhs._last_rec)
+{
+}
+
+FilePointerRecord& FilePointerRecord::operator=(const FilePointerRecord& rhs)
+{
+  _ascii_flag = rhs._ascii_flag;
+  _file_num = rhs._file_num;
+  _file_name = rhs._file_name;
+  _file_class = rhs._file_class;
+  _file_code = rhs._file_code;
+  _data_type = rhs._data_type;
+  _data_code = rhs._data_code;
+  _nrec = rhs._nrec;
+  _first_len = rhs._first_len;
+  _max_len = rhs._max_len;
+  _len_type = rhs._len_type;
+  _len_code = rhs._len_code;
+  _first_phyvol = rhs._first_phyvol;
+  _last_phyvol = rhs._last_phyvol;
+  _first_rec = rhs._first_rec;
+  _last_rec = rhs._last_rec;
+  return *this;
+}
+}
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/FilePointerRecord.h b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/FilePointerRecord.h
new file mode 100644
index 0000000000000000000000000000000000000000..915f2be246f840fb847070e7fc782af0a14d2152
--- /dev/null
+++ b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/FilePointerRecord.h
@@ -0,0 +1,305 @@
+//----------------------------------------------------------------------------
+//
+// "Copyright Centre National d'Etudes Spatiales"
+//
+// License:  LGPL
+//
+// See LICENSE.txt file in the top level directory for more details.
+//
+//----------------------------------------------------------------------------
+// $Id$
+
+#ifndef FilePointerRecord_h
+#define FilePointerRecord_h
+
+
+#include<iostream>
+#include <RadarSat/RadarSatRecordHeader.h>
+#include <RadarSat/RadarSatRecord.h>
+
+namespace ossimplugins
+{
+/**
+ * @ingroup SARLeaderFilePointerRecordRecord
+ * @brief This class is able to read the SAR leader file descriptor record of the leader file
+ */
+class FilePointerRecord : public RadarSatRecord
+{
+public:
+  /**
+   * @brief Constructor
+   */
+  FilePointerRecord();
+  /**
+   * @brief Destructor
+   */
+  virtual ~FilePointerRecord();
+
+  /**
+   * @brief This function writes the FilePointerRecord in a stream
+   */
+  friend std::ostream& operator<<(std::ostream& os, const FilePointerRecord& data);
+
+  /**
+   * @brief This function reads a FilePointerRecord from a stream
+   */
+  friend std::istream& operator>>(std::istream& is, FilePointerRecord& data);
+
+  /**
+   * @brief Copy constructor
+   */
+  FilePointerRecord(const FilePointerRecord& rhs);
+
+  /**
+   * @brief Copy operator
+   */
+  FilePointerRecord& operator=(const FilePointerRecord& rhs);
+
+  /**
+   * @brief This function is able to create a new instance of the class
+   */
+  RadarSatRecord* Instanciate()
+  {
+    return new FilePointerRecord();
+  };
+
+  /**
+   * @brief This function is able to create a new instance of the class initialised with the data of the calling instance
+   */
+  RadarSatRecord* Clone()
+  {
+    return new FilePointerRecord(*this);
+  };
+
+  /**
+   * @brief Reads the class data from a stream
+   */
+  void Read(std::istream& is)
+  {
+    is>>*this;
+  };
+
+  /**
+   * @brief Writes the class to a stream
+   */
+  void Write(std::ostream& os)
+  {
+    os<<*this;
+  };
+
+  /**
+   * @brief ASCII flag
+   */
+  std::string get_ascii_flag()
+  {
+    return _ascii_flag;
+  };
+
+  /**
+   * @brief Referenced file number
+   */
+  int get_file_num()
+  {
+    return _file_num;
+  };
+
+  /**
+   * @brief   Referenced file name
+   */
+  std::string get_file_name()
+  {
+    return _file_name;
+  };
+
+  /**
+   * @brief   Referenced file class
+   */
+  std::string get_file_class()
+  {
+    return _file_class;
+  };
+
+  /**
+   * @brief   Referenced file class code
+   */
+  std::string get_file_code()
+  {
+    return _file_code;
+  };
+
+  /**
+   * @brief   Referenced file data type
+   */
+  std::string get_data_type()
+  {
+    return _data_type;
+  };
+
+  /**
+   * @brief   Referenced file data type code
+   */
+  std::string get_data_code()
+  {
+    return _data_code;
+  };
+
+  /**
+   * @brief   Referenced file record count
+   */
+  int get_nrec()
+  {
+    return _nrec;
+  };
+
+  /**
+   * @brief  First record length, bytes
+   */
+  int get_first_len()
+  {
+    return _first_len;
+  };
+
+  /**
+   * @brief   Maximum record length, bytes
+   */
+  int get_max_len()
+  {
+    return _max_len;
+  };
+
+  /**
+   * @brief   Record length type
+   */
+  std::string get_len_type()
+  {
+    return _len_type;
+  };
+
+  /**
+   * @brief   Record length type code
+   */
+  std::string get_len_code()
+  {
+    return _len_code;
+  };
+
+  /**
+   * @brief   First physical volume
+   */
+  int get_first_phyvol()
+  {
+    return _first_phyvol;
+  };
+
+  /**
+   * @brief   Last physical volume
+   */
+  int get_last_phyvol()
+  {
+    return _last_phyvol;
+  };
+
+  /**
+   * @brief   First physical volume record
+   */
+  int get_first_rec()
+  {
+    return _first_rec;
+  };
+
+  /**
+   * @brief   Last physical volume record
+   */
+  int get_last_rec()
+  {
+    return _last_rec;
+  };
+
+protected:
+  /**
+   * @brief ASCII flag
+   */
+  std::string _ascii_flag;
+
+  /**
+   * @brief Referenced file number
+   */
+  int _file_num;
+
+  /**
+   * @brief   Referenced file name
+   */
+  std::string _file_name;
+
+  /**
+   * @brief   Referenced file class
+   */
+  std::string _file_class;
+
+  /**
+   * @brief   Referenced file class code
+   */
+  std::string _file_code;
+
+  /**
+   * @brief   Referenced file data type
+   */
+  std::string _data_type;
+
+  /**
+   * @brief   Referenced file data type code
+   */
+  std::string _data_code;
+
+  /**
+   * @brief   Referenced file record count
+   */
+  int _nrec;
+
+  /**
+   * @brief  First record length, bytes
+   */
+  int _first_len;
+
+  /**
+   * @brief   Maximum record length, bytes
+   */
+  int _max_len;
+
+  /**
+   * @brief   Record length type
+   */
+  std::string _len_type;
+
+  /**
+   * @brief   Record length type code
+   */
+  std::string _len_code;
+
+  /**
+   * @brief   First physical volume
+   */
+  int _first_phyvol;
+
+  /**
+   * @brief   Last physical volume
+   */
+  int _last_phyvol;
+
+  /**
+   * @brief   First physical volume record
+   */
+  int _first_rec;
+
+  /**
+   * @brief   Last physical volume record
+   */
+  int _last_rec;
+
+private:
+};
+typedef FilePointerRecord SARLeaderFilePointerRecord;
+typedef FilePointerRecord ImageOptionsFilePointerRecord;
+typedef FilePointerRecord SARTrailerFilePointerRecord;
+}
+#endif
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/TextRecord.cpp b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/TextRecord.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..167689e7464e0c9b578ebd0940f5287e4dbf0b40
--- /dev/null
+++ b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/TextRecord.cpp
@@ -0,0 +1,104 @@
+//----------------------------------------------------------------------------
+//
+// "Copyright Centre National d'Etudes Spatiales"
+//
+// License:  LGPL
+//
+// See LICENSE.txt file in the top level directory for more details.
+//
+//----------------------------------------------------------------------------
+// $Id$
+
+#include "TextRecord.h"
+
+namespace ossimplugins
+{
+TextRecord::TextRecord() : RadarSatRecord("text_rec")
+{
+}
+
+TextRecord::~TextRecord()
+{
+}
+
+std::ostream& operator<<(std::ostream& os, const TextRecord& data)
+{
+  os<<"ascii_flag:"<<data._ascii_flag.c_str()<<std::endl;
+  os<<"cont_flag:"<<data._cont_flag.c_str()<<std::endl;
+  os<<"product_type:"<<data._product_type.c_str()<<std::endl;
+  os<<"product_create:"<<data._product_create.c_str()<<std::endl;
+  os<<"phyvol_id:"<<data._phyvol_id.c_str()<<std::endl;
+  os<<"scene_id:"<<data._scene_id.c_str()<<std::endl;
+  os<<"scene_loc:"<<data._scene_loc.c_str()<<std::endl;
+  os<<"copyright_info:"<<data._copyright_info.c_str()<<std::endl;
+  return os;
+}
+
+std::istream& operator>>(std::istream& is, TextRecord& data)
+{
+  char buf[349]; // 361-12
+  buf[348] = '\0';
+
+  is.read(buf, 2);
+  buf[2] = '\0';
+  data._ascii_flag = buf;
+
+  is.read(buf, 2);
+  buf[2] = '\0';
+  data._cont_flag = buf;
+
+  is.read(buf, 40);
+  buf[40] = '\0';
+  data._product_type = buf;
+
+  is.read(buf, 60);
+  buf[60] = '\0';
+  data._product_create = buf;
+
+  is.read(buf, 40);
+  buf[40] = '\0';
+  data._phyvol_id = buf;
+
+  is.read(buf, 40);
+  buf[40] = '\0';
+  data._scene_id = buf;
+
+  is.read(buf, 40);
+  buf[40] = '\0';
+  data._scene_loc = buf;
+
+  is.read(buf, 20);
+  buf[20] = '\0';
+  data._copyright_info = buf;
+
+  is.read(buf, 104); // spare1
+
+  return is;
+}
+
+TextRecord::TextRecord(const TextRecord& rhs):
+  RadarSatRecord(rhs),
+  _ascii_flag(rhs._ascii_flag),
+  _cont_flag(rhs._cont_flag),
+  _product_type(rhs._product_type),
+  _product_create(rhs._product_create),
+  _phyvol_id(rhs._phyvol_id),
+  _scene_id(rhs._scene_id),
+  _scene_loc(rhs._scene_loc),
+  _copyright_info(rhs._copyright_info)
+{
+}
+
+TextRecord& TextRecord::operator=(const TextRecord& rhs)
+{
+  _ascii_flag = rhs._ascii_flag;
+  _cont_flag = rhs._cont_flag;
+  _product_type = rhs._product_type;
+  _product_create = rhs._product_create;
+  _phyvol_id = rhs._phyvol_id;
+  _scene_id = rhs._scene_id;
+  _scene_loc = rhs._scene_loc;
+  _copyright_info = rhs._copyright_info;
+  return *this;
+}
+}
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/TextRecord.h b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/TextRecord.h
new file mode 100644
index 0000000000000000000000000000000000000000..2403def26e5be7812a759b80dd36c70762eef31f
--- /dev/null
+++ b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/TextRecord.h
@@ -0,0 +1,199 @@
+//----------------------------------------------------------------------------
+//
+// "Copyright Centre National d'Etudes Spatiales"
+//
+// License:  LGPL
+//
+// See LICENSE.txt file in the top level directory for more details.
+//
+//----------------------------------------------------------------------------
+// $Id$
+
+#ifndef TextRecord_h
+#define TextRecord_h
+
+
+#include<iostream>
+#include <RadarSat/RadarSatRecordHeader.h>
+#include <RadarSat/RadarSatRecord.h>
+
+namespace ossimplugins
+{
+/**
+ * @ingroup TextRecordRecord
+ * @brief This class is able to read the Text record of the volume directory file
+ */
+class TextRecord : public RadarSatRecord
+{
+public:
+  /**
+   * @brief Constructor
+   */
+  TextRecord();
+  /**
+   * @brief Destructor
+   */
+  virtual ~TextRecord();
+
+  /**
+   * @brief This function writes the TextRecord in a stream
+   */
+  friend std::ostream& operator<<(std::ostream& os, const TextRecord& data);
+
+  /**
+   * @brief This function reads a TextRecord from a stream
+   */
+  friend std::istream& operator>>(std::istream& is, TextRecord& data);
+
+  /**
+   * @brief Copy constructor
+   */
+  TextRecord(const TextRecord& rhs);
+
+  /**
+   * @brief Copy operator
+   */
+  TextRecord& operator=(const TextRecord& rhs);
+
+  /**
+   * @brief This function is able to create a new instance of the class
+   */
+  RadarSatRecord* Instanciate()
+  {
+    return new TextRecord();
+  };
+
+  /**
+   * @brief This function is able to create a new instance of the class initialised with the data of the calling instance
+   */
+  RadarSatRecord* Clone()
+  {
+    return new TextRecord(*this);
+  };
+
+  /**
+   * @brief Reads the class data from a stream
+   */
+  void Read(std::istream& is)
+  {
+    is>>*this;
+  };
+
+  /**
+   * @brief Writes the class to a stream
+   */
+  void Write(std::ostream& os)
+  {
+    os<<*this;
+  };
+
+  /**
+   * @brief ASCII flag
+   */
+  std::string get_ascii_flag()
+  {
+    return _ascii_flag;
+  };
+
+  /**
+   * @brief Continuation flag
+   */
+  std::string get_cont_flag()
+  {
+    return _cont_flag;
+  };
+
+  /**
+   * @brief   Product type specifier
+   */
+  std::string get_product_type()
+  {
+    return _product_type;
+  };
+
+  /**
+   * @brief Product creation info
+   */
+  std::string get_product_create()
+  {
+    return _product_create;
+  };
+
+  /**
+   * @brief Volume Description Record
+   */
+  std::string get_phyvol_id()
+  {
+    return _phyvol_id;
+  };
+
+  /**
+   * @brief Scene identifier
+   */
+  std::string get_scene_id()
+  {
+    return _scene_id;
+  };
+
+  /**
+   * @brief Scene location
+   */
+  std::string get_scene_loc()
+  {
+    return _scene_loc;
+  };
+
+  /**
+   * @brief Copyright
+   */
+  std::string get_copyright_info()
+  {
+    return _copyright_info;
+  };
+
+
+protected:
+  /**
+   * @brief ASCII flag
+   */
+  std::string _ascii_flag;
+
+  /**
+   * @brief Continuation flag
+   */
+  std::string _cont_flag;
+
+  /**
+   * @brief   Product type specifier
+   */
+  std::string _product_type;
+
+  /**
+   * @brief Product creation info
+   */
+  std::string _product_create ;
+
+  /**
+   * @brief Volume Description Record
+   */
+  std::string _phyvol_id;
+
+  /**
+   * @brief Scene identifier
+   */
+  std::string _scene_id;
+
+  /**
+   * @brief Scene location
+   */
+  std::string _scene_loc;
+
+  /**
+   * @brief Copyright
+   */
+  std::string _copyright_info;
+
+private:
+};
+}
+#endif
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDescriptorRecord.cpp b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDescriptorRecord.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..cabea852b44531d91d4c84a485f0aa5de260a47e
--- /dev/null
+++ b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDescriptorRecord.cpp
@@ -0,0 +1,213 @@
+//----------------------------------------------------------------------------
+//
+// "Copyright Centre National d'Etudes Spatiales"
+//
+// License:  LGPL
+//
+// See LICENSE.txt file in the top level directory for more details.
+//
+//----------------------------------------------------------------------------
+// $Id$
+
+#include "VolumeDescriptorRecord.h"
+
+namespace ossimplugins
+{
+VolumeDescriptorRecord::VolumeDescriptorRecord() : RadarSatRecord("vol_desc_rec")
+{
+}
+
+VolumeDescriptorRecord::~VolumeDescriptorRecord()
+{
+}
+
+std::ostream& operator<<(std::ostream& os, const VolumeDescriptorRecord& data)
+{
+  os<<"ascii_flag:"<<data._ascii_flag.c_str()<<std::endl;
+  os<<"format_doc:"<<data._format_doc.c_str()<<std::endl;
+  os<<"format_ver:"<<data._format_ver.c_str()<<std::endl;
+  os<<"format_rev:"<<data._format_rev.c_str()<<std::endl;
+  os<<"software_id:"<<data._software_id.c_str()<<std::endl;
+  os<<"phyvol_id:"<<data._phyvol_id.c_str()<<std::endl;
+  os<<"logvol_id:"<<data._logvol_id.c_str()<<std::endl;
+  os<<"volset_id:"<<data._volset_id.c_str()<<std::endl;
+  os<<"phyvol_cnt:"<<data._phyvol_cnt<<std::endl;
+  os<<"first_phyvol:"<<data._first_phyvol<<std::endl;
+  os<<"last_phyvol:"<<data._last_phyvol<<std::endl;
+  os<<"curr_phyvol:"<<data._curr_phyvol<<std::endl;
+  os<<"first_file:"<<data._first_file<<std::endl;
+  os<<"volset_log:"<<data._volset_log<<std::endl;
+  os<<"logvol_date:"<<data._logvol_date<<std::endl;
+  os<<"logvol_time:"<<data._logvol_time.c_str()<<std::endl;
+  os<<"logvol_country:"<<data._logvol_country.c_str()<<std::endl;
+  os<<"logvol_agency:"<<data._logvol_agency.c_str()<<std::endl;
+  os<<"logvol_facility:"<<data._logvol_facility.c_str()<<std::endl;
+  os<<"n_filepoint:"<<data._n_filepoint<<std::endl;
+  os<<"n_voldir:"<<data._n_voldir<<std::endl;
+  os<<"product_id:"<<data._product_id.c_str()<<std::endl;
+
+
+  return os;
+}
+
+std::istream& operator>>(std::istream& is, VolumeDescriptorRecord& data)
+{
+  char buf[349]; // 361-12
+    buf[348] = '\0';
+
+    is.read(buf,2);
+    buf[2] = '\0';
+    data._ascii_flag = buf;
+
+    is.read(buf,2); // spare1
+
+    is.read(buf,12);
+    buf[12] = '\0';
+    data._format_doc = buf;
+
+    is.read(buf,2);
+    buf[2] = '\0';
+    data._format_ver = buf;
+
+    is.read(buf,2);
+    buf[2] = '\0';
+    data._format_rev = buf;
+
+    is.read(buf,12);
+    buf[12] = '\0';
+    data._software_id = buf;
+
+    is.read(buf,16);
+    buf[16] = '\0';
+    data._phyvol_id = buf;
+
+    is.read(buf,16);
+    buf[16] = '\0';
+    data._logvol_id = buf;
+
+    is.read(buf,16);
+    buf[16] = '\0';
+    data._volset_id = buf;
+
+    is.read(buf,2);
+    buf[2] = '\0';
+    data._phyvol_cnt = atoi(buf);
+
+    is.read(buf,2);
+    buf[2] = '\0';
+    data._first_phyvol = atoi(buf);
+
+    is.read(buf,2);
+    buf[2] = '\0';
+    data._last_phyvol = atoi(buf);
+
+    is.read(buf,2);
+    buf[2] = '\0';
+    data._curr_phyvol = atoi(buf);
+
+    is.read(buf,4);
+    buf[4] = '\0';
+    data._first_file = atoi(buf);
+
+    is.read(buf,4);
+    buf[4] = '\0';
+    data._volset_log = atoi(buf);
+
+    is.read(buf,4);
+    buf[4] = '\0';
+    data._phyvol_log = atoi(buf);
+
+    is.read(buf,8);
+    buf[8] = '\0';
+    data._logvol_date = buf;
+
+    is.read(buf,8);
+    buf[8] = '\0';
+    data._logvol_time = buf;
+
+    is.read(buf,12);
+    buf[12] = '\0';
+    data._logvol_country = buf;
+
+
+    is.read(buf,8);
+    buf[8] = '\0';
+    data._logvol_agency = buf;
+
+    is.read(buf,12);
+    buf[12] = '\0';
+    data._logvol_facility = buf;
+
+    is.read(buf,4);
+    buf[4] = '\0';
+    data._n_filepoint = atoi(buf);
+
+    is.read(buf,4);
+    buf[4] = '\0';
+    data._n_voldir = atoi(buf);
+
+    is.read(buf,92); // spare2
+
+    is.read(buf,8);
+    buf[8] = '\0';
+    data._product_id = buf;
+
+    is.read(buf,92); // spare3
+
+  return is;
+}
+
+VolumeDescriptorRecord::VolumeDescriptorRecord(const VolumeDescriptorRecord& rhs):
+  RadarSatRecord(rhs),
+  _ascii_flag(rhs._ascii_flag),
+  _format_doc(rhs._format_doc),
+  _format_ver(rhs._format_ver),
+  _format_rev(rhs._format_rev),
+  _software_id(rhs._software_id),
+  _phyvol_id(rhs._phyvol_id),
+  _logvol_id(rhs._logvol_id),
+  _volset_id(rhs._volset_id),
+  _phyvol_cnt(rhs._phyvol_cnt),
+  _first_phyvol(rhs._first_phyvol),
+  _last_phyvol(rhs._last_phyvol),
+  _curr_phyvol(rhs._curr_phyvol),
+  _first_file(rhs._first_file),
+  _volset_log(rhs._volset_log),
+  _logvol_date(rhs._logvol_date),
+  _logvol_time(rhs._logvol_time),
+  _logvol_country(rhs._logvol_country),
+  _logvol_agency(rhs._logvol_agency),
+  _logvol_facility(rhs._logvol_facility),
+  _n_filepoint(rhs._n_filepoint),
+  _n_voldir(rhs._n_voldir),
+  _product_id(rhs._product_id)
+{
+}
+
+VolumeDescriptorRecord& VolumeDescriptorRecord::operator=(const VolumeDescriptorRecord& rhs)
+{
+  _ascii_flag = rhs._ascii_flag;
+  _format_doc = rhs._format_doc;
+  _format_ver = rhs._format_ver;
+  _format_rev = rhs._format_rev;
+  _software_id = rhs._software_id;
+  _phyvol_id = rhs._phyvol_id;
+  _logvol_id = rhs._logvol_id;
+  _volset_id = rhs._volset_id;
+  _phyvol_cnt = rhs._phyvol_cnt;
+  _first_phyvol = rhs._first_phyvol;
+  _last_phyvol = rhs._last_phyvol;
+  _curr_phyvol = rhs._curr_phyvol;
+  _first_file = rhs._first_file;
+  _volset_log = rhs._volset_log;
+  _logvol_date = rhs._logvol_date;
+  _logvol_time = rhs._logvol_time;
+  _logvol_country = rhs._logvol_country;
+  _logvol_agency = rhs._logvol_agency;
+  _logvol_facility = rhs._logvol_facility;
+  _n_filepoint = rhs._n_filepoint;
+  _n_voldir = rhs._n_voldir;
+  _product_id = rhs._product_id;
+  return *this;
+}
+}
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDescriptorRecord.h b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDescriptorRecord.h
new file mode 100644
index 0000000000000000000000000000000000000000..eb12ebfd742a5b64abb0bb716efe4cf564b09523
--- /dev/null
+++ b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDescriptorRecord.h
@@ -0,0 +1,393 @@
+//----------------------------------------------------------------------------
+//
+// "Copyright Centre National d'Etudes Spatiales"
+//
+// License:  LGPL
+//
+// See LICENSE.txt file in the top level directory for more details.
+//
+//----------------------------------------------------------------------------
+// $Id$
+
+#ifndef VolumeDescriptorRecord_h
+#define VolumeDescriptorRecord_h
+
+
+#include<iostream>
+#include <RadarSat/RadarSatRecordHeader.h>
+#include <RadarSat/RadarSatRecord.h>
+
+namespace ossimplugins
+{
+/**
+ * @ingroup SARLeaderVolumeDescriptorRecordRecord
+ * @brief This class is able to read the SAR leader file descriptor record of the leader file
+ */
+class VolumeDescriptorRecord : public RadarSatRecord
+{
+public:
+  /**
+   * @brief Constructor
+   */
+  VolumeDescriptorRecord();
+  /**
+   * @brief Destructor
+   */
+  virtual ~VolumeDescriptorRecord();
+
+  /**
+   * @brief This function writes the VolumeDescriptorRecord in a stream
+   */
+  friend std::ostream& operator<<(std::ostream& os, const VolumeDescriptorRecord& data);
+
+  /**
+   * @brief This function reads a VolumeDescriptorRecord from a stream
+   */
+  friend std::istream& operator>>(std::istream& is, VolumeDescriptorRecord& data);
+
+  /**
+   * @brief Copy constructor
+   */
+  VolumeDescriptorRecord(const VolumeDescriptorRecord& rhs);
+
+  /**
+   * @brief Copy operator
+   */
+  VolumeDescriptorRecord& operator=(const VolumeDescriptorRecord& rhs);
+
+  /**
+   * @brief This function is able to create a new instance of the class
+   */
+  RadarSatRecord* Instanciate()
+  {
+    return new VolumeDescriptorRecord();
+  };
+
+  /**
+   * @brief This function is able to create a new instance of the class initialised with the data of the calling instance
+   */
+  RadarSatRecord* Clone()
+  {
+    return new VolumeDescriptorRecord(*this);
+  };
+
+  /**
+   * @brief Reads the class data from a stream
+   */
+  void Read(std::istream& is)
+  {
+    is>>*this;
+  };
+
+  /**
+   * @brief Writes the class to a stream
+   */
+  void Write(std::ostream& os)
+  {
+    os<<*this;
+  };
+
+  /**
+   * @brief ASCII flag
+   */
+  std::string get_ascii_flag()
+  {
+    return _ascii_flag;
+  };
+  /**
+   * @brief Format control documentation
+   */
+  std::string get_format_doc()
+  {
+    return _format_doc;
+  };
+
+  /**
+   * @brief Format doc version
+   */
+  std::string get_format_ver()
+  {
+    return _format_ver;
+  };
+
+  /**
+   * @brief Format doc revision
+   */
+  std::string getget_format_rev()
+  {
+    return _format_rev;
+  };
+
+  /**
+   * @brief Software identifier
+   */
+  std::string get_software_id()
+  {
+    return _software_id;
+  };
+
+  /**
+   * @brief Physical volume identifier
+   */
+  std::string get_phyvol_id()
+  {
+    return _phyvol_id;
+  };
+
+  /**
+   * @brief Logical volume identifier
+   */
+  std::string get_logvol_id()
+  {
+    return _logvol_id;
+  };
+
+  /**
+   * @brief Volume set identifier
+   */
+  std::string get_volset_id()
+  {
+    return _volset_id;
+  };
+
+  /**
+   * @brief Total physical volume count
+   */
+  int get_phyvol_cnt()
+  {
+    return _phyvol_cnt;
+  };
+
+  /**
+   * @brief Physical volume of first tape
+   */
+  int get_first_phyvol()
+  {
+    return _first_phyvol;
+  };
+
+  /**
+   * @brief Physical volume of last tape
+   */
+  int get_last_phyvol()
+  {
+    return _last_phyvol;
+  };
+
+  /**
+   * @brief Physical volume of current tape
+   */
+  int get_curr_phyvol()
+  {
+    return _curr_phyvol;
+  };
+
+  /**
+   * @brief First file number in physical volume
+   */
+  int get_first_file()
+  {
+    return _first_file;
+  };
+
+  /**
+   * @brief Logical volume within set
+   */
+  int get_volset_log()
+  {
+    return _volset_log;
+  };
+
+  /**
+   * @brief Logical volume within phyvol
+   */
+  int get_phyvol_log()
+  {
+    return _phyvol_log;
+  };
+
+  /**
+   * @brief Logvol creation date
+   */
+  std::string get_logvol_date()
+  {
+    return _logvol_date;
+  };
+
+  /**
+   * @brief Logvol creation time
+   */
+  std::string get_logvol_time()
+  {
+    return _logvol_time;
+  };
+
+  /**
+   * @brief Logvol generation country
+   */
+  std::string get_logvol_country()
+  {
+    return _logvol_country;
+  };
+
+  /**
+   * @brief Logvol generation agency
+   */
+  std::string get_logvol_agency()
+  {
+    return _logvol_agency;
+  };
+
+  /**
+   * @brief Logvol generation facility
+   */
+  std::string get_logvol_facility()
+  {
+    return _logvol_facility;
+  };
+
+  /**
+   * @brief Number of file pointer records
+   */
+  int get_n_filepoint()
+  {
+    return _n_filepoint;
+  };
+
+  /**
+   * @brief Number of records in volume directory file
+   */
+  int get_n_voldir()
+  {
+    return _n_voldir;
+  };
+
+  /**
+   * @brief Product identifier
+   */
+  std::string get_product_id()
+  {
+    return _product_id;
+  };
+
+protected:
+  /**
+   * @brief ASCII flag
+   */
+  std::string _ascii_flag;
+
+  /**
+   * @brief Format control documentation
+   */
+  std::string _format_doc;
+
+  /**
+   * @brief Format doc version
+   */
+  std::string _format_ver;
+
+  /**
+   * @brief Format doc revision
+   */
+  std::string _format_rev;
+
+  /**
+   * @brief Software identifier
+   */
+  std::string _software_id;
+
+  /**
+   * @brief Physical volume identifier
+   */
+  std::string _phyvol_id;
+
+  /**
+   * @brief Logical volume identifier
+   */
+  std::string _logvol_id;
+
+  /**
+   * @brief Volume set identifier
+   */
+  std::string _volset_id;
+
+  /**
+   * @brief Total physical volume count
+   */
+  int _phyvol_cnt;
+
+  /**
+   * @brief Physical volume of first tape
+   */
+  int _first_phyvol;
+
+  /**
+   * @brief Physical volume of last tape
+   */
+  int _last_phyvol;
+
+  /**
+   * @brief Physical volume of current tape
+   */
+  int _curr_phyvol;
+
+  /**
+   * @brief First file number in physical volume
+   */
+  int _first_file;
+
+  /**
+   * @brief Logical volume within set
+   */
+  int _volset_log;
+
+  /**
+   * @brief Logical volume within phyvol
+   */
+  int _phyvol_log;
+
+  /**
+   * @brief Logvol creation date
+   */
+  std::string _logvol_date;
+
+  /**
+   * @brief Logvol creation time
+   */
+  std::string _logvol_time;
+
+  /**
+   * @brief Logvol generation country
+   */
+  std::string _logvol_country;
+
+  /**
+   * @brief Logvol generation agency
+   */
+  std::string _logvol_agency;
+
+  /**
+   * @brief Logvol generation facility
+   */
+  std::string _logvol_facility;
+
+  /**
+   * @brief Number of file pointer records
+   */
+  int _n_filepoint;
+
+  /**
+   * @brief Number of records in volume directory file
+   */
+  int _n_voldir;
+
+  /**
+   * @brief Product identifier
+   */
+    std::string _product_id;
+
+
+private:
+};
+}
+#endif
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDir.cpp b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDir.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..8c5e993d6b21e59ca248f3fbb72c7f092b0562df
--- /dev/null
+++ b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDir.cpp
@@ -0,0 +1,139 @@
+//----------------------------------------------------------------------------
+//
+// "Copyright Centre National d'Etudes Spatiales"
+//
+// License:  LGPL
+//
+// See LICENSE.txt file in the top level directory for more details.
+//
+//----------------------------------------------------------------------------
+// $Id$
+
+#include <RadarSat/VolumeDir/VolumeDir.h>
+#include <RadarSat/VolumeDir/VolumeDirFactory.h>
+#include <RadarSat/RadarSatRecordHeader.h>
+
+
+namespace ossimplugins
+{
+const int VolumeDir::TextRecordID = 1;
+const int VolumeDir::SARLeaderFilePointerRecordID = 2;
+const int VolumeDir::ImageOptionsFilePointerRecordID = 3;
+const int VolumeDir::SARTrailerFilePointerRecordID = 4;
+const int VolumeDir::VolumeDescriptorRecordID = 5;
+
+VolumeDir::VolumeDir()
+{
+}
+
+VolumeDir::~VolumeDir()
+{
+  ClearRecords();
+}
+
+std::ostream& operator<<(std::ostream& os, const VolumeDir& data)
+{
+  std::map<int, RadarSatRecord*>::const_iterator it = data._records.begin();
+  while(it != data._records.end())
+  {
+    (*it).second->Write(os);
+    ++it;
+  }
+  return os;
+
+}
+
+std::istream& operator>>(std::istream& is, VolumeDir& data)
+{
+  VolumeDirFactory factory;
+
+  data.ClearRecords();
+
+  RadarSatRecordHeader header;
+  bool eof = false;
+  while(!eof)
+  {
+    is>>header;
+    if(is.eof())
+    {
+      eof = true;
+    }
+    else
+    {
+      RadarSatRecord* record = factory.Instanciate(header.get_rec_seq());
+      if (record != NULL)
+      {
+        record->Read(is);
+        data._records[header.get_rec_seq()] = record;
+      }
+      else
+      {
+        char* buff = new char[header.get_length()-12];
+        is.read(buff, header.get_length()-12);
+        delete[] buff;
+      }
+    }
+  }
+  return is;
+}
+
+
+VolumeDir::VolumeDir(const VolumeDir& rhs)
+{
+  std::map<int, RadarSatRecord*>::const_iterator it = rhs._records.begin();
+  while(it != rhs._records.end())
+  {
+    _records[(*it).first] = (*it).second->Clone();
+    ++it;
+  }
+}
+
+VolumeDir& VolumeDir::operator=(const VolumeDir& rhs)
+{
+  ClearRecords();
+  std::map<int, RadarSatRecord*>::const_iterator it = rhs._records.begin();
+  while(it != rhs._records.end())
+  {
+    _records[(*it).first] = (*it).second->Clone();
+    ++it;
+  }
+
+  return *this;
+}
+
+void VolumeDir::ClearRecords()
+{
+  std::map<int, RadarSatRecord*>::const_iterator it = _records.begin();
+  while(it != _records.end())
+  {
+    delete (*it).second;
+    ++it;
+  }
+  _records.clear();
+}
+
+SARLeaderFilePointerRecord * VolumeDir::get_SARLeaderFilePointerRecord()
+{
+  return (SARLeaderFilePointerRecord*)_records[SARLeaderFilePointerRecordID];
+}
+
+ImageOptionsFilePointerRecord * VolumeDir::get_ImageOptionsFilePointerRecord()
+{
+  return (ImageOptionsFilePointerRecord*)_records[ImageOptionsFilePointerRecordID];
+}
+
+SARTrailerFilePointerRecord * VolumeDir::get_SARTrailerFilePointerRecord()
+{
+  return (SARTrailerFilePointerRecord*)_records[SARTrailerFilePointerRecordID];
+}
+
+TextRecord * VolumeDir::get_TextRecord()
+{
+  return (TextRecord*)_records[TextRecordID];
+}
+
+VolumeDescriptorRecord * VolumeDir::get_VolumeDescriptorRecord()
+{
+  return (VolumeDescriptorRecord*)_records[VolumeDescriptorRecordID];
+}
+}
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDir.h b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDir.h
new file mode 100644
index 0000000000000000000000000000000000000000..5375908f797585c2a279d57ee965c0d432663f7f
--- /dev/null
+++ b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDir.h
@@ -0,0 +1,91 @@
+//----------------------------------------------------------------------------
+//
+// "Copyright Centre National d'Etudes Spatiales"
+//
+// License:  LGPL
+//
+// See LICENSE.txt file in the top level directory for more details.
+//
+//----------------------------------------------------------------------------
+// $Id$
+
+#ifndef VolumeDir_h
+#define VolumeDir_h
+
+#include <iostream>
+#include <RadarSat/VolumeDir/FilePointerRecord.h>
+#include <RadarSat/VolumeDir/VolumeDescriptorRecord.h>
+#include <RadarSat/VolumeDir/TextRecord.h>
+#include <map>
+
+namespace ossimplugins
+{
+class FilePointerRecord;
+class TextRecord;
+class VolumeDescriptorRecord;
+
+/**
+ * @ingroup VolumeDirFile
+ * @brief This class is able to read the volume directory file of the RadarSat file structure
+ * @author CS, Mickaël Savinaud
+ * @version 1.0
+ * @date 25-02-2011
+ */
+class VolumeDir
+{
+public:
+  /**
+   * @brief Constructor
+   */
+  VolumeDir();
+
+  /**
+   * @brief Destructor
+   */
+  ~VolumeDir();
+
+  /**
+   * @brief This function writes the VolumeDir in a stream
+   */
+  friend std::ostream& operator<<(std::ostream& os, const VolumeDir& data);
+
+  /**
+   * @brief This function reads a VolumeDir from a stream
+   */
+  friend std::istream& operator>>(std::istream& is, VolumeDir& data);
+
+  /**
+   * @brief Copy constructor
+   */
+  VolumeDir(const VolumeDir& rhs);
+
+  /**
+   * @brief Copy operator
+   */
+  VolumeDir& operator=(const VolumeDir& rhs);
+
+  /**
+   * @brief Removes all the previous records from the VolumeDir
+   */
+  void ClearRecords();
+
+  VolumeDescriptorRecord * get_VolumeDescriptorRecord();
+  SARLeaderFilePointerRecord * get_SARLeaderFilePointerRecord();
+  ImageOptionsFilePointerRecord * get_ImageOptionsFilePointerRecord();
+  SARTrailerFilePointerRecord * get_SARTrailerFilePointerRecord();
+  TextRecord * get_TextRecord();
+
+protected:
+  std::map<int, RadarSatRecord*> _records;
+
+  static const int VolumeDescriptorRecordID;
+  static const int SARLeaderFilePointerRecordID;
+  static const int ImageOptionsFilePointerRecordID;
+  static const int SARTrailerFilePointerRecordID;
+  static const int TextRecordID;
+
+private:
+
+};
+}
+#endif
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDirFactory.cpp b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDirFactory.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..70c43794218156ef1753f39321a4e3ef1e7f8bff
--- /dev/null
+++ b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDirFactory.cpp
@@ -0,0 +1,47 @@
+//----------------------------------------------------------------------------
+//
+// "Copyright Centre National d'Etudes Spatiales"
+//
+// License:  LGPL
+//
+// See LICENSE.txt file in the top level directory for more details.
+//
+//----------------------------------------------------------------------------
+// $Id$
+
+#include <RadarSat/VolumeDir/VolumeDirFactory.h>
+
+#include <RadarSat/VolumeDir/FilePointerRecord.h>
+#include <RadarSat/VolumeDir/VolumeDescriptorRecord.h>
+#include <RadarSat/VolumeDir/TextRecord.h>
+
+
+namespace ossimplugins
+{
+VolumeDirFactory::VolumeDirFactory()
+{
+  RegisterRecord(1, new VolumeDescriptorRecord());
+  RegisterRecord(2, new SARLeaderFilePointerRecord());
+  RegisterRecord(3, new ImageOptionsFilePointerRecord());
+  RegisterRecord(4, new SARTrailerFilePointerRecord());
+  RegisterRecord(5, new TextRecord());
+}
+
+VolumeDirFactory::~VolumeDirFactory()
+{
+
+  std::map<int, RadarSatRecord*>::iterator i = _availableRecords.begin();
+
+  while (i != _availableRecords.end())
+  {
+     if ( (*i).second )
+     {
+        delete (*i).second;
+        (*i).second = 0;
+     }
+     ++i;
+  }
+  _availableRecords.clear();
+
+}
+}
diff --git a/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDirFactory.h b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDirFactory.h
new file mode 100644
index 0000000000000000000000000000000000000000..bc167b72d1aa79501f9e33869c66605b47d12736
--- /dev/null
+++ b/Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDirFactory.h
@@ -0,0 +1,44 @@
+//----------------------------------------------------------------------------
+//
+// "Copyright Centre National d'Etudes Spatiales"
+//
+// License:  LGPL
+//
+// See LICENSE.txt file in the top level directory for more details.
+//
+//----------------------------------------------------------------------------
+// $Id$
+
+#ifndef VolumeDirFactory_h
+#define VolumeDirFactory_h
+
+
+#include <RadarSat/RadarSatRecordFactory.h>
+#include <map>
+
+namespace ossimplugins
+{
+/**
+ * @ingroup VolumeDirFile
+ * @brief This class is a factory able to construct Record base classes
+ */
+class VolumeDirFactory : public RadarSatRecordFactory
+{
+public:
+  /**
+   * @brief Contstructor
+   */
+  VolumeDirFactory();
+  /**
+   * @brief Destructor
+   */
+  ~VolumeDirFactory();
+
+
+protected:
+
+
+private:
+};
+}
+#endif
diff --git a/Utilities/otbossimplugins/ossim/ossimRadarSatModel.cpp b/Utilities/otbossimplugins/ossim/ossimRadarSatModel.cpp
index f479a6b6379e8117796b3a1d234e436082c1ec54..92693b57d286d020dea48b76ed12a19acc5aed8d 100644
--- a/Utilities/otbossimplugins/ossim/ossimRadarSatModel.cpp
+++ b/Utilities/otbossimplugins/ossim/ossimRadarSatModel.cpp
@@ -31,7 +31,7 @@
 #include <RadarSat/Data/DataFactory.h>
 #include <RadarSat/Data/ImageOptionsFileDescriptor.h>
 #include <RadarSat/Data/ProcessedDataRecord.h>
-#include <RadarSat/Leader/ProcessingParameters.h>
+#include <RadarSat/CommonRecord/ProcessingParameters.h>
 #include <RadarSat/Leader/PlatformPositionData.h>
 
 namespace ossimplugins
@@ -49,7 +49,8 @@ ossimRadarSatModel::ossimRadarSatModel():
   _pixel_spacing(0),
   _data(NULL),
   _leader(NULL),
-  _trailer(NULL)
+  _trailer(NULL),
+  _volumeDir(NULL)
 {
 }
 
@@ -70,6 +71,10 @@ ossimRadarSatModel::~ossimRadarSatModel()
     delete _trailer;
   }
 
+  if (_volumeDir != 0)
+  {
+    delete _volumeDir;
+  }
 }
 
 ossimObject* ossimRadarSatModel::dup() const
@@ -118,6 +123,16 @@ bool ossimRadarSatModel::open(const ossimFilename& file)
 
   bool retValue = true;
   ossimFilename tempFilename = file;
+  /*
+   * Creation of the class allowing to store the metadata from the Volume Directory File
+   */
+  if (_volumeDir != NULL)
+    {
+    delete _volumeDir;
+    _volumeDir = NULL;
+    }
+  _volumeDir = new VolumeDir();
+
   /*
    * Creation of the class allowing to store the metadata from the Data file
    */
diff --git a/Utilities/otbossimplugins/ossim/ossimRadarSatModel.h b/Utilities/otbossimplugins/ossim/ossimRadarSatModel.h
index 4eb047c93c510595e9957f34fc05e66e4b4df820..7617ce1bc84aaa7a0eda364e350ff04f4522245f 100644
--- a/Utilities/otbossimplugins/ossim/ossimRadarSatModel.h
+++ b/Utilities/otbossimplugins/ossim/ossimRadarSatModel.h
@@ -23,6 +23,7 @@
 #include <RadarSat/Data/Data.h>
 #include <RadarSat/Leader/Leader.h>
 #include <RadarSat/Trailer/Trailer.h>
+#include <RadarSat/VolumeDir/VolumeDir.h>
 
 #include <iostream>
 
@@ -121,6 +122,11 @@ protected:
    */
   Trailer * _trailer;
 
+  /**
+   * @brief List of metadata contained in the Volume Directory file
+   */
+  VolumeDir * _volumeDir;
+
 private:
   virtual bool InitPlatformPosition(const ossimKeywordlist &kwl, const char *prefix);
   virtual bool InitSensorParams(const ossimKeywordlist &kwl, const char *prefix);