From 711ec256d80264e545deb4aa5bf2fb420e6cd638 Mon Sep 17 00:00:00 2001 From: Mickael Savinaud <mickael.savinaud@c-s.fr> Date: Tue, 1 Mar 2011 15:22:01 +0100 Subject: [PATCH] ENH: add and re-organise class to enable reading of different subProduct of RADARSAT1 (class are not used yet) --- .../{Leader => CommonRecord}/AttitudeData.cpp | 2 +- .../{Leader => CommonRecord}/AttitudeData.h | 2 +- .../BeamInformationRecord.cpp | 2 +- .../BeamInformationRecord.h | 0 .../BeamPixelCountRecord.cpp | 2 +- .../BeamPixelCountRecord.h | 0 .../CompensationDataRecord.cpp | 2 +- .../CompensationDataRecord.h | 0 .../DataHistogramRecord.cpp | 2 +- .../DataHistogramRecord.h | 0 .../DataHistogramSignalData.cpp | 2 +- .../DataHistogramSignalData.h | 2 +- .../DataPointDataRecord.cpp | 2 +- .../DataPointDataRecord.h | 0 .../{Leader => CommonRecord}/DataQuality.cpp | 2 +- .../{Leader => CommonRecord}/DataQuality.h | 4 +- .../DataSetSummary.cpp | 2 +- .../{Leader => CommonRecord}/DataSetSummary.h | 0 .../DopplerCentroidEstimateRecord.cpp | 2 +- .../DopplerCentroidEstimateRecord.h | 0 .../FileDescriptor.cpp | 2 +- .../{Leader => CommonRecord}/FileDescriptor.h | 0 .../MisregistrationRecord.cpp | 2 +- .../MisregistrationRecord.h | 0 .../ProcessingParameters.cpp | 2 +- .../ProcessingParameters.h | 10 +- .../RadiometricCompensationData.cpp | 2 +- .../RadiometricCompensationData.h | 2 +- .../RadiometricData.cpp | 2 +- .../RadiometricData.h | 0 .../RadiometryUncertaintyRecord.cpp | 2 +- .../RadiometryUncertaintyRecord.h | 0 .../SRGRCoefficientSetRecord.cpp | 2 +- .../SRGRCoefficientSetRecord.h | 0 .../TemperatureSettingsRecord.cpp | 2 +- .../TemperatureSettingsRecord.h | 0 .../Leader/DataHistogramProcessedData.h | 2 +- .../ossim/RadarSat/Leader/Leader.cpp | 18 +- .../ossim/RadarSat/Leader/Leader.h | 8 +- .../ossim/RadarSat/Leader/LeaderFactory.cpp | 16 +- .../ossim/RadarSat/Trailer/Trailer.cpp | 16 +- .../ossim/RadarSat/Trailer/Trailer.h | 8 +- .../ossim/RadarSat/Trailer/TrailerFactory.cpp | 16 +- .../RadarSat/VolumeDir/FilePointerRecord.cpp | 163 ++++++++ .../RadarSat/VolumeDir/FilePointerRecord.h | 305 ++++++++++++++ .../ossim/RadarSat/VolumeDir/TextRecord.cpp | 104 +++++ .../ossim/RadarSat/VolumeDir/TextRecord.h | 199 +++++++++ .../VolumeDir/VolumeDescriptorRecord.cpp | 213 ++++++++++ .../VolumeDir/VolumeDescriptorRecord.h | 393 ++++++++++++++++++ .../ossim/RadarSat/VolumeDir/VolumeDir.cpp | 139 +++++++ .../ossim/RadarSat/VolumeDir/VolumeDir.h | 91 ++++ .../RadarSat/VolumeDir/VolumeDirFactory.cpp | 47 +++ .../RadarSat/VolumeDir/VolumeDirFactory.h | 44 ++ .../ossim/ossimRadarSatModel.cpp | 19 +- .../ossim/ossimRadarSatModel.h | 6 + 55 files changed, 1792 insertions(+), 71 deletions(-) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/AttitudeData.cpp (97%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/AttitudeData.h (98%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/BeamInformationRecord.cpp (96%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/BeamInformationRecord.h (100%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/BeamPixelCountRecord.cpp (96%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/BeamPixelCountRecord.h (100%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/CompensationDataRecord.cpp (98%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/CompensationDataRecord.h (100%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/DataHistogramRecord.cpp (98%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/DataHistogramRecord.h (100%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/DataHistogramSignalData.cpp (97%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/DataHistogramSignalData.h (98%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/DataPointDataRecord.cpp (98%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/DataPointDataRecord.h (100%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/DataQuality.cpp (99%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/DataQuality.h (98%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/DataSetSummary.cpp (99%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/DataSetSummary.h (100%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/DopplerCentroidEstimateRecord.cpp (96%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/DopplerCentroidEstimateRecord.h (100%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/FileDescriptor.cpp (99%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/FileDescriptor.h (100%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/MisregistrationRecord.cpp (95%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/MisregistrationRecord.h (100%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/ProcessingParameters.cpp (99%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/ProcessingParameters.h (98%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/RadiometricCompensationData.cpp (96%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/RadiometricCompensationData.h (98%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/RadiometricData.cpp (98%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/RadiometricData.h (100%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/RadiometryUncertaintyRecord.cpp (95%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/RadiometryUncertaintyRecord.h (100%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/SRGRCoefficientSetRecord.cpp (96%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/SRGRCoefficientSetRecord.h (100%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/TemperatureSettingsRecord.cpp (95%) rename Utilities/otbossimplugins/ossim/RadarSat/{Leader => CommonRecord}/TemperatureSettingsRecord.h (100%) create mode 100644 Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/FilePointerRecord.cpp create mode 100644 Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/FilePointerRecord.h create mode 100644 Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/TextRecord.cpp create mode 100644 Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/TextRecord.h create mode 100644 Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDescriptorRecord.cpp create mode 100644 Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDescriptorRecord.h create mode 100644 Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDir.cpp create mode 100644 Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDir.h create mode 100644 Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDirFactory.cpp create mode 100644 Utilities/otbossimplugins/ossim/RadarSat/VolumeDir/VolumeDirFactory.h 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 ed786b1dc1..e5eb04555c 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 feacf416a6..483f65ee9c 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 9a897359a1..e3b9311246 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 b87cef1032..2788e46d55 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 953aa199dd..7fad21f8fa 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 4bcffd9a13..ba16b03668 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 e9fbf901c7..05cd9a3f72 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 dc334abccf..d57cbf435a 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 22b13f5358..d2e4245279 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 e74faa9a5d..521c052d22 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 980a4e0d41..a1575a7fc8 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 c79d84e772..180f028a1a 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 a21ab97145..22e563e2c0 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 112aeda16e..a86fa26b2d 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 707337d343..7b016d1e10 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 44b576c800..4cab356005 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 4f0101acc1..fea93d96e7 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 2a2210ad53..9f74e9f4b9 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 012899ebc7..bab56506c3 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 ee3cc3e07a..b8a4e4022e 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 1276bd93a4..11d3530a93 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 d9d499a725..2bb85d8a1a 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 1108ecafc8..363420df81 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 5421fcc245..d4cd6299d9 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 bb1a3494b3..fab314933d 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 d276d582f5..3adeca3c44 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 3b5bd1cded..2c1dad85d4 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 09e2f1b431..6d4b25e0e3 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 3b3b900700..a5125bbc0f 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 50b165adf3..c984ff6d7f 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 0000000000..04c45b2333 --- /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 0000000000..915f2be246 --- /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 0000000000..167689e746 --- /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 0000000000..2403def26e --- /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 0000000000..cabea852b4 --- /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 0000000000..eb12ebfd74 --- /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 0000000000..8c5e993d6b --- /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 0000000000..5375908f79 --- /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 0000000000..70c4379421 --- /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 0000000000..bc167b72d1 --- /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 f479a6b637..92693b57d2 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 4eb047c93c..7617ce1bc8 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); -- GitLab