From e90b35d310db88d86cdc07031069202025672fd6 Mon Sep 17 00:00:00 2001 From: Patrick Imbo <patrick.imbo@c-s.fr> Date: Mon, 14 Jun 2010 17:03:56 +0200 Subject: [PATCH] ENH: add WorldView-2 metadata reading support --- Code/IO/otbWorldView2ImageMetadataInterface.cxx | 8 +++++++- Code/Radiometry/otbImageToLuminanceImageFilter.h | 5 +++++ Testing/Code/IO/CMakeLists.txt | 4 ++-- Testing/Code/IO/otbImageMetadataInterfaceTest.cxx | 11 +++++++++-- Testing/Code/Radiometry/CMakeLists.txt | 2 +- 5 files changed, 24 insertions(+), 6 deletions(-) diff --git a/Code/IO/otbWorldView2ImageMetadataInterface.cxx b/Code/IO/otbWorldView2ImageMetadataInterface.cxx index 1fa923e616..8df1e8d0ce 100644 --- a/Code/IO/otbWorldView2ImageMetadataInterface.cxx +++ b/Code/IO/otbWorldView2ImageMetadataInterface.cxx @@ -243,6 +243,11 @@ WorldView2ImageMetadataInterface::GetMinute(const MetaDataDictionaryType& dict) separatorList = "-T:"; ossimString keywordString = kwl.find(key.c_str()); + if (keywordString == ossimString("Unknown")) + { + itkExceptionMacro("Unknown date") + } + std::vector<ossimString> keywordStrings = keywordString.split(separatorList); if (keywordStrings.size() <= 2) itkExceptionMacro("Invalid Minute"); @@ -439,7 +444,8 @@ WorldView2ImageMetadataInterface } else { - ossimString keywordStringAbsCalFactor = kwl.find("support_data.B_band_absCalFactor"); +// ossimString keywordStringAbsCalFactor = kwl.find("support_data.B_band_absCalFactor"); + ossimString keywordStringAbsCalFactor = kwl.find("band_C.abscalfactor"); outputValuesVariableLengthVector[0] = keywordStringAbsCalFactor.toDouble(); keywordStringAbsCalFactor = kwl.find("support_data.G_band_absCalFactor"); outputValuesVariableLengthVector[1] = keywordStringAbsCalFactor.toDouble(); diff --git a/Code/Radiometry/otbImageToLuminanceImageFilter.h b/Code/Radiometry/otbImageToLuminanceImageFilter.h index cf9e474e4c..0d66eb96e4 100644 --- a/Code/Radiometry/otbImageToLuminanceImageFilter.h +++ b/Code/Radiometry/otbImageToLuminanceImageFilter.h @@ -188,6 +188,11 @@ protected: m_Beta = imageMetadataInterface->GetPhysicalBias(this->GetInput()->GetMetaDataDictionary()); } + otbMsgDevMacro(<< "Dimension: "); + otbMsgDevMacro(<< "m_Alpha.GetSize(): " << m_Alpha.GetSize()); + otbMsgDevMacro(<< "m_Beta.GetSize() : " << m_Beta.GetSize()); + otbMsgDevMacro(<< "this->GetInput()->GetNumberOfComponentsPerPixel() : " << this->GetInput()->GetNumberOfComponentsPerPixel()); + if ((m_Alpha.GetSize() != this->GetInput()->GetNumberOfComponentsPerPixel()) || (m_Beta.GetSize() != this->GetInput()->GetNumberOfComponentsPerPixel())) { diff --git a/Testing/Code/IO/CMakeLists.txt b/Testing/Code/IO/CMakeLists.txt index e74714abc4..ce34fc9f05 100644 --- a/Testing/Code/IO/CMakeLists.txt +++ b/Testing/Code/IO/CMakeLists.txt @@ -2069,7 +2069,7 @@ ADD_TEST(ioTvImageMetadataInterfaceQBMULTest ${IO_TESTS18} ADD_TEST(ioTvImageMetadataInterfaceWV2PanTest ${IO_TESTS18} # --compare-ascii ${NOTOL} ${BASELINE_FILES}/ioTvImageMetadataInterfaceWV2RomePan.txt # ${TEMP}/ioTvImageMetadataInterfaceWV2RomePan.txt - otbImageMetadataInterfaceTest + otbImageMetadataInterfaceTest2 ${LARGEDATA}/WORLDVIEW2/ROME/WV-2_standard_8band_bundle_16bit/052298844010_01_P001_PAN/09DEC10103019-P2AS-052298844010_01_P001.TIF ${TEMP}/ioTvImageMetadataInterfaceWV2RomePan.txt ) @@ -2077,7 +2077,7 @@ ADD_TEST(ioTvImageMetadataInterfaceWV2PanTest ${IO_TESTS18} ADD_TEST(ioTvImageMetadataInterfaceWV2MulTest ${IO_TESTS18} # --compare-ascii ${NOTOL} ${BASELINE_FILES}/ioTvImageMetadataInterfaceWV2RomeMul.txt # ${TEMP}/ioTvImageMetadataInterfaceWV2RomeMul.txt - otbImageMetadataInterfaceTest + otbImageMetadataInterfaceTest2 ${LARGEDATA}/WORLDVIEW2/ROME/WV-2_standard_8band_bundle_16bit/052298844010_01_P001_MUL/09DEC10103019-M2AS-052298844010_01_P001.TIF ${TEMP}/ioTvImageMetadataInterfaceWV2RomeMul.txt ) diff --git a/Testing/Code/IO/otbImageMetadataInterfaceTest.cxx b/Testing/Code/IO/otbImageMetadataInterfaceTest.cxx index 064ebac35d..64b69a6953 100644 --- a/Testing/Code/IO/otbImageMetadataInterfaceTest.cxx +++ b/Testing/Code/IO/otbImageMetadataInterfaceTest.cxx @@ -54,8 +54,15 @@ int otbImageMetadataInterfaceTest(int argc, char* argv[]) std::endl; file << "GetPhysicalBias: " << lImageMetadata->GetPhysicalBias(reader->GetOutput()->GetMetaDataDictionary()) << std::endl; - file << "GetMinute: " << lImageMetadata->GetMinute(reader->GetOutput()->GetMetaDataDictionary()) << - std::endl; + try + { + file << "GetMinute: " << lImageMetadata->GetMinute(reader->GetOutput()->GetMetaDataDictionary()) << std::endl; + } + catch(itk::ExceptionObject &excep) + { + std::cerr << excep.GetDescription() << endl; + } + file << "GetHour: " << lImageMetadata->GetHour(reader->GetOutput()->GetMetaDataDictionary()) << std::endl; file << "GetDay: " << lImageMetadata->GetDay(reader->GetOutput()->GetMetaDataDictionary()) << std::endl; file << "GetMonth: " << lImageMetadata->GetMonth(reader->GetOutput()->GetMetaDataDictionary()) << std::endl; diff --git a/Testing/Code/Radiometry/CMakeLists.txt b/Testing/Code/Radiometry/CMakeLists.txt index efb6c71131..d84e247a18 100644 --- a/Testing/Code/Radiometry/CMakeLists.txt +++ b/Testing/Code/Radiometry/CMakeLists.txt @@ -213,7 +213,7 @@ ADD_TEST(raTvImageToLuminanceImageFilterAutoWV2 ${RADIOMETRY_TESTS2} #--compare-image ${EPSILON} ${BASELINE}/raTvImageToLuminanceImageFilterAutoIkonos.tif # ${TEMP}/raTvImageToLuminanceImageFilterAutoIkonos.tif otbImageToLuminanceImageFilterAuto - ${LARGEINPUT}/WORLDVIEW2/VERSAILLES/052310006010_01_P001_PAN/10MAR01111601-P1BS-052310006010_01_P001.TIF + ${LARGEINPUT}/WORLDVIEW2/ROME/WV-2_standard_8band_bundle_16bit/052298844010_01_P001_MUL/09DEC10103019-M2AS-052298844010_01_P001.TIF ${TEMP}/raTvImageToLuminanceImageFilterAutoWV2.tif ) ENDIF(OTB_DATA_USE_LARGEINPUT) -- GitLab