diff --git a/Modules/Core/Metadata/include/otbMetadataSupplierInterface.h b/Modules/Core/Metadata/include/otbMetadataSupplierInterface.h index b78599207c2daad1dcb35584cf44d0d5f06e9564..edc5b2aa1d15c61da590fc67cfb25458073cba37 100644 --- a/Modules/Core/Metadata/include/otbMetadataSupplierInterface.h +++ b/Modules/Core/Metadata/include/otbMetadataSupplierInterface.h @@ -70,6 +70,8 @@ public: { bool hasValue; std::string ret = GetMetadataValue(path, hasValue, band); + std::cout << "hasValue : " << hasValue << std::endl ; + std::cout << "ret : " << ret << std::endl ; if (!hasValue) { otbGenericExceptionMacro(MissingMetadataException,<<"Missing metadata '"<<path<<"'") diff --git a/Modules/Core/Metadata/include/otbRadarsat2ImageMetadataInterface.h b/Modules/Core/Metadata/include/otbRadarsat2ImageMetadataInterface.h index 91fb7893b1622c0d27d6cc8ead2b0e0dec4e5643..36fece91a70ab87a7cfaa09180f302a1c484c4ff 100644 --- a/Modules/Core/Metadata/include/otbRadarsat2ImageMetadataInterface.h +++ b/Modules/Core/Metadata/include/otbRadarsat2ImageMetadataInterface.h @@ -98,6 +98,8 @@ public: /*get lookup data for calculating backscatter */ void CreateCalibrationLookupData(const short type) override; + void Parse(const MetadataSupplierInterface *) override; + protected: /* class constructor */ diff --git a/Modules/Core/Metadata/src/otbImageMetadataInterfaceBase.cxx b/Modules/Core/Metadata/src/otbImageMetadataInterfaceBase.cxx index 7d662a217eb6c8101c25a4a53406e729e252a935..afd58a4f6eadc54b88f8da071f2a17bd032deaf3 100644 --- a/Modules/Core/Metadata/src/otbImageMetadataInterfaceBase.cxx +++ b/Modules/Core/Metadata/src/otbImageMetadataInterfaceBase.cxx @@ -661,12 +661,15 @@ ImageMetadataInterfaceBase::Fetch( const char *path, int band) { + std::cout << "Fetching..." << std::endl ; if (band >= 0) { assert( (size_t)(band) < m_Imd.Bands.size()); m_Imd.Bands[band].Add(key, mds.GetAs<MetaData::Time>(path, band)); return m_Imd.Bands[band][key]; } + std::cout << "path : " << path << std::endl ; + m_Imd.Add(key, mds.GetAs<MetaData::Time>(path)); return m_Imd[key]; } diff --git a/Modules/Core/Metadata/src/otbRadarsat2ImageMetadataInterface.cxx b/Modules/Core/Metadata/src/otbRadarsat2ImageMetadataInterface.cxx index ecd98438bab2f42e87ca3be3134d2dacf0ab5f1f..19b2bc66219ff4a0929727f14946657fad68d7be 100644 --- a/Modules/Core/Metadata/src/otbRadarsat2ImageMetadataInterface.cxx +++ b/Modules/Core/Metadata/src/otbRadarsat2ImageMetadataInterface.cxx @@ -119,6 +119,8 @@ void Radarsat2ImageMetadataInterface::ParseDateTime(const char* key, std::vector } } + + int Radarsat2ImageMetadataInterface::GetYear() const { int value = 0; @@ -237,4 +239,30 @@ Radarsat2ImageMetadataInterface::UIntVectorType Radarsat2ImageMetadataInterface: return rgb; } + +void Radarsat2ImageMetadataInterface::Parse(const MetadataSupplierInterface *mds) +{ + assert(mds); + assert(mds->GetNbBands() == this->m_Imd.Bands.size()); + + // Metadata read by GDAL + Fetch(MDTime::AcquisitionStartTime, *mds, "ACQUISITION_START_TIME"); + // Fetch(MDTime::AcquisitionStopTime, *mds, "ACQUISITION_STOP_TIME"); + Fetch(MDStr::BeamMode, *mds, "BEAM_MODE"); + // Fetch(MDStr::BeamSwath, *mds, "BEAM_SWATH"); + Fetch("FACILITY_IDENTIFIER", *mds, "FACILITY_IDENTIFIER"); + Fetch(MDNum::LineSpacing, *mds, "LINE_SPACING"); + // Fetch(MDStr::Mission, *mds, "MISSION_ID"); + // Fetch(MDStr::Mode, *mds, "MODE"); + Fetch(MDStr::OrbitDirection, *mds, "ORBIT_DIRECTION"); + // Fetch(MDNum::OrbitNumber, *mds, "ORBIT_NUMBER"); + Fetch(MDNum::PixelSpacing, *mds, "PIXEL_SPACING"); + Fetch(MDStr::ProductType, *mds, "PRODUCT_TYPE"); + Fetch(MDStr::Instrument, *mds, "SATELLITE_IDENTIFIER"); + Fetch(MDStr::SensorID, *mds, "SENSOR_IDENTIFIER"); + // Fetch(MDStr::Swath, *mds, "SWATH"); + + } + } // end namespace otb + diff --git a/Modules/Core/Metadata/test/CMakeLists.txt b/Modules/Core/Metadata/test/CMakeLists.txt index 852b117e9271a30beffc736b748c282e6b76ea4e..b20374f6cb6f07306decc9a23e0266553790531f 100644 --- a/Modules/Core/Metadata/test/CMakeLists.txt +++ b/Modules/Core/Metadata/test/CMakeLists.txt @@ -429,3 +429,11 @@ otb_add_test(NAME ioTuotbXMLMetadataSupplierTest COMMAND otbMetadataTestDriver ${INPUTDATA}/ioTuotbXMLMetadataSupplierTest.xml ${TEMP}/ioTuotbXMLMetadataSupplierTest.txt ) + + + +otb_add_test(NAME ioTvImageMetadataInterfaceTest_Radarsat2 COMMAND otbMetadataTestDriver + otbImageMetadataInterfaceTest + LARGEINPUT{RADARSAT2/ALTONA/Fine_Quad-Pol_Dataset/PK6621_DK406_FQ9_20080405_124900_HH_VV_HV_VH_SLC_Altona} + ${TEMP}/ioTvImageMetadataInterfaceTest_Radarsat2.txt + ) \ No newline at end of file