From 9297f06cf212d6ffb4ea8b1866dce76557d6f5f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lauren=C8=9Biu=20Nicola?= Date: Fri, 7 Feb 2020 12:31:42 +0200 Subject: [PATCH 01/23] BUG: Fix warnings/UB in VariadicInputsImageFilter::SetInputsImpl --- .../Core/Functor/include/otbVariadicInputsImageFilter.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Modules/Core/Functor/include/otbVariadicInputsImageFilter.h b/Modules/Core/Functor/include/otbVariadicInputsImageFilter.h index c6bcccb70a..4aef7ac7e5 100644 --- a/Modules/Core/Functor/include/otbVariadicInputsImageFilter.h +++ b/Modules/Core/Functor/include/otbVariadicInputsImageFilter.h @@ -109,7 +109,7 @@ public: #undef DefineLegacySetInputMacro - template + template const InputImageType* GetInput() { static_assert(NumberOfInputs > I, "Template value I is out of range."); @@ -143,9 +143,9 @@ protected: private: template - auto SetInputsImpl(Tuple& t, std::index_sequence) + void SetInputsImpl(Tuple& t, std::index_sequence) { - return std::initializer_list{(this->template SetInput(std::get(t)), 0)...}; + std::initializer_list{(this->template SetInput(std::get(t)), 0)...}; } template @@ -157,6 +157,6 @@ private: VariadicInputsImageFilter(const Self&) = delete; void operator=(const Self&) = delete; }; -} +} // namespace otb #endif -- GitLab From 89ab63f2bb8295f8897f922884a5850b8feb3037 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Mon, 3 Feb 2020 17:09:00 +0100 Subject: [PATCH 02/23] DOC: rename mode.gaussian.radius parameter into mode.gaussian.stdev --- .../Applications/AppFiltering/app/otbSmoothing.cxx | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Modules/Applications/AppFiltering/app/otbSmoothing.cxx b/Modules/Applications/AppFiltering/app/otbSmoothing.cxx index f465172b66..dad4b5039f 100644 --- a/Modules/Applications/AppFiltering/app/otbSmoothing.cxx +++ b/Modules/Applications/AppFiltering/app/otbSmoothing.cxx @@ -86,10 +86,9 @@ private: AddChoice("type.gaussian", "Gaussian"); - AddParameter(ParameterType_Float, "type.gaussian.radius", "Radius"); - SetParameterDescription("type.gaussian.radius", "Standard deviation of the gaussian kernel used to filter the image"); - SetDefaultParameterFloat("type.gaussian.radius", 2.0); - // TODO rename this parameter + AddParameter(ParameterType_Float, "type.gaussian.stdev", "Standard deviation"); + SetParameterDescription("type.gaussian.stdev", "Standard deviation of the gaussian kernel used to filter the image"); + SetDefaultParameterFloat("type.gaussian.stdev", 2.0); AddChoice("type.anidif", "Anisotropic Diffusion"); @@ -174,8 +173,8 @@ private: PerBandDiscreteGaussianFilterType::Pointer perBand = PerBandDiscreteGaussianFilterType::New(); perBand->SetInput(inImage); - double radius = GetParameterFloat("type.gaussian.radius"); - double variance = radius * radius; + const double stdev = GetParameterFloat("type.gaussian.stdev"); + double variance = stdev * stdev; perBand->GetFilter()->SetVariance(variance); perBand->GetFilter()->SetUseImageSpacing(false); perBand->UpdateOutputInformation(); -- GitLab From 07b601e919d59f05a7a639e4877f2ebc70ab95cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Mon, 3 Feb 2020 17:26:12 +0100 Subject: [PATCH 03/23] ENH: added parameters for maximum error and maximum kernel width in Smoothing --- .../AppFiltering/app/otbSmoothing.cxx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Modules/Applications/AppFiltering/app/otbSmoothing.cxx b/Modules/Applications/AppFiltering/app/otbSmoothing.cxx index dad4b5039f..c221db68f2 100644 --- a/Modules/Applications/AppFiltering/app/otbSmoothing.cxx +++ b/Modules/Applications/AppFiltering/app/otbSmoothing.cxx @@ -90,8 +90,17 @@ private: SetParameterDescription("type.gaussian.stdev", "Standard deviation of the gaussian kernel used to filter the image"); SetDefaultParameterFloat("type.gaussian.stdev", 2.0); - AddChoice("type.anidif", "Anisotropic Diffusion"); + AddParameter(ParameterType_Float, "type.gaussian.maxerror", "Maximum error"); + SetParameterDescription("type.gaussian.stdev", "The algorithm will size the discrete kernel so that the error " + "resulting from truncation of the kernel is no greater than maxerror."); + SetDefaultParameterFloat("type.gaussian.maxerror", 0.01); + + AddParameter(ParameterType_Int, "type.gaussian.maxwidth", "Maximum kernel width"); + SetParameterDescription("type.gaussian.maxwidth", "Set the kernel to be no wider than maxwidth pixels, " + "even if type.gaussian.maxerror demands it."); + SetDefaultParameterInt("type.gaussian.maxwidth", 32); + AddChoice("type.anidif", "Anisotropic Diffusion"); AddParameter(ParameterType_Float, "type.anidif.timestep", "Time Step"); SetParameterDescription("type.anidif.timestep", "Time step that will be used to discretize the diffusion equation"); @@ -175,8 +184,12 @@ private: const double stdev = GetParameterFloat("type.gaussian.stdev"); double variance = stdev * stdev; + perBand->GetFilter()->SetVariance(variance); perBand->GetFilter()->SetUseImageSpacing(false); + perBand->GetFilter()->SetMaximumError(GetParameterFloat("type.gaussian.maxerror")); + perBand->GetFilter()->SetMaximumKernelWidth(GetParameterInt("type.gaussian.maxwidth")); + perBand->UpdateOutputInformation(); m_FilterRef = perBand; SetParameterOutputImage("out", perBand->GetOutput()); -- GitLab From 566a195bc2a76954d23dc720365135277d14dfbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Tue, 4 Feb 2020 10:19:43 +0100 Subject: [PATCH 04/23] ENH: updated test for the Smoothing application --- .../Images/apTvUtSmoothingTestAnisotropic.tif | 3 ++ .../Images/apTvUtSmoothingTestGaussian.tif | 3 ++ Data/Input/apTvUtSmoothingTest_OutXML.xml | 38 --------------- .../AppFiltering/test/CMakeLists.txt | 47 ++++++++++++------- 4 files changed, 37 insertions(+), 54 deletions(-) create mode 100644 Data/Baseline/OTB/Images/apTvUtSmoothingTestAnisotropic.tif create mode 100644 Data/Baseline/OTB/Images/apTvUtSmoothingTestGaussian.tif delete mode 100644 Data/Input/apTvUtSmoothingTest_OutXML.xml diff --git a/Data/Baseline/OTB/Images/apTvUtSmoothingTestAnisotropic.tif b/Data/Baseline/OTB/Images/apTvUtSmoothingTestAnisotropic.tif new file mode 100644 index 0000000000..5336d19998 --- /dev/null +++ b/Data/Baseline/OTB/Images/apTvUtSmoothingTestAnisotropic.tif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdd0ce0f98ec479767e9e4cbb8f118753963f9a91c689870c3f02758de94d15e +size 3422183 diff --git a/Data/Baseline/OTB/Images/apTvUtSmoothingTestGaussian.tif b/Data/Baseline/OTB/Images/apTvUtSmoothingTestGaussian.tif new file mode 100644 index 0000000000..539c8486c8 --- /dev/null +++ b/Data/Baseline/OTB/Images/apTvUtSmoothingTestGaussian.tif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a9e56c55f2cb4f16ad31b762f1a38283c664d5570671fdf5f8a905f03a53a13 +size 3308861 diff --git a/Data/Input/apTvUtSmoothingTest_OutXML.xml b/Data/Input/apTvUtSmoothingTest_OutXML.xml deleted file mode 100644 index 2f95025e38..0000000000 --- a/Data/Input/apTvUtSmoothingTest_OutXML.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - 3.18 - 18-05-2013 - Linux - - Smoothing - Apply a smoothing filter to an image - - Smoothing - This application applies smoothing filter to an image. Either gaussian, mean, or anisotropic diffusion are available. - OTB-Team - None - - - Image Filtering - - - - in - InputImage - Input Image - /home/rashad/repos/orfeo/OTB-Data/Input/poupees.tif - - - out - OutputImage - Output Image - /home/rashad/repos/orfeo/build/OTB_/test-build/Testing/Temporary/apTvUtSmoothingTest_OutXML.tif - - - type - Choice - Smoothing Type - mean - - - diff --git a/Modules/Applications/AppFiltering/test/CMakeLists.txt b/Modules/Applications/AppFiltering/test/CMakeLists.txt index 84ce852767..688fa359aa 100644 --- a/Modules/Applications/AppFiltering/test/CMakeLists.txt +++ b/Modules/Applications/AppFiltering/test/CMakeLists.txt @@ -20,9 +20,20 @@ otb_module_test() #----------- Smoothing TESTS ---------------- + +otb_test_application(NAME apTvUtSmoothingTest_OutXML + APP Smoothing + OPTIONS -in ${INPUTDATA}/poupees.tif + -out ${TEMP}/apTvUtSmoothingTest_OutXML.tif + -type mean + -outxml ${TEMP}/apTvUtSmoothingTest_OutXML.xml + VALID --compare-image ${NOTOL} + ${BASELINE}/apTvUtSmoothingTest.tif + ${TEMP}/apTvUtSmoothingTest_OutXML.tif) + otb_test_application(NAME apTvUtSmoothingTest_InXML APP Smoothing - OPTIONS -inxml ${INPUTDATA}/apTvUtSmoothingTest_OutXML.xml + OPTIONS -inxml ${TEMP}/apTvUtSmoothingTest_OutXML.xml -in ${INPUTDATA}/poupees.tif -out ${TEMP}/apTvUtSmoothingTest_InXML.tif -type mean @@ -30,24 +41,32 @@ otb_test_application(NAME apTvUtSmoothingTest_InXML ${BASELINE}/apTvUtSmoothingTest.tif ${TEMP}/apTvUtSmoothingTest_InXML.tif) -otb_test_application(NAME apTvUtSmoothingTest +set_tests_properties( apTvUtSmoothingTest_InXML + PROPERTIES DEPENDS apTvUtSmoothingTest_OutXML) + +otb_test_application(NAME apTvUtSmoothingTestGaussian APP Smoothing OPTIONS -in ${INPUTDATA}/poupees.tif - -out ${TEMP}/apTvUtSmoothingTest.tif - -type mean + -out ${TEMP}/apTvUtSmoothingTestGaussian.tif + -type gaussian + -type.gaussian.stdev 2.0 + -type.gaussian.maxerror 0.1 + -type.gaussian.maxwidth 64 VALID --compare-image ${NOTOL} - ${BASELINE}/apTvUtSmoothingTest.tif - ${TEMP}/apTvUtSmoothingTest.tif) + ${BASELINE}/apTvUtSmoothingTestGaussian.tif + ${TEMP}/apTvUtSmoothingTestGaussian.tif) -otb_test_application(NAME apTvUtSmoothingTest_OutXML +otb_test_application(NAME apTvUtSmoothingTestAnisotropic APP Smoothing OPTIONS -in ${INPUTDATA}/poupees.tif - -out ${TEMP}/apTvUtSmoothingTest_OutXML.tif - -type mean - -outxml ${TEMP}/apTvUtSmoothingTest_OutXML.xml + -out ${TEMP}/apTvUtSmoothingTestAnisotropic.tif + -type anidif + -type.anidif.timestep 0.125 + -type.anidif.nbiter 10 + -type.anidif.conductance 1. VALID --compare-image ${NOTOL} - ${BASELINE}/apTvUtSmoothingTest.tif - ${TEMP}/apTvUtSmoothingTest_OutXML.tif) + ${BASELINE}/apTvUtSmoothingTestAnisotropic.tif + ${TEMP}/apTvUtSmoothingTestAnisotropic.tif) #----------- Contrast TESTS ---------------- @@ -115,7 +134,3 @@ otb_test_application(NAME nlMeansTest_base ${BASELINE}/GomaAvant_NLMeans.tif ${TEMP}/GomaAvant_NLMeans.tif) - - - - -- GitLab From d47e9321f8ac610ddf07c3062bb67a2d537d7e3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Tue, 4 Feb 2020 10:38:15 +0100 Subject: [PATCH 05/23] ENH: some code modernization --- .../AppFiltering/app/otbFastNLMeans.cxx | 18 ++++----- .../AppFiltering/app/otbSmoothing.cxx | 40 +++++++++---------- 2 files changed, 27 insertions(+), 31 deletions(-) diff --git a/Modules/Applications/AppFiltering/app/otbFastNLMeans.cxx b/Modules/Applications/AppFiltering/app/otbFastNLMeans.cxx index 3ed27ed028..47dbc3bc30 100644 --- a/Modules/Applications/AppFiltering/app/otbFastNLMeans.cxx +++ b/Modules/Applications/AppFiltering/app/otbFastNLMeans.cxx @@ -110,25 +110,25 @@ private: void DoExecute() override { - // Get the input image - ImageType::Pointer imIn = this->GetParameterFloatImage("in"); - float sigma = this->GetParameterFloat("sig"); - float cutoffDistance = this->GetParameterFloat("thresh"); - int halfPatchSize = this->GetParameterInt("patchradius"); - int halfSearchSize = this->GetParameterInt("searchradius"); - NLMeansFilterType::Pointer nlMeansFilter = NLMeansFilterType::New(); + // Get the input parameters + const auto imIn = this->GetParameterFloatImage("in"); + const auto sigma = this->GetParameterFloat("sig"); + const auto cutoffDistance = this->GetParameterFloat("thresh"); + const auto halfPatchSize = this->GetParameterInt("patchradius"); + const auto halfSearchSize = this->GetParameterInt("searchradius"); + + auto nlMeansFilter = NLMeansFilterType::New(); + nlMeansFilter->SetInput(imIn); nlMeansFilter->SetSigma(sigma); nlMeansFilter->SetHalfWindowSize(halfPatchSize); nlMeansFilter->SetHalfSearchSize(halfSearchSize); nlMeansFilter->SetCutOffDistance(cutoffDistance); - m_FilterRef = nlMeansFilter; SetParameterOutputImage("out", nlMeansFilter->GetOutput()); RegisterPipeline(); } - itk::LightObject::Pointer m_FilterRef; }; // end class } // namespace Wrapper diff --git a/Modules/Applications/AppFiltering/app/otbSmoothing.cxx b/Modules/Applications/AppFiltering/app/otbSmoothing.cxx index c221db68f2..7bab30684a 100644 --- a/Modules/Applications/AppFiltering/app/otbSmoothing.cxx +++ b/Modules/Applications/AppFiltering/app/otbSmoothing.cxx @@ -147,83 +147,79 @@ private: void DoExecute() override { - GetLogger()->Debug("Entering DoExecute\n"); - - - FloatVectorImageType::Pointer inImage = GetParameterImage("in"); + const auto inImage = GetParameterImage("in"); switch (GetParameterInt("type")) { case Smoothing_Mean: { - GetLogger()->Debug("Using mean"); + otbAppLogINFO("Using mean smoothing"); typedef itk::MeanImageFilter MeanFilterType; typedef otb::PerBandVectorImageFilter PerBandMeanFilterType; - PerBandMeanFilterType::Pointer perBand = PerBandMeanFilterType::New(); + auto perBand = PerBandMeanFilterType::New(); perBand->SetInput(inImage); MeanFilterType::InputSizeType radius; radius.Fill(GetParameterInt("type.mean.radius")); perBand->GetFilter()->SetRadius(radius); - perBand->UpdateOutputInformation(); - m_FilterRef = perBand; + SetParameterOutputImage("out", perBand->GetOutput()); + + RegisterPipeline(); } break; case Smoothing_Gaussian: { - GetLogger()->Debug("Using gaussian"); + otbAppLogINFO("Using gaussian smoothing"); typedef itk::DiscreteGaussianImageFilter DiscreteGaussianFilterType; typedef otb::PerBandVectorImageFilter PerBandDiscreteGaussianFilterType; - PerBandDiscreteGaussianFilterType::Pointer perBand = PerBandDiscreteGaussianFilterType::New(); + auto perBand = PerBandDiscreteGaussianFilterType::New(); perBand->SetInput(inImage); - const double stdev = GetParameterFloat("type.gaussian.stdev"); - double variance = stdev * stdev; + const auto stdev = GetParameterFloat("type.gaussian.stdev"); + const auto variance = stdev * stdev; perBand->GetFilter()->SetVariance(variance); perBand->GetFilter()->SetUseImageSpacing(false); perBand->GetFilter()->SetMaximumError(GetParameterFloat("type.gaussian.maxerror")); perBand->GetFilter()->SetMaximumKernelWidth(GetParameterInt("type.gaussian.maxwidth")); - perBand->UpdateOutputInformation(); - m_FilterRef = perBand; SetParameterOutputImage("out", perBand->GetOutput()); + + RegisterPipeline(); } break; case Smoothing_Anisotropic: { - GetLogger()->Debug("Using anisotropic diffusion"); + otbAppLogINFO("Using anisotropic diffusion smoothing"); typedef itk::GradientAnisotropicDiffusionImageFilter GradientAnisotropicDiffusionFilterType; typedef otb::PerBandVectorImageFilter PerBandGradientAnisotropicDiffusionFilterType; - PerBandGradientAnisotropicDiffusionFilterType::Pointer perBand = PerBandGradientAnisotropicDiffusionFilterType::New(); + auto perBand = PerBandGradientAnisotropicDiffusionFilterType::New(); perBand->SetInput(inImage); - const int aniDifNbIter = GetParameterInt("type.anidif.nbiter"); + const auto aniDifNbIter = GetParameterInt("type.anidif.nbiter"); perBand->GetFilter()->SetNumberOfIterations(static_cast(aniDifNbIter)); - const float aniDifTimeStep = GetParameterFloat("type.anidif.timestep"); + const auto aniDifTimeStep = GetParameterFloat("type.anidif.timestep"); perBand->GetFilter()->SetTimeStep(static_cast(aniDifTimeStep)); perBand->GetFilter()->SetConductanceParameter(GetParameterFloat("type.anidif.conductance")); perBand->GetFilter()->SetUseImageSpacing(false); - perBand->UpdateOutputInformation(); - m_FilterRef = perBand; SetParameterOutputImage("out", perBand->GetOutput()); + + RegisterPipeline(); } break; } } - - itk::LightObject::Pointer m_FilterRef; }; } } -- GitLab From 7d27b411aa42282be8adbbba8d2eac0b7b1185ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Tue, 4 Feb 2020 10:50:41 +0100 Subject: [PATCH 06/23] DOC: fix error in documentation --- Modules/Applications/AppFiltering/app/otbSmoothing.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Applications/AppFiltering/app/otbSmoothing.cxx b/Modules/Applications/AppFiltering/app/otbSmoothing.cxx index 7bab30684a..4403eb8248 100644 --- a/Modules/Applications/AppFiltering/app/otbSmoothing.cxx +++ b/Modules/Applications/AppFiltering/app/otbSmoothing.cxx @@ -91,7 +91,7 @@ private: SetDefaultParameterFloat("type.gaussian.stdev", 2.0); AddParameter(ParameterType_Float, "type.gaussian.maxerror", "Maximum error"); - SetParameterDescription("type.gaussian.stdev", "The algorithm will size the discrete kernel so that the error " + SetParameterDescription("type.gaussian.maxerror", "The algorithm will size the discrete kernel so that the error " "resulting from truncation of the kernel is no greater than maxerror."); SetDefaultParameterFloat("type.gaussian.maxerror", 0.01); -- GitLab From 893bff1a753284555ec6d5a407d44cdada9ccaaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Wed, 5 Feb 2020 11:09:49 +0100 Subject: [PATCH 07/23] BUG: add tolerance on the anisotropic smoothing test --- Modules/Applications/AppFiltering/test/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/Applications/AppFiltering/test/CMakeLists.txt b/Modules/Applications/AppFiltering/test/CMakeLists.txt index 688fa359aa..73fad582ae 100644 --- a/Modules/Applications/AppFiltering/test/CMakeLists.txt +++ b/Modules/Applications/AppFiltering/test/CMakeLists.txt @@ -64,7 +64,7 @@ otb_test_application(NAME apTvUtSmoothingTestAnisotropic -type.anidif.timestep 0.125 -type.anidif.nbiter 10 -type.anidif.conductance 1. - VALID --compare-image ${NOTOL} + VALID --compare-image ${EPSILON_6} ${BASELINE}/apTvUtSmoothingTestAnisotropic.tif ${TEMP}/apTvUtSmoothingTestAnisotropic.tif) -- GitLab From c0f61f420d1ea319d5ea8af515470dc5fb22ee1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Tue, 11 Feb 2020 17:37:09 +0100 Subject: [PATCH 08/23] DOC: add references to the paper of the algorithms and to the ITK filters --- .../AppFiltering/app/otbFastNLMeans.cxx | 2 +- .../AppFiltering/app/otbSmoothing.cxx | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Modules/Applications/AppFiltering/app/otbFastNLMeans.cxx b/Modules/Applications/AppFiltering/app/otbFastNLMeans.cxx index 47dbc3bc30..c6e12f241b 100644 --- a/Modules/Applications/AppFiltering/app/otbFastNLMeans.cxx +++ b/Modules/Applications/AppFiltering/app/otbFastNLMeans.cxx @@ -59,7 +59,7 @@ private: "This filter relies on integral images. Overflow may happen though the risk is limited " " by OTB mechanism which process data by chunks."); SetDocAuthors("OTB-Team"); - SetDocSeeAlso(" "); + SetDocSeeAlso("Smoothing"); AddDocTag(Tags::Filter); // Parameter declarations diff --git a/Modules/Applications/AppFiltering/app/otbSmoothing.cxx b/Modules/Applications/AppFiltering/app/otbSmoothing.cxx index 4403eb8248..4803bc7e93 100644 --- a/Modules/Applications/AppFiltering/app/otbSmoothing.cxx +++ b/Modules/Applications/AppFiltering/app/otbSmoothing.cxx @@ -62,11 +62,21 @@ private: SetDocLongDescription( "This application applies a smoothing filter to an " - "image. Three methods can be used: a gaussian filter , a mean filter " - ", or an anisotropic diffusion using the Perona-Malik algorithm."); + "image. Three methods can be used: a mean filter, a gaussian filter based on [1]" + ", or an anisotropic diffusion using the Perona-Malik algorithm [2]."); SetDocLimitations("None"); SetDocAuthors("OTB-Team"); - SetDocSeeAlso(" "); + SetDocSeeAlso("FastNLMeans \n" + "[1] Tony Lindeberg Discrete " + "Scale-Space Theory and the Scale-Space Primal Sketch. Dissertation. Royal " + "Institute of Technology, Stockholm, Sweden. May 1991 \n" + "[2] Pietro Perona and Jitendra Malik, " + "Scale-space and edge detection using anisotropic diffusion, " + "IEEE Transactions on Pattern Analysis Machine Intelligence, vol. 12, pp. 629-639, 1990. \n" + "itk::MeanImageFilter (mean mode)\n" + "itk::DiscreteGaussianImageFilter (gaussian mode)\n" + "itk::GradientAnisotropicDiffusionImageFilter (anidif mode)." + ); AddDocTag(Tags::Filter); -- GitLab From de66621e9eac7db9a1fdfacd955489633d00d0ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Wed, 12 Feb 2020 11:53:12 +0100 Subject: [PATCH 09/23] ENH: Update OTB version to 7.1.0 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bf229cf445..405dfb0964 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -132,7 +132,7 @@ set(main_project_name ${_OTBModuleMacros_DEFAULT_LABEL}) #----------------------------------------------------------------------------- # OTB version number. set(OTB_VERSION_MAJOR "7") -set(OTB_VERSION_MINOR "0") +set(OTB_VERSION_MINOR "1") set(OTB_VERSION_PATCH "0") set(OTB_VERSION_STRING "${OTB_VERSION_MAJOR}.${OTB_VERSION_MINOR}.${OTB_VERSION_PATCH}") -- GitLab From 46f2afe109a68ac0172e1beff838de5584e4384b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Wed, 12 Feb 2020 14:13:27 +0100 Subject: [PATCH 10/23] ENH: update release notes for rc 7.1.0 --- RELEASE_NOTES.txt | 84 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt index 5752f9d093..742704e05a 100644 --- a/RELEASE_NOTES.txt +++ b/RELEASE_NOTES.txt @@ -1,3 +1,87 @@ +OTB-v 7.1.0 - Changes since version 7.0.0 (February 29th, 2020) +---------------------------------------------------------------- + +Features added: + + * !681: ENH: allow HTTP GDAL datasets by Laurențiu Nicola + * !673: Smoothing application enhancement by Cédric Traizet + * !655: BUG: migrate to QOpenGLWidget by Victor Poughon + * !644: Fast nlmeans filter by Carole Amiot + * !642: Resolve ExtractROI: keep GCPs by Guillaume Pasero + * !628: Added 'double' application parameter type. by guillaume pernot + * !618: Integration of the multiImageFileWriter in the application engine by Cédric Traizet + +Bugs fixed: + + * !679: COMP: Remove RemoteSensingRegion assignment operator by Laurențiu Nicola + * !678: BUG: Fix warnings and possible UB in `VariadicInputsImageFilter::SetInputsImpl` by Laurențiu Nicola + * !677: Fix debian build by Cédric Traizet + * !674: BUG: Fix nodata handling in StreamingStatisticsMapFromLabelImageFilter by Laurențiu Nicola + * !667: Short Integer overflow in tests by Cédric Traizet + * !662: Update netcdf version in Superbuild to 4.7.3 by Cédric Traizet + * !660: COMP: Fix Variadic Input Image Filters for g++8.2.0 by Luc Hermitte + * !658: Allow UserValue modification from within application's DoExecute by guillaume pernot + * !656: input centroid should not be mandatory in TrainVectorClassifier and TrainImagesClassifier by Cédric Traizet + * !655: BUG: migrate to QOpenGLWidget by Victor Poughon + * !654: Missing RAM parameter in StereoRectificationGridGenerator application by Julien Michel + * !653: Warning cleaning by Guillaume Pasero + * !649: Resolve \Mosaic do not work anymore with rgb mode\ by Rémi Cresson + * !647: Fixed lookup table stacking order by guillaume pernot + * !646: removed duplicate Scene.png by guillaume pernot + * !641: FIX PCA transformation matrix computation by Cédric Traizet + * !640: Fixed lost reference of \buffer\ in VectorPrediction update mode by guillaume pernot + * !637: BUG: better check for TIXML_USE_STL by Victor Poughon + * !636: Fix gcc8 compilation by guillaume pernot + * !634: COMP: Added gcc9 support for ITK by guillaume pernot + * !633: Added otb_opencv_api.h in packages by guillaume pernot + * !626: FIX: check that input image is not null by Rémi Cresson + * !624: Fix GEOS errors from self intersecting polygons in and fix OPENCV path in debian CI build by Cédric Traizet + * !617: TEST: Force ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS=4 by guillaume pernot + * !616: TEST: rename ToulousePoints-examples.shp to toulousepoints_examples.shp by guillaume pernot + * !613: Additional tests for the ExtractROI application by Cédric Traizet + * !606: Check band index on each pixel by guillaume pernot + +Refactoring: + + * !673: Smoothing application enhancement by Cédric Traizet + * !671: Update diapotb git tag by Cédric Traizet + * !667: Short Integer overflow in tests by Cédric Traizet + * !662: Update netcdf version in Superbuild to 4.7.3 by Cédric Traizet + * !657: Drop OpenCV 2 support by Cédric Traizet + * !652: Update openjpeg version in superbuild by David Youssefi + * !651: Resolve \Move FilterFunctionValues and MetadataKey to OTBMetadata\ by Guillaume Pasero + * !631: Upgrade PROJ GEOTIFF and GDAL in Superbuild by Cédric Traizet + * !619: Some work on BandMathX tests by guillaume pernot + * !614: Stop in cmake configure when the compiler is not supported by Cédric Traizet + * !613: Additional tests for the ExtractROI application by Cédric Traizet + * !607: CMake Code Cleaning (part 1) by Victor Poughon + +CI: + + * !680: CI: Split conda-build and conda-deploy by guillaume pernot + * !676: Fixed conda-build by guillaume pernot + * !675: CI: Fixed debian-build and conda-build 'needs' by guillaume pernot + * !672: Fix CookBook deployment by Cédric Traizet + * !669: CI: Prelimenary conda build by guillaume pernot + * !666: Out-of-order jobs execution by Sébastien Dinot + * !665: Identify Arthur Vincent as contributor in .mailmap by Sébastien Dinot + * !664: test MacOS mojave on CI by Cédric Traizet + * !663: ENH: Update .mailmap file for Luc Hermitte by Luc Hermitte + * !638: Use proper cmake file for debian-testing CI by guillaume pernot + * !635: CI: debian-build uses debian/testing by guillaume pernot + * !630: CI: Added CI_ALLOW_FAILURE for cdash_handler.py by guillaume pernot + * !629: CI: Allow failure of debian/unstable build by guillaume pernot + * !615: CI: allow sonarqube to run on forked tree by guillaume pernot + * !610: CI: Fixed error computation in otbBandMathXImageFilter by guillaume pernot + * !574: Deploy cookbook by Antoine Regimbeau + +Documentation: + + * !639: Update QGISInterface.rst to clarify plugin setup with QGIS > 3.8 by guillaume pernot + * !611: Update the CompilingOTBFromSource Cookbook section by Cédric Traizet + * !604: Document matrix variable definition limitation in BandMathX by Cédric Traizet + + OTB-v.7.0.0 - Changes since version 6.6.0 (October 29th, 2019) ---------------------------------------------------------------- -- GitLab From da048d939b665dd484b6d6cb7c6651b5081166e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Wed, 12 Feb 2020 14:31:59 +0100 Subject: [PATCH 11/23] DOC: run fix_typos.sh --- .../Filtering/Smoothing/include/otbFastNLMeansImageFilter.h | 2 +- Modules/IO/ImageIO/include/otbMultiImageFileWriter.h | 2 +- .../include/otbLabelImageSmallRegionMergingFilter.h | 4 ++-- .../include/otbLabelImageSmallRegionMergingFilter.hxx | 2 +- RELEASE_NOTES.txt | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Modules/Filtering/Smoothing/include/otbFastNLMeansImageFilter.h b/Modules/Filtering/Smoothing/include/otbFastNLMeansImageFilter.h index a3c33a6811..6185102cae 100644 --- a/Modules/Filtering/Smoothing/include/otbFastNLMeansImageFilter.h +++ b/Modules/Filtering/Smoothing/include/otbFastNLMeansImageFilter.h @@ -110,7 +110,7 @@ protected: /** Compute the requested input region, given an output region. * If the input requested region is outside the largest input region, a mirror padding - * is necessary. The returned tuple is composed of the following paramters : + * is necessary. The returned tuple is composed of the following parameters : * * input requested region (always lie inside the largest input region) * * top rows, left cols, bottom rows, right cols : numbers of rows/cols to add with a mirror padding * * boolean : if true, a mirror padding (in at least one direction) has to be computed diff --git a/Modules/IO/ImageIO/include/otbMultiImageFileWriter.h b/Modules/IO/ImageIO/include/otbMultiImageFileWriter.h index 6ea2b7e422..212b181c15 100644 --- a/Modules/IO/ImageIO/include/otbMultiImageFileWriter.h +++ b/Modules/IO/ImageIO/include/otbMultiImageFileWriter.h @@ -269,7 +269,7 @@ private: typedef boost::shared_ptr Pointer; /** Get the region that should be written. By default this is the largest possible region - * of the input image, but this might be overriden by the box extended filename parameter of + * of the input image, but this might be overridden by the box extended filename parameter of * the input writer */ itk::ImageRegion<2> GetRegionToWrite() const override; diff --git a/Modules/Segmentation/Conversion/include/otbLabelImageSmallRegionMergingFilter.h b/Modules/Segmentation/Conversion/include/otbLabelImageSmallRegionMergingFilter.h index e65e88369d..0e4ca56429 100644 --- a/Modules/Segmentation/Conversion/include/otbLabelImageSmallRegionMergingFilter.h +++ b/Modules/Segmentation/Conversion/include/otbLabelImageSmallRegionMergingFilter.h @@ -72,7 +72,7 @@ public: typedef itk::VariableLengthVector RealVectorPixelType; - typedef std::unordered_map> NeigboursMapType; + typedef std::unordered_map> NeighboursMapType; typedef std::unordered_map LabelStatisticType; typedef std::unordered_map LabelPopulationType; @@ -137,7 +137,7 @@ private: LabelStatisticType m_LabelStatistic; /** Neighbours maps for each thread */ - std::vector m_NeighboursMapsTmp; + std::vector m_NeighboursMapsTmp; /** LUT giving correspondance between labels in the original segmentation * and the merged labels */ diff --git a/Modules/Segmentation/Conversion/include/otbLabelImageSmallRegionMergingFilter.hxx b/Modules/Segmentation/Conversion/include/otbLabelImageSmallRegionMergingFilter.hxx index cbb0dddfc0..5922a85439 100644 --- a/Modules/Segmentation/Conversion/include/otbLabelImageSmallRegionMergingFilter.hxx +++ b/Modules/Segmentation/Conversion/include/otbLabelImageSmallRegionMergingFilter.hxx @@ -83,7 +83,7 @@ void PersistentLabelImageSmallRegionMergingFilter::Reset() template void PersistentLabelImageSmallRegionMergingFilter::Synthetize() { - NeigboursMapType neighboursMap; + NeighboursMapType neighboursMap; // Merge the neighbours maps from all threads for (unsigned int threadId = 0; threadId < this->GetNumberOfThreads(); threadId++) diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt index 742704e05a..0d459e5e77 100644 --- a/RELEASE_NOTES.txt +++ b/RELEASE_NOTES.txt @@ -260,7 +260,7 @@ Bugs fixed: * !168: Resolve "Generation of Qgis plugin descriptors fails with latest develop" by Julien Michel * !159: BUG: Improve Convert and DynamicConvert mask handling (fix #1647) by Victor Poughon * !157: Resolve "install qgis descriptors into /share/ on all platforms" by Rashad Kanavath - * !156: BUG fix issue 1656 related to eratic behavior of cmake configuration by Manuel Grizonnet + * !156: BUG fix issue 1656 related to erratic behavior of cmake configuration by Manuel Grizonnet * !155: BUG: Be compliant with new cmake policy CMP0072 with cmake > 3.11 by Manuel Grizonnet * !142: BUG: fix issue #1639 Update UserValue flag in QtWidgetParameterList by Manuel Grizonnet * !126: BUG: Remove workaround for QT bug 22829 by Victor Poughon -- GitLab From b84ac223a350f44edc0f809e71d257b1e7f6fa6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Wed, 12 Feb 2020 17:55:30 +0100 Subject: [PATCH 12/23] BUG: remove export of GEOTIFF_CSV (this variable is not set anymore) --- Packaging/Files/otbenv.bash | 1 - Packaging/Files/otbenv.profile | 1 - 2 files changed, 2 deletions(-) diff --git a/Packaging/Files/otbenv.bash b/Packaging/Files/otbenv.bash index 72b60c4dd3..e45a30bacd 100644 --- a/Packaging/Files/otbenv.bash +++ b/Packaging/Files/otbenv.bash @@ -51,7 +51,6 @@ LC_NUMERIC=C export PATH export GDAL_DATA -export GEOTIFF_CSV export PYTHONPATH export OTB_APPLICATION_PATH export GDAL_DRIVER_PATH diff --git a/Packaging/Files/otbenv.profile b/Packaging/Files/otbenv.profile index 7475194cec..fe2d57f379 100644 --- a/Packaging/Files/otbenv.profile +++ b/Packaging/Files/otbenv.profile @@ -62,7 +62,6 @@ export GDAL_DRIVER_PATH=disable # export variables export LC_NUMERIC export GDAL_DATA -export GEOTIFF_CSV export OTB_APPLICATION_PATH export PATH export PYTHONPATH -- GitLab From f1a93393fc1db8286a6ce0f307ca4582c5d5e172 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Wed, 12 Feb 2020 18:03:56 +0100 Subject: [PATCH 13/23] BUG: set PROJ_LIB path in env scripts (required in PROJ6/GDAL3) --- Packaging/Files/otbenv.bash | 2 ++ Packaging/Files/otbenv.bat | 1 + Packaging/Files/otbenv.profile | 3 +++ 3 files changed, 6 insertions(+) diff --git a/Packaging/Files/otbenv.bash b/Packaging/Files/otbenv.bash index e45a30bacd..f9e48c6994 100644 --- a/Packaging/Files/otbenv.bash +++ b/Packaging/Files/otbenv.bash @@ -44,6 +44,7 @@ unset LD_LIBRARY_PATH PATH=$(cat_path "$CURRENT_DIR/bin" "$PATH") GDAL_DATA=$CURRENT_DIR/share/data +PROJ_LIB=$CURRENT_DIR/share/proj PYTHONPATH=$(cat_path "$CURRENT_DIR/lib/python" "$PYTHONPATH") OTB_APPLICATION_PATH=$(cat_path "$CURRENT_DIR/lib/otb/applications" "$OTB_APPLICATION_PATH") GDAL_DRIVER_PATH="disable" @@ -51,6 +52,7 @@ LC_NUMERIC=C export PATH export GDAL_DATA +export PROJ_LIB export PYTHONPATH export OTB_APPLICATION_PATH export GDAL_DRIVER_PATH diff --git a/Packaging/Files/otbenv.bat b/Packaging/Files/otbenv.bat index f2a25950bb..720fc23726 100644 --- a/Packaging/Files/otbenv.bat +++ b/Packaging/Files/otbenv.bat @@ -26,6 +26,7 @@ call :prefix_path PYTHONPATH "%CURRENT_SCRIPT_DIR%lib\python" call :prefix_path OTB_APPLICATION_PATH "%CURRENT_SCRIPT_DIR%lib\otb\applications" set GDAL_DATA=%CURRENT_SCRIPT_DIR%share\data +set PROJ_LIB=%CURRENT_SCRIPT_DIR%share\proj set GDAL_DRIVER_PATH=disable :: Set numeric locale to C set LC_NUMERIC=C diff --git a/Packaging/Files/otbenv.profile b/Packaging/Files/otbenv.profile index fe2d57f379..8f9ed04c57 100644 --- a/Packaging/Files/otbenv.profile +++ b/Packaging/Files/otbenv.profile @@ -57,11 +57,14 @@ LC_NUMERIC=C # set GDAL_DATA variable used by otb application GDAL_DATA=OUT_DIR/share/gdal +PROJ_LIB=OUT_DIR/share/proj + export GDAL_DRIVER_PATH=disable # export variables export LC_NUMERIC export GDAL_DATA +export PROJ_LIB export OTB_APPLICATION_PATH export PATH export PYTHONPATH -- GitLab From af8db8398429fddb55b65bfaf74e941b9e563d1c Mon Sep 17 00:00:00 2001 From: gpernot Date: Thu, 13 Feb 2020 14:27:50 +0100 Subject: [PATCH 14/23] Added include std::array --- Modules/Filtering/Mosaic/include/otbMosaicFunctors.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Modules/Filtering/Mosaic/include/otbMosaicFunctors.h b/Modules/Filtering/Mosaic/include/otbMosaicFunctors.h index b1db3c5df4..8303ba0be1 100644 --- a/Modules/Filtering/Mosaic/include/otbMosaicFunctors.h +++ b/Modules/Filtering/Mosaic/include/otbMosaicFunctors.h @@ -23,6 +23,7 @@ #ifndef MODULES_REMOTE_MOSAIC_INCLUDE_OTBMOSAICFUNCTORS_H_ #define MODULES_REMOTE_MOSAIC_INCLUDE_OTBMOSAICFUNCTORS_H_ +#include #include "vnl/vnl_matrix.h" #include "vcl_compiler.h" -- GitLab From be96ab4ee578bebbd4a7e7839fb95da2a1e263c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Thu, 5 Mar 2020 14:09:20 +0100 Subject: [PATCH 15/23] BUG: in TrainImageBase do not connect sample.vnf to the cfield of the learning application because the input vectors are not the same --- .../AppClassification/include/otbTrainImagesBase.hxx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Modules/Applications/AppClassification/include/otbTrainImagesBase.hxx b/Modules/Applications/AppClassification/include/otbTrainImagesBase.hxx index fcde968811..85e2857782 100644 --- a/Modules/Applications/AppClassification/include/otbTrainImagesBase.hxx +++ b/Modules/Applications/AppClassification/include/otbTrainImagesBase.hxx @@ -148,7 +148,6 @@ void TrainImagesBase::ShareClassificationParams() void TrainImagesBase::ConnectClassificationParams() { - Connect("training.cfield", "polystat.field"); Connect("select.rand", "training.rand"); } @@ -264,6 +263,12 @@ void TrainImagesBase::TrainModel(FloatVectorImageListType* imageList, const std: selectedNames.push_back("value_" + oss.str()); } GetInternalApplication("training")->SetParameterStringList("feat", selectedNames); + + // cfield is not directly connected to sample.vfn (ListView parameter) because the associated vector + // data is not the same (the fields are not the same). + GetInternalApplication("training")->SetParameterStringList("cfield", + {GetChoiceNames("sample.vfn")[GetSelectedItems("sample.vfn").front()]}); + ExecuteInternal("training"); } -- GitLab From f236ba0f6f78140fe2525641c39d89931a86ac2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Fri, 6 Mar 2020 13:35:40 +0100 Subject: [PATCH 16/23] TEST: added a fiel of type OGRReal in VectorData_QB1_utm31n.sqlite to test merge request 699 --- Data/Input/Classification/VectorData_QB1_utm31n.sqlite | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Data/Input/Classification/VectorData_QB1_utm31n.sqlite b/Data/Input/Classification/VectorData_QB1_utm31n.sqlite index 11375dce47..002084e8d8 100644 --- a/Data/Input/Classification/VectorData_QB1_utm31n.sqlite +++ b/Data/Input/Classification/VectorData_QB1_utm31n.sqlite @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8dd0395d9f1c8a85aedbdbc2838432064ad142865b6bd185aa2d1115edb9ec5a -size 24576 +oid sha256:97d4fa23c9f5e812a0d9e1710393fc2152ddacc03e6c565166b052c629818079 +size 28672 -- GitLab From 7e7cb3e25e26f06329f451851a3139033bd31379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Fri, 6 Mar 2020 14:47:22 +0100 Subject: [PATCH 17/23] TEST: update baseline for bug of mr 699 (additional real field) --- .../OTB-Applications/Files/apTvClSampleSelectionOut.sqlite | 4 ++-- Data/Input/Classification/VectorData_QB1_utm31n.sqlite | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Data/Baseline/OTB-Applications/Files/apTvClSampleSelectionOut.sqlite b/Data/Baseline/OTB-Applications/Files/apTvClSampleSelectionOut.sqlite index be44e2a40b..e96f16fce7 100644 --- a/Data/Baseline/OTB-Applications/Files/apTvClSampleSelectionOut.sqlite +++ b/Data/Baseline/OTB-Applications/Files/apTvClSampleSelectionOut.sqlite @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:827b7ce8d1b924a434f5e2ead16d2e718c22b08b2bcfa1badb9b1e02b7fb70c6 -size 55296 +oid sha256:eecdb9ac7cb7dcb8a0ad1c7d7e7371264f2a21498e6f9699a1996fd49a5dfa34 +size 86016 diff --git a/Data/Input/Classification/VectorData_QB1_utm31n.sqlite b/Data/Input/Classification/VectorData_QB1_utm31n.sqlite index 002084e8d8..1747adba17 100644 --- a/Data/Input/Classification/VectorData_QB1_utm31n.sqlite +++ b/Data/Input/Classification/VectorData_QB1_utm31n.sqlite @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:97d4fa23c9f5e812a0d9e1710393fc2152ddacc03e6c565166b052c629818079 +oid sha256:c736aa0571fbcf4ecb21cc380dbe9211709abd4b73ca884af74428b7d7d20ae5 size 28672 -- GitLab From 567e66be3687f1a192ac555bcb2962f6f445cef9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Mon, 9 Mar 2020 13:31:48 +0100 Subject: [PATCH 18/23] TEST: add multi baseline for equivalent spatial references (test failing on debian testing) --- .../OTB/Files/ioTvMultiDatasetReading1.2.txt | 122 ++++++++++++++++++ .../OTB/Files/ioTvMultiDatasetReading2.2.txt | 122 ++++++++++++++++++ 2 files changed, 244 insertions(+) create mode 100644 Data/Baseline/OTB/Files/ioTvMultiDatasetReading1.2.txt create mode 100644 Data/Baseline/OTB/Files/ioTvMultiDatasetReading2.2.txt diff --git a/Data/Baseline/OTB/Files/ioTvMultiDatasetReading1.2.txt b/Data/Baseline/OTB/Files/ioTvMultiDatasetReading1.2.txt new file mode 100644 index 0000000000..adcc915ef0 --- /dev/null +++ b/Data/Baseline/OTB/Files/ioTvMultiDatasetReading1.2.txt @@ -0,0 +1,122 @@ +VectorImage (0xb89b30) + RTTI typeinfo: otb::VectorImage + Reference Count: 3 + Modified Time: 91 + Debug: Off + Object Name: + Observers: + none + Source: (0xb32850) + Source output name: Primary + Release Data: Off + Data Released: False + Global Release Data: Off + PipelineMTime: 20 + UpdateMTime: 0 + RealTimeStamp: 0 seconds + LargestPossibleRegion: + Dimension: 2 + Index: [0, 0] + Size: [4800, 4800] + BufferedRegion: + Dimension: 2 + Index: [0, 0] + Size: [0, 0] + RequestedRegion: + Dimension: 2 + Index: [0, 0] + Size: [0, 0] + Spacing: [231.656358263749865500358282588, 231.656358263958253473902004771] + Origin: [-12231339.8881538677960634231567, 6671587.28982086759060621261597] + Direction: +1 0 +0 -1 + + IndexToPointMatrix: +231.656358263749865500358282588 0 +0 -231.656358263958253473902004771 + + PointToIndexMatrix: +0.00431673884323719152938947374309 0 +0 -0.00431673884323330835088849966041 + + Inverse Direction: +1 0 +0 -1 + + VectorLength: 1 + PixelContainer: + ImportImageContainer (0xb8b490) + RTTI typeinfo: itk::ImportImageContainer + Reference Count: 1 + Modified Time: 11 + Debug: Off + Object Name: + Observers: + none + Pointer: 0 + Container manages memory: true + Size: 0 + Capacity: 0 + ---> DataType = 0 + ---> DriverLongName = HDF4 Dataset + ---> DriverShortName = HDF4Image + ---> GeoTransform[0] = -12231455.71633299998939037323 + ---> GeoTransform[1] = 231.656358263749865500358282588 + ---> GeoTransform[2] = 0 + ---> GeoTransform[3] = 6671703.11799999978393316268921 + ---> GeoTransform[4] = 0 + ---> GeoTransform[5] = -231.656358263958253473902004771 + ---> LowerLeftCorner[0] = -12231455.71633299998939037323 + ---> LowerLeftCorner[1] = 5559752.59833300020545721054077 + ---> LowerRightCorner[0] = -11119505.1966670006513595581055 + ---> LowerRightCorner[1] = 5559752.59833300020545721054077 + ---> Metadata_0 = DAYNIGHTFLAG=D + ---> Metadata_1 = EASTBOUNDINGCOORDINATE=-155.559418 + ---> Metadata_10 = PROCESSINGCENTER=MODAPS + ---> Metadata_11 = PROCESSINGENVIRONMENT=Linux minion5336 2.6.22.19-server-2mdv #1 SMP Mon May 5 21:13:00 EDT 2008 i686 IntelR XeonR CPU E5430 @ 2.66GHz GNU/Linux + ---> Metadata_12 = PRODUCTIONDATETIME=2008-12-03 19:03:08 + ---> Metadata_13 = RANGEBEGINNINGDATE=2006-08-21 + ---> Metadata_14 = RANGEBEGINNINGTIME=00:00:00 + ---> Metadata_15 = RANGEENDINGDATE=2006-08-28 + ---> Metadata_16 = RANGEENDINGTIME=23:59:59 + ---> Metadata_17 = scale_factor=0.0001 + ---> Metadata_18 = SHORTNAME=MOD09Q1G_EVI + ---> Metadata_19 = SOUTHBOUNDINGCOORDINATE=50.000000 + ---> Metadata_2 = HDFEOSVersion=HDFEOS_V2.9 + ---> Metadata_20 = TileID=51007003 + ---> Metadata_21 = valid_range=-2000, 10000 + ---> Metadata_22 = VERSIONID=5 + ---> Metadata_23 = VERTICALTILENUMBER=03 + ---> Metadata_24 = WESTBOUNDINGCOORDINATE=-180.000000 + ---> Metadata_25 = _FillValue=32767 + ---> Metadata_3 = HORIZONTALTILENUMBER=07 + ---> Metadata_4 = INPUTPOINTER=MOD09Q1.A2005001.h07v03.005.2007352095846.hdf,MOD09Q1.A2005009.h07v03.005.2007356042935.hdf,MOD09Q1.A2005017.h07v03.005.2007358144925.hdf,MOD09Q1.A2005025.h07v03.005.2007362053649.hdf,MOD09Q1.A2005033.h07v03.005.2007364181843.hdf,MOD09Q1.A2005041.h07v03.005.2008001225607.hdf,MOD09Q1.A2005049.h07v03.005.2008199094111.hdf,MOD09Q1.A2005057.h07v03.005.2008200060041.hdf,MOD09Q1.A2005065.h07v03.005.2008011022036.hdf,MOD09Q1.A2005073.h07v03.005.2008011212125.hdf,MOD09Q1.A2005081.h07v03.005.2008013054005.hdf,MOD09Q1.A2005089.h07v03.005.2008013133454.hdf,MOD09Q1.A2005097.h07v03.005.2008015013356.hdf,MOD09Q1.A2005105.h07v03.005.2008018163918.hdf,MOD09Q1.A2005113.h07v03.005.2008020052027.hdf,MOD09Q1.A2005121.h07v03.005.2008022182402.hdf,MOD09Q1.A2005129.h07v03.005.2008024223714.hdf,MOD09Q1.A2005137.h07v03.005.2008032153227.hdf,MOD09Q1.A2005145.h07v03.005.2008034052158.hdf,MOD09Q1.A2005153.h07v03.005.2008233033009.hdf,MOD09Q1.A2005161.h07v03.005.2008036233027.hdf,MOD09Q1.A2005169.h07v03.005.2008039165041.hdf,MOD09Q1.A2005177.h07v03.005.2008205013722.hdf,MOD09Q1.A2005185.h07v03.005.2008044090710.hdf,MOD09Q1.A2005193.h07v03.005.2008047145217.hdf,MOD09Q1.A2005201.h07v03.005.2008210120745.hdf,MOD09Q1.A2005209.h07v03.005.2008053125802.hdf,MOD09Q1.A2005217.h07v03.005.2008055040352.hdf,MOD09Q1.A2005225.h07v03.005.2008058000740.hdf,MOD09Q1.A2005233.h07v03.005.2008213101122.hdf,MOD09Q1.A2005241.h07v03.005.2008064002202.hdf,MOD09Q1.A2005249.h07v03.005.2008066033650.hdf,MOD09Q1.A2005257.h07v03.005.2008217124311.hdf,MOD09Q1.A2005265.h07v03.005.2008219075840.hdf,MOD09Q1.A2005273.h07v03.005.2008071102803.hdf,MOD09Q1.A2005281.h07v03.005.2008073133931.hdf,MOD09Q1.A2005289.h07v03.005.2008075034036.hdf,MOD09Q1.A2005297.h07v03.005.2008076174351.hdf,MOD09Q1.A2005305.h07v03.005.2008080141752.hdf,MOD09Q1.A2005313.h07v03.005.2008083221201.hdf,MOD09Q1.A2005321.h07v03.005.2008262094029.hdf,MOD09Q1.A2005329.h07v03.005.2008086084311.hdf,MOD09Q1.A2005337.h07v03.005.2008220163223.hdf,MOD09Q1.A2005345.h07v03.005.2008221215931.hdf,MOD09Q1.A2005353.h07v03.005.2008092055621.hdf,MOD09Q1.A2005361.h07v03.005.2008095024133.hdf,MOD09Q1.A2006001.h07v03.005.2008070193427.hdf,MOD09Q1.A2006009.h07v03.005.2008072135612.hdf,MOD09Q1.A2006017.h07v03.005.2008276212353.hdf,MOD09Q1.A2006025.h07v03.005.2008076154117.hdf,MOD09Q1.A2006033.h07v03.005.2008078191028.hdf,MOD09Q1.A2006041.h07v03.005.2008080125013.hdf,MOD09Q1.A2006049.h07v03.005.2008081182250.hdf,MOD09Q1.A2006057.h07v03.005.2008085025553.hdf,MOD09Q1.A2006065.h07v03.005.2008087112458.hdf,MOD09Q1.A2006073.h07v03.005.2008092234820.hdf,MOD09Q1.A2006081.h07v03.005.2008094112804.hdf,MOD09Q1.A2006089.h07v03.005.2008097163119.hdf,MOD09Q1.A2006097.h07v03.005.2008104024251.hdf,MOD09Q1.A2006105.h07v03.005.2008109184327.hdf,MOD09Q1.A2006113.h07v03.005.2008112065622.hdf,MOD09Q1.A2006121.h07v03.005.2008114114856.hdf,MOD09Q1.A2006129.h07v03.005.2008116161824.hdf,MOD09Q1.A2006137.h07v03.005.2008321005918.hdf,MOD09Q1.A2006145.h07v03.005.2008122023004.hdf,MOD09Q1.A2006153.h07v03.005.2008123012242.hdf,MOD09Q1.A2006161.h07v03.005.2008234022032.hdf,MOD09Q1.A2006169.h07v03.005.2008234074811.hdf,MOD09Q1.A2006177.h07v03.005.2008132204725.hdf,MOD09Q1.A2006185.h07v03.005.2008135162032.hdf,MOD09Q1.A2006193.h07v03.005.2008137192236.hdf,MOD09Q1.A2006201.h07v03.005.2008141212813.hdf,MOD09Q1.A2006209.h07v03.005.2008103130546.hdf,MOD09Q1.A2006217.h07v03.005.2008104140630.hdf,MOD09Q1.A2006225.h07v03.005.2008105043844.hdf,MOD09Q1.A2006233.h07v03.005.2008105044121.hdf,MOD09Q1.A2006241.h07v03.005.2008106172058.hdf,MOD09Q1.A2006249.h07v03.005.2008107093939.hdf,MOD09Q1.A2006257.h07v03.005.2008108021339.hdf,MOD09Q1.A2006265.h07v03.005.2008111101737.hdf,MOD09Q1.A2006273.h07v03.005.2008112052549.hdf,MOD09Q1.A2006281.h07v03.005.2008273123529.hdf,MOD09Q1.A2006289.h07v03.005.2008274210225.hdf,MOD09Q1.A2006297.h07v03.005.2008118080101.hdf,MOD09Q1.A2006305.h07v03.005.2008120230812.hdf,MOD09Q1.A2006313.h07v03.005.2008241150850.hdf,MOD09Q1.A2006321.h07v03.005.2008244194430.hdf,MOD09Q1.A2006329.h07v03.005.2008126194831.hdf,MOD09Q1.A2006337.h07v03.005.2008245113942.hdf,MOD09Q1.A2006345.h07v03.005.2008130125501.hdf,MOD09Q1.A2006353.h07v03.005.2008132125251.hdf,MOD09Q1.A2006361.h07v03.005.2008134123022.hdf,MOD09Q1.A2007001.h07v03.005.2007076052452.hdf,MOD09Q1.A2007009.h07v03.005.2007136101828.hdf,MOD09Q1.A2007017.h07v03.005.2007093100811.hdf,MOD09Q1.A2007025.h07v03.005.2007095141813.hdf,MOD09Q1.A2007033.h07v03.005.2007098192405.hdf,MOD09Q1.A2007041.h07v03.005.2007101004317.hdf,MOD09Q1.A2007049.h07v03.005.2007085092438.hdf,MOD09Q1.A2007057.h07v03.005.2007087160003.hdf,MOD09Q1.A2007065.h07v03.005.2007088114416.hdf,MOD09Q1.A2007073.h07v03.005.2007099084828.hdf,MOD09Q1.A2007081.h07v03.005.2007096142248.hdf,MOD09Q1.A2007089.h07v03.005.2007106224915.hdf,MOD09Q1.A2007097.h07v03.005.2007109005711.hdf,MOD09Q1.A2007105.h07v03.005.2007125012353.hdf,MOD09Q1.A2007113.h07v03.005.2007128052651.hdf,MOD09Q1.A2007121.h07v03.005.2007134225638.hdf,MOD09Q1.A2007129.h07v03.005.2007141162617.hdf,MOD09Q1.A2007137.h07v03.005.2007153014546.hdf,MOD09Q1.A2007145.h07v03.005.2007157171309.hdf,MOD09Q1.A2007153.h07v03.005.2007178163256.hdf,MOD09Q1.A2007161.h07v03.005.2007175194918.hdf,MOD09Q1.A2007169.h07v03.005.2007187125224.hdf,MOD09Q1.A2007177.h07v03.005.2007196172558.hdf,MOD09Q1.A2007185.h07v03.005.2007199131411.hdf,MOD09Q1.A2007193.h07v03.005.2007207123400.hdf,MOD09Q1.A2007201.h07v03.005.2007213034004.hdf,MOD09Q1.A2007209.h07v03.005.2007225042942.hdf,MOD09Q1.A2007217.h07v03.005.2007230064153.hdf,MOD09Q1.A2007225.h07v03.005.2007235133407.hdf,MOD09Q1.A2007233.h07v03.005.2007243114300.hdf,MOD09Q1.A2007241.h07v03.005.2007251112304.hdf,MOD09Q1.A2007249.h07v03.005.2007261034748.hdf,MOD09Q1.A2007257.h07v03.005.2007269054105.hdf,MOD09Q1.A2007265.h07v03.005.2007277010940.hdf,MOD09Q1.A2007273.h07v03.005.2008249094346.hdf,MOD09Q1.A2007281.h07v03.005.2007307120444.hdf,MOD09Q1.A2007289.h07v03.005.2007308194148.hdf,MOD09Q1.A2007297.h07v03.005.2007310022005.hdf,MOD09Q1.A2007305.h07v03.005.2007333221138.hdf,MOD09Q1.A2007313.h07v03.005.2007335153053.hdf,MOD09Q1.A2007321.h07v03.005.2007336102951.hdf,MOD09Q1.A2007329.h07v03.005.2007344152348.hdf,MOD09Q1.A2007337.h07v03.005.2007347030421.hdf,MOD09Q1.A2007345.h07v03.005.2007359183333.hdf,MOD09Q1.A2007353.h07v03.005.2007363073726.hdf,MOD09Q1.A2007361.h07v03.005.2008006173517.hdf + ---> Metadata_5 = LOCALGRANULEID=MOD09Q1G_EVI.A2006233.h07v03.005.2008338190308.hdf + ---> Metadata_6 = LONGNAME=MODIS/Terra Gap-Filled, Smoothed EVI 8-Day L4 500m SIN Grid + ---> Metadata_7 = long_name=MODIS EVI Computed from MOD09A1 + ---> Metadata_8 = NORTHBOUNDINGCOORDINATE=56.258333 + ---> Metadata_9 = PGEVERSION=5.0.6 + ---> NoDataValue[0] = 32767 + ---> ProjectionRef = PROJCS["unnamed", + GEOGCS["Unknown datum based upon the custom spheroid", + DATUM["Not specified (based on custom spheroid)", + SPHEROID["Custom spheroid",6371007.181,0]], + PRIMEM["Greenwich",0], + UNIT["degree",0.0174532925199433, + AUTHORITY["EPSG","9122"]]], + PROJECTION["Sinusoidal"], + PARAMETER["longitude_of_center",0], + PARAMETER["false_easting",0], + PARAMETER["false_northing",0], + UNIT["Meter",1], + AXIS["Easting",EAST], + AXIS["Northing",NORTH]] + ---> ResolutionFactor = 0 + ---> SubDatasetIndex = 0 + ---> TileHintX = 4800 + ---> TileHintY = 4800 + ---> UpperLeftCorner[0] = -12231455.71633299998939037323 + ---> UpperLeftCorner[1] = 6671703.11799999978393316268921 + ---> UpperRightCorner[0] = -11119505.1966670006513595581055 + ---> UpperRightCorner[1] = 6671703.11799999978393316268921 diff --git a/Data/Baseline/OTB/Files/ioTvMultiDatasetReading2.2.txt b/Data/Baseline/OTB/Files/ioTvMultiDatasetReading2.2.txt new file mode 100644 index 0000000000..51e9ff99f1 --- /dev/null +++ b/Data/Baseline/OTB/Files/ioTvMultiDatasetReading2.2.txt @@ -0,0 +1,122 @@ +VectorImage (0x951b30) + RTTI typeinfo: otb::VectorImage + Reference Count: 3 + Modified Time: 90 + Debug: Off + Object Name: + Observers: + none + Source: (0x8fa850) + Source output name: Primary + Release Data: Off + Data Released: False + Global Release Data: Off + PipelineMTime: 20 + UpdateMTime: 0 + RealTimeStamp: 0 seconds + LargestPossibleRegion: + Dimension: 2 + Index: [0, 0] + Size: [4800, 4800] + BufferedRegion: + Dimension: 2 + Index: [0, 0] + Size: [0, 0] + RequestedRegion: + Dimension: 2 + Index: [0, 0] + Size: [0, 0] + Spacing: [231.656358263749865500358282588, 231.656358263958253473902004771] + Origin: [-12231339.8881538677960634231567, 6671587.28982086759060621261597] + Direction: +1 0 +0 -1 + + IndexToPointMatrix: +231.656358263749865500358282588 0 +0 -231.656358263958253473902004771 + + PointToIndexMatrix: +0.00431673884323719152938947374309 0 +0 -0.00431673884323330835088849966041 + + Inverse Direction: +1 0 +0 -1 + + VectorLength: 1 + PixelContainer: + ImportImageContainer (0x953490) + RTTI typeinfo: itk::ImportImageContainer + Reference Count: 1 + Modified Time: 11 + Debug: Off + Object Name: + Observers: + none + Pointer: 0 + Container manages memory: true + Size: 0 + Capacity: 0 + ---> DataType = 0 + ---> DriverLongName = HDF4 Dataset + ---> DriverShortName = HDF4Image + ---> GeoTransform[0] = -12231455.71633299998939037323 + ---> GeoTransform[1] = 231.656358263749865500358282588 + ---> GeoTransform[2] = 0 + ---> GeoTransform[3] = 6671703.11799999978393316268921 + ---> GeoTransform[4] = 0 + ---> GeoTransform[5] = -231.656358263958253473902004771 + ---> LowerLeftCorner[0] = -12231455.71633299998939037323 + ---> LowerLeftCorner[1] = 5559752.59833300020545721054077 + ---> LowerRightCorner[0] = -11119505.1966670006513595581055 + ---> LowerRightCorner[1] = 5559752.59833300020545721054077 + ---> Metadata_0 = DAYNIGHTFLAG=D + ---> Metadata_1 = description= +1 = high quality MODIS EVI +2 = smoothed EVI +3 = fill value from MODIS + ---> Metadata_10 = PGEVERSION=5.0.6 + ---> Metadata_11 = PROCESSINGCENTER=MODAPS + ---> Metadata_12 = PROCESSINGENVIRONMENT=Linux minion5336 2.6.22.19-server-2mdv #1 SMP Mon May 5 21:13:00 EDT 2008 i686 IntelR XeonR CPU E5430 @ 2.66GHz GNU/Linux + ---> Metadata_13 = PRODUCTIONDATETIME=2008-12-03 19:03:08 + ---> Metadata_14 = RANGEBEGINNINGDATE=2006-08-21 + ---> Metadata_15 = RANGEBEGINNINGTIME=00:00:00 + ---> Metadata_16 = RANGEENDINGDATE=2006-08-28 + ---> Metadata_17 = RANGEENDINGTIME=23:59:59 + ---> Metadata_18 = SHORTNAME=MOD09Q1G_EVI + ---> Metadata_19 = SOUTHBOUNDINGCOORDINATE=50.000000 + ---> Metadata_2 = EASTBOUNDINGCOORDINATE=-155.559418 + ---> Metadata_20 = TileID=51007003 + ---> Metadata_21 = VERSIONID=5 + ---> Metadata_22 = VERTICALTILENUMBER=03 + ---> Metadata_23 = WESTBOUNDINGCOORDINATE=-180.000000 + ---> Metadata_3 = HDFEOSVersion=HDFEOS_V2.9 + ---> Metadata_4 = HORIZONTALTILENUMBER=07 + ---> Metadata_5 = INPUTPOINTER=MOD09Q1.A2005001.h07v03.005.2007352095846.hdf,MOD09Q1.A2005009.h07v03.005.2007356042935.hdf,MOD09Q1.A2005017.h07v03.005.2007358144925.hdf,MOD09Q1.A2005025.h07v03.005.2007362053649.hdf,MOD09Q1.A2005033.h07v03.005.2007364181843.hdf,MOD09Q1.A2005041.h07v03.005.2008001225607.hdf,MOD09Q1.A2005049.h07v03.005.2008199094111.hdf,MOD09Q1.A2005057.h07v03.005.2008200060041.hdf,MOD09Q1.A2005065.h07v03.005.2008011022036.hdf,MOD09Q1.A2005073.h07v03.005.2008011212125.hdf,MOD09Q1.A2005081.h07v03.005.2008013054005.hdf,MOD09Q1.A2005089.h07v03.005.2008013133454.hdf,MOD09Q1.A2005097.h07v03.005.2008015013356.hdf,MOD09Q1.A2005105.h07v03.005.2008018163918.hdf,MOD09Q1.A2005113.h07v03.005.2008020052027.hdf,MOD09Q1.A2005121.h07v03.005.2008022182402.hdf,MOD09Q1.A2005129.h07v03.005.2008024223714.hdf,MOD09Q1.A2005137.h07v03.005.2008032153227.hdf,MOD09Q1.A2005145.h07v03.005.2008034052158.hdf,MOD09Q1.A2005153.h07v03.005.2008233033009.hdf,MOD09Q1.A2005161.h07v03.005.2008036233027.hdf,MOD09Q1.A2005169.h07v03.005.2008039165041.hdf,MOD09Q1.A2005177.h07v03.005.2008205013722.hdf,MOD09Q1.A2005185.h07v03.005.2008044090710.hdf,MOD09Q1.A2005193.h07v03.005.2008047145217.hdf,MOD09Q1.A2005201.h07v03.005.2008210120745.hdf,MOD09Q1.A2005209.h07v03.005.2008053125802.hdf,MOD09Q1.A2005217.h07v03.005.2008055040352.hdf,MOD09Q1.A2005225.h07v03.005.2008058000740.hdf,MOD09Q1.A2005233.h07v03.005.2008213101122.hdf,MOD09Q1.A2005241.h07v03.005.2008064002202.hdf,MOD09Q1.A2005249.h07v03.005.2008066033650.hdf,MOD09Q1.A2005257.h07v03.005.2008217124311.hdf,MOD09Q1.A2005265.h07v03.005.2008219075840.hdf,MOD09Q1.A2005273.h07v03.005.2008071102803.hdf,MOD09Q1.A2005281.h07v03.005.2008073133931.hdf,MOD09Q1.A2005289.h07v03.005.2008075034036.hdf,MOD09Q1.A2005297.h07v03.005.2008076174351.hdf,MOD09Q1.A2005305.h07v03.005.2008080141752.hdf,MOD09Q1.A2005313.h07v03.005.2008083221201.hdf,MOD09Q1.A2005321.h07v03.005.2008262094029.hdf,MOD09Q1.A2005329.h07v03.005.2008086084311.hdf,MOD09Q1.A2005337.h07v03.005.2008220163223.hdf,MOD09Q1.A2005345.h07v03.005.2008221215931.hdf,MOD09Q1.A2005353.h07v03.005.2008092055621.hdf,MOD09Q1.A2005361.h07v03.005.2008095024133.hdf,MOD09Q1.A2006001.h07v03.005.2008070193427.hdf,MOD09Q1.A2006009.h07v03.005.2008072135612.hdf,MOD09Q1.A2006017.h07v03.005.2008276212353.hdf,MOD09Q1.A2006025.h07v03.005.2008076154117.hdf,MOD09Q1.A2006033.h07v03.005.2008078191028.hdf,MOD09Q1.A2006041.h07v03.005.2008080125013.hdf,MOD09Q1.A2006049.h07v03.005.2008081182250.hdf,MOD09Q1.A2006057.h07v03.005.2008085025553.hdf,MOD09Q1.A2006065.h07v03.005.2008087112458.hdf,MOD09Q1.A2006073.h07v03.005.2008092234820.hdf,MOD09Q1.A2006081.h07v03.005.2008094112804.hdf,MOD09Q1.A2006089.h07v03.005.2008097163119.hdf,MOD09Q1.A2006097.h07v03.005.2008104024251.hdf,MOD09Q1.A2006105.h07v03.005.2008109184327.hdf,MOD09Q1.A2006113.h07v03.005.2008112065622.hdf,MOD09Q1.A2006121.h07v03.005.2008114114856.hdf,MOD09Q1.A2006129.h07v03.005.2008116161824.hdf,MOD09Q1.A2006137.h07v03.005.2008321005918.hdf,MOD09Q1.A2006145.h07v03.005.2008122023004.hdf,MOD09Q1.A2006153.h07v03.005.2008123012242.hdf,MOD09Q1.A2006161.h07v03.005.2008234022032.hdf,MOD09Q1.A2006169.h07v03.005.2008234074811.hdf,MOD09Q1.A2006177.h07v03.005.2008132204725.hdf,MOD09Q1.A2006185.h07v03.005.2008135162032.hdf,MOD09Q1.A2006193.h07v03.005.2008137192236.hdf,MOD09Q1.A2006201.h07v03.005.2008141212813.hdf,MOD09Q1.A2006209.h07v03.005.2008103130546.hdf,MOD09Q1.A2006217.h07v03.005.2008104140630.hdf,MOD09Q1.A2006225.h07v03.005.2008105043844.hdf,MOD09Q1.A2006233.h07v03.005.2008105044121.hdf,MOD09Q1.A2006241.h07v03.005.2008106172058.hdf,MOD09Q1.A2006249.h07v03.005.2008107093939.hdf,MOD09Q1.A2006257.h07v03.005.2008108021339.hdf,MOD09Q1.A2006265.h07v03.005.2008111101737.hdf,MOD09Q1.A2006273.h07v03.005.2008112052549.hdf,MOD09Q1.A2006281.h07v03.005.2008273123529.hdf,MOD09Q1.A2006289.h07v03.005.2008274210225.hdf,MOD09Q1.A2006297.h07v03.005.2008118080101.hdf,MOD09Q1.A2006305.h07v03.005.2008120230812.hdf,MOD09Q1.A2006313.h07v03.005.2008241150850.hdf,MOD09Q1.A2006321.h07v03.005.2008244194430.hdf,MOD09Q1.A2006329.h07v03.005.2008126194831.hdf,MOD09Q1.A2006337.h07v03.005.2008245113942.hdf,MOD09Q1.A2006345.h07v03.005.2008130125501.hdf,MOD09Q1.A2006353.h07v03.005.2008132125251.hdf,MOD09Q1.A2006361.h07v03.005.2008134123022.hdf,MOD09Q1.A2007001.h07v03.005.2007076052452.hdf,MOD09Q1.A2007009.h07v03.005.2007136101828.hdf,MOD09Q1.A2007017.h07v03.005.2007093100811.hdf,MOD09Q1.A2007025.h07v03.005.2007095141813.hdf,MOD09Q1.A2007033.h07v03.005.2007098192405.hdf,MOD09Q1.A2007041.h07v03.005.2007101004317.hdf,MOD09Q1.A2007049.h07v03.005.2007085092438.hdf,MOD09Q1.A2007057.h07v03.005.2007087160003.hdf,MOD09Q1.A2007065.h07v03.005.2007088114416.hdf,MOD09Q1.A2007073.h07v03.005.2007099084828.hdf,MOD09Q1.A2007081.h07v03.005.2007096142248.hdf,MOD09Q1.A2007089.h07v03.005.2007106224915.hdf,MOD09Q1.A2007097.h07v03.005.2007109005711.hdf,MOD09Q1.A2007105.h07v03.005.2007125012353.hdf,MOD09Q1.A2007113.h07v03.005.2007128052651.hdf,MOD09Q1.A2007121.h07v03.005.2007134225638.hdf,MOD09Q1.A2007129.h07v03.005.2007141162617.hdf,MOD09Q1.A2007137.h07v03.005.2007153014546.hdf,MOD09Q1.A2007145.h07v03.005.2007157171309.hdf,MOD09Q1.A2007153.h07v03.005.2007178163256.hdf,MOD09Q1.A2007161.h07v03.005.2007175194918.hdf,MOD09Q1.A2007169.h07v03.005.2007187125224.hdf,MOD09Q1.A2007177.h07v03.005.2007196172558.hdf,MOD09Q1.A2007185.h07v03.005.2007199131411.hdf,MOD09Q1.A2007193.h07v03.005.2007207123400.hdf,MOD09Q1.A2007201.h07v03.005.2007213034004.hdf,MOD09Q1.A2007209.h07v03.005.2007225042942.hdf,MOD09Q1.A2007217.h07v03.005.2007230064153.hdf,MOD09Q1.A2007225.h07v03.005.2007235133407.hdf,MOD09Q1.A2007233.h07v03.005.2007243114300.hdf,MOD09Q1.A2007241.h07v03.005.2007251112304.hdf,MOD09Q1.A2007249.h07v03.005.2007261034748.hdf,MOD09Q1.A2007257.h07v03.005.2007269054105.hdf,MOD09Q1.A2007265.h07v03.005.2007277010940.hdf,MOD09Q1.A2007273.h07v03.005.2008249094346.hdf,MOD09Q1.A2007281.h07v03.005.2007307120444.hdf,MOD09Q1.A2007289.h07v03.005.2007308194148.hdf,MOD09Q1.A2007297.h07v03.005.2007310022005.hdf,MOD09Q1.A2007305.h07v03.005.2007333221138.hdf,MOD09Q1.A2007313.h07v03.005.2007335153053.hdf,MOD09Q1.A2007321.h07v03.005.2007336102951.hdf,MOD09Q1.A2007329.h07v03.005.2007344152348.hdf,MOD09Q1.A2007337.h07v03.005.2007347030421.hdf,MOD09Q1.A2007345.h07v03.005.2007359183333.hdf,MOD09Q1.A2007353.h07v03.005.2007363073726.hdf,MOD09Q1.A2007361.h07v03.005.2008006173517.hdf + ---> Metadata_6 = LOCALGRANULEID=MOD09Q1G_EVI.A2006233.h07v03.005.2008338190308.hdf + ---> Metadata_7 = LONGNAME=MODIS/Terra Gap-Filled, Smoothed EVI 8-Day L4 500m SIN Grid + ---> Metadata_8 = long_name=Composed EVI Quality + ---> Metadata_9 = NORTHBOUNDINGCOORDINATE=56.258333 + ---> ProjectionRef = PROJCS["unnamed", + GEOGCS["Unknown datum based upon the custom spheroid", + DATUM["Not specified (based on custom spheroid)", + SPHEROID["Custom spheroid",6371007.181,0]], + PRIMEM["Greenwich",0], + UNIT["degree",0.0174532925199433, + AUTHORITY["EPSG","9122"]]], + PROJECTION["Sinusoidal"], + PARAMETER["longitude_of_center",0], + PARAMETER["false_easting",0], + PARAMETER["false_northing",0], + UNIT["Meter",1], + AXIS["Easting",EAST], + AXIS["Northing",NORTH]] + ---> ResolutionFactor = 0 + ---> SubDatasetIndex = 5 + ---> TileHintX = 4800 + ---> TileHintY = 4800 + ---> UpperLeftCorner[0] = -12231455.71633299998939037323 + ---> UpperLeftCorner[1] = 6671703.11799999978393316268921 + ---> UpperRightCorner[0] = -11119505.1966670006513595581055 + ---> UpperRightCorner[1] = 6671703.11799999978393316268921 -- GitLab From 60156b42ecffcd16348b6206959b4a6bb138f9f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Sun, 8 Mar 2020 23:32:55 +0100 Subject: [PATCH 19/23] BUG: Don't try to open hdr file when looking for rpc tag because this makes the ENVI driver throw an error --- .../OSSIMAdapters/src/otbImageKeywordlist.cxx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Modules/Adapters/OSSIMAdapters/src/otbImageKeywordlist.cxx b/Modules/Adapters/OSSIMAdapters/src/otbImageKeywordlist.cxx index 3d185c4b39..4923d4d994 100644 --- a/Modules/Adapters/OSSIMAdapters/src/otbImageKeywordlist.cxx +++ b/Modules/Adapters/OSSIMAdapters/src/otbImageKeywordlist.cxx @@ -22,6 +22,7 @@ #include "otbConfigurationManager.h" #include +#include #include "otbMacro.h" @@ -344,6 +345,17 @@ ImageKeywordlist ReadGeometryFromRPCTag(const std::string& filename) ossimKeywordlist geom_kwl; ImageKeywordlist otb_kwl; + // Don't call GDALIdentifyDriver on a hdr file because this makes the ENVI driver throw an error: + // "ERROR 1: The selected file is an ENVI header file, but to open ENVI datasets, the data file + // should be selected instead of the .hdr file. Please try again selecting the data file corresponding + // to the header file" + // No driver can open hdr file anyway. + std::string extension = itksys::SystemTools::GetFilenameLastExtension(filename); + if ((extension == ".HDR") || (extension == ".hdr")) + { + return otb_kwl; + } + // try to use GeoTiff RPC tag if present. // Warning : RPC in subdatasets are not supported GDALDriverH identifyDriverH = GDALIdentifyDriver(filename.c_str(), nullptr); -- GitLab From 90a6d23790d1856f1048ac04a6de976dce14df7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Thu, 12 Mar 2020 18:14:00 +0100 Subject: [PATCH 20/23] ENH: use boost iequals for insensitive case comparison instead of performing two comparisons. --- Modules/Adapters/OSSIMAdapters/src/otbImageKeywordlist.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Modules/Adapters/OSSIMAdapters/src/otbImageKeywordlist.cxx b/Modules/Adapters/OSSIMAdapters/src/otbImageKeywordlist.cxx index 4923d4d994..03715f28f6 100644 --- a/Modules/Adapters/OSSIMAdapters/src/otbImageKeywordlist.cxx +++ b/Modules/Adapters/OSSIMAdapters/src/otbImageKeywordlist.cxx @@ -60,6 +60,7 @@ #include "otbSensorModelAdapter.h" #include #include +#include namespace otb { @@ -351,7 +352,7 @@ ImageKeywordlist ReadGeometryFromRPCTag(const std::string& filename) // to the header file" // No driver can open hdr file anyway. std::string extension = itksys::SystemTools::GetFilenameLastExtension(filename); - if ((extension == ".HDR") || (extension == ".hdr")) + if (boost::iequals(extension, ".hdr")) { return otb_kwl; } -- GitLab From e3707a351a005111221b4e2b56148fc163aefa69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Mon, 16 Mar 2020 10:28:31 +0100 Subject: [PATCH 21/23] DOC: Wrong cmake variable name indicated in error message (OTB_BUILD_MODULE_AS_STANDALONE) --- CMake/OTBModuleExternal.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMake/OTBModuleExternal.cmake b/CMake/OTBModuleExternal.cmake index f629eeeab4..4badc425a6 100644 --- a/CMake/OTBModuleExternal.cmake +++ b/CMake/OTBModuleExternal.cmake @@ -36,7 +36,7 @@ if(NOT EXISTS ${OTB_CMAKE_DIR}/OTBModuleMacros.cmake) message(FATAL_ERROR "Modules can only be built against an OTB build tree; " "they cannot be built against an OTB install tree. You can build " "your module as a standalone CMake project instead, by activating " - "the BUILD_MODULE_AS_STANDALONE option. Beware that dependency " + "the OTB_BUILD_MODULE_AS_STANDALONE option. Beware that dependency " "between remote modules will NOT be tracked.") endif() endif() -- GitLab From aaa94b8d33a69f1df525f41c3221c2fb11b51463 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Mon, 16 Mar 2020 14:27:36 +0100 Subject: [PATCH 22/23] ENH: updated release notes for 7.1 --- RELEASE_NOTES.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt index 0d459e5e77..ff9974ee40 100644 --- a/RELEASE_NOTES.txt +++ b/RELEASE_NOTES.txt @@ -1,8 +1,9 @@ -OTB-v 7.1.0 - Changes since version 7.0.0 (February 29th, 2020) +OTB-v 7.1.0 - Changes since version 7.0.0 (March 16th, 2020) ---------------------------------------------------------------- Features added: + * !681: ENH: allow HTTP GDAL datasets by Laurențiu Nicola * !673: Smoothing application enhancement by Cédric Traizet * !655: BUG: migrate to QOpenGLWidget by Victor Poughon @@ -13,6 +14,8 @@ Features added: Bugs fixed: + * !701: Error when opening ENVI datasets by Cédric Traizet + * !699: Fix listview parameter in TrainImagesClassifier * !679: COMP: Remove RemoteSensingRegion assignment operator by Laurențiu Nicola * !678: BUG: Fix warnings and possible UB in `VariadicInputsImageFilter::SetInputsImpl` by Laurențiu Nicola * !677: Fix debian build by Cédric Traizet -- GitLab From 155e8b77408bd77b224b6a9a8b1ea8cede7bafdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Traizet?= Date: Tue, 17 Mar 2020 17:12:42 +0100 Subject: [PATCH 23/23] BUG: updated multi baselines for ioTvMultiDatasetReading 1 and 2, 'Not specified based on custom spheroid' is not formatted is the same way between different gdal versions --- .../OTB/Files/ioTvMultiDatasetReading1.2.txt | 42 +++++++++---------- .../OTB/Files/ioTvMultiDatasetReading2.2.txt | 42 +++++++++---------- 2 files changed, 42 insertions(+), 42 deletions(-) diff --git a/Data/Baseline/OTB/Files/ioTvMultiDatasetReading1.2.txt b/Data/Baseline/OTB/Files/ioTvMultiDatasetReading1.2.txt index adcc915ef0..288b601d5c 100644 --- a/Data/Baseline/OTB/Files/ioTvMultiDatasetReading1.2.txt +++ b/Data/Baseline/OTB/Files/ioTvMultiDatasetReading1.2.txt @@ -1,4 +1,4 @@ -VectorImage (0xb89b30) +VectorImage (0x22abdc0) RTTI typeinfo: otb::VectorImage Reference Count: 3 Modified Time: 91 @@ -6,7 +6,7 @@ VectorImage (0xb89b30) Object Name: Observers: none - Source: (0xb32850) + Source: (0x22a5720) Source output name: Primary Release Data: Off Data Released: False @@ -26,19 +26,19 @@ VectorImage (0xb89b30) Dimension: 2 Index: [0, 0] Size: [0, 0] - Spacing: [231.656358263749865500358282588, 231.656358263958253473902004771] - Origin: [-12231339.8881538677960634231567, 6671587.28982086759060621261597] + Spacing: [231.65635826375, 231.656358263958] + Origin: [-12231339.8881539, 6671587.28982087] Direction: 1 0 0 -1 IndexToPointMatrix: -231.656358263749865500358282588 0 -0 -231.656358263958253473902004771 +231.65635826375 0 +0 -231.656358263958 PointToIndexMatrix: -0.00431673884323719152938947374309 0 -0 -0.00431673884323330835088849966041 +0.00431673884323719 0 +0 -0.00431673884323331 Inverse Direction: 1 0 @@ -46,7 +46,7 @@ VectorImage (0xb89b30) VectorLength: 1 PixelContainer: - ImportImageContainer (0xb8b490) + ImportImageContainer (0x22a5650) RTTI typeinfo: itk::ImportImageContainer Reference Count: 1 Modified Time: 11 @@ -61,16 +61,16 @@ VectorImage (0xb89b30) ---> DataType = 0 ---> DriverLongName = HDF4 Dataset ---> DriverShortName = HDF4Image - ---> GeoTransform[0] = -12231455.71633299998939037323 - ---> GeoTransform[1] = 231.656358263749865500358282588 + ---> GeoTransform[0] = -12231455.716333 + ---> GeoTransform[1] = 231.65635826375 ---> GeoTransform[2] = 0 - ---> GeoTransform[3] = 6671703.11799999978393316268921 + ---> GeoTransform[3] = 6671703.118 ---> GeoTransform[4] = 0 - ---> GeoTransform[5] = -231.656358263958253473902004771 - ---> LowerLeftCorner[0] = -12231455.71633299998939037323 - ---> LowerLeftCorner[1] = 5559752.59833300020545721054077 - ---> LowerRightCorner[0] = -11119505.1966670006513595581055 - ---> LowerRightCorner[1] = 5559752.59833300020545721054077 + ---> GeoTransform[5] = -231.656358263958 + ---> LowerLeftCorner[0] = -12231455.716333 + ---> LowerLeftCorner[1] = 5559752.598333 + ---> LowerRightCorner[0] = -11119505.196667 + ---> LowerRightCorner[1] = 5559752.598333 ---> Metadata_0 = DAYNIGHTFLAG=D ---> Metadata_1 = EASTBOUNDINGCOORDINATE=-155.559418 ---> Metadata_10 = PROCESSINGCENTER=MODAPS @@ -116,7 +116,7 @@ VectorImage (0xb89b30) ---> SubDatasetIndex = 0 ---> TileHintX = 4800 ---> TileHintY = 4800 - ---> UpperLeftCorner[0] = -12231455.71633299998939037323 - ---> UpperLeftCorner[1] = 6671703.11799999978393316268921 - ---> UpperRightCorner[0] = -11119505.1966670006513595581055 - ---> UpperRightCorner[1] = 6671703.11799999978393316268921 + ---> UpperLeftCorner[0] = -12231455.716333 + ---> UpperLeftCorner[1] = 6671703.118 + ---> UpperRightCorner[0] = -11119505.196667 + ---> UpperRightCorner[1] = 6671703.118 diff --git a/Data/Baseline/OTB/Files/ioTvMultiDatasetReading2.2.txt b/Data/Baseline/OTB/Files/ioTvMultiDatasetReading2.2.txt index 51e9ff99f1..4309773d39 100644 --- a/Data/Baseline/OTB/Files/ioTvMultiDatasetReading2.2.txt +++ b/Data/Baseline/OTB/Files/ioTvMultiDatasetReading2.2.txt @@ -1,4 +1,4 @@ -VectorImage (0x951b30) +VectorImage (0x2055dc0) RTTI typeinfo: otb::VectorImage Reference Count: 3 Modified Time: 90 @@ -6,7 +6,7 @@ VectorImage (0x951b30) Object Name: Observers: none - Source: (0x8fa850) + Source: (0x204f720) Source output name: Primary Release Data: Off Data Released: False @@ -26,19 +26,19 @@ VectorImage (0x951b30) Dimension: 2 Index: [0, 0] Size: [0, 0] - Spacing: [231.656358263749865500358282588, 231.656358263958253473902004771] - Origin: [-12231339.8881538677960634231567, 6671587.28982086759060621261597] + Spacing: [231.65635826375, 231.656358263958] + Origin: [-12231339.8881539, 6671587.28982087] Direction: 1 0 0 -1 IndexToPointMatrix: -231.656358263749865500358282588 0 -0 -231.656358263958253473902004771 +231.65635826375 0 +0 -231.656358263958 PointToIndexMatrix: -0.00431673884323719152938947374309 0 -0 -0.00431673884323330835088849966041 +0.00431673884323719 0 +0 -0.00431673884323331 Inverse Direction: 1 0 @@ -46,7 +46,7 @@ VectorImage (0x951b30) VectorLength: 1 PixelContainer: - ImportImageContainer (0x953490) + ImportImageContainer (0x204f650) RTTI typeinfo: itk::ImportImageContainer Reference Count: 1 Modified Time: 11 @@ -61,16 +61,16 @@ VectorImage (0x951b30) ---> DataType = 0 ---> DriverLongName = HDF4 Dataset ---> DriverShortName = HDF4Image - ---> GeoTransform[0] = -12231455.71633299998939037323 - ---> GeoTransform[1] = 231.656358263749865500358282588 + ---> GeoTransform[0] = -12231455.716333 + ---> GeoTransform[1] = 231.65635826375 ---> GeoTransform[2] = 0 - ---> GeoTransform[3] = 6671703.11799999978393316268921 + ---> GeoTransform[3] = 6671703.118 ---> GeoTransform[4] = 0 - ---> GeoTransform[5] = -231.656358263958253473902004771 - ---> LowerLeftCorner[0] = -12231455.71633299998939037323 - ---> LowerLeftCorner[1] = 5559752.59833300020545721054077 - ---> LowerRightCorner[0] = -11119505.1966670006513595581055 - ---> LowerRightCorner[1] = 5559752.59833300020545721054077 + ---> GeoTransform[5] = -231.656358263958 + ---> LowerLeftCorner[0] = -12231455.716333 + ---> LowerLeftCorner[1] = 5559752.598333 + ---> LowerRightCorner[0] = -11119505.196667 + ---> LowerRightCorner[1] = 5559752.598333 ---> Metadata_0 = DAYNIGHTFLAG=D ---> Metadata_1 = description= 1 = high quality MODIS EVI @@ -116,7 +116,7 @@ VectorImage (0x951b30) ---> SubDatasetIndex = 5 ---> TileHintX = 4800 ---> TileHintY = 4800 - ---> UpperLeftCorner[0] = -12231455.71633299998939037323 - ---> UpperLeftCorner[1] = 6671703.11799999978393316268921 - ---> UpperRightCorner[0] = -11119505.1966670006513595581055 - ---> UpperRightCorner[1] = 6671703.11799999978393316268921 + ---> UpperLeftCorner[0] = -12231455.716333 + ---> UpperLeftCorner[1] = 6671703.118 + ---> UpperRightCorner[0] = -11119505.196667 + ---> UpperRightCorner[1] = 6671703.118 -- GitLab