From 8b18cfd7f79c6c1d3c4d962508d2c64e22771851 Mon Sep 17 00:00:00 2001
From: Julien Michel <julien.michel@orfeo-toolbox.org>
Date: Thu, 18 Apr 2019 11:03:56 +0000
Subject: [PATCH] REFAC: Remove DempsterShafer based classification of vectors
 framework (impact several modules)

---
 ..._LI_NOBUIL_RoadExtractionApplication.1.dbf |   3 -
 ..._LI_NOBUIL_RoadExtractionApplication.1.prj |   1 -
 ..._LI_NOBUIL_RoadExtractionApplication.1.shp |   3 -
 ..._LI_NOBUIL_RoadExtractionApplication.1.shx |   3 -
 ...ge_LI_NOBUIL_RoadExtractionApplication.dbf |   3 -
 ...ge_LI_NOBUIL_RoadExtractionApplication.prj |   1 -
 ...ge_LI_NOBUIL_RoadExtractionApplication.shp |   3 -
 ...ge_LI_NOBUIL_RoadExtractionApplication.shx |   3 -
 ...olylineFeatureFromImage_LI_NOBUIL_gt.1.dbf |   3 -
 ...olylineFeatureFromImage_LI_NOBUIL_gt.1.prj |   1 -
 ...olylineFeatureFromImage_LI_NOBUIL_gt.1.shp |   3 -
 ...olylineFeatureFromImage_LI_NOBUIL_gt.1.shx |   3 -
 ...ePolylineFeatureFromImage_LI_NOBUIL_gt.dbf |   3 -
 ...ePolylineFeatureFromImage_LI_NOBUIL_gt.prj |   1 -
 ...ePolylineFeatureFromImage_LI_NOBUIL_gt.shp |   3 -
 ...ePolylineFeatureFromImage_LI_NOBUIL_gt.shx |   3 -
 ...olylineFeatureFromImage_LI_NOBUIL_wr.1.dbf |   3 -
 ...olylineFeatureFromImage_LI_NOBUIL_wr.1.prj |   1 -
 ...olylineFeatureFromImage_LI_NOBUIL_wr.1.shp |   3 -
 ...olylineFeatureFromImage_LI_NOBUIL_wr.1.shx |   3 -
 ...ePolylineFeatureFromImage_LI_NOBUIL_wr.dbf |   3 -
 ...ePolylineFeatureFromImage_LI_NOBUIL_wr.prj |   1 -
 ...ePolylineFeatureFromImage_LI_NOBUIL_wr.shp |   3 -
 ...ePolylineFeatureFromImage_LI_NOBUIL_wr.shx |   3 -
 ...vVectorDataDSValidationOutpout_LI_gt.1.dbf |   3 -
 ...vVectorDataDSValidationOutpout_LI_gt.1.prj |   1 -
 ...vVectorDataDSValidationOutpout_LI_gt.1.shp |   3 -
 ...vVectorDataDSValidationOutpout_LI_gt.1.shx |   3 -
 ...bTvVectorDataDSValidationOutpout_LI_gt.dbf |   3 -
 ...bTvVectorDataDSValidationOutpout_LI_gt.prj |   1 -
 ...bTvVectorDataDSValidationOutpout_LI_gt.shp |   3 -
 ...bTvVectorDataDSValidationOutpout_LI_gt.shx |   3 -
 ...bTvVectorDataDSValidationOutpout_LI_wr.dbf |   3 -
 ...bTvVectorDataDSValidationOutpout_LI_wr.prj |   1 -
 ...bTvVectorDataDSValidationOutpout_LI_wr.shp |   3 -
 ...bTvVectorDataDSValidationOutpout_LI_wr.shx |   3 -
 ...OverlapDataNodeFeatureFunctionOutput.1.dbf |   3 -
 ...OverlapDataNodeFeatureFunctionOutput.1.shp |   3 -
 ...OverlapDataNodeFeatureFunctionOutput.1.shx |   3 -
 ...DBOverlapDataNodeFeatureFunctionOutput.dbf |   3 -
 ...DBOverlapDataNodeFeatureFunctionOutput.shp |   3 -
 ...DBOverlapDataNodeFeatureFunctionOutput.shx |   3 -
 ...NDVIDataNodeFeatureFunctionOutput_Line.dbf |   3 -
 ...NDVIDataNodeFeatureFunctionOutput_Line.shp |   3 -
 ...NDVIDataNodeFeatureFunctionOutput_Line.shx |   3 -
 ...IDataNodeFeatureFunctionOutput_Polygon.dbf |   3 -
 ...IDataNodeFeatureFunctionOutput_Polygon.shp |   3 -
 ...IDataNodeFeatureFunctionOutput_Polygon.shx |   3 -
 ...hoodDataNodeFeatureFunctionOutput_Line.dbf |   3 -
 ...hoodDataNodeFeatureFunctionOutput_Line.shp |   3 -
 ...hoodDataNodeFeatureFunctionOutput_Line.shx |   3 -
 ...dDataNodeFeatureFunctionOutput_Polygon.dbf |   3 -
 ...dDataNodeFeatureFunctionOutput_Polygon.shp |   3 -
 ...dDataNodeFeatureFunctionOutput_Polygon.shx |   3 -
 ...ngleDataNodeFeatureFunctionOutput_Line.dbf |   3 -
 ...ngleDataNodeFeatureFunctionOutput_Line.shp |   3 -
 ...ngleDataNodeFeatureFunctionOutput_Line.shx |   3 -
 ...eDataNodeFeatureFunctionOutput_Polygon.dbf |   3 -
 ...eDataNodeFeatureFunctionOutput_Polygon.shp |   3 -
 ...eDataNodeFeatureFunctionOutput_Polygon.shx |   3 -
 .../fzTvDSValidatedRoadVectorDataOutput.dbf   |   3 -
 .../fzTvDSValidatedRoadVectorDataOutput.shp   |   3 -
 .../fzTvDSValidatedRoadVectorDataOutput.shx   |   3 -
 Data/Input/Dempster-Shafer/DSFuzzyModel.xml   |  21 -
 .../Dempster-Shafer/DSFuzzyModel_Init.xml     |  21 -
 .../Input/Dempster-Shafer/ROI_QB_TOULOUSE.TIF |   3 -
 .../Dempster-Shafer/ROI_QB_TOULOUSE.geom      | 165 -------
 .../ROI_QB_TOULOUSE_BUILDINGS.dbf             |   3 -
 .../ROI_QB_TOULOUSE_BUILDINGS.prj             |   1 -
 .../ROI_QB_TOULOUSE_BUILDINGS.shp             |   3 -
 .../ROI_QB_TOULOUSE_BUILDINGS.shx             |   3 -
 .../Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.dbf |   3 -
 .../Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.prj |   1 -
 .../Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp |   3 -
 .../Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shx |   3 -
 Documentation/Cookbook/rst/recipes/improc.rst | 125 -----
 .../AppClassification/app/CMakeLists.txt      |  15 -
 .../otbComputePolylineFeatureFromImage.cxx    | 282 -----------
 .../app/otbDSFuzzyModelEstimation.cxx         | 451 ------------------
 .../app/otbVectorDataDSValidation.cxx         | 171 -------
 .../AppClassification/test/CMakeLists.txt     | 154 ------
 .../include/otbDataNodeImageFunction.h        | 212 --------
 .../include/otbDataNodeImageFunction.hxx      |  98 ----
 .../include/otbDataNodeVectorDataFunction.h   | 112 -----
 .../include/otbDataNodeVectorDataFunction.hxx |  70 ---
 ...tbParserConditionDataNodeFeatureFunction.h | 126 -----
 ...ParserConditionDataNodeFeatureFunction.hxx | 129 -----
 .../Filtering/MathParser/test/CMakeLists.txt  |  27 --
 .../test/otbMathParserTestDriver.cxx          |   1 -
 ...ParserConditionDataNodeFeatureFunction.cxx | 121 -----
 .../Filtering/Projection/test/CMakeLists.txt  |  24 -
 .../test/otbProjectionTestDriver.cxx          |   1 -
 ...tbSpectralAngleDataNodeFeatureFunction.cxx | 127 -----
 .../otbDBOverlapDataNodeFeatureFunction.h     | 106 ----
 .../otbDBOverlapDataNodeFeatureFunction.hxx   | 176 -------
 ...sWithNeighborhoodDataNodeFeatureFunction.h | 164 -------
 ...ithNeighborhoodDataNodeFeatureFunction.hxx | 228 ---------
 .../otbSpectralAngleDataNodeFeatureFunction.h | 135 ------
 ...tbSpectralAngleDataNodeFeatureFunction.hxx | 204 --------
 .../test/CMakeLists.txt                       |  37 --
 .../otbDBOverlapDataNodeFeatureFunction.cxx   | 106 ----
 ...ithNeighborhoodDataNodeFeatureFunction.cxx | 124 -----
 .../otbVectorDataManipulationTestDriver.cxx   |   2 -
 .../include/otbStandardDSCostFunction.h       | 184 -------
 .../include/otbStandardDSCostFunction.hxx     | 172 -------
 ...bVectorDataToDSValidatedVectorDataFilter.h | 204 --------
 ...ectorDataToDSValidatedVectorDataFilter.hxx | 228 ---------
 .../DempsterShafer/test/CMakeLists.txt        |  11 -
 .../test/otbDempsterShaferTestDriver.cxx      |   1 -
 ...ectorDataToDSValidatedVectorDataFilter.cxx |  93 ----
 .../include/otbNDVIDataNodeFeatureFunction.h  | 137 ------
 .../otbNDVIDataNodeFeatureFunction.hxx        | 141 ------
 .../Radiometry/Indices/test/CMakeLists.txt    |  26 -
 .../Indices/test/otbIndicesTestDriver.cxx     |   1 -
 .../test/otbNDVIDataNodeFeatureFunction.cxx   | 129 -----
 115 files changed, 5256 deletions(-)
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.dbf
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.prj
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.shp
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.shx
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.dbf
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.prj
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shp
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shx
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.dbf
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.prj
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.shp
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.shx
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.dbf
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.prj
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shx
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.dbf
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.prj
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.shp
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.shx
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.dbf
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.prj
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shx
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.dbf
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.prj
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.shp
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.shx
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.dbf
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.prj
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.shp
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.shx
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.dbf
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.prj
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.shp
 delete mode 100644 Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.shx
 delete mode 100644 Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.dbf
 delete mode 100644 Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.shp
 delete mode 100644 Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.shx
 delete mode 100644 Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.dbf
 delete mode 100644 Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.shp
 delete mode 100644 Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.shx
 delete mode 100644 Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.dbf
 delete mode 100644 Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shp
 delete mode 100644 Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shx
 delete mode 100644 Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.dbf
 delete mode 100644 Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shp
 delete mode 100644 Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shx
 delete mode 100644 Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.dbf
 delete mode 100644 Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shp
 delete mode 100644 Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shx
 delete mode 100644 Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.dbf
 delete mode 100644 Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shp
 delete mode 100644 Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shx
 delete mode 100644 Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.dbf
 delete mode 100644 Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shp
 delete mode 100644 Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shx
 delete mode 100644 Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.dbf
 delete mode 100644 Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shp
 delete mode 100644 Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shx
 delete mode 100644 Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.dbf
 delete mode 100644 Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.shp
 delete mode 100644 Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.shx
 delete mode 100644 Data/Input/Dempster-Shafer/DSFuzzyModel.xml
 delete mode 100644 Data/Input/Dempster-Shafer/DSFuzzyModel_Init.xml
 delete mode 100644 Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
 delete mode 100644 Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE.geom
 delete mode 100644 Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.dbf
 delete mode 100644 Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.prj
 delete mode 100644 Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp
 delete mode 100644 Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shx
 delete mode 100644 Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.dbf
 delete mode 100644 Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.prj
 delete mode 100644 Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp
 delete mode 100644 Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shx
 delete mode 100644 Modules/Applications/AppClassification/app/otbComputePolylineFeatureFromImage.cxx
 delete mode 100644 Modules/Applications/AppClassification/app/otbDSFuzzyModelEstimation.cxx
 delete mode 100644 Modules/Applications/AppClassification/app/otbVectorDataDSValidation.cxx
 delete mode 100644 Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.h
 delete mode 100644 Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.hxx
 delete mode 100644 Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.h
 delete mode 100644 Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.hxx
 delete mode 100644 Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.h
 delete mode 100644 Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.hxx
 delete mode 100644 Modules/Filtering/MathParser/test/otbParserConditionDataNodeFeatureFunction.cxx
 delete mode 100644 Modules/Filtering/Projection/test/otbSpectralAngleDataNodeFeatureFunction.cxx
 delete mode 100644 Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.h
 delete mode 100644 Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.hxx
 delete mode 100644 Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.h
 delete mode 100644 Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.hxx
 delete mode 100644 Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.h
 delete mode 100644 Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.hxx
 delete mode 100644 Modules/Filtering/VectorDataManipulation/test/otbDBOverlapDataNodeFeatureFunction.cxx
 delete mode 100644 Modules/Filtering/VectorDataManipulation/test/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.cxx
 delete mode 100644 Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.h
 delete mode 100644 Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.hxx
 delete mode 100644 Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.h
 delete mode 100644 Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.hxx
 delete mode 100644 Modules/Learning/DempsterShafer/test/otbVectorDataToDSValidatedVectorDataFilter.cxx
 delete mode 100644 Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.h
 delete mode 100644 Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.hxx
 delete mode 100644 Modules/Radiometry/Indices/test/otbNDVIDataNodeFeatureFunction.cxx

diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.dbf
deleted file mode 100644
index 872a668071..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f9d6c2cacc6b2947ee21de06212d8456f1ad1dd817eb08f0cca74a461982e6fc
-size 13050
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.prj b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.prj
deleted file mode 100644
index da98376fa4..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.shp b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.shp
deleted file mode 100644
index 0ae7cfbd6a..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:03dc018b3fda6afc76870dbb82d43cf954b483d451a44bc9609547a646cd5f69
-size 17244
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.shx b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.shx
deleted file mode 100644
index d7d3c02a05..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.1.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9ddb05befb0e32de1d63c65853967329a2e279c8b47ead80a68e659a11f2d692
-size 1516
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.dbf
deleted file mode 100644
index 872a668071..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f9d6c2cacc6b2947ee21de06212d8456f1ad1dd817eb08f0cca74a461982e6fc
-size 13050
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.prj b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.prj
deleted file mode 100644
index da98376fa4..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shp b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shp
deleted file mode 100644
index d989282e41..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a761c4931a9325ce306da5c82f1be3c709ab0f888aeab4a412932872c3e8d79d
-size 23692
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shx b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shx
deleted file mode 100644
index de9ebdc4ff..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:1f99f80a26a8df140d6cdb44d9ed2f1a32a2477927138eca8c5aec56b9ab66e9
-size 1516
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.dbf
deleted file mode 100644
index 0a7f2145c1..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c11d7da214ea38b7c3c0083a92ee13467c13dca735075c01d8ddb73124bc4437
-size 1881
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.prj b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.prj
deleted file mode 100644
index da98376fa4..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.shp b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.shp
deleted file mode 100644
index f4493a2480..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f6b7569316bbb6954532949243743a6a02bf59b8e6f15e8768ab74cd49d18ff9
-size 2948
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.shx b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.shx
deleted file mode 100644
index 902c5a7618..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.1.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bd87422448e1242a1b30eb69ae88d4a36a96bfc2d00764a8ec3c35e02063a1c7
-size 292
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.dbf
deleted file mode 100644
index 0a7f2145c1..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c11d7da214ea38b7c3c0083a92ee13467c13dca735075c01d8ddb73124bc4437
-size 1881
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.prj b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.prj
deleted file mode 100644
index da98376fa4..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp
deleted file mode 100644
index e549ed0a01..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c1a477f4f647ebb0feff76da6fe3b92adcac25972372a94e5fa9b5db4b3be02d
-size 4084
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shx b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shx
deleted file mode 100644
index 911a74cdb5..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:956ffd6cbb30ed2bc8c585e8c938477943d920f7309981a9864bf8f98ae3f992
-size 292
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.dbf
deleted file mode 100644
index 9254d4d3c5..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:970b377a49bf3308da27de62de02dc2000e666a4cc49a220023e212cc5082896
-size 713
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.prj b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.prj
deleted file mode 100644
index da98376fa4..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.shp b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.shp
deleted file mode 100644
index b8d4601a93..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6e9dbd487f0d15fc07a187b9e38649eaef4829ff8a64ffbbe0ebf59c0ced2848
-size 1172
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.shx b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.shx
deleted file mode 100644
index b7889485ca..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.1.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:eade214003f288170371c708073838963df379c9d55bfb68b77c488c94d10b7e
-size 164
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.dbf
deleted file mode 100644
index 9254d4d3c5..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:970b377a49bf3308da27de62de02dc2000e666a4cc49a220023e212cc5082896
-size 713
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.prj b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.prj
deleted file mode 100644
index da98376fa4..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp
deleted file mode 100644
index b3b4cc6c64..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3b83881bd76b1347059066ae1057d27cf0497cb92ac6cb16e07ec3d5ee29f5bd
-size 1172
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shx b/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shx
deleted file mode 100644
index 1b5b61f68e..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:78741d544b7ebd7211d6f2655d31b801443f6a60a75ec18a1dfe94e80f51852c
-size 164
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.dbf
deleted file mode 100644
index 1227f9a239..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5e98e653523faa8868276d04332dc8a207b8e99bb2e86814c2ecf3e71f64184d
-size 3097
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.prj b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.prj
deleted file mode 100644
index da98376fa4..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.shp b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.shp
deleted file mode 100644
index f4493a2480..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f6b7569316bbb6954532949243743a6a02bf59b8e6f15e8768ab74cd49d18ff9
-size 2948
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.shx b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.shx
deleted file mode 100644
index 902c5a7618..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.1.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:bd87422448e1242a1b30eb69ae88d4a36a96bfc2d00764a8ec3c35e02063a1c7
-size 292
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.dbf
deleted file mode 100644
index 1227f9a239..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5e98e653523faa8868276d04332dc8a207b8e99bb2e86814c2ecf3e71f64184d
-size 3097
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.prj b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.prj
deleted file mode 100644
index da98376fa4..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.shp b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.shp
deleted file mode 100644
index e549ed0a01..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c1a477f4f647ebb0feff76da6fe3b92adcac25972372a94e5fa9b5db4b3be02d
-size 4084
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.shx b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.shx
deleted file mode 100644
index 911a74cdb5..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_gt.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:956ffd6cbb30ed2bc8c585e8c938477943d920f7309981a9864bf8f98ae3f992
-size 292
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.dbf b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.dbf
deleted file mode 100644
index 9ba00259ac..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6ac3987c4408a1c86528898189249cc26502b02b536a0e64a5106f0d230b3a8b
-size 33
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.prj b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.prj
deleted file mode 100644
index da98376fa4..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["WGS_1984_UTM_Zone_31N",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",3],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.shp b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.shp
deleted file mode 100644
index f970b67678..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:926401bfc2997f7c001f827859a1281ceb6f688660720f605f14f3e54207568e
-size 100
diff --git a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.shx b/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.shx
deleted file mode 100644
index f970b67678..0000000000
--- a/Data/Baseline/OTB-Applications/Files/cdbTvVectorDataDSValidationOutpout_LI_wr.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:926401bfc2997f7c001f827859a1281ceb6f688660720f605f14f3e54207568e
-size 100
diff --git a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.dbf b/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.dbf
deleted file mode 100644
index e514113af1..0000000000
--- a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:9a91a7b2a449168136030deb765d660dc0851638543eced30eb006db94bc2123
-size 6583
diff --git a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.shp b/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.shp
deleted file mode 100644
index 0e5a1e7088..0000000000
--- a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2ca53f866c1773b1ea1329e910073eb8c2c25513dca65b8e5ab21a047d31e333
-size 12860
diff --git a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.shx b/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.shx
deleted file mode 100644
index e4f82fd5c3..0000000000
--- a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.1.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cd9270880008ed009e4e0e08ea105d91f40eb911f7c27e773348dfc74857bec2
-size 668
diff --git a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.dbf b/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.dbf
deleted file mode 100644
index 5c2e63d063..0000000000
--- a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:539f3f381fe619efbf813b1f6a407f236ca577cd2f62f0d35cf8a717c30f3210
-size 6583
diff --git a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.shp b/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.shp
deleted file mode 100644
index d5ff96b992..0000000000
--- a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d0b6e77ff1d3acae9432b63b929050ed0089e9aace8a831c817b07ac02b04063
-size 18388
diff --git a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.shx b/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.shx
deleted file mode 100644
index 72bda750b8..0000000000
--- a/Data/Baseline/OTB/Files/bfTvDBOverlapDataNodeFeatureFunctionOutput.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8e3f91df5a62beb63ba9b17a952d2673a732aa428b20861dce0c6dd986e588db
-size 668
diff --git a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.dbf b/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.dbf
deleted file mode 100644
index 7c908dfa51..0000000000
--- a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5e03911f8e9f9eecd908084083cbed86b2084a1a8ec469a0bf58296ba9ca93f4
-size 6583
diff --git a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shp b/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shp
deleted file mode 100644
index b3adb3d3bb..0000000000
--- a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ff01566163097422211e31b35823cc6ede15efa3965bcc72f2e89f8b95fc2b30
-size 12860
diff --git a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shx b/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shx
deleted file mode 100644
index 8eb95e8e60..0000000000
--- a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b033aa81a9212511ecb13bf36bb9b92d26a2272e8fd2e7106fd938f623084664
-size 668
diff --git a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.dbf b/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.dbf
deleted file mode 100644
index 6cf1922682..0000000000
--- a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2a314fb6c853dd6ed9864eb50da057c96bad6802b1d35e1c27e63f7c54ac5e6c
-size 1517
diff --git a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shp b/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shp
deleted file mode 100644
index 4df7fd5f11..0000000000
--- a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a02afbec1aac0b3b812282d4877310d5ce035b9fce9aa4d2427244a0c4404840
-size 3228
diff --git a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shx b/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shx
deleted file mode 100644
index e8977f2d43..0000000000
--- a/Data/Baseline/OTB/Files/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ce4dc76a26a8fafad2f5e083c3aea4f5494319c7a46cfa7a339a0fd48161aa1d
-size 252
diff --git a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.dbf b/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.dbf
deleted file mode 100644
index 0a2e444943..0000000000
--- a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:881459241d920b7b0b0f04690ca4b64da9b40043e9761e8089867688fd8c868c
-size 6583
diff --git a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shp b/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shp
deleted file mode 100644
index b3adb3d3bb..0000000000
--- a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ff01566163097422211e31b35823cc6ede15efa3965bcc72f2e89f8b95fc2b30
-size 12860
diff --git a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shx b/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shx
deleted file mode 100644
index 8eb95e8e60..0000000000
--- a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b033aa81a9212511ecb13bf36bb9b92d26a2272e8fd2e7106fd938f623084664
-size 668
diff --git a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.dbf b/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.dbf
deleted file mode 100644
index 7f7a14e7e9..0000000000
--- a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0f0a24f1a9e719f6b7f9cea9e8dbb89d90436b8837178c1f7e2155f555cd274c
-size 1517
diff --git a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shp b/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shp
deleted file mode 100644
index 4df7fd5f11..0000000000
--- a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a02afbec1aac0b3b812282d4877310d5ce035b9fce9aa4d2427244a0c4404840
-size 3228
diff --git a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shx b/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shx
deleted file mode 100644
index e8977f2d43..0000000000
--- a/Data/Baseline/OTB/Files/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ce4dc76a26a8fafad2f5e083c3aea4f5494319c7a46cfa7a339a0fd48161aa1d
-size 252
diff --git a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.dbf b/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.dbf
deleted file mode 100644
index 1fd9789d1f..0000000000
--- a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:abe817af5f07dd14805d6a14fe5a75fb988340ca1ffcc8e81d8e7adee531a42b
-size 6583
diff --git a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shp b/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shp
deleted file mode 100644
index b3adb3d3bb..0000000000
--- a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ff01566163097422211e31b35823cc6ede15efa3965bcc72f2e89f8b95fc2b30
-size 12860
diff --git a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shx b/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shx
deleted file mode 100644
index 8eb95e8e60..0000000000
--- a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:b033aa81a9212511ecb13bf36bb9b92d26a2272e8fd2e7106fd938f623084664
-size 668
diff --git a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.dbf b/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.dbf
deleted file mode 100644
index a84548112b..0000000000
--- a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4b5fc99954f197ed6d0bcfc9ecf4178eb77f5893ba17b32a0906555a5c16fb63
-size 1517
diff --git a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shp b/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shp
deleted file mode 100644
index 4df7fd5f11..0000000000
--- a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a02afbec1aac0b3b812282d4877310d5ce035b9fce9aa4d2427244a0c4404840
-size 3228
diff --git a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shx b/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shx
deleted file mode 100644
index e8977f2d43..0000000000
--- a/Data/Baseline/OTB/Files/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ce4dc76a26a8fafad2f5e083c3aea4f5494319c7a46cfa7a339a0fd48161aa1d
-size 252
diff --git a/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.dbf b/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.dbf
deleted file mode 100644
index dad747fadf..0000000000
--- a/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4910095bcc63510b5d14ced32ec054d329fb1f106676869563424bccd6d998bc
-size 12597
diff --git a/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.shp b/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.shp
deleted file mode 100644
index db9524f4ac..0000000000
--- a/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a1e3ab5de6caec9d1e335eafe346c673f87ec06c02f0fb3a5ccafeb3919961c8
-size 12084
diff --git a/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.shx b/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.shx
deleted file mode 100644
index 33a059571d..0000000000
--- a/Data/Baseline/OTB/Files/fzTvDSValidatedRoadVectorDataOutput.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0ffb45fdd34b1bb0bbb8817b1de538b4609e806972cf5287d9ec3b7828c86cc2
-size 628
diff --git a/Data/Input/Dempster-Shafer/DSFuzzyModel.xml b/Data/Input/Dempster-Shafer/DSFuzzyModel.xml
deleted file mode 100644
index 034442d66e..0000000000
--- a/Data/Input/Dempster-Shafer/DSFuzzyModel.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" ?>
-<FuzzydDescriptorsModel>
-    <Descriptor name="NONDVI">
-        <Parameter value="0.0328422" />
-        <Parameter value="0.0966684" />
-        <Parameter value="0.128072" />
-        <Parameter value="0.892172" />
-    </Descriptor>
-    <Descriptor name="ROADSA">
-        <Parameter value="0.0528834" />
-        <Parameter value="0.125395" />
-        <Parameter value="0.216374" />
-        <Parameter value="1" />
-    </Descriptor>
-    <Descriptor name="NOBUIL">
-        <Parameter value="0.0198015" />
-        <Parameter value="0.0944664" />
-        <Parameter value="0.17092" />
-        <Parameter value="0.87146" />
-    </Descriptor>
-</FuzzydDescriptorsModel>
diff --git a/Data/Input/Dempster-Shafer/DSFuzzyModel_Init.xml b/Data/Input/Dempster-Shafer/DSFuzzyModel_Init.xml
deleted file mode 100644
index 83f733dc4c..0000000000
--- a/Data/Input/Dempster-Shafer/DSFuzzyModel_Init.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" ?>
-<FuzzydDescriptorsModel>
-    <Descriptor name="NONDVI">
-        <Parameter value="0.05" />
-        <Parameter value="0.15" />
-        <Parameter value="0.20" />
-        <Parameter value="0.95" />
-    </Descriptor>
-    <Descriptor name="ROADSA">
-        <Parameter value="0.15" />
-        <Parameter value="0.30" />
-        <Parameter value="0.50" />
-        <Parameter value="0.95" />
-    </Descriptor>
-    <Descriptor name="NOBUIL">
-        <Parameter value="0.05" />
-        <Parameter value="0.07" />
-        <Parameter value="0.10" />
-        <Parameter value="0.95" />
-    </Descriptor>
-</FuzzydDescriptorsModel>
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE.TIF b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
deleted file mode 100644
index c35e58f773..0000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d4c708f6360cadd64d7c530b6412397ddc60929b8c3bcea79d4b45e392dde59c
-size 1149268
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE.geom b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE.geom
deleted file mode 100644
index 6845284827..0000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE.geom
+++ /dev/null
@@ -1,165 +0,0 @@
-adjustment_0.adj_param_0.center:  0
-adjustment_0.adj_param_0.description:  intrack_offset
-adjustment_0.adj_param_0.lock_flag:  0
-adjustment_0.adj_param_0.parameter:  0
-adjustment_0.adj_param_0.sigma:  50
-adjustment_0.adj_param_0.units:  pixel
-adjustment_0.adj_param_1.center:  0
-adjustment_0.adj_param_1.description:  crtrack_offset
-adjustment_0.adj_param_1.lock_flag:  0
-adjustment_0.adj_param_1.parameter:  0
-adjustment_0.adj_param_1.sigma:  50
-adjustment_0.adj_param_1.units:  pixel
-adjustment_0.adj_param_2.center:  0
-adjustment_0.adj_param_2.description:  intrack_scale
-adjustment_0.adj_param_2.lock_flag:  0
-adjustment_0.adj_param_2.parameter:  0
-adjustment_0.adj_param_2.sigma:  50
-adjustment_0.adj_param_2.units:  unknown
-adjustment_0.adj_param_3.center:  0
-adjustment_0.adj_param_3.description:  crtrack_scale
-adjustment_0.adj_param_3.lock_flag:  0
-adjustment_0.adj_param_3.parameter:  0
-adjustment_0.adj_param_3.sigma:  50
-adjustment_0.adj_param_3.units:  unknown
-adjustment_0.adj_param_4.center:  0
-adjustment_0.adj_param_4.description:  map_rotation
-adjustment_0.adj_param_4.lock_flag:  0
-adjustment_0.adj_param_4.parameter:  0
-adjustment_0.adj_param_4.sigma:  0.1
-adjustment_0.adj_param_4.units:  degrees
-adjustment_0.description:  Initial adjustment
-adjustment_0.dirty_flag:  0
-adjustment_0.number_of_params:  5
-bias_error:  0
-current_adjustment:  0
-height_off:  241
-height_scale:  500
-image_id:  02APR01105228-M1BS-000000128955_01_P001
-lat_off:  43.5757
-lat_scale:  0.0881
-line_den_coeff_00:  1
-line_den_coeff_01:  3.073151e-05
-line_den_coeff_02:  0.0006767593
-line_den_coeff_03:  0.0002759762
-line_den_coeff_04:  1.707011e-05
-line_den_coeff_05:  -4.215218e-07
-line_den_coeff_06:  -2.031982e-06
-line_den_coeff_07:  6.281466e-06
-line_den_coeff_08:  -2.098686e-05
-line_den_coeff_09:  1.091061e-05
-line_den_coeff_10:  3.716818e-08
-line_den_coeff_11:  5.435656e-08
-line_den_coeff_12:  -4.35619e-06
-line_den_coeff_13:  1.09022e-08
-line_den_coeff_14:  1.78519e-08
-line_den_coeff_15:  0.0004342067
-line_den_coeff_16:  6.371344e-08
-line_den_coeff_17:  0
-line_den_coeff_18:  -1.416592e-05
-line_den_coeff_19:  1.653665e-08
-line_num_coeff_00:  -0.001183432
-line_num_coeff_01:  0.001540212
-line_num_coeff_02:  -0.9858373
-line_num_coeff_03:  0.01594806
-line_num_coeff_04:  2.730892e-05
-line_num_coeff_05:  -9.785795e-07
-line_num_coeff_06:  0.0002528461
-line_num_coeff_07:  -0.0007762763
-line_num_coeff_08:  0.001998298
-line_num_coeff_09:  -5.855501e-06
-line_num_coeff_10:  -8.293341e-07
-line_num_coeff_11:  4.496584e-08
-line_num_coeff_12:  2.925877e-05
-line_num_coeff_13:  0
-line_num_coeff_14:  -8.818227e-06
-line_num_coeff_15:  -4.465644e-05
-line_num_coeff_16:  -1.06142e-05
-line_num_coeff_17:  4.172296e-07
-line_num_coeff_18:  -4.632173e-06
-line_num_coeff_19:  1.915274e-07
-line_off:  3630
-line_scale:  3691
-ll_lat:  43.4876885949517
-ll_lon:  1.35617248105186
-long_off:  1.4635
-long_scale:  0.1091
-lr_lat:  43.487956450501
-lr_lon:  1.57224225725364
-meters_per_pixel_x:  2.55166863064346
-meters_per_pixel_y:  2.68906571490787
-number_lines:  7265
-number_of_adjustments:  1
-number_samples:  6876
-polynomial_format:  B
-rand_error:  0
-rect:  0 0 6875 7264
-ref_point_hgt:  241
-ref_point_lat:  43.5755460927759
-ref_point_line:  3632
-ref_point_lon:  1.46371767649799
-ref_point_samp:  3437.5
-samp_den_coeff_00:  1
-samp_den_coeff_01:  0.001117681
-samp_den_coeff_02:  0.002334335
-samp_den_coeff_03:  -0.0006207135
-samp_den_coeff_04:  -5.962135e-05
-samp_den_coeff_05:  1.552717e-06
-samp_den_coeff_06:  -1.84009e-06
-samp_den_coeff_07:  -4.876876e-06
-samp_den_coeff_08:  3.158963e-05
-samp_den_coeff_09:  -1.201072e-05
-samp_den_coeff_10:  -1.579758e-07
-samp_den_coeff_11:  -9.944747e-08
-samp_den_coeff_12:  1.942372e-06
-samp_den_coeff_13:  0
-samp_den_coeff_14:  -8.945496e-08
-samp_den_coeff_15:  -1.480163e-06
-samp_den_coeff_16:  -6.008504e-08
-samp_den_coeff_17:  3.055564e-08
-samp_den_coeff_18:  1.11032e-07
-samp_den_coeff_19:  1.314046e-08
-samp_num_coeff_00:  -0.0021422
-samp_num_coeff_01:  1.003674
-samp_num_coeff_02:  0.00317708
-samp_num_coeff_03:  0.0002667587
-samp_num_coeff_04:  -0.002315384
-samp_num_coeff_05:  0.0006203277
-samp_num_coeff_06:  -0.0004161892
-samp_num_coeff_07:  0.001035653
-samp_num_coeff_08:  -0.001198854
-samp_num_coeff_09:  7.437719e-06
-samp_num_coeff_10:  2.503507e-06
-samp_num_coeff_11:  -2.185972e-05
-samp_num_coeff_12:  -4.893912e-05
-samp_num_coeff_13:  -1.149441e-05
-samp_num_coeff_14:  8.351017e-05
-samp_num_coeff_15:  -7.642065e-05
-samp_num_coeff_16:  -2.684169e-07
-samp_num_coeff_17:  2.340974e-08
-samp_num_coeff_18:  7.001246e-06
-samp_num_coeff_19:  -3.846245e-08
-samp_off:  3438
-samp_scale:  3443
-sensor:  QB02
-support_data.B_band_absCalFactor:  0.0160412
-support_data.G_band_absCalFactor:  0.0143847
-support_data.N_band_absCalFactor:  0.0154242
-support_data.R_band_absCalFactor:  0.0126735
-support_data.TDI_level:  13
-support_data.azimuth_angle:  154.8
-support_data.band_id:  Multi
-support_data.band_name_list:  B G R N
-support_data.bits_per_pixel:  16
-support_data.elevation_angle:  48.6
-support_data.generation_date:  2004-05-25T19:49:03.000000Z
-support_data.sat_azimuth_angle:  359
-support_data.sat_elevation_angle:  72.4
-support_data.sat_id:  QB02
-support_data.tlc_date:  2002-04-01T10:52:28.415362Z;
-support_data.type:  ossimQuickbirdMetaData
-type:  ossimQuickbirdRpcModel
-ul_lat:  43.663535886024
-ul_lon:  1.35446328287058
-ur_lat:  43.6638304625161
-ur_lon:  1.57254618315919
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.dbf b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.dbf
deleted file mode 100644
index 17a9903a40..0000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:63f211d703d89d3abd9c7b0c2729f11b94fc9918108e77ab707c3a5b087c8da7
-size 1028
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.prj b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.prj
deleted file mode 100644
index a30c00a55d..0000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.prj
+++ /dev/null
@@ -1 +0,0 @@
-GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
\ No newline at end of file
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp
deleted file mode 100644
index f901be7cd3..0000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:a8d2eee9ba80d3bb867aada7db654ef86d17cad4f1d526b0385a943f29d82a6b
-size 4564
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shx b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shx
deleted file mode 100644
index 6f0fa666c0..0000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f3bdf591bf2d6a7e3025629649f3e3effa4511f9f1af793193365b3ef53d8eb3
-size 252
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.dbf b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.dbf
deleted file mode 100644
index ed4287655d..0000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.dbf
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d680b1d17582dc86c451bbe0446f9af84ae611b6afe06a5db38adecf191ba971
-size 4847
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.prj b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.prj
deleted file mode 100644
index a30c00a55d..0000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.prj
+++ /dev/null
@@ -1 +0,0 @@
-GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
\ No newline at end of file
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp
deleted file mode 100644
index d5ff96b992..0000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:d0b6e77ff1d3acae9432b63b929050ed0089e9aace8a831c817b07ac02b04063
-size 18388
diff --git a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shx b/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shx
deleted file mode 100644
index 72bda750b8..0000000000
--- a/Data/Input/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8e3f91df5a62beb63ba9b17a952d2673a732aa428b20861dce0c6dd986e588db
-size 668
diff --git a/Documentation/Cookbook/rst/recipes/improc.rst b/Documentation/Cookbook/rst/recipes/improc.rst
index 4216062f7e..72f24b4299 100644
--- a/Documentation/Cookbook/rst/recipes/improc.rst
+++ b/Documentation/Cookbook/rst/recipes/improc.rst
@@ -289,128 +289,3 @@ skipped.
 
 There is a cleanup option that can be disabled in order to check intermediate
 outputs of this composite application.
-
-Dempster Shafer based Classifier Fusion
----------------------------------------
-
-This framework is dedicated to perform cartographic validation starting
-from the result of a detection (for example a road extraction), enhance
-the results viability by using a classifier fusion algorithm. Using a
-set of descriptors, the processing chain validates or invalidates the
-input geometrical features.
-
-Fuzzy Model (requisite)
-~~~~~~~~~~~~~~~~~~~~~~~
-
-The *DSFuzzyModelEstimation* application performs the fuzzy model
-estimation (once by use case: descriptor set / Belief support /
-Plausibility support). It has the following input parameters:
-
--  ``-psin`` a vector data of positive samples enriched according to the
-   “Compute Descriptors” part
-
--  ``-nsin`` a vector data of negative samples enriched according to the
-   “Compute Descriptors” part
-
--  ``-belsup`` a support for the Belief computation
-
--  ``-plasup`` a support for the Plausibility computation
-
--  ``-desclist`` an initialization model (xml file) or a descriptor name
-   list (listing the descriptors to be included in the model)
-
-The application can be used like this:
-
-::
-
-    otbcli_DSFuzzyModelEstimation -psin     PosSamples.shp
-                                  -nsin     NegSamples.shp
-                                  -belsup   "ROADSA"
-                                  -plasup   "NONDVI" "ROADSA" "NOBUIL"
-                                  -desclist "NONDVI" "ROADSA" "NOBUIL"
-                                  -out      FuzzyModel.xml
-
-The output file ``FuzzyModel.xml`` contains the optimal model to perform
-information fusion.
-
-First Step: Compute Descriptors
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The first step in the classifier fusion based validation is to compute,
-for each studied polyline, the chosen descriptors. In this context, the
-*ComputePolylineFeatureFromImage* application can be used for a large
-range of descriptors. It has the following inputs:
-
--  ``-in`` an image (of the studied scene) corresponding to the chosen
-   descriptor (NDVI, building Mask…)
-
--  ``-vd`` a vector data containing polyline of interest
-
--  ``-expr`` a formula (“b1 >0.4”, “b1 == 0”) where b1 is the standard
-   name of input image first band
-
--  ``-field`` a field name corresponding to the descriptor codename
-   (NONDVI, ROADSA...)
-
-The output is a vector data containing polylines with a new field
-containing the descriptor value. In order to add the “NONDVI” descriptor
-to an input vector data (“inVD.shp”) corresponding to the percentage of
-pixels along a polyline that verifies the formula “NDVI >0.4”:
-
-::
-
-    otbcli_ComputePolylineFeatureFromImage -in   NDVI.TIF
-                                           -vd  inVD.shp
-                                           -expr  "b1 > 0.4"
-                                           -field "NONDVI"
-                                           -out   VD_NONDVI.shp
-
-``NDVI.TIF`` is the NDVI mono band image of the studied scene. This step
-must be repeated for each chosen descriptor:
-
-::
-
-    otbcli_ComputePolylineFeatureFromImage -in   roadSpectralAngle.TIF
-                                           -vd  VD_NONDVI.shp
-                                           -expr  "b1 > 0.24"
-                                           -field "ROADSA"
-                                           -out   VD_NONDVI_ROADSA.shp
-
-::
-
-    otbcli_ComputePolylineFeatureFromImage -in   Buildings.TIF
-                                           -vd  VD_NONDVI_ROADSA.shp
-                                           -expr  "b1 == 0"
-                                           -field "NOBUILDING"
-                                           -out   VD_NONDVI_ROADSA_NOBUIL.shp
-
-Both ``NDVI.TIF`` and ``roadSpectralAngle.TIF`` can be produced using
-**Monteverdi** feature extraction capabilities, and ``Buildings.TIF``
-can be generated using **Monteverdi** rasterization module. From now on,
-``VD_NONDVI_ROADSA_NOBUIL.shp`` contains three descriptor fields. It
-will be used in the following part.
-
-Second Step: Feature Validation
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The final application (*VectorDataDSValidation* ) will validate or
-invalidate the studied samples using `the Dempster-Shafer
-theory <http://en.wikipedia.org/wiki/Dempster%E2%80%93Shafer_theory>`_ 
-. Its inputs are:
-
--  ``-in`` an enriched vector data “VD\_NONDVI\_ROADSA\_NOBUIL.shp”
-
--  ``-belsup`` a support for the Belief computation
-
--  ``-plasup`` a support for the Plausibility computation
-
--  ``-descmod`` a fuzzy model FuzzyModel.xml
-
-The output is a vector data containing only the validated samples.
-
-::
-
-    otbcli_VectorDataDSValidation -in      extractedRoads_enriched.shp
-                                  -descmod FuzzyModel.xml
-                                  -out     validatedSamples.shp
-
diff --git a/Modules/Applications/AppClassification/app/CMakeLists.txt b/Modules/Applications/AppClassification/app/CMakeLists.txt
index b646618959..50ac00ea16 100644
--- a/Modules/Applications/AppClassification/app/CMakeLists.txt
+++ b/Modules/Applications/AppClassification/app/CMakeLists.txt
@@ -48,11 +48,6 @@ otb_create_application(
   SOURCES        otbFusionOfClassifications.cxx
   LINK_LIBRARIES ${${otb-module}_LIBRARIES})
 
-otb_create_application(
-  NAME           ComputePolylineFeatureFromImage
-  SOURCES        otbComputePolylineFeatureFromImage.cxx
-  LINK_LIBRARIES ${${otb-module}_LIBRARIES})
-
 if(OTB_USE_SHARK)
   otb_create_application(
     NAME           KMeansClassification
@@ -75,11 +70,6 @@ otb_create_application(
   SOURCES        otbPredictRegression.cxx
   LINK_LIBRARIES ${${otb-module}_LIBRARIES})
 
-otb_create_application(
-  NAME           DSFuzzyModelEstimation
-  SOURCES        otbDSFuzzyModelEstimation.cxx
-  LINK_LIBRARIES ${${otb-module}_LIBRARIES})
-
 otb_create_application(
   NAME           ClassificationMapRegularization
   SOURCES        otbClassificationMapRegularization.cxx
@@ -95,11 +85,6 @@ otb_create_application(
   SOURCES        otbComputeImagesStatistics.cxx
   LINK_LIBRARIES ${${otb-module}_LIBRARIES})
 
-otb_create_application(
-  NAME           VectorDataDSValidation
-  SOURCES        otbVectorDataDSValidation.cxx
-  LINK_LIBRARIES ${${otb-module}_LIBRARIES})
-
 otb_create_application(
   NAME           PolygonClassStatistics
   SOURCES        otbPolygonClassStatistics.cxx
diff --git a/Modules/Applications/AppClassification/app/otbComputePolylineFeatureFromImage.cxx b/Modules/Applications/AppClassification/app/otbComputePolylineFeatureFromImage.cxx
deleted file mode 100644
index 919ad16354..0000000000
--- a/Modules/Applications/AppClassification/app/otbComputePolylineFeatureFromImage.cxx
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <iostream>
-
-#include "otbVectorImage.h"
-
-#include "otbWrapperApplicationFactory.h"
-
-
-#include "otbVectorDataFileReader.h"
-#include "otbVectorDataFileWriter.h"
-#include "itkPreOrderTreeIterator.h"
-
-#include "otbVectorDataIntoImageProjectionFilter.h"
-#include "otbVectorDataTransformFilter.h"
-#include "itkAffineTransform.h"
-
-#include "otbParserConditionDataNodeFeatureFunction.h"
-#include "otbNDVIDataNodeFeatureFunction.h"
-
-// Elevation handler
-#include "otbWrapperElevationParametersHandler.h"
-
-namespace otb
-{
-namespace Wrapper
-{
-
-class ComputePolylineFeatureFromImage: public Application
-{
-public:
-  /** Standard class typedefs. */
-  typedef ComputePolylineFeatureFromImage Self;
-  typedef Application Superclass;
-  typedef itk::SmartPointer<Self> Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-  // Images
-  typedef FloatVectorImageType::PixelType PixelType;
-  typedef FloatVectorImageType ImageType;
-
-  // VectorData
-  typedef VectorData<> VectorDataType;
-  typedef VectorDataType::DataNodeType DataNodeType;
-  typedef DataNodeType::ValuePrecisionType PrecisionType;
-  typedef DataNodeType::PrecisionType CoordRepType;
-  typedef itk::PreOrderTreeIterator<VectorDataType::DataTreeType> TreeIteratorType;
-  typedef VectorDataIntoImageProjectionFilter<VectorDataType, ImageType> VectorDataIntoImageProjType;
-  typedef VectorDataProjectionFilter<VectorDataType, VectorDataType> VectorDataProjectionFilterType;
-
-  typedef ParserConditionDataNodeFeatureFunction<ImageType, CoordRepType, PrecisionType>
-      ParserConditionFeatureFunctionType;
-
-  /** Standard macro */
-  itkNewMacro(Self)
-;
-
-  itkTypeMacro(ComputePolylineFeatureFromImage, otb::Application)
-;
-
-private:
-  void DoInit() override
-  {
-    SetName("ComputePolylineFeatureFromImage");
-    SetDescription("This application computes the chosen descriptors for each studied polyline contained in the input VectorData.");
-
-    SetDocName("Compute Polyline Feature From Image");
-    SetDocLongDescription("The first step in the classifier fusion based validation is to compute the chosen descriptors for each studied polyline.");
-    SetDocLimitations("Since it does not rely on streaming process, take care of the size of input image before launching application.");
-    SetDocAuthors("OTB-Team");
-    SetDocSeeAlso(" ");
-    AddDocTag(Tags::FeatureExtraction);
-
-    AddParameter(ParameterType_InputImage, "in", "Input Image");
-    SetParameterDescription("in", "An image to compute the descriptors on.");
-
-    AddParameter(ParameterType_InputVectorData, "vd", "Vector Data");
-    SetParameterDescription("vd", "Vector data containing the polylines where the features will be computed.");
-
-    // Elevation
-    ElevationParametersHandler::AddElevationParameters(this, "elev");
-
-    AddParameter(ParameterType_String, "expr", "Feature expression");
-    SetParameterDescription("expr", "The feature formula (b1 < 0.3) where b1 is the standard name of input image first band");
-
-    AddParameter(ParameterType_String, "field", "Feature name");
-    SetParameterDescription("field", "The field name corresponding to the feature codename (NONDVI, ROADSA...)");
-
-    AddParameter(ParameterType_OutputVectorData, "out", "Output Vector Data");
-    SetParameterDescription("out", "The output vector data containing polylines with a new field");
-
-    // Doc example parameter settings
-    SetDocExampleParameterValue("in", "NDVI.TIF");
-    SetDocExampleParameterValue("vd", "roads_ground_truth.shp");
-    SetDocExampleParameterValue("expr", "\"(b1 > 0.4)\"");
-    SetDocExampleParameterValue("field", "NONDVI");
-    SetDocExampleParameterValue("out", "PolylineFeatureFromImage_LI_NONDVI_gt.shp");
-
-    SetOfficialDocLink();
-  }
-
-  void DoUpdateParameters() override
-  {
-    // Nothing to do here : all parameters are independent
-  }
-
-  void DoExecute() override
-  {
-    // Vector Data into Image projection
-    FloatVectorImageType::Pointer inImage = GetParameterImage("in");
-
-    inImage->UpdateOutputInformation();
-    try
-      {
-      inImage->Update();
-      }
-    catch (...)
-      {
-      itkGenericExceptionMacro(<< "Error during image update, maybe your image is to big.");
-      }
-
-    otbAppLogDEBUG( << "Starting PolylineFeature extraction process" )
-
-    // Vector Data into Image projection
-    //// Read the Vectordata
-
-    VectorDataType* inVectorData = GetParameterVectorData("vd");
-    inVectorData->Update();
-    //// Projection
-    VectorDataIntoImageProjType::Pointer vprojIm = VectorDataIntoImageProjType::New();
-    vprojIm->SetInputVectorData(inVectorData);
-    vprojIm->SetInputImage(inImage);
-
-    // Setup the DEM Handler
-    otb::Wrapper::ElevationParametersHandler::SetupDEMHandlerFromElevationParameters(this,"elev");
-
-    vprojIm->SetUseOutputSpacingAndOriginFromImage(true); // we want index as input;
-    vprojIm->Update();
-
-    // Add description
-    ParserConditionFeatureFunctionType::Pointer vdescriptor = ParserConditionFeatureFunctionType::New();
-    vdescriptor->SetExpression(GetParameterString("expr"));
-    vdescriptor->SetInputImage(inImage);
-
-    m_OutVectorData = VectorDataType::New();
-    // Retrieving root node
-    DataNodeType::Pointer root = m_OutVectorData->GetDataTree()->GetRoot()->Get();
-    // Create the document node
-    DataNodeType::Pointer document = DataNodeType::New();
-    document->SetNodeType(otb::DOCUMENT);
-    // Adding the layer to the data tree
-    m_OutVectorData->GetDataTree()->Add(document, root);
-    // Create the folder node
-    DataNodeType::Pointer folder = DataNodeType::New();
-    folder->SetNodeType(otb::FOLDER);
-    // Adding the layer to the data tree
-    m_OutVectorData->GetDataTree()->Add(folder, document);
-
-    TreeIteratorType itVector(vprojIm->GetOutput()->GetDataTree());
-    itVector.GoToBegin();
-
-    while (!itVector.IsAtEnd())
-      {
-      vdescriptor->SetInputImage(inImage);
-      if (!itVector.Get()->IsRoot() && !itVector.Get()->IsDocument() && !itVector.Get()->IsFolder())
-        {
-        DataNodeType::Pointer currentGeometry = itVector.Get();
-        currentGeometry->SetFieldAsDouble(GetParameterString("field"),
-                                          (double) (vdescriptor->Evaluate(*(currentGeometry.GetPointer()))[0]));
-        m_OutVectorData->GetDataTree()->Add(currentGeometry, folder);
-        }
-      ++itVector;
-      }
-
-    /*
-     * Reprojection of the output VectorData
-     *
-     * The output of VectorDataToRoadDescription is in image index coordinates
-     *
-     * 3 cases :
-     * - input image has no geo-information : pass through
-     * - input image is in cartographic projection : apply image spacing and origin, and set the ProjectionRef
-     * - input image is in sensor model geometry : reproject in WGS84
-     *
-     */
-
-    std::string projRef = inImage->GetProjectionRef();
-    ImageKeywordlist kwl;
-    itk::ExposeMetaData<ImageKeywordlist>(inImage->GetMetaDataDictionary(), MetaDataKey::OSSIMKeywordlistKey, kwl);
-
-    if (!projRef.empty())
-      {
-      // image is in cartographic projection
-      // apply spacing and origin + set projection WKT
-      // The VectorData in output of the chain is in image index coordinate,
-      // and the projection information is lost
-      // Apply an affine transform to apply image origin and spacing,
-      // and arbitrarily set the ProjectionRef to the input image ProjectionRef
-
-      typedef itk::AffineTransform<VectorDataType::PrecisionType, 2> TransformType;
-      typedef otb::VectorDataTransformFilter<VectorDataType, VectorDataType> VDTransformType;
-
-      TransformType::ParametersType params;
-      params.SetSize(6);
-      params[0] = inImage->GetSignedSpacing()[0];
-      params[1] = 0;
-      params[2] = 0;
-      params[3] = inImage->GetSignedSpacing()[1];
-      params[4] = inImage->GetOrigin()[0];
-      params[5] = inImage->GetOrigin()[1];
-
-      TransformType::Pointer transform = TransformType::New();
-      transform->SetParameters(params);
-
-      VDTransformType::Pointer vdTransform = VDTransformType::New();
-      vdTransform->SetTransform(transform);
-      vdTransform->SetInput(m_OutVectorData);
-      vdTransform->Update();
-
-      m_ProjectedVectorData = vdTransform->GetOutput();
-
-      m_ProjectedVectorData->SetProjectionRef(inImage->GetProjectionRef());
-      }
-    else
-      if (kwl.GetSize() > 0)
-        {
-        // image is in sensor model geometry
-
-        // Reproject VectorData in image projection
-        VectorDataProjectionFilterType::Pointer vproj = VectorDataProjectionFilterType::New();
-        vproj->SetInput(m_OutVectorData);
-
-        vproj->SetOutputKeywordList(inImage->GetImageKeywordlist());
-        vproj->SetOutputProjectionRef(inImage->GetProjectionRef());
-        vproj->SetOutputOrigin(inImage->GetOrigin());
-        vproj->SetOutputSpacing(inImage->GetSignedSpacing());
-
-        // Setup the DEM Handler
-        otb::Wrapper::ElevationParametersHandler::SetupDEMHandlerFromElevationParameters(this,"elev");
-
-        vproj->Update();
-        m_ProjectedVectorData = vproj->GetOutput();
-        }
-      else
-        {
-        // no georeferencing information
-        m_ProjectedVectorData = m_OutVectorData;
-        }
-
-    // Set the output vectorData
-    SetParameterOutputVectorData("out", m_ProjectedVectorData);
-
-  };
-
-  VectorDataType::Pointer m_ProjectedVectorData;
-  VectorDataType::Pointer m_OutVectorData;
-
-};
-
-}
-}
-
-OTB_APPLICATION_EXPORT(otb::Wrapper::ComputePolylineFeatureFromImage)
-
-
diff --git a/Modules/Applications/AppClassification/app/otbDSFuzzyModelEstimation.cxx b/Modules/Applications/AppClassification/app/otbDSFuzzyModelEstimation.cxx
deleted file mode 100644
index 2804718d78..0000000000
--- a/Modules/Applications/AppClassification/app/otbDSFuzzyModelEstimation.cxx
+++ /dev/null
@@ -1,451 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include <iostream>
-
-#include "otbWrapperApplication.h"
-#include "otbWrapperApplicationFactory.h"
-#include "otbWrapperStringListParameter.h"
-#include "otbImageToEnvelopeVectorDataFilter.h"
-#include "otbVectorDataToRandomLineGenerator.h"
-#include "itkAmoebaOptimizer.h"
-#include "otbStandardDSCostFunction.h"
-
-
-namespace otb
-{
-
-namespace Wrapper
-{
-
-#include "itkCommand.h"
-class CommandIterationUpdate : public itk::Command
-{
-public:
-typedef  CommandIterationUpdate   Self;
-typedef  itk::Command             Superclass;
-typedef itk::SmartPointer<Self>   Pointer;
-itkNewMacro( Self );
-protected:
-CommandIterationUpdate() {};
-public:
-typedef itk::AmoebaOptimizer         OptimizerType;
-typedef   const OptimizerType   *    OptimizerPointer;
-
-
-void Execute(itk::Object *caller, const itk::EventObject & event) override
-{
-  Execute( (const itk::Object *)caller, event);
-}
-
-void Execute(const itk::Object * object, const itk::EventObject & event) override
-{
-  OptimizerPointer optimizer =
-      dynamic_cast< OptimizerPointer >( object );
-  if( ! itk::IterationEvent().CheckEvent( &event ) )
-    {
-    return;
-    }
-  std::ostringstream message;
-  message << optimizer->GetCachedValue() << "   ";
-  message << optimizer->GetCachedCurrentPosition() << std::endl;
-  std::cout<<message.str()<<std::endl;
-}
-
-
-};
-
-
-class DSFuzzyModelEstimation: public Application
-{
-public:
-  /** Standard class typedefs. */
-  typedef DSFuzzyModelEstimation Self;
-  typedef Application Superclass;
-  typedef itk::SmartPointer<Self> Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-
-  typedef VectorData<double>                          VectorDataType;
-
-  typedef VectorDataType::DataTreeType                DataTreeType;
-  typedef VectorDataType::DataNodeType                DataNodeType;
-
-  typedef VectorDataType::ValuePrecisionType          PrecisionType;
-  typedef VectorDataType::PrecisionType               CoordRepType;
-
-  typedef otb::Wrapper::StringListParameter::StringListType         StringListType;
-
-  typedef otb::VectorDataToDSValidatedVectorDataFilter<VectorDataType, PrecisionType>
-                                                            ValidationFilterType;
-  typedef otb::StandardDSCostFunction<ValidationFilterType> CostFunctionType;
-  typedef CostFunctionType::LabelSetType                    LabelSetType;
-
-  typedef itk::AmoebaOptimizer                            OptimizerType;
-
-  typedef otb::FuzzyDescriptorsModelManager::DescriptorsModelType
-                                                          DescriptorsModelType;
-  typedef otb::FuzzyDescriptorsModelManager::DescriptorListType
-                                                          DescriptorListType;
-
-     typedef itk::PreOrderTreeIterator<VectorDataType::DataTreeType>
-     TreeIteratorType;
-
-
-  /** Standard macro */
-  itkNewMacro(Self);
-
-  itkTypeMacro(DSFuzzyModelEstimation, otb::Application);
-
-private:
-  void DoInit() override
-  {
-    SetName("DSFuzzyModelEstimation");
-    SetDescription("Estimate feature fuzzy model parameters using 2 vector data (ground truth samples and wrong samples).");
-
-    SetDocName("Fuzzy Model estimation");
-    SetDocLongDescription("Estimate feature fuzzy model parameters using 2 vector data (ground truth samples and wrong samples).");
-    SetDocLimitations("None.");
-    SetDocAuthors("OTB-Team");
-    SetDocSeeAlso(" ");
-
-    AddDocTag(Tags::FeatureExtraction);
-
-    AddParameter(ParameterType_InputVectorData, "psin", "Input Positive Vector Data");
-    SetParameterDescription("psin", "Ground truth vector data for positive samples");
-
-    AddParameter(ParameterType_InputVectorData, "nsin", "Input Negative Vector Data");
-    SetParameterDescription("nsin", "Ground truth vector data for negative samples");
-
-    AddParameter(ParameterType_StringList, "belsup", "Belief Support");
-    SetParameterDescription("belsup", "Dempster Shafer study hypothesis to compute belief");
-
-    AddParameter(ParameterType_StringList, "plasup", "Plausibility Support");
-    SetParameterDescription("plasup", "Dempster Shafer study hypothesis to compute plausibility");
-
-    AddParameter(ParameterType_OutputFilename, "out", "Output filename");
-    SetParameterDescription("out", "Output model file name (xml file) contains the optimal model to perform information fusion.");
-
-    AddParameter(ParameterType_String, "cri", "Criterion");
-    SetParameterDescription("cri", "Dempster Shafer criterion (by default (belief+plausibility)/2)");
-    MandatoryOff("cri");
-    SetParameterString("cri","((Belief + Plausibility)/2.)");
-
-    AddParameter(ParameterType_Float,"wgt","Weighting");
-    SetParameterDescription("wgt","Coefficient between 0 and 1 to promote undetection or false detections (default 0.5)");
-    MandatoryOff("wgt");
-    SetParameterFloat("wgt",0.5);
-
-    AddParameter(ParameterType_InputFilename,"initmod","initialization model");
-    SetParameterDescription("initmod","Initialization model (xml file) to be used. If the xml initialization model is set, the descriptor list is not used (specified using the option -desclist)");
-    MandatoryOff("initmod");
-
-    AddParameter(ParameterType_StringList, "desclist","Descriptor list");
-    SetParameterDescription("desclist","List of the descriptors to be used in the model (must be specified to perform an automatic initialization)");
-    MandatoryOff("desclist");
-
-    AddParameter(ParameterType_Int,"maxnbit","Maximum number of iterations");
-    MandatoryOff("maxnbit");
-    SetParameterDescription("maxnbit","Maximum number of optimizer iteration (default 200)");
-    SetParameterInt("maxnbit",200);
-
-    AddParameter(ParameterType_Bool,"optobs","Optimizer Observer");
-    SetParameterDescription("optobs","Activate the optimizer observer");
-
-    // Doc example parameter settings
-    SetDocExampleParameterValue("psin", "cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp");
-    SetDocExampleParameterValue("nsin", "cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp");
-    SetDocExampleParameterValue("belsup", "\"ROADSA\"");
-    SetDocExampleParameterValue("plasup", "\"NONDVI\" \"ROADSA\" \"NOBUIL\"");
-    SetDocExampleParameterValue("initmod", "Dempster-Shafer/DSFuzzyModel_Init.xml");
-    SetDocExampleParameterValue("maxnbit", "4");
-    SetDocExampleParameterValue("optobs", "true");
-    SetDocExampleParameterValue("out", "DSFuzzyModelEstimation.xml");
-
-    SetOfficialDocLink();
-  }
-
-  void DoUpdateParameters() override
-  {
-    // Nothing to do here : all parameters are independent
-
-
-    // .. //
-
-
-  }
-
-  void DoExecute() override
-  {
-
-    //Instantiate
-    m_CostFunction = CostFunctionType::New();
-    m_Optimizer = OptimizerType::New();
-
-    //Read the vector datas
-    VectorDataType::Pointer psVectorData = GetParameterVectorData("psin");
-    psVectorData->Update();
-    VectorDataType::Pointer nsVectorData = GetParameterVectorData("nsin");
-    nsVectorData->Update();
-
-    // Load the initial descriptor model
-    DescriptorListType descList;
-    DescriptorsModelType descMod;
-    if (IsParameterEnabled("initmod"))
-      {
-      std::string descModFile = GetParameterString("initmod");
-      descMod = FuzzyDescriptorsModelManager::Read(descModFile);
-      descList = FuzzyDescriptorsModelManager::GetDescriptorList(descMod);
-      }
-    else
-      {
-      StringListType stringList = GetParameterStringList("desclist");
-      int nbsdDesc = stringList.size();
-      for (int i = 0; i < nbsdDesc; i++)
-        {
-        descList.push_back(stringList[i]);
-        }
-      }
-
-    m_CostFunction->SetDescriptorList(descList);
-
-    // Compute statistics of all the descriptors
-
-    std::vector<double> accFirstOrderPS, accSecondOrderPS, minPS, maxPS;
-    accFirstOrderPS.resize(descList.size());
-    accSecondOrderPS.resize(descList.size());
-    std::fill(accFirstOrderPS.begin(), accFirstOrderPS.end(), 0);
-    std::fill(accSecondOrderPS.begin(), accSecondOrderPS.end(), 0);
-    minPS.resize(descList.size());
-    maxPS.resize(descList.size());
-    unsigned int accNbElemPS = 0;
-
-    TreeIteratorType itVectorPS(psVectorData->GetDataTree());
-    for (itVectorPS.GoToBegin(); !itVectorPS.IsAtEnd(); ++itVectorPS)
-      {
-      if (!itVectorPS.Get()->IsRoot() && !itVectorPS.Get()->IsDocument() && !itVectorPS.Get()->IsFolder())
-        {
-        DataNodeType::Pointer currentGeometry = itVectorPS.Get();
-
-        for (unsigned int i = 0; i < descList.size(); ++i)
-          {
-          double desc = currentGeometry->GetFieldAsDouble(descList[i]);
-
-          accFirstOrderPS[i] += desc;
-          accSecondOrderPS[i] += desc * desc;
-
-          if (desc < minPS[i])
-            {
-            minPS[i] = desc;
-            }
-          if (desc > maxPS[i])
-            {
-            maxPS[i] = desc;
-            }
-
-          }
-        accNbElemPS++;
-        }
-      }
-    if (accNbElemPS == 0)
-      {
-      otbAppLogFATAL(<< "Error : no element found in positive vector data!");
-      }
-
-    TreeIteratorType itVectorNS(nsVectorData->GetDataTree());
-    std::vector<double> accFirstOrderNS, accSecondOrderNS, minNS, maxNS;
-    minNS.resize(descList.size());
-    maxNS.resize(descList.size());
-    accFirstOrderNS.resize(descList.size());
-    accSecondOrderNS.resize(descList.size());
-    std::fill(accFirstOrderNS.begin(), accFirstOrderNS.end(), 0);
-    std::fill(accSecondOrderNS.begin(), accSecondOrderNS.end(), 0);
-    std::fill(minNS.begin(), minNS.end(), 1);
-    std::fill(maxNS.begin(), maxNS.end(), 0);
-    unsigned int accNbElemNS = 0;
-
-    for (itVectorNS.GoToBegin(); !itVectorNS.IsAtEnd(); ++itVectorNS)
-      {
-      if (!itVectorNS.Get()->IsRoot() && !itVectorNS.Get()->IsDocument() && !itVectorNS.Get()->IsFolder())
-        {
-        DataNodeType::Pointer currentGeometry = itVectorNS.Get();
-
-        for (unsigned int i = 0; i < descList.size(); ++i)
-          {
-          double desc = currentGeometry->GetFieldAsDouble(descList[i]);
-
-          accFirstOrderNS[i] += desc;
-          accSecondOrderNS[i] += desc * desc;
-
-          if (desc < minNS[i])
-            {
-            minNS[i] = desc;
-            }
-          if (desc > maxNS[i])
-            {
-            maxNS[i] = desc;
-            }
-
-          }
-        accNbElemNS++;
-        }
-      }
-    if (accNbElemNS == 0)
-      {
-      otbAppLogFATAL(<< "Error : no element found in negative vector data!");
-      }
-    otbAppLogINFO( << "Descriptors Stats : ");
-    otbAppLogINFO( << "Positive Samples");
-    for (unsigned int i = 0; i < descList.size(); ++i)
-      {
-      double mean = accFirstOrderPS[i] / accNbElemPS;
-      double stddev = std::sqrt(accSecondOrderPS[i] / accNbElemPS - mean * mean);
-      otbAppLogINFO( << descList[i] << "  :  " << mean << " +/- " << stddev << "  (min: " << minPS[i] << "  max: " << maxPS[i] << ")"<< std::endl);
-      }
-
-    otbAppLogINFO( << "Negative Samples" << std::endl);
-    for (unsigned int i = 0; i < descList.size(); ++i)
-      {
-      double mean = accFirstOrderNS[i] / accNbElemNS;
-      double stddev = std::sqrt(accSecondOrderNS[i] / accNbElemNS - mean * mean);
-      otbAppLogINFO(<< descList[i] << "  :  " << mean << " +/- " << stddev << "  (min: " << minNS[i] << "  max: " << maxNS[i] << ")"<< std::endl);
-      }
-
-    OptimizerType::ParametersType initialPosition(4 * descList.size());
-
-    if (IsParameterEnabled("initmod"))
-      {
-
-      for (unsigned int i = 0; i < 4; i++)
-        {
-        for (unsigned int j = 0; j < descList.size(); j++)
-          {
-          initialPosition.SetElement(
-                                     i + 4 * j,
-                                     otb::FuzzyDescriptorsModelManager::GetDescriptor(descList[j].c_str(), descMod).second[i]);
-          }
-        }
-      }
-    else
-      {
-      for (unsigned int j = 0; j < descList.size(); j++)
-        {
-        initialPosition.SetElement((j * 4), std::min(minNS[j], maxPS[j]));
-        initialPosition.SetElement((j * 4) + 2, std::max(minNS[j], maxPS[j]));
-        initialPosition.SetElement(
-                                   (j * 4) + 1,
-                                       0.5
-                                       * (initialPosition.GetElement((j * 4)) + initialPosition.GetElement((j * 4) + 2)));
-        initialPosition.SetElement((j * 4) + 3, 0.95);
-        }
-      }
-
-    otbAppLogINFO(<<"Initial model: "<<initialPosition);
-
-    //Cost Function
-    //Format Hypothesis
-    LabelSetType Bhyp, Phyp;
-    int nbSet;
-
-    StringListType stringList = GetParameterStringList("belsup");
-    nbSet = stringList.size();
-
-    for (int i = 0; i < nbSet; i++)
-      {
-      std::string str = stringList[i];
-      Bhyp.insert(str);
-      }
-    m_CostFunction->SetBeliefHypothesis(Bhyp);
-    stringList = GetParameterStringList("plasup");
-    nbSet = stringList.size();
-    for (int i = 0; i < nbSet; i++)
-      {
-      std::string str = stringList[i];
-      Phyp.insert(str);
-      }
-    m_CostFunction->SetPlausibilityHypothesis(Phyp);
-
-    m_CostFunction->SetWeight(GetParameterFloat("wgt"));
-
-    m_CostFunction->SetCriterionFormula(GetParameterString("cri"));
-
-    m_CostFunction->SetGTVectorData(psVectorData);
-    m_CostFunction->SetNSVectorData(nsVectorData);
-    //Optimizer
-    m_Optimizer->SetCostFunction(m_CostFunction);
-
-    m_Optimizer->SetMaximumNumberOfIterations(GetParameterInt("maxnbit"));
-
-    OptimizerType::ParametersType simplexDelta(m_CostFunction->GetNumberOfParameters());
-    simplexDelta.Fill(0.1);
-
-    m_Optimizer->AutomaticInitialSimplexOff();
-    m_Optimizer->SetInitialSimplexDelta(simplexDelta);
-
-    m_Optimizer->SetInitialPosition(initialPosition);
-
-    // Create the Command observer and register it with the optimizer.
-    CommandIterationUpdate::Pointer observer = CommandIterationUpdate::New();
-    if (GetParameterInt("optobs"))
-      {
-      m_Optimizer->AddObserver(itk::IterationEvent(), observer);
-      }
-
-    try
-      {
-      // do the optimization
-      m_Optimizer->StartOptimization();
-      }
-    catch (itk::ExceptionObject& err)
-      {
-      // An error has occurred in the optimization.
-      // Update the parameters
-      otbAppLogFATAL("ERROR: Exception Caught : "<< err.GetDescription() << std::endl
-        << "numberOfIterations : " << m_Optimizer->GetOptimizer()->get_num_evaluations() << std::endl
-        << "Results : " << m_Optimizer->GetCurrentPosition() << std::endl);
-      }
-    // get the results
-    const unsigned int numberOfIterations = m_Optimizer->GetOptimizer()->get_num_evaluations();
-    otbAppLogINFO("numberOfIterations : " << numberOfIterations << std::endl);
-    otbAppLogINFO("Results : " << m_Optimizer->GetCurrentPosition() << std::endl);
-
-    for (unsigned int i = 0; i < descList.size(); i++)
-      {
-      otb::FuzzyDescriptorsModelManager::ParameterType tmpParams;
-      for (unsigned int j = 0; j < 4; j++)
-        {
-        tmpParams.push_back(m_Optimizer->GetCurrentPosition()[(i * 4) + j]);
-        }
-      otb::FuzzyDescriptorsModelManager::AddDescriptor(descList[i], tmpParams, m_Model);
-      }
-    otb::FuzzyDescriptorsModelManager::Save(GetParameterString("out"), m_Model);
-
-  };
-
-  CostFunctionType::Pointer                               m_CostFunction;
-  OptimizerType::Pointer                                  m_Optimizer;
-  otb::FuzzyDescriptorsModelManager::DescriptorsModelType m_Model;
-};
-
-}
-}
-
-OTB_APPLICATION_EXPORT(otb::Wrapper::DSFuzzyModelEstimation)
-
diff --git a/Modules/Applications/AppClassification/app/otbVectorDataDSValidation.cxx b/Modules/Applications/AppClassification/app/otbVectorDataDSValidation.cxx
deleted file mode 100644
index 64001c6a13..0000000000
--- a/Modules/Applications/AppClassification/app/otbVectorDataDSValidation.cxx
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include "otbVectorDataToDSValidatedVectorDataFilter.h"
-#include "otbWrapperApplication.h"
-#include "otbWrapperApplicationFactory.h"
-#include "otbWrapperStringListParameter.h"
-
-
-namespace otb
-{
-namespace Wrapper
-{
-
-class VectorDataDSValidation: public Application
-{
-
-
-public:
-   /** Standard class typedefs. */
-  typedef VectorDataDSValidation Self;
-  typedef Application Superclass;
-  typedef itk::SmartPointer<Self> Pointer;
-  typedef itk::SmartPointer<const Self> ConstPointer;
-
-
-  typedef double                          PrecisionType;
-  typedef otb::VectorData<PrecisionType>  VectorDataType;
-  typedef otb::VectorDataToDSValidatedVectorDataFilter<VectorDataType, PrecisionType>
-                                          VectorDataValidationFilterType;
-  typedef VectorDataValidationFilterType::LabelSetType
-                                          LabelSetType;
-  typedef FuzzyDescriptorsModelManager::DescriptorsModelType DescriptorsModelType;
-
-  typedef otb::Wrapper::StringListParameter::StringListType    StringListType;
-
-  /** Standard macro */
-  itkNewMacro(Self);
-
-  itkTypeMacro(VectorDataDSValidation, otb::Application);
-
-private:
-  void DoInit() override
-  {
-    SetName("VectorDataDSValidation");
-    SetDescription("Vector data validation based on the fusion of features using Dempster-Shafer evidence theory framework.");
-
-    SetDocName("Vector Data validation");
-    SetDocLongDescription("This application validates or unvalidate the studied samples using the Dempster-Shafer theory.");
-    SetDocLimitations("None.");
-    SetDocAuthors("OTB-Team");
-    SetDocSeeAlso("http://en.wikipedia.org/wiki/Dempster-Shafer_theory");
-
-    AddDocTag(Tags::FeatureExtraction);
-
-
-    AddParameter(ParameterType_InputVectorData, "in", "Input Vector Data");
-    SetParameterDescription("in", "Input vector data to validate");
-
-    AddParameter(ParameterType_InputFilename, "descmod", "Descriptors model filename");
-    SetParameterDescription("descmod", "Fuzzy descriptors model (xml file)");
-
-    AddParameter(ParameterType_StringList, "belsup", "Belief Support");
-    SetParameterDescription("belsup", "Dempster Shafer study hypothesis to compute belief");
-
-    AddParameter(ParameterType_StringList, "plasup", "Plausibility Support");
-    SetParameterDescription("plasup", "Dempster Shafer study hypothesis to compute plausibility");
-
-    AddParameter(ParameterType_OutputVectorData, "out", "Output Vector Data");
-    SetParameterDescription("out", "Output VectorData containing only the validated samples");
-
-    AddParameter(ParameterType_String, "cri", "Criterion");
-    SetParameterDescription("cri", "Dempster Shafer criterion (by default (belief+plausibility)/2)");
-    MandatoryOff("cri");
-    SetParameterString("cri", "((Belief + Plausibility)/2.)");
-
-    AddParameter(ParameterType_Float, "thd", "Criterion threshold");
-    SetParameterDescription("thd", "Criterion threshold (default 0.5)");
-    MandatoryOff("thd");
-    SetParameterFloat("thd",0.5);
-
-    // Doc example parameter settings
-    SetDocExampleParameterValue("in", "cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp");
-    SetDocExampleParameterValue("belsup", "cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp");
-    SetDocExampleParameterValue("descmod", "DSFuzzyModel.xml");
-    SetDocExampleParameterValue("out", "VectorDataDSValidation.shp");
-
-    SetOfficialDocLink();
-  }
-
-  void DoUpdateParameters() override
-  {
-    // Nothing to do here : all parameters are independent
-
-
-    // .. //
-
-
-  }
-
-  void DoExecute() override
-  {
-
-    //Read the vector data
-    VectorDataType::Pointer inVectorData = GetParameterVectorData("in");
-    inVectorData->Update();
-
-    // Load the descriptors model
-    std::string descModFile = GetParameterString("descmod");
-    DescriptorsModelType descMod = FuzzyDescriptorsModelManager::Read(descModFile);
-
-    LabelSetType Bhyp, Phyp;
-    int nbSet;
-
-    StringListType stringList = GetParameterStringList("belsup");
-    nbSet = stringList.size();
-
-    for (int i = 0; i < nbSet; i++)
-      {
-      std::string str = stringList[i];
-      Bhyp.insert(str);
-      }
-    stringList = GetParameterStringList("plasup");
-    nbSet = stringList.size();
-    for (int i = 0; i < nbSet; i++)
-      {
-      std::string str = stringList[i];
-      Phyp.insert(str);
-      }
-
-    // Process
-    m_ValidationFilter = VectorDataValidationFilterType::New();
-    m_ValidationFilter->SetInput(inVectorData);
-    m_ValidationFilter->SetDescriptorModels(descMod);
-    m_ValidationFilter->SetBeliefHypothesis(Bhyp);
-    m_ValidationFilter->SetPlausibilityHypothesis(Phyp);
-
-    m_ValidationFilter->SetCriterionFormula(GetParameterString("cri"));
-    m_ValidationFilter->SetCriterionThreshold(GetParameterFloat("thd"));
-
-    // Set the output image
-    SetParameterOutputVectorData("out", m_ValidationFilter->GetOutput());
-
-  };
-
-  VectorDataValidationFilterType::Pointer m_ValidationFilter;
-
-
-};
-}
-}
-
-OTB_APPLICATION_EXPORT(otb::Wrapper::VectorDataDSValidation);
diff --git a/Modules/Applications/AppClassification/test/CMakeLists.txt b/Modules/Applications/AppClassification/test/CMakeLists.txt
index 6a05178e64..e24260482b 100644
--- a/Modules/Applications/AppClassification/test/CMakeLists.txt
+++ b/Modules/Applications/AppClassification/test/CMakeLists.txt
@@ -563,104 +563,6 @@ otb_test_application(NAME apTvFusionOfClassificationsMV2Inputs
   ${OTBAPP_BASELINE}/apTvFusionOfClassifications2InputsOutput.tif
   ${TEMP}/apTvFusionOfClassificationsMV2InputsOutput.tif)
 
-
-#----------- ComputePolylineFeatureFromImage TESTS ----------------
-otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_wr
-  APP  ComputePolylineFeatureFromImage
-  OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/NDVI.TIF}
-  -vd LARGEINPUT{DEMPSTER-SHAFER/wrongroads.shp}
-  -expr  "(b1 > 0.4)"
-  -field "NONDVI"
-  -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_wr.shp)
-
-# FIXME cascade dependencies to largeinput repository
-if(OTB_DATA_USE_LARGEINPUT)
-  otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_RoadExtractionApplication
-    APP  ComputePolylineFeatureFromImage
-    OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/SpectralAngleRoad.TIF}
-    -vd ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_RoadExtractionApplication.shp
-    -expr  "(b1 > 0.25)"
-    -field "ROADSA"
-    -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_RoadExtractionApplication.shp)
-
-  set_tests_properties(apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_RoadExtractionApplication PROPERTIES DEPENDS apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_RoadExtractionApplication)
-
-  otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_wr
-    APP  ComputePolylineFeatureFromImage
-    OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/SpectralAngleRoad.TIF}
-    -vd ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_wr.shp
-    -expr  "(b1 > 0.25)"
-    -field "ROADSA"
-    -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_wr.shp)
-
-  set_tests_properties(apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_wr PROPERTIES DEPENDS apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_wr)
-
-  otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_wr
-    APP  ComputePolylineFeatureFromImage
-    OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/BUILDINGS.TIF}
-    -vd ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_wr.shp
-    -expr  "(b1 == 0)"
-    -field "NOBUIL"
-    -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp
-    VALID   --compare-ogr ${EPSILON_9}
-    ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp
-    ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp)
-
-  set_tests_properties(apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_wr PROPERTIES DEPENDS apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_wr)
-
-  otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_RoadExtractionApplication
-    APP  ComputePolylineFeatureFromImage
-    OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/NDVI.TIF}
-    -vd LARGEINPUT{DEMPSTER-SHAFER/road_extraction.shp}
-    -expr  "(b1 > 0.4)"
-    -field "NONDVI"
-    -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_RoadExtractionApplication.shp)
-
-  otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_gt
-    APP  ComputePolylineFeatureFromImage
-    OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/NDVI.TIF}
-    -vd LARGEINPUT{DEMPSTER-SHAFER/roads_ground_truth.shp}
-    -expr  "(b1 > 0.4)"
-    -field NONDVI
-    -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage.shp)
-
-  otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_gt
-    APP  ComputePolylineFeatureFromImage
-    OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/SpectralAngleRoad.TIF}
-    -vd ${TEMP}/apTvCdbComputePolylineFeatureFromImage.shp
-    -expr  "(b1 > 0.25)"
-    -field "ROADSA"
-    -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_gt.shp)
-
-  set_tests_properties(apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_gt PROPERTIES DEPENDS apTvCdbComputePolylineFeatureFromImage_LI_NONDVI_gt)
-
-  otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_gt
-    APP  ComputePolylineFeatureFromImage
-    OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/BUILDINGS.TIF}
-    -vd ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_gt.shp
-    -expr  "(b1 == 0)"
-    -field "NOBUIL"
-    -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp
-    VALID   --compare-ogr ${EPSILON_9}
-    ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp
-    ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp)
-
-  set_tests_properties(apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_gt PROPERTIES DEPENDS apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_gt)
-
-  otb_test_application(NAME apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication
-    APP  ComputePolylineFeatureFromImage
-    OPTIONS -in LARGEINPUT{DEMPSTER-SHAFER/BUILDINGS.TIF}
-    -vd ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_RoadExtractionApplication.shp
-    -expr  "(b1 == 0)"
-    -field "NOBUIL"
-    -out ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shp
-    VALID   --compare-ogr ${EPSILON_9}
-    ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shp
-    ${TEMP}/apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shp)
-
-  set_tests_properties(apTvCdbComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication PROPERTIES DEPENDS apTvCdbComputePolylineFeatureFromImage_LI_ROADSA_RoadExtractionApplication)
-endif()
-
 #----------- KMeansClassification TESTS ----------------
 if(OTB_USE_SHARK)
   otb_test_application(NAME apTvClKMeansImageClassification_composite
@@ -769,30 +671,6 @@ if(OTB_USE_LIBSVM)
     ${TEMP}/clsvmConfMatQB1_allOpt.svm)
 endif()
 
-#----------- DSFuzzyModelEstimation TESTS ----------------
-otb_test_application(NAME apTvCdbDSFuzzyModelEstimation_LI_autoInit
-  APP  DSFuzzyModelEstimation
-  OPTIONS -psin ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp
-  -nsin ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp
-  -belsup "ROADSA"
-  -plasup "NONDVI" "ROADSA" "NOBUIL"
-  -desclist "NONDVI" "ROADSA" "NOBUIL"
-  -maxnbit 4
-  -optobs true
-  -out ${TEMP}/apTvCdbDSFuzzyModelEstimatorOutput_LI_autoInit.xml)
-
-otb_test_application(NAME apTvCdbDSFuzzyModelEstimation_LI
-  APP  DSFuzzyModelEstimation
-  OPTIONS -psin ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp
-  -nsin ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp
-  -belsup "ROADSA"
-  -plasup "NONDVI" "ROADSA" "NOBUIL"
-  -initmod ${OTB_DATA_ROOT}/Input/Dempster-Shafer/DSFuzzyModel_Init.xml
-  -maxnbit 4
-  -optobs true
-  -out ${TEMP}/apTvCdbDSFuzzyModelEstimatorOutput_LI.xml)
-
-
 #----------- ClassificationMapRegularization TESTS ----------------
 otb_test_application(NAME apTvClassificationMapRegularization
   APP  ClassificationMapRegularization
@@ -853,38 +731,6 @@ otb_test_application(NAME apTvClComputeImagesStatisticsQB123
   ${OTBAPP_BASELINE_FILES}/clImageStatisticsQB123.xml
   ${TEMP}/apTvClEstimateImageStatisticsQB123.xml)
 
-
-#----------- VectorDataDSValidation TESTS ----------------
-otb_test_application(NAME cdbTvVectorDataDSValidationGroundTruth_LI
-  APP  VectorDataDSValidation
-  OPTIONS -in ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_gt.shp
-  -belsup "ROADSA"
-  -plasup "NONDVI" "ROADSA" "NOBUIL"
-  -descmod ${OTB_DATA_ROOT}/Input/Dempster-Shafer/DSFuzzyModel.xml
-  -out ${TEMP}/cdbTvVectorDataDSValidationOutpout_LI_gt.shp
-  VALID    --compare-ogr 0.0
-  ${OTBAPP_BASELINE_FILES}/cdbTvVectorDataDSValidationOutpout_LI_gt.shp
-  ${TEMP}/cdbTvVectorDataDSValidationOutpout_LI_gt.shp)
-
-otb_test_application(NAME apTvCdbVectorDataDSValidationRoadExtractionApplication_LI
-  APP  VectorDataDSValidation
-  OPTIONS -in ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_RoadExtractionApplication.shp
-  -belsup "ROADSA"
-  -plasup "NONDVI" "ROADSA" "NOBUIL"
-  -descmod ${OTB_DATA_ROOT}/Input/Dempster-Shafer/DSFuzzyModel.xml
-  -out ${TEMP}/apTvCdbVectorDataDSValidationOutpout_LI_RoadExtractionApplication.shp)
-
-otb_test_application(NAME cdbTvVectorDataDSValidationWrongRoads_LI
-  APP  VectorDataDSValidation
-  OPTIONS -in ${OTBAPP_BASELINE_FILES}/cdbTvComputePolylineFeatureFromImage_LI_NOBUIL_wr.shp
-  -belsup "ROADSA"
-  -plasup "NONDVI" "ROADSA" "NOBUIL"
-  -descmod ${OTB_DATA_ROOT}/Input/Dempster-Shafer/DSFuzzyModel.xml
-  -out ${TEMP}/cdbTvVectorDataDSValidationOutpout_LI_wr.shp
-  VALID    --compare-ogr 0.0
-  ${OTBAPP_BASELINE_FILES}/cdbTvVectorDataDSValidationOutpout_LI_wr.shp
-  ${TEMP}/cdbTvVectorDataDSValidationOutpout_LI_wr.shp)
-
 if(OTB_USE_OPENCV)
   #----------- TrainRegression TESTS ----------------
   # y = 0.01*x^2 + 1.5*x - 300
diff --git a/Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.h b/Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.h
deleted file mode 100644
index 4406a107fb..0000000000
--- a/Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.h
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbDataNodeImageFunction_h
-#define otbDataNodeImageFunction_h
-
-#include "otbDataNodeFunctionBase.h"
-#include "otbDataNode.h"
-#include "itkContinuousIndex.h"
-#include "itkImageBase.h"
-
-namespace otb
-{
-/** \class DataNodeImageFunction
-  * \brief TODO
-  *
-  *
-  *
-  * \ingroup Functions
-  * \sa NDVIDataNodeFeatureFunction
- *
- * \ingroup OTBVectorDataBase
- */
-
-template <
-class TImage,
-class TOutput,
-class TCoordRep = double,
-class TPrecision = double
->
-class ITK_EXPORT DataNodeImageFunction :
-    public DataNodeFunctionBase<DataNode<TCoordRep,
-                                         TImage::ImageDimension,
-                                         TPrecision>,
-                                TOutput>
-{
-public:
-  /** Dimension underlying input image. */
-  itkStaticConstMacro(ImageDimension, unsigned int,
-                      TImage::ImageDimension);
-
-  /** Standard class typedefs. */
-  typedef DataNodeImageFunction                    Self;
-  typedef DataNodeFunctionBase<DataNode<TCoordRep,
-                                        itkGetStaticConstMacro(ImageDimension),
-                                        TPrecision>,
-                               TOutput>            Superclass;
-  typedef itk::SmartPointer<Self>                  Pointer;
-  typedef itk::SmartPointer<const Self>            ConstPointer;
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(DataNodeImageFunction, DataNodeFunctionBase);
-
-  /** Some typedefs. */
-  typedef TImage                                  InputImageType;
-  typedef typename InputImageType::PixelType      InputPixelType;
-  typedef typename InputImageType::ConstPointer   InputImageConstPointer;
-
-  typedef TOutput                                 OutputType;
-
-  /** CoordRepType typedef support. */
-  typedef TCoordRep CoordRepType;
-
-  /** PrecisionType typedef support. */
-  typedef TPrecision PrecisionType;
-
-  /** Index Type. */
-  typedef typename InputImageType::IndexType      IndexType;
-  typedef typename InputImageType::IndexValueType IndexValueType;
-
-  /** ContinuousIndex Type. */
-  typedef itk::ContinuousIndex<CoordRepType, itkGetStaticConstMacro(ImageDimension)>
-                                                  ContinuousIndexType;
-
-  /** DataNode Type */
-  typedef typename Superclass::DataNodeType       DataNodeType;
-
-  /** Point Type */
-  typedef typename DataNodeType::PointType        PointType;
-
-  /** Set the input image.
-   * \warning this method caches BufferedRegion information.
-   * If the BufferedRegion has changed, user must call
-   * SetInputImage again to update cached values. */
-  virtual void SetInputImage( const InputImageType * ptr );
-
-  /** Get the input image. */
-  const InputImageType * GetInputImage() const
-    { return m_Image.GetPointer(); }
-
-  /** Evaluate the function at specified DataNode position.
-   * Subclasses must provide this method. */
-  TOutput Evaluate( const DataNodeType& node ) const override = 0;
-
-  /** Check if an index is inside the image buffer.
-   * we take into account the fact that each voxel has its
-   * center at the integer coordinate and extends half way
-   * to the next integer coordinate.
-   * \warning For efficiency, no validity checking of
-   * the input image is done. */
-  virtual bool IsInsideBuffer( const IndexType & index ) const
-    {
-    for( unsigned int j = 0; j < ImageDimension; ++j )
-      {
-      if( index[j] < m_StartIndex[j] )
-        {
-        return false;
-        }
-      if( index[j] > m_EndIndex[j] )
-        {
-        return false;
-        }
-      }
-    return true;
-    }
-
-  /** Check if a continuous index is inside the image buffer.
-   * \warning For efficiency, no validity checking of
-   * the input image is done. */
-  virtual bool IsInsideBuffer( const ContinuousIndexType & index ) const
-    {
-    for( unsigned int j = 0; j < ImageDimension; ++j )
-      {
-      if( index[j] < m_StartContinuousIndex[j] )
-        {
-        return false;
-        }
-      if( index[j] >= m_EndContinuousIndex[j] )
-       //Comment this instruction after itkv4 migration (correct
-       //usage of centered-pixel coordinates)
-       //if( index[j] > m_EndContinuousIndex[j] )
-       {
-        return false;
-        }
-      }
-    return true;
-    }
-
-  /** Check if a point is inside the image buffer.
-   * \warning For efficiency, no validity checking of
-   * the input image pointer is done. */
-  virtual bool IsInsideBuffer( const PointType & point ) const
-    {
-    ContinuousIndexType index;
-    m_Image->TransformPhysicalPointToContinuousIndex( point, index );
-    return this->IsInsideBuffer( index );
-    }
-
-  /** Convert point to continuous index */
-  void ConvertPointToContinuousIndex( const PointType & point,
-    ContinuousIndexType & cindex ) const
-    {
-    m_Image->TransformPhysicalPointToContinuousIndex( point, cindex );
-    }
-
-  /** Convert continuous index to nearest index. */
-  inline void ConvertContinuousIndexToNearestIndex( const ContinuousIndexType & cindex,
-    IndexType & index ) const
-    {
-    index.CopyWithRound( cindex );
-    }
-
-  /** Set/Get methods */
-  itkGetConstReferenceMacro(StartIndex, IndexType);
-  itkGetConstReferenceMacro(EndIndex, IndexType);
-
-  itkGetConstReferenceMacro(StartContinuousIndex, ContinuousIndexType);
-  itkGetConstReferenceMacro(EndContinuousIndex, ContinuousIndexType);
-
-protected:
-  DataNodeImageFunction();
-  ~DataNodeImageFunction() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-  /** Const pointer to the input image. */
-  InputImageConstPointer  m_Image;
-
-  /** Cache some values for testing if indices are inside buffered region. */
-  IndexType               m_StartIndex;
-  IndexType               m_EndIndex;
-  ContinuousIndexType     m_StartContinuousIndex;
-  ContinuousIndexType     m_EndContinuousIndex;
-
-private:
-  DataNodeImageFunction(const Self&) = delete;
-  void operator=(const Self&) = delete;
-
-};
-
-}
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbDataNodeImageFunction.hxx"
-#endif
-
-#endif
diff --git a/Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.hxx b/Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.hxx
deleted file mode 100644
index b06e770312..0000000000
--- a/Modules/Core/VectorDataBase/include/otbDataNodeImageFunction.hxx
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbDataNodeImageFunction_hxx
-#define otbDataNodeImageFunction_hxx
-
-#include "otbDataNodeImageFunction.h"
-
-namespace otb
-{
-
-/**
- * Constructor
- */
-template <class TImage, class TOutput, class TCoordRep, class TPrecision>
-DataNodeImageFunction<TImage, TOutput, TCoordRep, TPrecision>
-::DataNodeImageFunction()
-{
-  m_Image = nullptr;
-  m_StartIndex.Fill(0);
-  m_EndIndex.Fill(0);
-  m_StartContinuousIndex.Fill(0.0f);
-  m_EndContinuousIndex.Fill(0.0f);
-}
-
-
-/**
- * Standard "PrintSelf" method
- */
-template <class TImage, class TOutput, class TCoordRep, class TPrecision>
-void
-DataNodeImageFunction<TImage, TOutput, TCoordRep, TPrecision>
-::PrintSelf(
-  std::ostream& os,
-  itk::Indent indent) const
-{
-  Superclass::PrintSelf( os, indent );
-  os << indent << "InputImage: " << m_Image.GetPointer() << std::endl;
-  os << indent << "StartIndex: " << m_StartIndex << std::endl;
-  os << indent << "EndIndex: " << m_EndIndex << std::endl;
-  os << indent << "StartContinuousIndex: " << m_StartContinuousIndex << std::endl;
-  os << indent << "EndContinuousIndex: " << m_EndContinuousIndex << std::endl;
-}
-
-
-/**
- * Initialize by setting the input image
- */
-template <class TImage, class TOutput, class TCoordRep, class TPrecision>
-void
-DataNodeImageFunction<TImage, TOutput, TCoordRep, TPrecision>
-::SetInputImage(
-  const InputImageType * ptr )
-{
-  // set the input image
-  m_Image = ptr;
-
-  if ( ptr )
-    {
-    typename InputImageType::SizeType size = ptr->GetBufferedRegion().GetSize();
-    m_StartIndex = ptr->GetBufferedRegion().GetIndex();
-
-    for ( unsigned int j = 0; j < ImageDimension; ++j )
-      {
-      m_EndIndex[j] = m_StartIndex[j] + static_cast<IndexValueType>( size[j] ) - 1;
-      m_StartContinuousIndex[j] = static_cast<CoordRepType>( m_StartIndex[j] - 0.5 );
-      m_EndContinuousIndex[j]   = static_cast<CoordRepType>( m_EndIndex[j] + 0.5 );
-
-      //Comment these instructions after migration to ITKv4 where there is a correct
-      //usage of centered-pixel coordinates
-      //(ITK_USE_CENTERED_PIXEL_COORDINATES_CONSISTENTLY always ON)
-      //m_StartContinuousIndex[j] = static_cast<CoordRepType>( m_StartIndex[j] );
-      //m_EndContinuousIndex[j]   = static_cast<CoordRepType>( m_EndIndex[j] );
-      }
-    }
-}
-
-
-} // end namespace itk
-
-#endif
diff --git a/Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.h b/Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.h
deleted file mode 100644
index c99f15d0b2..0000000000
--- a/Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbDataNodeVectorDataFunction_h
-#define otbDataNodeVectorDataFunction_h
-
-#include "otbDataNodeFunctionBase.h"
-#include "otbVectorDataProperties.h"
-
-
-namespace otb
-{
-/** \class DataNodeVectorDataFunction
-  * \brief TODO
-  *
-  *
-  *
-  * \ingroup Functions
-  * \sa
- *
- * \ingroup OTBVectorDataBase
- */
-
-template <
-class TOutput,
-class TCoordRep = double,
-class TPrecision = double
->
-class ITK_EXPORT DataNodeVectorDataFunction :
-    public DataNodeFunctionBase<DataNode<TCoordRep,
-                                         2,
-                                         TPrecision>,
-                                TOutput>
-{
-public:
-   /** Standard class typedefs. */
-  typedef DataNodeVectorDataFunction               Self;
-  typedef DataNodeFunctionBase<DataNode<TCoordRep,
-                                        2,
-                                        TPrecision>,
-                               TOutput>            Superclass;
-  typedef itk::SmartPointer<Self>                  Pointer;
-  typedef itk::SmartPointer<const Self>            ConstPointer;
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(DataNodeVetorDataFunction, DataNodeFunctionBase);
-
-  /** Some typedefs. */
-  typedef VectorData<TCoordRep, 2, TPrecision>    VectorDataType;
-  typedef typename VectorDataType::ConstPointer   VectorDataConstPointerType;
-  typedef TOutput                                 OutputType;
-
-  /** CoordRepType typedef support. */
-  typedef TCoordRep CoordRepType;
-
-  /** PrecisionType typedef support. */
-  typedef TPrecision PrecisionType;
-
-  /** DataNode Type */
-  typedef typename Superclass::DataNodeType       DataNodeType;
-
-  /** Point Type */
-  typedef typename DataNodeType::PointType        PointType;
-
-  /** Set the input VetorData. */
-  virtual void SetInputVectorData( const VectorDataType * ptr );
-
-  /** Get the input VectorData. */
-  const VectorDataType * GetInputVectorData() const
-    { return m_VectorData.GetPointer(); }
-
-  /** Evaluate the function at specified DataNode position.
-   * Subclasses must provide this method. */
-  TOutput Evaluate( const DataNodeType& node ) const override = 0;
-
-protected:
-  DataNodeVectorDataFunction();
-  ~DataNodeVectorDataFunction() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-  /** Const pointer to the input VectorData. */
-  VectorDataConstPointerType  m_VectorData;
-
-private:
-  DataNodeVectorDataFunction(const Self&) = delete;
-  void operator=(const Self&) = delete;
-
-};
-
-}
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbDataNodeVectorDataFunction.hxx"
-#endif
-
-#endif
diff --git a/Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.hxx b/Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.hxx
deleted file mode 100644
index 9ca52e1798..0000000000
--- a/Modules/Core/VectorDataBase/include/otbDataNodeVectorDataFunction.hxx
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbDataNodeVectorDataFunction_hxx
-#define otbDataNodeVectorDataFunction_hxx
-
-#include "otbDataNodeVectorDataFunction.h"
-
-namespace otb
-{
-
-/**
- * Constructor
- */
-template <class TOutput, class TCoordRep, class TPrecision>
-DataNodeVectorDataFunction<TOutput, TCoordRep, TPrecision>
-::DataNodeVectorDataFunction()
-{
-  m_VectorData = nullptr;
-}
-
-
-/**
- * Standard "PrintSelf" method
- */
-template <class TOutput, class TCoordRep, class TPrecision>
-void
-DataNodeVectorDataFunction<TOutput, TCoordRep, TPrecision>
-::PrintSelf(
-  std::ostream& os,
-  itk::Indent indent) const
-{
-  Superclass::PrintSelf( os, indent );
-  os << indent << "VetorData: " << m_VectorData.GetPointer() << std::endl;
-}
-
-
-/**
- * Initialize by setting the input VectorData
- */
-template <class TOutput, class TCoordRep, class TPrecision>
-void
-DataNodeVectorDataFunction<TOutput, TCoordRep, TPrecision>
-::SetInputVectorData(
-  const VectorDataType * ptr )
-{
-  // set the input VectorData
-  m_VectorData = ptr;
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.h b/Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.h
deleted file mode 100644
index f04fbd9892..0000000000
--- a/Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbParserConditionDataNodeFeatureFunction_h
-#define otbParserConditionDataNodeFeatureFunction_h
-
-#include "otbDataNodeImageFunction.h"
-#include "otbPolyLineImageConstIterator.h"
-#include "otbMaskMuParserFunctor.h"
-#include <string>
-
-namespace otb
-{
-/** \class ParserConditionDataNodeFeatureFunction
-  * \brief Compute a ParserCondition based feature alongside a
-  * datanode.
-  *
-  * This function evaluate a condition alongside a datanode.
-  * The descriptor is the percentage of pixels iterated for which
-  * the condition is true.
-  *
-  * \ingroup Functions
-  * \sa DataNodeImageFunction
-  * \sa SpectralAngleDataNodeFeatureFunction
- *
- * \ingroup OTBMathParser
-  */
-
-template <
-class TImage,
-class TCoordRep = double,
-class TPrecision = double
->
-class ITK_EXPORT ParserConditionDataNodeFeatureFunction :
-    public DataNodeImageFunction<TImage, std::vector<TPrecision>, TCoordRep, TPrecision>
-{
-public:
-  /** Standard class typedefs. */
-  typedef ParserConditionDataNodeFeatureFunction                         Self;
-  typedef DataNodeImageFunction<TImage, std::vector<TPrecision>, TCoordRep, TPrecision>
-                                                              Superclass;
-  typedef itk::SmartPointer<Self>                             Pointer;
-  typedef itk::SmartPointer<const Self>                       ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(ParserConditionDataNodeFeatureFunction, DataNodeImageFunction);
-
-  /** Some typedefs. */
-  typedef typename Superclass::DataNodeType           DataNodeType;
-  typedef typename DataNodeType::LineType             LineType;
-
-  typedef TImage                                      InputImageType;
-  typedef typename InputImageType::ConstPointer       InputImageConstPointer;
-  typedef typename InputImageType::PixelType          PixelType;
-  typedef typename InputImageType::InternalPixelType  ScalarRealType;
-  typedef typename InputImageType::IndexType          IndexType;
-  typedef typename InputImageType::IndexValueType     IndexValueType;
-
-  typedef TCoordRep                                   CoordRepType;
-
-  typedef TPrecision                                  PrecisionType;
-
-  typedef PolyLineImageConstIterator<InputImageType, LineType>
-                                                      ImageLineIteratorType;
-
-  typedef Functor::MaskMuParserFunctor<PixelType>      ParserConditionFunctorType;
-  typedef typename ParserConditionFunctorType::Pointer ParserConditionFunctorPointer;
-
-  typedef std::vector<PrecisionType>                  OutputType;
-
-  OutputType Evaluate( const DataNodeType& node ) const override;
-
-  std::string GetExpression() const
-  {
-    return m_ParserConditionFunctor->GetExpression();
-  }
-
-  void SetExpression(std::string expression)
-  {
-    m_ParserConditionFunctor->SetExpression(expression);
-  }
-
-  void SetSpectralAngleReferencePixel(const PixelType& pixel)
-  {
-    m_ParserConditionFunctor->SetSpectralAngleReferencePixel(pixel);
-  }
-
-protected:
-  ParserConditionDataNodeFeatureFunction();
-  ~ParserConditionDataNodeFeatureFunction() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  ParserConditionDataNodeFeatureFunction(const Self&) = delete;
-  void operator=(const Self&) = delete;
-
-  /** ParserCondition Functor */
-  ParserConditionFunctorPointer  m_ParserConditionFunctor;
-};
-
-}
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbParserConditionDataNodeFeatureFunction.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.hxx b/Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.hxx
deleted file mode 100644
index a32c38294f..0000000000
--- a/Modules/Filtering/MathParser/include/otbParserConditionDataNodeFeatureFunction.hxx
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbParserConditionDataNodeFeatureFunction_hxx
-#define otbParserConditionDataNodeFeatureFunction_hxx
-
-#include "otbParserConditionDataNodeFeatureFunction.h"
-
-namespace otb
-{
-
-/**
- * Constructor
- */
-template <class TImage, class TCoordRep, class TPrecision>
-ParserConditionDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>
-::ParserConditionDataNodeFeatureFunction()
-{
-  m_ParserConditionFunctor = ParserConditionFunctorType::New();
-}
-
-/**
- * Standard "PrintSelf" method
- */
-template <class TImage, class TCoordRep, class TPrecision>
-void
-ParserConditionDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>
-::PrintSelf( std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf( os, indent );
-  //os << indent << "ParserCondition : "    << m_ParserConditionFunctor << std::endl;
-}
-
-template <class TImage, class TCoordRep, class TPrecision>
-typename ParserConditionDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>
-::OutputType
- ParserConditionDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>
-::Evaluate( const DataNodeType& node ) const
-{
-  // The parser evaluation can't be const since the parser state
-  // changes at the first evaluation, but in fact we don't modify
-  // anything here.
-  // To fit with the rest of the framework, we try to keep the Evaluate
-  // function const
-  Self* _this = const_cast<Self*>(this);
-  ParserConditionFunctorType& parser = *(_this->m_ParserConditionFunctor);
-  // Ugly things over
-
-
-  const typename ImageLineIteratorType::PathType* path;
-
-  switch (node.GetNodeType())
-    {
-    case FEATURE_POINT:
-      {
-      itkExceptionMacro(<< "This DataNode type is not handle yet");
-      break;
-      }
-    case FEATURE_LINE:
-      {
-      path = node.GetLine();
-      break;
-      }
-    case FEATURE_POLYGON:
-      {
-      path = node.GetPolygonExteriorRing();
-      break;
-      }
-    default:
-      {
-      itkExceptionMacro(<< "This DataNode type is not handle yet");
-      break;
-      }
-    }
-
-  ImageLineIteratorType lineIt(this->GetInputImage(), path);
-  lineIt.GoToBegin();
-
-  double nbValidPixel = 0.;
-  double nbVisitedPixel = 0.;
-
-  while(!lineIt.IsAtEnd())
-    {
-    if(this->IsInsideBuffer(lineIt.GetIndex()))
-      {
-      if( parser(this->GetInputImage()->GetPixel(lineIt.GetIndex())) )
-        {
-        nbValidPixel += 1;
-        }
-      nbVisitedPixel += 1;
-      }
-    ++lineIt;
-    }
-
-  OutputType output;
-  if(nbVisitedPixel == 0)
-    {
-    output.push_back(static_cast<PrecisionType>(0.));
-    }
-  else
-    {
-    output.push_back(static_cast<PrecisionType>(nbValidPixel/nbVisitedPixel));
-    }
-
-  output.push_back(static_cast<PrecisionType>(nbValidPixel));
-  output.push_back(static_cast<PrecisionType>(nbVisitedPixel));
-  return output;
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Filtering/MathParser/test/CMakeLists.txt b/Modules/Filtering/MathParser/test/CMakeLists.txt
index 9f082865ac..f2dbcdfd27 100644
--- a/Modules/Filtering/MathParser/test/CMakeLists.txt
+++ b/Modules/Filtering/MathParser/test/CMakeLists.txt
@@ -23,7 +23,6 @@ otb_module_test()
 set(OTBMathParserTests
 otbMathParserTestDriver.cxx
 otbMaskMuParserFilterTest.cxx
-otbParserConditionDataNodeFeatureFunction.cxx
 otbParserTest.cxx
 otbImageListToSingleImageFilterTest.cxx
 otbBandMathImageFilter.cxx
@@ -48,32 +47,6 @@ otb_add_test(NAME bfTvMaskMuParserFilterTest COMMAND otbMathParserTestDriver
   "(b1>100)*(b2>120)"
   )
 
-otb_add_test(NAME bfTvParserConditionDataNodeFeatureFunction_Line_NDVI COMMAND otbMathParserTestDriver
-  --compare-ogr ${EPSILON_9}
-  ${BASELINE_FILES}/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shp
-  ${TEMP}/bfTvParserConditionDataNodeFeatureFunction_Line_NDVI.shp
-  otbParserConditionDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/DEM/srtm_directory
-  ${TEMP}/bfTvParserConditionDataNodeFeatureFunction_Line_NDVI.shp
-  "ndvi(b3,b4) > 0.047"
-  0
-  )
-
-otb_add_test(NAME bfTvParserConditionDataNodeFeatureFunction_Polygon_NDVI COMMAND otbMathParserTestDriver
-  --compare-ogr ${EPSILON_6}
-  ${BASELINE_FILES}/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shp
-  ${TEMP}/bfTvParserConditionDataNodeFeatureFunction_Polygon_NDVI.shp
-  otbParserConditionDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/DEM/srtm_directory
-  ${TEMP}/bfTvParserConditionDataNodeFeatureFunction_Polygon_NDVI.shp
-  "ndvi(b3,b4) > 0.047"
-  0
-  )
-
 otb_add_test(NAME coTvParser COMMAND otbMathParserTestDriver
   otbParserTest
   )
diff --git a/Modules/Filtering/MathParser/test/otbMathParserTestDriver.cxx b/Modules/Filtering/MathParser/test/otbMathParserTestDriver.cxx
index 5ef579c49a..4f12db6c96 100644
--- a/Modules/Filtering/MathParser/test/otbMathParserTestDriver.cxx
+++ b/Modules/Filtering/MathParser/test/otbMathParserTestDriver.cxx
@@ -23,7 +23,6 @@
 void RegisterTests()
 {
   REGISTER_TEST(otbMaskMuParserFilterTest);
-  REGISTER_TEST(otbParserConditionDataNodeFeatureFunction);
   REGISTER_TEST(otbParserTest);
   REGISTER_TEST(otbImageListToSingleImageFilter);
   REGISTER_TEST(otbBandMathImageFilter);
diff --git a/Modules/Filtering/MathParser/test/otbParserConditionDataNodeFeatureFunction.cxx b/Modules/Filtering/MathParser/test/otbParserConditionDataNodeFeatureFunction.cxx
deleted file mode 100644
index 4982b50ced..0000000000
--- a/Modules/Filtering/MathParser/test/otbParserConditionDataNodeFeatureFunction.cxx
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#include "otbParserConditionDataNodeFeatureFunction.h"
-
-#include "otbVectorImage.h"
-#include "otbImageFileReader.h"
-#include "otbVectorData.h"
-#include "otbVectorDataFileReader.h"
-#include "otbVectorDataIntoImageProjectionFilter.h"
-#include "otbVectorDataFileWriter.h"
-#include "itkPreOrderTreeIterator.h"
-
-
-int otbParserConditionDataNodeFeatureFunction(int itkNotUsed(argc), char* argv[])
-{
-  const char * inputVD = argv[1];
-  const char * inputImg = argv[2];
-  const char * DEMDir = argv[3];
-  const char * outputVD = argv[4];
-  const char * expression = argv[5];
-  int DisplayWarnings = atoi(argv[6]);
-
-  typedef double CoordRepType;
-  typedef double PrecisionType;
-  typedef otb::VectorImage<PrecisionType> ImageType;
-  typedef otb::ImageFileReader<ImageType> ImageReaderType;
-  typedef otb::VectorData<CoordRepType, 2, PrecisionType> VectorDataType;
-  typedef VectorDataType::DataNodeType DataNodeType;
-  typedef otb::VectorDataFileReader<VectorDataType> VectorDataReaderType;
-  typedef otb::VectorDataIntoImageProjectionFilter<VectorDataType, ImageType> VectorDataReProjFilter;
-  typedef otb::VectorDataFileWriter<VectorDataType> VectorDataWriterType;
-  typedef itk::PreOrderTreeIterator<VectorDataType::DataTreeType> TreeIteratorType;
-
-  typedef otb::ParserConditionDataNodeFeatureFunction<ImageType, CoordRepType, PrecisionType>
-      ParserConditionDataNodeFeaturefunctionType;
-  typedef ParserConditionDataNodeFeaturefunctionType::OutputType ParserConditionFeatureOutputType;
-
-  ImageReaderType::Pointer imgReader = ImageReaderType::New();
-  VectorDataReaderType::Pointer vdReader = VectorDataReaderType::New();
-  VectorDataReProjFilter::Pointer vdReProjFilter = VectorDataReProjFilter::New();
-  VectorDataWriterType::Pointer vdWriter = VectorDataWriterType::New();
-  ParserConditionDataNodeFeaturefunctionType::Pointer
-      ParserConditionFeatureFunction = ParserConditionDataNodeFeaturefunctionType::New();
-
-  if (!DisplayWarnings)
-    {
-    imgReader->SetGlobalWarningDisplay(0);
-    }
-
-  otb::DEMHandler::Instance()->OpenDEMDirectory(DEMDir);
-
-  vdReader->SetFileName(inputVD);
-  vdReader->Update();
-
-  imgReader->SetFileName(inputImg);
-  imgReader->UpdateOutputInformation();
-  imgReader->Update(); //Needed to set m_EndIndex, m_StartIndex in otbDataNodeImageFunction
-
-  vdReProjFilter->SetInputImage(imgReader->GetOutput());
-  vdReProjFilter->SetInputVectorData(vdReader->GetOutput());
-  vdReProjFilter->SetUseOutputSpacingAndOriginFromImage(true);
-  vdReProjFilter->Update();
-
-  ParserConditionFeatureFunction->SetExpression(expression);
-  ParserConditionFeatureFunction->SetInputImage(imgReader->GetOutput());
-
-  // Output
-  VectorDataType::Pointer outVD = VectorDataType::New();
-  // Retrieving root node
-  DataNodeType::Pointer root = outVD->GetDataTree()->GetRoot()->Get();
-  // Create the document node
-  DataNodeType::Pointer document = DataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(document, root);
-  // Create the folder node
-  DataNodeType::Pointer folder = DataNodeType::New();
-  folder->SetNodeType(otb::FOLDER);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(folder, document);
-
-  TreeIteratorType itVector(vdReProjFilter->GetOutput()->GetDataTree());
-  itVector.GoToBegin();
-  while (!itVector.IsAtEnd())
-    {
-    if (itVector.Get()->IsLineFeature() || itVector.Get()->IsPolygonFeature())
-      {
-      const DataNodeType::Pointer currentGeometry = itVector.Get();
-      ParserConditionFeatureOutputType currentResult;
-      currentResult = ParserConditionFeatureFunction->Evaluate(*(currentGeometry.GetPointer()));
-      currentGeometry->SetFieldAsDouble("NDVI", (double) (currentResult[0]));
-      outVD->GetDataTree()->Add(currentGeometry, folder);
-      }
-    ++itVector;
-    }
-
-  vdWriter->SetInput(outVD);
-  vdWriter->SetFileName(outputVD);
-  vdWriter->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/Projection/test/CMakeLists.txt b/Modules/Filtering/Projection/test/CMakeLists.txt
index e2e346b3c1..7a8ba7c02d 100644
--- a/Modules/Filtering/Projection/test/CMakeLists.txt
+++ b/Modules/Filtering/Projection/test/CMakeLists.txt
@@ -44,7 +44,6 @@ otbVectorDataProjectionFilterFromMapToImage.cxx
 otbGenericRSTransformFromImage.cxx
 otbCompositeTransform.cxx
 otbLeastSquareAffineTransformEstimator.cxx
-otbSpectralAngleDataNodeFeatureFunction.cxx
 otbGCPsToRPCSensorModelImageFilterCheckRpcModel.cxx
 otbGeographicalDistance.cxx
 otbTileImageFilterRSTransformTest.cxx
@@ -583,29 +582,6 @@ otb_add_test(NAME prTvLeastSquareAffineTransformEstimator COMMAND otbProjectionT
   352 807 919 10023 12102 14181
   )
 
-otb_add_test(NAME bfTvSpectralAngleDataNodeFeatureFunction_Polygon COMMAND otbProjectionTestDriver
-  --compare-ogr ${EPSILON_3}
-  ${BASELINE_FILES}/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shp
-  ${TEMP}/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shp
-  otbSpectralAngleDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/DEM/srtm_directory
-  ${TEMP}/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Polygon.shp
-  0 )
-
-otb_add_test(NAME bfTvSpectralAngleDataNodeFeatureFunction_Line COMMAND otbProjectionTestDriver
-  --compare-ogr ${EPSILON_9}
-  ${BASELINE_FILES}/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shp
-  ${TEMP}/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shp
-  otbSpectralAngleDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/DEM/srtm_directory
-  ${TEMP}/bfTvSpectralAngleDataNodeFeatureFunctionOutput_Line.shp
-  0
-  )
-
 set(VALID_CONDITION err=12)
 if(OTB_OSSIM_VERSION LESS 20200)
 set(VALID_CONDITION err=10)
diff --git a/Modules/Filtering/Projection/test/otbProjectionTestDriver.cxx b/Modules/Filtering/Projection/test/otbProjectionTestDriver.cxx
index 6f985e5f5c..6a0d8992d5 100644
--- a/Modules/Filtering/Projection/test/otbProjectionTestDriver.cxx
+++ b/Modules/Filtering/Projection/test/otbProjectionTestDriver.cxx
@@ -46,7 +46,6 @@ void RegisterTests()
   REGISTER_TEST(otbGenericRSTransformImageAndMNTToWGS84ConversionChecking);
   REGISTER_TEST(otbCompositeTransform);
   REGISTER_TEST(otbLeastSquareAffineTransformEstimator);
-  REGISTER_TEST(otbSpectralAngleDataNodeFeatureFunction);
   REGISTER_TEST(otbGCPsToRPCSensorModelImageFilterCheckRpcModel);
   REGISTER_TEST(otbGeographicalDistance);
   REGISTER_TEST(otbTileImageFilterRSTransformTest);
diff --git a/Modules/Filtering/Projection/test/otbSpectralAngleDataNodeFeatureFunction.cxx b/Modules/Filtering/Projection/test/otbSpectralAngleDataNodeFeatureFunction.cxx
deleted file mode 100644
index eb239242e2..0000000000
--- a/Modules/Filtering/Projection/test/otbSpectralAngleDataNodeFeatureFunction.cxx
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-#include "otbSpectralAngleDataNodeFeatureFunction.h"
-
-#include "otbVectorImage.h"
-#include "otbImageFileReader.h"
-#include "otbVectorData.h"
-#include "otbVectorDataFileReader.h"
-#include "otbVectorDataIntoImageProjectionFilter.h"
-#include "otbVectorDataFileWriter.h"
-#include "itkPreOrderTreeIterator.h"
-
-
-int otbSpectralAngleDataNodeFeatureFunction(int itkNotUsed(argc), char* argv[])
-{
-  const char * inputVD  = argv[1];
-  const char * inputImg = argv[2];
-  const char * DEMDir   = argv[3];
-  const char * outputVD = argv[4];
-  int DisplayWarnings   = atoi(argv[5]);
-
-  typedef double                                      CoordRepType;
-  typedef double                                      PrecisionType;
-  typedef otb::VectorImage<PrecisionType>             ImageType;
-  typedef otb::ImageFileReader<ImageType>             ImageReaderType;
-  typedef otb::VectorData<CoordRepType, 2, PrecisionType>
-                                                      VectorDataType;
-  typedef VectorDataType::DataNodeType                DataNodeType;
-  typedef otb::VectorDataFileReader<VectorDataType>   VectorDataReaderType;
-  typedef otb::VectorDataIntoImageProjectionFilter<VectorDataType, ImageType>
-                                                      VectorDataReProjFilter;
-  typedef otb::VectorDataFileWriter<VectorDataType>   VectorDataWriterType;
-  typedef itk::PreOrderTreeIterator<VectorDataType::DataTreeType>
-                                                      TreeIteratorType;
-
-  typedef otb::SpectralAngleDataNodeFeatureFunction<ImageType, CoordRepType, PrecisionType>
-                                                      FeaturefunctionType;
-  typedef FeaturefunctionType::OutputType
-                                                      FeatureOutputType;
-
-  ImageReaderType::Pointer imgReader = ImageReaderType::New();
-  VectorDataReaderType::Pointer vdReader = VectorDataReaderType::New();
-  VectorDataReProjFilter::Pointer vdReProjFilter = VectorDataReProjFilter::New();
-  VectorDataWriterType::Pointer vdWriter = VectorDataWriterType::New();
-  FeaturefunctionType::Pointer featureFunction = FeaturefunctionType::New();
-
-  if (!DisplayWarnings)
-   {
-    imgReader->SetGlobalWarningDisplay(0);
-   }
-
-  otb::DEMHandler::Instance()->OpenDEMDirectory(DEMDir);
-
-  vdReader->SetFileName(inputVD);
-  vdReader->Update();
-
-  imgReader->SetFileName(inputImg);
-  imgReader->UpdateOutputInformation();
-  imgReader->Update(); //Needed to set m_EndIndex, m_StartIndex in otbDataNodeImageFunction
-
-  vdReProjFilter->SetInputImage(imgReader->GetOutput());
-  vdReProjFilter->SetInputVectorData(vdReader->GetOutput());
-  vdReProjFilter->SetUseOutputSpacingAndOriginFromImage(true);
-  vdReProjFilter->Update();
-
-  std::cout<< "vdReProjFilter->GetOutput()->Size(): "
-        << vdReProjFilter->GetOutput()->Size() << std::endl;
-
-  featureFunction->SetInputImage(imgReader->GetOutput());
-  featureFunction->SetRadius(0);
-
-  // Output
-  VectorDataType::Pointer outVD = VectorDataType::New();
-  // Retrieving root node
-  DataNodeType::Pointer root = outVD->GetDataTree()->GetRoot()->Get();
-  // Create the document node
-  DataNodeType::Pointer document = DataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(document, root);
-  // Create the folder node
-  DataNodeType::Pointer folder = DataNodeType::New();
-  folder->SetNodeType(otb::FOLDER);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(folder, document);
-
-  TreeIteratorType itVector(vdReProjFilter->GetOutput()->GetDataTree());
-  itVector.GoToBegin();
-  while (!itVector.IsAtEnd())
-    {
-    if (itVector.Get()->IsLineFeature() || itVector.Get()->IsPolygonFeature())
-         {
-          const DataNodeType::Pointer currentGeometry = itVector.Get();
-          FeatureOutputType currentResult;
-          currentResult = featureFunction->Evaluate(*(currentGeometry.GetPointer()));
-          currentGeometry->SetFieldAsDouble("RADIOM", (double)(currentResult[0]));
-          outVD->GetDataTree()->Add(currentGeometry, folder);
-         }
-    ++itVector;
-    }
-
-  vdWriter->SetInput(outVD);
-  vdWriter->SetFileName(outputVD);
-  vdWriter->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.h b/Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.h
deleted file mode 100644
index 5a0d897384..0000000000
--- a/Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbDBOverlapDataNodeFeatureFunction_h
-#define otbDBOverlapDataNodeFeatureFunction_h
-
-#include "otbDataNodeVectorDataFunction.h"
-
-#include "itkPreOrderTreeIterator.h"
-
-namespace otb
-{
-/** \class DBOverlapDataNodeFeatureFunction
-  * \brief
-  *
-  *
-  * \ingroup Functions
-  * \sa DataNodeVectorDataFunction
- *
- * \ingroup OTBVectorDataManipulation
-  */
-
-template <
-class TCoordRep = double,
-class TPrecision = double
->
-class ITK_EXPORT DBOverlapDataNodeFeatureFunction :
-    public DataNodeVectorDataFunction<std::vector<TPrecision>, TCoordRep, TPrecision>
-{
-public:
-  /** Standard class typedefs. */
-  typedef DBOverlapDataNodeFeatureFunction                    Self;
-  typedef DataNodeVectorDataFunction<std::vector<TPrecision>, TCoordRep, TPrecision>
-                                                              Superclass;
-  typedef itk::SmartPointer<Self>                             Pointer;
-  typedef itk::SmartPointer<const Self>                       ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(DBOverlapDataNodeFeatureFunction, DataNodeVectorDataFunction);
-
-  /** Some typedefs. */
-  typedef typename Superclass::DataNodeType           DataNodeType;
-  typedef typename DataNodeType::PointType            PointType;
-  typedef typename DataNodeType::LineType             LineType;
-  typedef typename LineType::VertexType               VertexType;
-  typedef typename DataNodeType::PolygonType          PolygonType;
-
-  typedef typename Superclass::VectorDataType         VectorDataType;
-  typedef typename VectorDataType::DataTreeType       DataTreeType;
-  typedef itk::PreOrderTreeIterator<typename VectorDataType::DataTreeType>
-                                                      TreeIteratorType;
-
-  typedef TCoordRep                                   CoordRepType;
-
-  typedef TPrecision                                  PrecisionType;
-
-  typedef std::vector<PrecisionType>                  OutputType;
-
-  OutputType Evaluate( const DataNodeType& node ) const override;
-
-  /** Set/Get methods */
-  itkGetConstMacro(DistanceThreshold, PrecisionType);
-  itkSetMacro(DistanceThreshold, PrecisionType);
-
-  /** Method to compute the distance of a point to a segment */
-  double ComputeEuclideanDistanceMetricToSegment(VertexType q1, VertexType q2, VertexType p) const;
-
-protected:
-  DBOverlapDataNodeFeatureFunction();
-  ~DBOverlapDataNodeFeatureFunction() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  DBOverlapDataNodeFeatureFunction(const Self&) = delete;
-  void operator=(const Self&) = delete;
-
-  /** Road / Building distance Threshold */
-  PrecisionType               m_DistanceThreshold;
-};
-
-}
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbDBOverlapDataNodeFeatureFunction.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.hxx b/Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.hxx
deleted file mode 100644
index 3ede4ecc7f..0000000000
--- a/Modules/Filtering/VectorDataManipulation/include/otbDBOverlapDataNodeFeatureFunction.hxx
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbDBOverlapDataNodeFeatureFunction_hxx
-#define otbDBOverlapDataNodeFeatureFunction_hxx
-
-#include "otbDBOverlapDataNodeFeatureFunction.h"
-
-namespace otb
-{
-
-/**
- * Constructor
- */
-template <class TCoordRep, class TPrecision>
-DBOverlapDataNodeFeatureFunction<TCoordRep, TPrecision>
-::DBOverlapDataNodeFeatureFunction()
- :m_DistanceThreshold(50)//in physical coordinates
-{
-}
-
-/**
- * Standard "PrintSelf" method
- */
-template <class TCoordRep, class TPrecision>
-void
-DBOverlapDataNodeFeatureFunction<TCoordRep, TPrecision>
-::PrintSelf(
-  std::ostream& os,
-  itk::Indent indent) const
-{
-  Superclass::PrintSelf( os, indent );
-  os << indent << "Distance Threshold: " << m_DistanceThreshold << std::endl;
-}
-
-/**
- * Method to compute the distance of a point to a segment
- */
-template <class TCoordRep, class TPrecision>
-double
-DBOverlapDataNodeFeatureFunction<TCoordRep, TPrecision>
-::ComputeEuclideanDistanceMetricToSegment(VertexType q1, VertexType q2, VertexType p) const
-{
-  // Length of the segment
-  double l2 = q1.SquaredEuclideanDistanceTo(q2);
-
-  // Is the projection of p on the segment inside (0<u<1) or
-  // inside the segment bounds
-  double u = ((p[0] - q1[0]) *(q2[0] - q1[0] ) +
-    (p[1] - q1[1]) *(q2[1] - q1[1])) / l2;
-
-  if( u < 1e-10 ) u = 0.;
-  if( u -1. > 1e-10 ) u = 1.;
-  double x = q1[0] + u *(q2[0] - q1[0] );
-  double y = q1[1] + u *(q2[1] - q1[1] );
-  double dx = x - p[0];
-  double dy = y - p[1];
-
-  return std::sqrt(dx*dx + dy*dy);
- }
-
-template <class TCoordRep, class TPrecision>
-typename DBOverlapDataNodeFeatureFunction<TCoordRep, TPrecision>
-::OutputType
-DBOverlapDataNodeFeatureFunction<TCoordRep, TPrecision>
-::Evaluate( const DataNodeType& node ) const
-{
-  OutputType output;
-
-  //build the tmp DataTree containing polygon within the radius
-  typename VectorDataType::Pointer tmpDataTree = VectorDataType::New();
-  typename DataNodeType::Pointer root = tmpDataTree->GetDataTree()->GetRoot()->Get();
-  typename DataNodeType::Pointer document = DataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  tmpDataTree->GetDataTree()->Add(document, root);
-
-  TreeIteratorType itVector(this->GetInputVectorData()->GetDataTree());
-  itVector.GoToBegin();
-    while (!itVector.IsAtEnd())
-      {
-      if (itVector.Get()->IsPolygonFeature())
-        {
-        typename DataNodeType::Pointer currentGeometry = itVector.Get();
-        unsigned int i=0;
-        while (i<currentGeometry->GetPolygonExteriorRing()->GetVertexList()->Size())
-          {
-          unsigned int j=0;
-          while (j<node.GetLine()->GetVertexList()->Size()-1)
-            {
-            double dist;
-            dist = this->ComputeEuclideanDistanceMetricToSegment(node.GetLine()->GetVertexList()->GetElement(j),
-                                                     node.GetLine()->GetVertexList()->GetElement(j+1),
-                                                     currentGeometry->GetPolygonExteriorRing()->GetVertexList()->GetElement(i));
-            //std::cout << "dist: " << dist << std::endl;
-            //std::cout << "m_DistanceThreshold: " << m_DistanceThreshold << std::endl;
-            if (dist <= m_DistanceThreshold)
-              {
-              //Add the current polygon to the tmp DataTree
-              //jump to the next one
-              tmpDataTree->GetDataTree()->Add(currentGeometry, document);
-              j = node.GetLine()->GetVertexList()->Size();
-              i = currentGeometry->GetPolygonExteriorRing()->GetVertexList()->Size();
-              }
-            ++j;
-            }
-          ++i;
-          }
-        }
-      ++itVector;
-      }
-
-  /*
-  std::cout << this->GetInputVectorData()->GetDataTree()->Count() << std::endl;
-  std::cout << tmpDataTree->GetDataTree()->Count() << std::endl;
-  */
-  unsigned int crossAcc = 0;
-  unsigned int nbBuildings = 0;
-
-  TreeIteratorType it(tmpDataTree->GetDataTree());
-  it.GoToBegin();
-  while (!it.IsAtEnd())
-    {
-    if (it.Get()->IsPolygonFeature())
-      {
-      typename DataNodeType::Pointer currentGeometry = it.Get();
-      nbBuildings ++;
-      for (unsigned int i=0; i<node.GetLine()->GetVertexList()->Size()-1; ++i)
-        {
-
-        if(currentGeometry->GetPolygonExteriorRing()->NbCrossing(node.GetLine()->GetVertexList()->GetElement(i),
-                                                                 node.GetLine()->GetVertexList()->GetElement(i+1)))
-          {
-          crossAcc ++;
-          break;
-          }
-        }
-      }
-    ++it;
-    }
-
-  if(nbBuildings == 0)
-    {
-    output.push_back(static_cast<PrecisionType>(0.));
-    }
-  else
-    {
-    output.push_back(static_cast<PrecisionType>((double)(crossAcc)/(double)(nbBuildings)));
-    }
-
-  output.push_back(static_cast<PrecisionType>(crossAcc));
-  output.push_back(static_cast<PrecisionType>(nbBuildings));
-
-  return output;
-}
-
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.h b/Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.h
deleted file mode 100644
index 303db1003b..0000000000
--- a/Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction_h
-#define otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction_h
-
-#include "otbDataNodeImageFunction.h"
-
-#include "otbBinarySpectralAngleFunctor.h"
-#include "otbPolyLineImageConstIterator.h"
-#include "itkLineConstIterator.h"
-#include "itkVariableLengthVector.h"
-
-namespace otb
-{
-/** \class RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction
-  * \brief Compute the spectral angle between the radiometry along
-  * a line and its neighborhood
-  *
-  * This function compares the radiometry along a datanode with the
-  * radiometry of the neighborhood.
-  *
-  * It computes the mean of a rectangular area around each line segment,
-  * and the mean of two rectangular areas on each side of the line segment.
-  * The descriptor is the spectral angle between the two values,
-  * scaled by \$f\pi\$f.
-  *
-  * The width of the area around a line segment can be specified with
-  * SetCenterRadius.
-  *
-  * The neighborhood area can be specified by two radius, using SetNeighborhoodBeginRadius
-  * and SetNeighborhoodEndRadius.
-  *
-  *
-  * \ingroup Functions
-  * \sa DataNodeImageFunction
-  * \sa NDVIDataNodeFeatureFunction
- *
- * \ingroup OTBVectorDataManipulation
-  */
-
-template <
-class TImage,
-class TCoordRep = double,
-class TPrecision = double
->
-class ITK_EXPORT RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction :
-    public DataNodeImageFunction<TImage, std::vector<TPrecision>, TCoordRep, TPrecision>
-{
-public:
-  /** Standard class typedefs. */
-  typedef RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction                Self;
-  typedef DataNodeImageFunction<TImage, std::vector<TPrecision>, TCoordRep, TPrecision>
-                                                              Superclass;
-  typedef itk::SmartPointer<Self>                             Pointer;
-  typedef itk::SmartPointer<const Self>                       ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction, DataNodeImageFunction);
-
-  /** Some typedefs. */
-  typedef typename Superclass::DataNodeType           DataNodeType;
-  typedef typename DataNodeType::LineType             LineType;
-  typedef typename LineType::Pointer                  LinePointer;
-  typedef typename LineType::ContinuousIndexType      ContinuousIndexType;
-  typedef typename LineType::VertexListConstIteratorType VertexListConstIteratorType;
-
-  typedef TImage                                      InputImageType;
-  typedef typename InputImageType::ConstPointer       InputImageConstPointer;
-  typedef typename InputImageType::PixelType          PixelType;
-  typedef typename InputImageType::InternalPixelType  ScalarRealType;
-  typedef typename InputImageType::IndexType          IndexType;
-  typedef typename InputImageType::IndexValueType     IndexValueType;
-
-  typedef TCoordRep                                   CoordRepType;
-
-  typedef TPrecision                                  PrecisionType;
-
-  typedef itk::VariableLengthVector<PrecisionType>    ReferencePixelType;
-
-  typedef PolyLineImageConstIterator<InputImageType, LineType> ImageLineIteratorType;
-  typedef itk::LineConstIterator<InputImageType>      LineIteratorType;
-
-  typedef Functor::BinarySpectralAngleFunctor<PixelType, ReferencePixelType, PrecisionType>
-                                                      SpectralAngleFunctorType;
-
-  typedef std::pair<IndexType, IndexType>             IndexPairType;
-  typedef std::vector<PrecisionType>                  OutputType;
-
-  /* Compute the descriptor value along this DataNode */
- OutputType Evaluate( const DataNodeType& node ) const override;
-
-  /* Get the radius used to define the area around a line segment.
-   * A radius of 0 means that the area is reduced to a line joining
-   * the two segments extremities. */
-  itkGetConstMacro(CenterRadius, unsigned int);
-
-  /* Set the radius used to define the area around a line segment.
-   * A radius of 0 means that the area is reduced to a line joining
-   * the two segments extremities. */
-  itkSetMacro(CenterRadius, unsigned int);
-
-  /* Get the radius used to define the start of the neighboring area.
-   * Typically this value must be greater than CenterRadius */
-  itkGetConstMacro(NeighborhoodBeginRadius, unsigned int);
-
-  /* Set the radius used to define the start of the neighboring area.
-   * Typically this value must be greater than CenterRadius */
-  itkSetMacro(NeighborhoodBeginRadius, unsigned int);
-
-  /* Get the radius used to define the end of the neighboring area.
-   * Typically this value must be greater than NeighborhoodBeginRadius */
-  itkGetConstMacro(NeighborhoodEndRadius, unsigned int);
-
-  /* Set the radius used to define the end of the neighboring area.
-   * Typically this value must be greater than NeighborhoodBeginRadius */
-  itkSetMacro(NeighborhoodEndRadius, unsigned int);
-
-protected:
-  RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction();
-  ~RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction(const Self&) = delete;
-  void operator=(const Self&) = delete;
-
-  /** Center radius */
-  unsigned int m_CenterRadius;
-
-  /** Neighborhood start radius */
-  unsigned int m_NeighborhoodBeginRadius;
-
-  /** Neighborhood end radius */
-  unsigned int m_NeighborhoodEndRadius;
-
-};
-
-}
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.hxx b/Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.hxx
deleted file mode 100644
index eadf8f167a..0000000000
--- a/Modules/Filtering/VectorDataManipulation/include/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.hxx
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction_hxx
-#define otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction_hxx
-
-#include "otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.h"
-
-namespace otb
-{
-
-/**
- * Constructor
- */
-template<class TImage, class TCoordRep, class TPrecision>
-RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>::RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction() :
-  m_CenterRadius(1), m_NeighborhoodBeginRadius(2), m_NeighborhoodEndRadius(3)
-{
-}
-
-/**
- * Standard "PrintSelf" method
- */
-template<class TImage, class TCoordRep, class TPrecision>
-void RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>::PrintSelf(std::ostream& os,
-                                                                                    itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-template<class TImage, class TCoordRep, class TPrecision>
-typename RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>::OutputType RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction<
-    TImage, TCoordRep, TPrecision>::Evaluate(const DataNodeType& node) const
-{
-
-  // TODO faire avce un ikk
-  const typename ImageLineIteratorType::PathType* path;
-
-  switch (node.GetNodeType())
-    {
-    case FEATURE_POINT:
-      {
-      itkExceptionMacro(<< "This DataNode type is not handled yet");
-      break;
-      }
-    case FEATURE_LINE:
-      {
-      path = node.GetLine();
-      break;
-      }
-    case FEATURE_POLYGON:
-      {
-      path = node.GetPolygonExteriorRing();
-      break;
-      }
-    default:
-      {
-      itkExceptionMacro(<< "This DataNode type is not handle yet");
-      break;
-      }
-    }
-
-  std::vector<std::pair<IndexType, IndexType> > splitedLineIdNeigh;
-  std::vector<std::pair<IndexType, IndexType> > splitedLineIdCentral;
-
-  // Split line and polygon into segment (ie. line with two vertex
-  VertexListConstIteratorType it1 = path->GetVertexList()->Begin();
-  VertexListConstIteratorType it2 = path->GetVertexList()->Begin();
-  VertexListConstIteratorType itStop = path->GetVertexList()->End();
-
-  ++it2;
-  if (it2 == itStop)
-    {
-    itkExceptionMacro(<< "Invalid DataNode, must at least contain two points");
-    }
-
-  while (it1 != itStop && it2 != itStop)
-    {
-    IndexType id1, id2;
-    id1[0] = static_cast<int> (it1.Value()[0]);
-    id1[1] = static_cast<int> (it1.Value()[1]);
-    id2[0] = static_cast<int> (it2.Value()[0]);
-    id2[1] = static_cast<int> (it2.Value()[1]);
-
-    // Compute the direction of the current line
-    itk::Vector<double, 2> direction;
-    direction[0] = it2.Value()[0] - it1.Value()[0];
-    direction[1] = it2.Value()[1] - it1.Value()[1];
-    direction.Normalize();
-
-    // Compute the orthogonal direction of the current line
-    itk::Vector<double, 2> orthogonalDirection;
-    orthogonalDirection[0] = direction[1];
-    orthogonalDirection[1] = -direction[0];
-
-    splitedLineIdCentral.push_back(IndexPairType(id1, id2));
-    for (unsigned int j = 1; j <= m_CenterRadius; ++j)
-      {
-      IndexType shift11, shift12;
-      shift11[0] = id1[0] - j * orthogonalDirection[0];
-      shift11[1] = id1[1] - j * orthogonalDirection[1];
-      shift12[0] = id1[0] + j * orthogonalDirection[0];
-      shift12[1] = id1[1] + j * orthogonalDirection[1];
-      IndexType shift21, shift22;
-      shift21[0] = id2[0] - j * orthogonalDirection[0];
-      shift21[1] = id2[1] - j * orthogonalDirection[1];
-      shift22[0] = id2[0] + j * orthogonalDirection[0];
-      shift22[1] = id2[1] + j * orthogonalDirection[1];
-
-      splitedLineIdCentral.push_back(IndexPairType(shift11, shift21));
-      splitedLineIdCentral.push_back(IndexPairType(shift12, shift22));
-      }
-
-    for (unsigned int j = m_NeighborhoodBeginRadius; j <= m_NeighborhoodEndRadius; ++j)
-      {
-      IndexType shift11, shift12;
-      shift11[0] = id1[0] - j * orthogonalDirection[0];
-      shift11[1] = id1[1] - j * orthogonalDirection[1];
-      shift12[0] = id1[0] + j * orthogonalDirection[0];
-      shift12[1] = id1[1] + j * orthogonalDirection[1];
-      IndexType shift21, shift22;
-      shift21[0] = id2[0] - j * orthogonalDirection[0];
-      shift21[1] = id2[1] - j * orthogonalDirection[1];
-      shift22[0] = id2[0] + j * orthogonalDirection[0];
-      shift22[1] = id2[1] + j * orthogonalDirection[1];
-
-      splitedLineIdNeigh.push_back(IndexPairType(shift11, shift21));
-      splitedLineIdNeigh.push_back(IndexPairType(shift12, shift22));
-      }
-    ++it1;
-    ++it2;
-    }
-
-  // in FEATURE_POLYGON case, first point appears twice (first vertex and last vertew, thus we create a line of 1 point...)
-  if (node.GetNodeType() == FEATURE_POLYGON)
-    {
-    splitedLineIdCentral.pop_back();
-    splitedLineIdNeigh.pop_back();
-    splitedLineIdNeigh.pop_back();
-    }
-
-  double centralNbVisitedPixel = 0.;
-
-  PixelType centralRadiomAcc(this->GetInputImage()->GetNumberOfComponentsPerPixel());
-  centralRadiomAcc.Fill(0);
-
-  for (unsigned int i = 0; i < splitedLineIdCentral.size(); ++i)
-    {
-    LineIteratorType lineIt(this->GetInputImage(), splitedLineIdCentral[i].first, splitedLineIdCentral[i].second);
-    lineIt.GoToBegin();
-
-    while (!lineIt.IsAtEnd())
-      {
-      if (this->IsInsideBuffer(lineIt.GetIndex()))
-        {
-        centralRadiomAcc += this->GetInputImage()->GetPixel( lineIt.GetIndex() );
-        centralNbVisitedPixel += 1;
-        }
-      ++lineIt;
-      }
-    }
-
-  double neighNbVisitedPixel = 0.;
-
-  PixelType neighborRadiomAcc(this->GetInputImage()->GetNumberOfComponentsPerPixel());
-  neighborRadiomAcc.Fill(0);
-
-  for (unsigned int i = 0; i < splitedLineIdNeigh.size(); ++i)
-    {
-    LineIteratorType lineIt(this->GetInputImage(), splitedLineIdNeigh[i].first, splitedLineIdNeigh[i].second);
-    lineIt.GoToBegin();
-
-    while (!lineIt.IsAtEnd())
-      {
-      if (this->IsInsideBuffer(lineIt.GetIndex()))
-        {
-        neighborRadiomAcc += this->GetInputImage()->GetPixel( lineIt.GetIndex() );
-        neighNbVisitedPixel += 1;
-        }
-      ++lineIt;
-      }
-    }
-
-  OutputType output;
-  if (centralNbVisitedPixel > 0 && neighNbVisitedPixel > 0)
-    {
-    // Compute averaged radiometry in both areas
-    centralRadiomAcc  /= centralNbVisitedPixel;
-    neighborRadiomAcc /= neighNbVisitedPixel;
-
-    // Compute the spectral angle between the center area and the neighbor area
-    SpectralAngleFunctorType spectralAngleFunctor;
-    double angle = spectralAngleFunctor(neighborRadiomAcc, centralRadiomAcc);
-
-    // Make sure we are in [0, 1] interval
-    angle /= otb::CONST_PI;
-
-    output.push_back(static_cast<PrecisionType> (angle));
-    }
-  else
-    {
-    output.push_back(static_cast<PrecisionType> (0.));
-    }
-
-  // TODO: handle streaming, need to output the current state
-  return output;
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.h b/Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.h
deleted file mode 100644
index 1bc3dce3fe..0000000000
--- a/Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbSpectralAngleDataNodeFeatureFunction_h
-#define otbSpectralAngleDataNodeFeatureFunction_h
-
-#include "otbDataNodeImageFunction.h"
-
-#include "otbBinarySpectralAngleFunctor.h"
-#include "otbPolyLineImageConstIterator.h"
-#include "itkLineConstIterator.h"
-#include "itkVariableLengthVector.h"
-
-namespace otb
-{
-/** \class SpectralAngleDataNodeFeatureFunction
-  * \brief Compute a spectral angle based feature alongside a
-  * datanode.
-  *
-  * This function compute a spectral angle alongside a datanode.
-  * The feature is the mean spectral angle regarding a
-  * reference pixel alongside the tested datanode.
-  *
-  * The output has three elements:
-  * - #0: mean spectral angle of a neighborhood around the datanode, weighted to fit in [0, 1] interval
-  * - #1: accumulator of the spectral angle alongside the datanode
-  * - #2: number of visited pixel
-  *
-  * \ingroup Functions
-  * \sa DataNodeImageFunction
-  * \sa NDVIDataNodeFeatureFunction
- *
- * \ingroup OTBVectorDataManipulation
-  */
-
-template <
-class TImage,
-class TCoordRep = double,
-class TPrecision = double
->
-class ITK_EXPORT SpectralAngleDataNodeFeatureFunction :
-    public DataNodeImageFunction<TImage, std::vector<TPrecision>, TCoordRep, TPrecision>
-{
-public:
-  /** Standard class typedefs. */
-  typedef SpectralAngleDataNodeFeatureFunction                Self;
-  typedef DataNodeImageFunction<TImage, std::vector<TPrecision>, TCoordRep, TPrecision>
-                                                              Superclass;
-  typedef itk::SmartPointer<Self>                             Pointer;
-  typedef itk::SmartPointer<const Self>                       ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(SpectralAngleDataNodeFeatureFunction, DataNodeImageFunction);
-
-  /** Some typedefs. */
-  typedef typename Superclass::DataNodeType           DataNodeType;
-  typedef typename DataNodeType::LineType             LineType;
-  typedef typename LineType::Pointer                  LinePointer;
-  typedef typename LineType::ContinuousIndexType      ContinuousIndexType;
-  typedef typename LineType::VertexListConstIteratorType VertexListConstIteratorType;
-
-  typedef TImage                                      InputImageType;
-  typedef typename InputImageType::ConstPointer       InputImageConstPointer;
-  typedef typename InputImageType::PixelType          PixelType;
-  typedef typename InputImageType::InternalPixelType  ScalarRealType;
-  typedef typename InputImageType::IndexType          IndexType;
-  typedef typename InputImageType::IndexValueType     IndexValueType;
-
-  typedef TCoordRep                                   CoordRepType;
-
-  typedef TPrecision                                  PrecisionType;
-
-  typedef itk::VariableLengthVector<PrecisionType>    ReferencePixelType;
-
-  typedef PolyLineImageConstIterator<InputImageType, LineType> ImageLineIteratorType;
-  typedef itk::LineConstIterator<InputImageType>      LineIteratorType;
-
-  typedef Functor::BinarySpectralAngleFunctor<PixelType, ReferencePixelType, PrecisionType>
-                                                      SpectralAngleFunctorType;
-
-  typedef std::pair<IndexType, IndexType>             IndexPairType;
-  typedef std::vector<PrecisionType>                  OutputType;
-
-  OutputType Evaluate( const DataNodeType& node ) const override;
-
-  /** Set/Get methods */
-  itkGetConstMacro(RefPixel, PixelType);
-  itkSetMacro(RefPixel, PixelType);
-
-  itkGetConstMacro(Radius, unsigned int);
-  itkSetMacro(Radius, unsigned int);
-
-protected:
-  SpectralAngleDataNodeFeatureFunction();
-  ~SpectralAngleDataNodeFeatureFunction() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  SpectralAngleDataNodeFeatureFunction(const Self&) = delete;
-  void operator=(const Self&) = delete;
-
-  /** SpectralAngle Functor & ReferencePixel*/
-  ReferencePixelType          m_RefPixel;
-  SpectralAngleFunctorType    m_SpectralAngleFunctor;
-
-  /** Neighborhood radius */
-  unsigned int m_Radius;
-};
-
-}
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbSpectralAngleDataNodeFeatureFunction.hxx"
-#endif
-
-#endif
diff --git a/Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.hxx b/Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.hxx
deleted file mode 100644
index c2ed9e81e2..0000000000
--- a/Modules/Filtering/VectorDataManipulation/include/otbSpectralAngleDataNodeFeatureFunction.hxx
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbSpectralAngleDataNodeFeatureFunction_hxx
-#define otbSpectralAngleDataNodeFeatureFunction_hxx
-
-#include "otbSpectralAngleDataNodeFeatureFunction.h"
-
-namespace otb
-{
-
-/**
- * Constructor
- */
-template<class TImage, class TCoordRep, class TPrecision>
-SpectralAngleDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>::SpectralAngleDataNodeFeatureFunction() :
-  m_Radius(2)
-{
-  //Example for QuickBird images (on a specific image)
-  m_RefPixel.SetSize(4);
-  m_RefPixel.SetElement(0, 252.284);
-  m_RefPixel.SetElement(1, 357.3);
-  m_RefPixel.SetElement(2, 232.644);
-  m_RefPixel.SetElement(3, 261.558);
-}
-
-/**
- * Standard "PrintSelf" method
- */
-template<class TImage, class TCoordRep, class TPrecision>
-void SpectralAngleDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>::PrintSelf(std::ostream& os,
-                                                                                    itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-  os << indent << "Reference Pixel: " << m_RefPixel << std::endl;
-}
-
-template<class TImage, class TCoordRep, class TPrecision>
-typename SpectralAngleDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>::OutputType SpectralAngleDataNodeFeatureFunction<
-    TImage, TCoordRep, TPrecision>::Evaluate(const DataNodeType& node) const
-{
-
-  // TODO faire avce un ikk
-  const typename ImageLineIteratorType::PathType* path;
-
-  switch (node.GetNodeType())
-    {
-    case FEATURE_POINT:
-      {
-      itkExceptionMacro(<< "This DataNode type is not handle yet");
-      break;
-      }
-    case FEATURE_LINE:
-      {
-      path = node.GetLine();
-      break;
-      }
-    case FEATURE_POLYGON:
-      {
-      path = node.GetPolygonExteriorRing();
-      break;
-      }
-    default:
-      {
-      itkExceptionMacro(<< "This DataNode type is not handle yet");
-      break;
-      }
-    }
-
-  std::vector<std::pair<IndexType, IndexType> > splitedLineIdNeigh;
-  std::vector<std::pair<IndexType, IndexType> > splitedLineIdCentral;
-
-  // Split line and polygon into segment (ie. line with two vertex
-  VertexListConstIteratorType it1 = path->GetVertexList()->Begin();
-  VertexListConstIteratorType it2 = path->GetVertexList()->Begin();
-  VertexListConstIteratorType itStop = path->GetVertexList()->End();
-
-  ++it2;
-  if (it2 == itStop)
-    {
-    itkExceptionMacro(<< "Invalid DataNode, must at least contain two points");
-    }
-
-  while (it1 != itStop && it2 != itStop)
-    {
-    IndexType id1, id2;
-    id1[0] = static_cast<int> (it1.Value()[0]);
-    id1[1] = static_cast<int> (it1.Value()[1]);
-    id2[0] = static_cast<int> (it2.Value()[0]);
-    id2[1] = static_cast<int> (it2.Value()[1]);
-
-    // Compute the direction of the current line
-    itk::Vector<double, 2> direction;
-    direction[0] = it2.Value()[0] - it1.Value()[0];
-    direction[1] = it2.Value()[1] - it1.Value()[1];
-    direction.Normalize();
-
-    // Compute the orthogonal direction of the current line
-    itk::Vector<double, 2> orthogonalDirection;
-    orthogonalDirection[0] = direction[1];
-    orthogonalDirection[1] = -direction[0];
-
-    splitedLineIdCentral.push_back(IndexPairType(id1, id2));
-
-    for (unsigned int j = 1; j <= m_Radius; ++j)
-      {
-      IndexType shift11, shift12;
-      shift11[0] = id1[0] - j * orthogonalDirection[0];
-      shift11[1] = id1[1] - j * orthogonalDirection[1];
-      shift12[0] = id1[0] + j * orthogonalDirection[0];
-      shift12[1] = id1[1] + j * orthogonalDirection[1];
-      IndexType shift21, shift22;
-      shift21[0] = id2[0] - j * orthogonalDirection[0];
-      shift21[1] = id2[1] - j * orthogonalDirection[1];
-      shift22[0] = id2[0] + j * orthogonalDirection[0];
-      shift22[1] = id2[1] + j * orthogonalDirection[1];
-
-      splitedLineIdCentral.push_back(IndexPairType(shift11, shift21));
-      splitedLineIdCentral.push_back(IndexPairType(shift12, shift22));
-      }
-
-    ++it1;
-    ++it2;
-    }
-
-  // in FEATURE_POLYGON case, first point appears twice (first vertex and last vertew, thus we create a line of 1 point...)
-  if (node.GetNodeType() == FEATURE_POLYGON)
-    {
-    splitedLineIdCentral.pop_back();
-    }
-
-  double centralAccSpectralAngle = 0.;
-  //double centralAccSpectralAngleSecondOrder = 0.;
-  double centralNbVisitedPixel = 0.;
-
-  for (unsigned int i = 0; i < splitedLineIdCentral.size(); ++i)
-    {
-    LineIteratorType lineIt(this->GetInputImage(), splitedLineIdCentral[i].first, splitedLineIdCentral[i].second);
-    lineIt.GoToBegin();
-
-    while (!lineIt.IsAtEnd())
-      {
-      if (this->IsInsideBuffer(lineIt.GetIndex()))
-        {
-        PixelType currPixel = this->GetInputImage()->GetPixel( lineIt.GetIndex() );
-        double angle = m_SpectralAngleFunctor(currPixel, this->GetRefPixel());
-        centralAccSpectralAngle += angle;
-        //centralAccSpectralAngleSecondOrder += angle * angle;
-        centralNbVisitedPixel += 1;
-        }
-      ++lineIt;
-      }
-    }
-
-  OutputType output;
-
-  double meanCentral = 0.;
-  //double stddevCentral = 0.;
-  if (centralNbVisitedPixel != 0.)
-    {
-    meanCentral = static_cast<double> (centralAccSpectralAngle) / centralNbVisitedPixel;
-    //stddevCentral = std::sqrt( centralAccSpectralAngleSecondOrder/centralNbVisitedPixel - meanCentral*meanCentral );
-    }
-
-  if (meanCentral == 0.)
-    {
-    output.push_back(static_cast<PrecisionType> (0.));
-    }
-  else
-    {
-    // Compute the descriptor here
-    // meanCentral is in [0, pi]
-    // We need a descriptor in [0 1]
-
-    double descriptor = meanCentral / otb::CONST_PI;
-    output.push_back(static_cast<PrecisionType>( descriptor ));
-    }
-
-  output.push_back(static_cast<PrecisionType> (centralAccSpectralAngle));
-  output.push_back(static_cast<PrecisionType> (centralNbVisitedPixel));
-
-  return output;
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Filtering/VectorDataManipulation/test/CMakeLists.txt b/Modules/Filtering/VectorDataManipulation/test/CMakeLists.txt
index 8513e931ac..7163568ab7 100644
--- a/Modules/Filtering/VectorDataManipulation/test/CMakeLists.txt
+++ b/Modules/Filtering/VectorDataManipulation/test/CMakeLists.txt
@@ -22,12 +22,10 @@ otb_module_test()
 
 set(OTBVectorDataManipulationTests
 otbVectorDataManipulationTestDriver.cxx
-otbDBOverlapDataNodeFeatureFunction.cxx
 otbVectorDataExtractROI.cxx
 otbPolygonCompacityFunctor.cxx
 otbVectorDataToRandomLineGenerator.cxx
 otbConcatenateVectorDataFilter.cxx
-otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.cxx
 )
 
 add_executable(otbVectorDataManipulationTestDriver ${OTBVectorDataManipulationTests})
@@ -36,18 +34,6 @@ otb_module_target_label(otbVectorDataManipulationTestDriver)
 
 # Tests Declaration
 
-otb_add_test(NAME bfTvDBOverlapDataNodeFeatureFunction COMMAND otbVectorDataManipulationTestDriver
-  --compare-ogr ${NOTOL}
-  ${BASELINE_FILES}/bfTvDBOverlapDataNodeFeatureFunctionOutput.shp
-  ${TEMP}/bfTvDBOverlapDataNodeFeatureFunctionOutput.shp
-  otbDBOverlapDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp
-  ${TEMP}/bfTvDBOverlapDataNodeFeatureFunctionOutput.shp
-  0
-  )
-
-
 otb_add_test(NAME coTvVectorDataExtractROI COMMAND otbVectorDataManipulationTestDriver
   --compare-ogr ${NOTOL}
   ${BASELINE_FILES}/coVectorDataExtractROIOutput.shp
@@ -88,8 +74,6 @@ otb_add_test(NAME bfTvVectorDataToRandomLineGenerator COMMAND otbVectorDataManip
   ${TEMP}/bfTvVectorDataToRandomLineGeneratorOutput.shp
   )
 
-
-
 otb_add_test(NAME bfTvConcatenateVectorDataFilter COMMAND otbVectorDataManipulationTestDriver
   --compare-ogr ${NOTOL}
   ${BASELINE_FILES}/otbConcatenateVectorDataFilter_Output.shp
@@ -99,24 +83,3 @@ otb_add_test(NAME bfTvConcatenateVectorDataFilter COMMAND otbVectorDataManipulat
   ${INPUTDATA}/waterways.shp
   ${TEMP}/otbConcatenateVectorDataFilter_Output.shp
   )
-
-otb_add_test(NAME bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction_Polygon COMMAND otbVectorDataManipulationTestDriver
-  --compare-ogr ${EPSILON_3}
-  ${BASELINE_FILES}/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shp
-  ${TEMP}/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shp
-  otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/DEM/srtm_directory
-  ${TEMP}/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Polygon.shp
-  0 )
-otb_add_test(NAME bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction_Line COMMAND otbVectorDataManipulationTestDriver
-  --compare-ogr ${EPSILON_9}
-  ${BASELINE_FILES}/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shp
-  ${TEMP}/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shp
-  otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/DEM/srtm_directory
-  ${TEMP}/bfTvRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunctionOutput_Line.shp
-  0 )
diff --git a/Modules/Filtering/VectorDataManipulation/test/otbDBOverlapDataNodeFeatureFunction.cxx b/Modules/Filtering/VectorDataManipulation/test/otbDBOverlapDataNodeFeatureFunction.cxx
deleted file mode 100644
index 7bc471de76..0000000000
--- a/Modules/Filtering/VectorDataManipulation/test/otbDBOverlapDataNodeFeatureFunction.cxx
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-#include "otbDBOverlapDataNodeFeatureFunction.h"
-
-#include "otbVectorData.h"
-#include "otbVectorDataFileReader.h"
-#include "otbVectorDataFileWriter.h"
-
-
-int otbDBOverlapDataNodeFeatureFunction(int itkNotUsed(argc), char* argv[])
-{
-  const char * inputVD  = argv[1];
-  const char * inputDB  = argv[2];
-  const char * outputVD = argv[3];
-  int DisplayWarnings   = atoi(argv[4]);
-
-  typedef double                                      CoordRepType;
-  typedef double                                      PrecisionType;
-  typedef otb::VectorData<CoordRepType, 2, PrecisionType>
-                                                      VectorDataType;
-  typedef VectorDataType::DataNodeType                DataNodeType;
-  typedef otb::VectorDataFileReader<VectorDataType>   VectorDataReaderType;
-  typedef otb::VectorDataFileWriter<VectorDataType>   VectorDataWriterType;
-  typedef itk::PreOrderTreeIterator<VectorDataType::DataTreeType>
-                                                      TreeIteratorType;
-
-  typedef otb::DBOverlapDataNodeFeatureFunction<CoordRepType, PrecisionType>
-                                                      DataNodeFunctionType;
-  typedef DataNodeFunctionType::OutputType
-                                                      FeatureOutputType;
-
-  VectorDataReaderType::Pointer   vdReader = VectorDataReaderType::New();
-  VectorDataReaderType::Pointer vdDBReader = VectorDataReaderType::New();
-  VectorDataWriterType::Pointer   vdWriter = VectorDataWriterType::New();
-  DataNodeFunctionType::Pointer   function = DataNodeFunctionType::New();
-
-  if (!DisplayWarnings)
-   {
-    vdReader->SetGlobalWarningDisplay(0);
-   }
-
-  vdReader->SetFileName(inputVD);
-  vdReader->Update();
-
-  vdDBReader->SetFileName(inputDB);
-  vdDBReader->Update();
-
-  function->SetInputVectorData(vdDBReader->GetOutput());
-  function->SetDistanceThreshold(0.003);
-
-  // Output
-  VectorDataType::Pointer outVD = VectorDataType::New();
-  // Retrieving root node
-  DataNodeType::Pointer root = outVD->GetDataTree()->GetRoot()->Get();
-  // Create the document node
-  DataNodeType::Pointer document = DataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(document, root);
-  // Create the folder node
-  DataNodeType::Pointer folder = DataNodeType::New();
-  folder->SetNodeType(otb::FOLDER);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(folder, document);
-
-  TreeIteratorType itVector(vdReader->GetOutput()->GetDataTree());
-  itVector.GoToBegin();
-  while (!itVector.IsAtEnd())
-    {
-    if (itVector.Get()->IsLineFeature() || itVector.Get()->IsPolygonFeature())
-         {
-          const DataNodeType::Pointer currentGeometry = itVector.Get();
-          FeatureOutputType currentResult;
-          currentResult = function->Evaluate(*(currentGeometry.GetPointer()));
-          currentGeometry->SetFieldAsDouble("DBOVER", (double)(currentResult[0]));
-          outVD->GetDataTree()->Add(currentGeometry, folder);
-         }
-    ++itVector;
-    }
-
-  vdWriter->SetInput(outVD);
-  vdWriter->SetFileName(outputVD);
-  vdWriter->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/VectorDataManipulation/test/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.cxx b/Modules/Filtering/VectorDataManipulation/test/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.cxx
deleted file mode 100644
index a5481e05d3..0000000000
--- a/Modules/Filtering/VectorDataManipulation/test/otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.cxx
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction.h"
-
-#include "otbVectorImage.h"
-#include "otbImageFileReader.h"
-#include "otbVectorData.h"
-#include "otbVectorDataFileReader.h"
-#include "otbVectorDataIntoImageProjectionFilter.h"
-#include "otbVectorDataFileWriter.h"
-#include "itkPreOrderTreeIterator.h"
-
-
-int otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction(int itkNotUsed(argc), char* argv[])
-{
-  const char * inputVD  = argv[1];
-  const char * inputImg = argv[2];
-  const char * DEMDir   = argv[3];
-  const char * outputVD = argv[4];
-  int DisplayWarnings   = atoi(argv[5]);
-
-  typedef double                                      CoordRepType;
-  typedef double                                      PrecisionType;
-  typedef otb::VectorImage<PrecisionType>             ImageType;
-  typedef otb::ImageFileReader<ImageType>             ImageReaderType;
-  typedef otb::VectorData<CoordRepType, 2, PrecisionType>
-                                                      VectorDataType;
-  typedef VectorDataType::DataNodeType                DataNodeType;
-  typedef otb::VectorDataFileReader<VectorDataType>   VectorDataReaderType;
-  typedef otb::VectorDataIntoImageProjectionFilter<VectorDataType, ImageType>
-                                                      VectorDataReProjFilter;
-  typedef otb::VectorDataFileWriter<VectorDataType>   VectorDataWriterType;
-  typedef itk::PreOrderTreeIterator<VectorDataType::DataTreeType>
-                                                      TreeIteratorType;
-
-  typedef otb::RadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction<ImageType, CoordRepType, PrecisionType>
-                                                      FeaturefunctionType;
-  typedef FeaturefunctionType::OutputType
-                                                      FeatureOutputType;
-
-  ImageReaderType::Pointer imgReader = ImageReaderType::New();
-  VectorDataReaderType::Pointer vdReader = VectorDataReaderType::New();
-  VectorDataReProjFilter::Pointer vdReProjFilter = VectorDataReProjFilter::New();
-  VectorDataWriterType::Pointer vdWriter = VectorDataWriterType::New();
-  FeaturefunctionType::Pointer featureFunction = FeaturefunctionType::New();
-
-  if (!DisplayWarnings)
-   {
-    imgReader->SetGlobalWarningDisplay(0);
-   }
-
-  otb::DEMHandler::Instance()->OpenDEMDirectory(DEMDir);
-
-  vdReader->SetFileName(inputVD);
-  vdReader->Update();
-
-  imgReader->SetFileName(inputImg);
-  imgReader->UpdateOutputInformation();
-  imgReader->Update(); //Needed to set m_EndIndex, m_StartIndex in otbDataNodeImageFunction
-
-  vdReProjFilter->SetInputImage(imgReader->GetOutput());
-  vdReProjFilter->SetInputVectorData(vdReader->GetOutput());
-  vdReProjFilter->SetUseOutputSpacingAndOriginFromImage(true);
-  vdReProjFilter->Update();
-
-  std::cout<< "vdReProjFilter->GetOutput()->Size(): "
-        << vdReProjFilter->GetOutput()->Size() << std::endl;
-
-  featureFunction->SetInputImage(imgReader->GetOutput());
-
-  // Output
-  VectorDataType::Pointer outVD = VectorDataType::New();
-  // Retrieving root node
-  DataNodeType::Pointer root = outVD->GetDataTree()->GetRoot()->Get();
-  // Create the document node
-  DataNodeType::Pointer document = DataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(document, root);
-  // Create the folder node
-  DataNodeType::Pointer folder = DataNodeType::New();
-  folder->SetNodeType(otb::FOLDER);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(folder, document);
-
-  TreeIteratorType itVector(vdReProjFilter->GetOutput()->GetDataTree());
-  itVector.GoToBegin();
-  while (!itVector.IsAtEnd())
-    {
-    if (itVector.Get()->IsLineFeature() || itVector.Get()->IsPolygonFeature())
-         {
-          const DataNodeType::Pointer currentGeometry = itVector.Get();
-          FeatureOutputType currentResult;
-          currentResult = featureFunction->Evaluate(*(currentGeometry.GetPointer()));
-          currentGeometry->SetFieldAsDouble("RADIOM_HOM", (double)(currentResult[0]));
-          outVD->GetDataTree()->Add(currentGeometry, folder);
-         }
-    ++itVector;
-    }
-
-  vdWriter->SetInput(outVD);
-  vdWriter->SetFileName(outputVD);
-  vdWriter->Update();
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Filtering/VectorDataManipulation/test/otbVectorDataManipulationTestDriver.cxx b/Modules/Filtering/VectorDataManipulation/test/otbVectorDataManipulationTestDriver.cxx
index c4230b1155..d09a9aaed3 100644
--- a/Modules/Filtering/VectorDataManipulation/test/otbVectorDataManipulationTestDriver.cxx
+++ b/Modules/Filtering/VectorDataManipulation/test/otbVectorDataManipulationTestDriver.cxx
@@ -22,10 +22,8 @@
 
 void RegisterTests()
 {
-  REGISTER_TEST(otbDBOverlapDataNodeFeatureFunction);
   REGISTER_TEST(otbVectorDataExtractROI);
   REGISTER_TEST(otbPolygonCompacityFunctor);
   REGISTER_TEST(otbVectorDataToRandomLineGenerator);
   REGISTER_TEST(otbConcatenateVectorDataFilter);
-  REGISTER_TEST(otbRadiometryHomogenousWithNeighborhoodDataNodeFeatureFunction);
 }
diff --git a/Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.h b/Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.h
deleted file mode 100644
index 224f16af2c..0000000000
--- a/Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbStandardDSCostFunction_h
-#define otbStandardDSCostFunction_h
-
-#include "itkSingleValuedCostFunction.h"
-
-#include "otbVectorDataToDSValidatedVectorDataFilter.h"
-#include <string>
-
-namespace otb
-{
-/** \class StandardDSCostFunction
-  * \brief Standard Cost Function used to estimate the fuzzy model parameters
-  * in the Dempster-Shafer framework
-  *
-  * This class has been developed to estimate, with the help of the Amoeba
-  * optimizer, the fuzzy model parameters to be used in the class
-  * otb::VectorDataToDSValidatedVectorDataFilter. The cost value compute the
-  * cost according to:
-  * - an enriched ground truth vector data (using VectorDataToRoadDescription)
-  * - an enriched negative sample VectorData or at least random samples
-  * - an hypothesis (the same as the considered DSValidationFilter)
-  *      (by default (NONDVI, ROADSA, NOBUIL))
-  * - a weight between 0 and 1 (0.5 by default) corresponding to the situation
-  *      policy regarding under detection/false detection (1 no under detection
-  *      0 no false detection)
-  * For now the cost function use the NONDVI Feature, ROADSA Feature and and
-  * the NOBUIL Feature.
-  * For each evolution of the VectorDataToDSValidatedVectorDataFilter,
-  * this cost function must be adapted.
-  *
-  * \ingroup CostFunction
-  * \sa VectorDataToDSValidatedVectorDataFilter
-  * \sa AmoebaOptimizer
- *
- * \ingroup OTBDempsterShafer
- */
-
-template <class TDSValidationFilter>
-class ITK_EXPORT StandardDSCostFunction :
-public itk::SingleValuedCostFunction
-{
-public:
-  /** Standard class typedefs. */
-  typedef StandardDSCostFunction                       Self;
-  typedef itk::SingleValuedCostFunction                Superclass;
-  typedef itk::SmartPointer<Self>                      Pointer;
-  typedef itk::SmartPointer<const Self>                ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(StandardDSCostFunction, itk::SingleValuedCostFunction);
-
-  typedef Superclass::MeasureType                      MeasureType;   //double
-  typedef Superclass::DerivativeType                   DerivativeType; //Array<double>
-  typedef Superclass::ParametersType                   ParametersType; //Array<double>
-
-  typedef TDSValidationFilter                          DSValidationFilterType;
-  typedef typename DSValidationFilterType::VectorDataType
-                                                       VectorDataType;
-  typedef typename DSValidationFilterType::TreeIteratorType
-                                                       TreeIteratorType;
-  typedef typename DSValidationFilterType::LabelSetType
-                                                       LabelSetType;
-
-  typedef FuzzyDescriptorsModelManager                 FuzzyDescriptorsModelManagerType;
-
-  typedef FuzzyDescriptorsModelManager::DescriptorListType
-                                                       DescriptorListType;
-  typedef FuzzyDescriptorsModelManager::DescriptorsModelType
-                                                       DescriptorsModelType;
-  typedef FuzzyDescriptorsModelManager::PairType       PairType;
-
-  typedef Parser                                       ParserType;
-
-  /** This method returns the value of the cost function corresponding
-    * to the specified parameters.    */
-  MeasureType GetValue( const ParametersType & parameters ) const override;
-
-  /** This method returns the derivative of the cost function corresponding
-    * to the specified parameters.   */
-  void GetDerivative( const ParametersType & parameters,
-                               DerivativeType & derivative ) const override;
-
-  unsigned int GetNumberOfParameters(void) const override;
-
-  itkSetMacro(Weight, double);
-  itkGetConstMacro(Weight, double);
-
-  itkSetMacro(CriterionFormula, std::string);
-  itkGetConstMacro(CriterionFormula, std::string);
-
-  void SetDescriptorList(DescriptorListType list)
-  {
-    m_DescriptorList = list;
-  }
-
-  DescriptorListType GetDescriptorList()
-  {
-    return m_DescriptorList;
-  }
-
-  itkSetObjectMacro(GTVectorData, VectorDataType);
-  itkGetConstObjectMacro(GTVectorData, VectorDataType);
-
-  itkSetObjectMacro(NSVectorData, VectorDataType);
-  itkGetConstObjectMacro(NSVectorData, VectorDataType);
-
-
-  LabelSetType GetBeliefHypothesis()
-  {
-    return m_BeliefHypothesis;
-  }
-
-  void SetBeliefHypothesis(LabelSetType hypothesis)
-  {
-    m_BeliefHypothesis = hypothesis;
-  }
-
-  LabelSetType GetPlausibilityHypothesis()
-  {
-    return m_PlausibilityHypothesis;
-  }
-
-  void SetPlausibilityHypothesis(LabelSetType hypothesis)
-  {
-    m_PlausibilityHypothesis = hypothesis;
-  }
-
-protected:
-  /** Constructor */
-  StandardDSCostFunction();
-  /** Destructor */
-  ~StandardDSCostFunction() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  StandardDSCostFunction(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-
-  typename VectorDataType::Pointer            m_GTVectorData; //Ground Truth
-  typename VectorDataType::Pointer            m_NSVectorData; //Negative Samples
-
-  typename ParserType::Pointer       m_Parser;
-  std::string                        m_CriterionFormula;
-
-  double                             m_Weight; //range ]0; 1[
-
-  LabelSetType                       m_BeliefHypothesis;
-  LabelSetType                       m_PlausibilityHypothesis;
-
-  DescriptorListType                 m_DescriptorList;
-};
-
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbStandardDSCostFunction.hxx"
-#endif
-
-#endif
diff --git a/Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.hxx b/Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.hxx
deleted file mode 100644
index 236c1e5e9a..0000000000
--- a/Modules/Learning/DempsterShafer/include/otbStandardDSCostFunction.hxx
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbStandardDSCostFunction_hxx
-#define otbStandardDSCostFunction_hxx
-
-#include "otbStandardDSCostFunction.h"
-
-namespace otb
-{
-// Constructor
-template <class TDSValidationFilter>
-StandardDSCostFunction<TDSValidationFilter>
-::StandardDSCostFunction() :
-  m_CriterionFormula("((Belief + Plausibility)/2.)"),
-  m_Weight(0.5)
-{
- m_GTVectorData = VectorDataType::New();
- m_NSVectorData = VectorDataType::New();
- m_Parser =  ParserType::New();
-}
-
-template <class TDSValidationFilter>
-unsigned int
-StandardDSCostFunction<TDSValidationFilter>
-::GetNumberOfParameters() const
- {
-  return m_DescriptorList.size()*4;
- }
-
-template <class TDSValidationFilter>
-typename StandardDSCostFunction<TDSValidationFilter>
-::MeasureType
- StandardDSCostFunction<TDSValidationFilter>
-::GetValue(const ParametersType & parameters) const
- {
-  if (parameters.size() != m_DescriptorList.size()*4)
-    {
-    itkExceptionMacro(<< "Wrong model!" )
-    }
-
-  //Initialize parser
-  m_Parser->SetExpr(m_CriterionFormula);
-
-  DescriptorsModelType descModel;
-  for (unsigned int i = 0; i < m_DescriptorList.size(); ++i)
-    {
-    std::vector<double> tmp;
-    for (unsigned int j = 0; j < 4; ++j)
-      {
-      tmp.push_back(parameters[4*i+j]);
-      }
-    PairType pair( m_DescriptorList[i], tmp);
-    descModel.push_back(pair);
-    }
-
-  typename DSValidationFilterType::Pointer internalFunctionGT = DSValidationFilterType::New();
-  internalFunctionGT->SetCriterionFormula("1");
-  internalFunctionGT->SetInput(m_GTVectorData);
-  internalFunctionGT->SetBeliefHypothesis(m_BeliefHypothesis);
-  internalFunctionGT->SetPlausibilityHypothesis(m_PlausibilityHypothesis);
-  try
-    {
-    internalFunctionGT->SetDescriptorModels(descModel);
-    }
-  catch ( itk::ExceptionObject & )
-    {
-    return 1;
-    }
-  internalFunctionGT->Update();
-
-  typename DSValidationFilterType::Pointer internalFunctionNS = DSValidationFilterType::New();
-  internalFunctionNS->SetCriterionFormula("1");
-  internalFunctionNS->SetInput(m_NSVectorData);
-  internalFunctionNS->SetBeliefHypothesis(m_BeliefHypothesis);
-  internalFunctionNS->SetBeliefHypothesis(m_PlausibilityHypothesis);
-  try
-    {
-    internalFunctionNS->SetDescriptorModels(descModel);
-    }
-  catch (itk::ExceptionObject &)
-    {
-    return 1;
-    }
-  internalFunctionNS->Update();
-
-  double accGT = 0.0;
-  double accNS = 0.0;
-  double nGT = 0.0;
-  double nNS = 0.0;
-
-  TreeIteratorType itVectorGT(internalFunctionGT->GetOutput()->GetDataTree());
-  itVectorGT.GoToBegin();
-  while (!itVectorGT.IsAtEnd())
-    {
-    if (!itVectorGT.Get()->IsRoot() && !itVectorGT.Get()->IsDocument() && !itVectorGT.Get()->IsFolder())
-      {
-      double belief = itVectorGT.Get()->GetFieldAsDouble("Belief");
-      double plausibility = itVectorGT.Get()->GetFieldAsDouble("Plausi");
-
-      m_Parser->DefineVar("Belief", &belief);
-      m_Parser->DefineVar("Plausibility", &plausibility);
-
-      accGT += ((1 - m_Parser->Eval()) * (1 - m_Parser->Eval()));
-      nGT += 1.0;
-
-      m_Parser->ClearVar();
-      }
-    itVectorGT++;
-    }
-
-  TreeIteratorType itVectorNS(internalFunctionNS->GetOutput()->GetDataTree());
-  itVectorNS.GoToBegin();
-  while (!itVectorNS.IsAtEnd())
-    {
-    if (!itVectorNS.Get()->IsRoot() && !itVectorNS.Get()->IsDocument() && !itVectorNS.Get()->IsFolder())
-      {
-      double belief = itVectorNS.Get()->GetFieldAsDouble("Belief");
-      double plausibility = itVectorNS.Get()->GetFieldAsDouble("Plausi");
-
-      m_Parser->DefineVar("Belief", &belief);
-      m_Parser->DefineVar("Plausibility", &plausibility);
-
-      accNS += (m_Parser->Eval() * m_Parser->Eval());
-      nNS += 1.0;
-
-      m_Parser->ClearVar();
-      }
-    itVectorNS++;
-    }
-  return (m_Weight * accGT / nGT + (1 - m_Weight) * accNS / nNS);
-}
-
-template <class TDSValidationFilter>
-void
-StandardDSCostFunction<TDSValidationFilter>
-::GetDerivative(const ParametersType & itkNotUsed(parameters), DerivativeType & itkNotUsed(derivative)) const
- {
-  //Not necessary for Amoeba Optimizer
-  itkExceptionMacro(<< "Not Supposed to be used when using Amoeba Optimizer!")
- }
-
-// PrintSelf Method
-template <class TDSValidationFilter>
-void
-StandardDSCostFunction<TDSValidationFilter>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-
-}// end namespace otb
-
-#endif
diff --git a/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.h b/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.h
deleted file mode 100644
index 43a3b9a6f9..0000000000
--- a/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbVectorDataToDSValidatedVectorDataFilter_h
-#define otbVectorDataToDSValidatedVectorDataFilter_h
-
-#include "otbMassOfBelief.h"
-
-#include "otbVectorDataToVectorDataFilter.h"
-
-#include "itkPreOrderTreeIterator.h"
-#include "otbVectorData.h"
-#include "otbFuzzyDescriptorsModelManager.h"
-
-#include "otbFuzzyVariable.h"
-#include "otbJointMassOfBeliefFilter.h"
-#include "otbParser.h"
-#include <string>
-
-namespace otb
-{
-/** \class VectorDataToDSValidatedVectorDataFilter
-  * \brief VectorData filter validating data nodes using
-  * Dempster-Shafer theory.
-  *
-  * This filter takes as input a vector data containing
-  * features score and validate (or not) each data node
-  * according to these features score, a fuzzy model corresponding
-  * to each feature and a criterion according to the Dempster-Shafer
-  * theory. By default the filter is (for now) parametrized to process
-  * VectorDatas providing by the VectorDataToRoadDescriptionFilter.
-  * The hypothesis must be set using the SetHypothesis method.
-  * The convention is for each feature Fe, a mass of Belief is defined
-  * with two variables named Fe and Fe_. Thus, an hypothesis must declared:
-  * VectorDataToVectorDataFilter::LabelSetType hyp;
-  * hyp.insert("Fe(i)");
-  * hyp.insert("Fe(j)_");
-  * hyp.insert("Fe(k)_");
-  *
-  * Fe(i), Fe(j) and Fe(k) being descriptors.
-  *
-  * The criterion can be set through SetCriterionFormula() as a
-  * string referring to "Belief" and "Plausibility" from the
-  * Dempster-Shafer theory. By default the criterion is:
-  * "((Belief + Plausibility)/2) >= 0.5"
-  *
-  * The considered features will be the intersection between
-  * the features embedded in this filter and the features embedded
-  * in the input vector data. For now, the filter uses "NONDVI" and
-  * "ROADSA" features.
-  *
-  *
-  * \ingroup VectorDataFilter
-  * \sa VectorDataToRoadDescriptionFilter
-  * \sa VectorDataToBuildingDescriptionFilter
- *
- * \ingroup OTBDempsterShafer
- */
-
-template <class TVectorData, class TPrecision=float>
-class ITK_EXPORT VectorDataToDSValidatedVectorDataFilter :
-public otb::VectorDataToVectorDataFilter<TVectorData, TVectorData>
-{
-public:
-  /** Standard class typedefs. */
-  typedef VectorDataToDSValidatedVectorDataFilter      Self;
-  typedef VectorDataToVectorDataFilter<TVectorData,
-    TVectorData>                                       Superclass;
-  typedef itk::SmartPointer<Self>                      Pointer;
-  typedef itk::SmartPointer<const Self>                ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(VectorDataToDSValidatedVectorDataFilter, VectorDataToVectorDataFilter);
-
-  /** Some typedefs. */
-  typedef TVectorData                               VectorDataType;
-  typedef typename VectorDataType::Pointer          VectorDataPointer;
-  typedef typename VectorDataType::DataNodeType     DataNodeType;
-  typedef itk::PreOrderTreeIterator<typename VectorDataType::DataTreeType>
-                                                    TreeIteratorType;
-
-  typedef TPrecision                                PrecisionType;
-  typedef MassOfBelief<std::string, PrecisionType>
-                                                    MassOfBeliefFunctionType;
-  typedef typename MassOfBeliefFunctionType::LabelSetType
-                                                    LabelSetType;
-  typedef JointMassOfBeliefFilter<MassOfBeliefFunctionType>
-                                                    JointMassOfBeliefFilterType;
-  typedef Parser                                    ParserType;
-
-  typedef itk::DataObject::Pointer DataObjectPointer;
-  typedef itk::DataObject          DataObject;
-
-
-  typedef FuzzyVariable<std::string, PrecisionType>           FuzzyVarType;
-
-  typedef FuzzyDescriptorsModelManager::PairType              PairType;
-  typedef FuzzyDescriptorsModelManager::DescriptorsModelType  DescriptorModelsType;
-
-  /** Descriptor model accessors. */
-  virtual void AddDescriptor(const std::string& key, std::vector<double> model);
-  virtual void ClearDescriptors();
-
-  void SetDescriptorModels( DescriptorModelsType model );
-  DescriptorModelsType GetDescriptorModels()
-  {
-    return m_DescriptorModels;
-  }
-
-  /** Parameter accessors. */
-  itkGetConstMacro(CriterionFormula, std::string);
-  itkSetMacro(CriterionFormula, std::string);
-
-  itkGetMacro(CriterionThreshold, double);
-  itkSetMacro(CriterionThreshold, double);
-
-  LabelSetType GetBeliefHypothesis()
-  {
-    return m_BeliefHypothesis;
-  }
-
-  void SetBeliefHypothesis(LabelSetType hypothesis)
-  {
-    m_BeliefHypothesis = hypothesis;
-  }
-
-  LabelSetType GetPlausibilityHypothesis()
-  {
-    return m_PlausibilityHypothesis;
-  }
-
-  void SetPlausibilityHypothesis(LabelSetType hypothesis)
-  {
-    m_PlausibilityHypothesis = hypothesis;
-  }
-
-  unsigned int GetNumberOfParameters()
-  {
-    return (m_DescriptorModels.size() * 4);
-  }
-
-
-protected:
-  /** Triggers the Computation */
-  void GenerateData(void) override;
-  /** Constructor */
-  VectorDataToDSValidatedVectorDataFilter();
-  /** Destructor */
-  ~VectorDataToDSValidatedVectorDataFilter() override {}
-  /**PrintSelf method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-  std::string GetNextID()
-    {
-      std::ostringstream oss;
-      oss << m_CurrentID++;
-      return oss.str();
-    }
-
-private:
-  VectorDataToDSValidatedVectorDataFilter(const Self &) = delete;
-  void operator =(const Self&) = delete;
-
-  // Descriptor bench
-  DescriptorModelsType                            m_DescriptorModels;
-  std::vector< typename FuzzyVarType::Pointer >   m_FuzzyVars;
-  LabelSetType                                    m_Universe,
-                                                  m_BeliefHypothesis,
-                                                  m_PlausibilityHypothesis;
-  double                                          m_Bel, m_Plau;
-  typename ParserType::Pointer                    m_Parser;
-
-  std::string                                     m_CriterionFormula;
-  double                                          m_CriterionThreshold;
-  unsigned int                                    m_CurrentID;
-};
-
-} // end namespace otb
-
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbVectorDataToDSValidatedVectorDataFilter.hxx"
-#endif
-
-#endif
diff --git a/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.hxx b/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.hxx
deleted file mode 100644
index 8e07927bb6..0000000000
--- a/Modules/Learning/DempsterShafer/include/otbVectorDataToDSValidatedVectorDataFilter.hxx
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbVectorDataToDSValidatedVectorDataFilter_hxx
-#define otbVectorDataToDSValidatedVectorDataFilter_hxx
-
-#include "otbVectorDataToDSValidatedVectorDataFilter.h"
-#include <iostream>
-
-namespace otb
-{
-
-// Constructor
-template <class TVectorData, class TPrecision>
-  VectorDataToDSValidatedVectorDataFilter<TVectorData, TPrecision>
-::VectorDataToDSValidatedVectorDataFilter() :
-  m_Bel(0.0),
-  m_Plau(0.0),
-  m_CriterionFormula("((Belief + Plausibility)/2.)"),
-  m_CriterionThreshold(0.5),
-  m_CurrentID(0)
-{
-  this->SetNumberOfRequiredInputs(1);
-
-  m_Parser =  ParserType::New();
-}
-
-
-template <class TVectorData, class TPrecision>
-void
-VectorDataToDSValidatedVectorDataFilter<TVectorData, TPrecision>
-::AddDescriptor(const std::string& key, std::vector<double>  model)
-{
-  bool alreadyExist = false;
-
-  if (model.size() != 4)
-    {
-     itkExceptionMacro(<< "Wrong model! Size(=" << model.size() << ") > 4" )
-    }
-  else if (model[0]<0 || model[1]<model[0] || model[2]<model[1] || model[2]>1)
-    {
-     itkExceptionMacro(<< "Wrong model! Values have to be 0<=v1<=v2<=v3<=1" )
-    }
-  else if (model[3]<.75 || model[3]>1.0)
-    {
-      itkExceptionMacro(<< "Wrong model! Values have to be 0.75<=v4<=1" )
-    }
-  else
-    {
-    for (unsigned int i=0; i<m_DescriptorModels.size(); ++i)
-      {
-      if (m_DescriptorModels[i].first.compare(key) == 0)
-        {
-        for (unsigned int j=0; j<4; ++j)
-          {
-           m_DescriptorModels[i].second.at(j) = model[j];
-          }
-        alreadyExist = true;
-        }
-      }
-    if (!alreadyExist)
-      {
-      m_DescriptorModels.push_back(std::pair<std::string, std::vector<double> >(key, model));
-      }
-    }
-
-  this->Modified();
-}
-
-
-template <class TVectorData, class TPrecision>
-void
-VectorDataToDSValidatedVectorDataFilter<TVectorData, TPrecision>
-::ClearDescriptors()
-{
-  m_DescriptorModels.clear();
-}
-
-template <class TVectorData, class TPrecision>
-void
-VectorDataToDSValidatedVectorDataFilter<TVectorData, TPrecision>
-::SetDescriptorModels(DescriptorModelsType model)
-{
-  for (unsigned int i=0; i<model.size(); ++i)
-    {
-     this->AddDescriptor(model[i].first, model[i].second);
-    }
-}
-
-
-template <class TVectorData, class TPrecision>
-void
-VectorDataToDSValidatedVectorDataFilter<TVectorData, TPrecision>
-::GenerateData()
-{
-  //Initialize Dempster Shafer tools
-  if( m_DescriptorModels.size() == 0 )
-    {
-    itkExceptionMacro(<< "No defined Descriptor. Please add a descriptor model.");
-    }
-
-  for (unsigned int i=0; i<m_DescriptorModels.size(); ++i)
-    {
-    typename FuzzyVarType::Pointer fuz = FuzzyVarType::New();
-    std::string fuzName, fuzName_;
-    fuzName  = m_DescriptorModels[i].first;
-    fuzName_ = m_DescriptorModels[i].first + "_";
-
-    fuz->SetMembership(fuzName,
-                       0.0,
-                       0.0,
-                       m_DescriptorModels[i].second[0],
-                       m_DescriptorModels[i].second[1],
-                       0.0,
-                       m_DescriptorModels[i].second[3]);
-    fuz->SetMembership(fuzName_,
-                       m_DescriptorModels[i].second[1],
-                       m_DescriptorModels[i].second[2],
-                       1.0,
-                       1.0,
-                       0.0,
-                       m_DescriptorModels[i].second[3]);
-
-    m_FuzzyVars.push_back(fuz);
-
-    m_Universe.insert(fuzName);
-    m_Universe.insert(fuzName_);
-    }
-
-  //Initialize parser
-  m_Parser->SetExpr(m_CriterionFormula);
-  m_Parser->DefineVar("Belief", &m_Bel);
-  m_Parser->DefineVar("Plausibility", &m_Plau);
-
-  // Output
-  this->GetOutput(0)->SetMetaDataDictionary(this->GetInput()->GetMetaDataDictionary());
-  // Retrieving root node
-  typename DataNodeType::Pointer root = this->GetOutput(0)->GetDataTree()->GetRoot()->Get();
-  // Create the document node
-  typename DataNodeType::Pointer document = DataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  // Adding the layer to the data tree
-  this->GetOutput(0)->GetDataTree()->Add(document, root);
-  // Create the folder node
-  typename DataNodeType::Pointer folder = DataNodeType::New();
-  folder->SetNodeType(otb::FOLDER);
-  // Adding the layer to the data tree
-  this->GetOutput(0)->GetDataTree()->Add(folder, document);
-  this->GetOutput(0)->SetProjectionRef(this->GetInput()->GetProjectionRef());
-
-  TreeIteratorType itVector(this->GetInput()->GetDataTree());
-  itVector.GoToBegin();
-  while (!itVector.IsAtEnd())
-    {
-    if (!itVector.Get()->IsRoot() && !itVector.Get()->IsDocument() && !itVector.Get()->IsFolder())
-      {
-      typename DataNodeType::Pointer currentGeometry = itVector.Get();
-      typename JointMassOfBeliefFilterType::Pointer jointMassFilter = JointMassOfBeliefFilterType::New();
-
-      for (unsigned int i=0; i<m_DescriptorModels.size(); ++i)
-        {
-        if (currentGeometry->HasField(m_DescriptorModels[i].first))
-          {
-          LabelSetType H, H_;
-          std::string fuzName, fuzName_;
-          fuzName  = m_DescriptorModels[i].first;
-          fuzName_ = m_DescriptorModels[i].first + "_";
-
-          typename MassOfBeliefFunctionType::Pointer mass = MassOfBeliefFunctionType::New();
-          mass->InitializePowerSetMasses(m_Universe);
-
-          H.insert(fuzName);
-          H_.insert(fuzName_);
-
-          mass->SetMass(H, m_FuzzyVars[i]->GetMembership(fuzName, currentGeometry->GetFieldAsDouble(fuzName)));
-          mass->SetMass(H_, m_FuzzyVars[i]->GetMembership(fuzName_, currentGeometry->GetFieldAsDouble(fuzName)));
-
-          mass->EstimateUncertainty();
-
-          jointMassFilter->PushBackInput(mass);
-          }
-        }
-      jointMassFilter->Update();
-      m_Bel  = jointMassFilter->GetOutput()->GetBelief(m_BeliefHypothesis);
-      m_Plau = jointMassFilter->GetOutput()->GetPlausibility(m_PlausibilityHypothesis);
-
-     if (m_Parser->Eval() >= m_CriterionThreshold)
-        {
-        currentGeometry->SetNodeId(this->GetNextID());
-        currentGeometry->SetFieldAsDouble("Belief", m_Bel);
-        currentGeometry->SetFieldAsDouble("Plausi", m_Plau);
-        this->GetOutput(0)->GetDataTree()->Add(currentGeometry, folder);
-        }
-      }
-    ++itVector;
-    }
-}
-
-
-// PrintSelf Method
-template <class TVectorData, class TPrecision>
-void
-VectorDataToDSValidatedVectorDataFilter<TVectorData, TPrecision>
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Learning/DempsterShafer/test/CMakeLists.txt b/Modules/Learning/DempsterShafer/test/CMakeLists.txt
index d999a90fa0..9ebe35857f 100644
--- a/Modules/Learning/DempsterShafer/test/CMakeLists.txt
+++ b/Modules/Learning/DempsterShafer/test/CMakeLists.txt
@@ -24,7 +24,6 @@ set(OTBDempsterShaferTests
 otbDempsterShaferTestDriver.cxx
 otbMassOfBeliefDSApplied.cxx
 otbConfusionMatrixToMassOfBeliefTest.cxx
-otbVectorDataToDSValidatedVectorDataFilter.cxx
 otbDempsterShaferFusionTests.cxx
 otbDSFusionOfClassifiersImageFilterTest.cxx
 otbJointMassOfBeliefFilter.cxx
@@ -85,16 +84,6 @@ otb_add_test(NAME fzTvConfusionMatrixToMassOfBeliefTestRecall COMMAND otbDempste
   otbConfusionMatrixToMassOfBeliefTest
   RECALL)
 
-otb_add_test(NAME fzTvVectorDataToDSValidatedVectorDataFilter COMMAND otbDempsterShaferTestDriver
-  --compare-ogr ${EPSILON_9}
-  ${BASELINE_FILES}/fzTvDSValidatedRoadVectorDataOutput.shp
-  ${TEMP}/fzTvDSValidatedRoadVectorDataOutput.shp
-  otbVectorDataToDSValidatedVectorDataFilter
-  ${TEMP}/fzTvVectorDataToRoadDescriptionFilterOutput.shp
-  ${TEMP}/fzTvDSValidatedRoadVectorDataOutput.shp
-  )
-set_property(TEST fzTvVectorDataToDSValidatedVectorDataFilter PROPERTY DEPENDS fzTvVectorDataToRoadDescriptionFilter)
-
 otb_add_test(NAME fzDSFusionTestConfMatFileVCMTestPrecision COMMAND otbDempsterShaferTestDriver
   otbDempsterShaferFusionConfMatFileTest
   ${INPUTDATA}/Classification/QB_1_ortho_C1_V.csv
diff --git a/Modules/Learning/DempsterShafer/test/otbDempsterShaferTestDriver.cxx b/Modules/Learning/DempsterShafer/test/otbDempsterShaferTestDriver.cxx
index c38750c9cb..d8b30b3339 100644
--- a/Modules/Learning/DempsterShafer/test/otbDempsterShaferTestDriver.cxx
+++ b/Modules/Learning/DempsterShafer/test/otbDempsterShaferTestDriver.cxx
@@ -24,7 +24,6 @@ void RegisterTests()
 {
   REGISTER_TEST(otbMassOfBeliefDSApplied);
   REGISTER_TEST(otbConfusionMatrixToMassOfBeliefTest);
-  REGISTER_TEST(otbVectorDataToDSValidatedVectorDataFilter);
   REGISTER_TEST(otbDempsterShaferFusionOptRecConfMatTest);
   REGISTER_TEST(otbDempsterShaferFusionOptRecTest);
   REGISTER_TEST(otbDempsterShaferFusionOptTest);
diff --git a/Modules/Learning/DempsterShafer/test/otbVectorDataToDSValidatedVectorDataFilter.cxx b/Modules/Learning/DempsterShafer/test/otbVectorDataToDSValidatedVectorDataFilter.cxx
deleted file mode 100644
index d237ea5d2f..0000000000
--- a/Modules/Learning/DempsterShafer/test/otbVectorDataToDSValidatedVectorDataFilter.cxx
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-#include "otbVectorDataToDSValidatedVectorDataFilter.h"
-
-#include "otbVectorDataFileReader.h"
-#include "otbVectorDataFileWriter.h"
-
-
-int otbVectorDataToDSValidatedVectorDataFilter(int itkNotUsed(argc), char* argv[])
-{
-  const char * inputVD  = argv[1];
-  const char * outputVD = argv[2];
-
-  typedef float                           PrecisionType;
-  typedef otb::VectorData<PrecisionType>  VectorDataType;
-  typedef otb::VectorDataFileReader<VectorDataType>
-                                          VectorDataReaderType;
-  typedef otb::VectorDataFileWriter<VectorDataType>
-                                          VectorDataWriterType;
-
-  typedef otb::VectorDataToDSValidatedVectorDataFilter<VectorDataType, PrecisionType>
-                                          VectorDataValidationFilterType;
-  typedef VectorDataValidationFilterType::LabelSetType
-                                          LabelSetType;
-  typedef otb::FuzzyDescriptorsModelManager
-                                          FuzzyManagerType;
-  VectorDataReaderType::Pointer vdReader = VectorDataReaderType::New();
-  VectorDataWriterType::Pointer vdWriter = VectorDataWriterType::New();
-
-  VectorDataValidationFilterType::Pointer filter =
-    VectorDataValidationFilterType::New();
-
-  vdReader->SetFileName(inputVD);
-  vdReader->Update();
-
-  filter->SetInput(vdReader->GetOutput());
-  //filter->GetDescriptorModels();
-  FuzzyManagerType::Print(filter->GetDescriptorModels());
-  LabelSetType plau, bel;
-  plau.insert("NONDVI");
-  plau.insert("ROADSA");
-  plau.insert("NOBUIL");
-  filter->SetPlausibilityHypothesis(plau);
-  bel.insert("ROADSA");
-  bel.insert("NONDVI");
-  bel.insert("NOBUIL");
-  filter->SetBeliefHypothesis(bel);
-
-  std::vector<double> stdModel;
-  stdModel.push_back(0.25);
-  stdModel.push_back(0.50);
-  stdModel.push_back(0.75);
-  stdModel.push_back(0.90);
-  filter->AddDescriptor("NONDVI", stdModel);
-  filter->AddDescriptor("ROADSA", stdModel);
-  filter->AddDescriptor("NOBUIL", stdModel);
-
-  FuzzyManagerType::Print(filter->GetDescriptorModels());
-
-  vdWriter->SetFileName(outputVD);
-  vdWriter->SetInput(filter->GetOutput());
-  vdWriter->Update();
-
-  std::cout << "Input VectorData Size : "
-            << vdReader->GetOutput()->Size() << std::endl
-            << "CriterionFormula : "
-            << filter->GetCriterionFormula() << std::endl
-            << "Output VecttorData Size : "
-            << filter->GetOutput()->Size()
-            << std::endl;
-
-  return EXIT_SUCCESS;
-}
diff --git a/Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.h b/Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.h
deleted file mode 100644
index 58120ad259..0000000000
--- a/Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbNDVIDataNodeFeatureFunction_h
-#define otbNDVIDataNodeFeatureFunction_h
-
-#include "otbDataNodeImageFunction.h"
-
-#include "otbVegetationIndicesFunctor.h"
-#include "otbPolyLineImageConstIterator.h"
-
-namespace otb
-{
-/** \class NDVIDataNodeFeatureFunction
-  * \brief Compute a NDVI based feature alongside a
-  * datanode.
-  *
-  * This function compute a feature alongside a datanode.
-  * The feature is (NDVI >= threshold) per cent along the
-  * tested datanode.
-  *
-  * \ingroup Functions
-  * \sa DataNodeImageFunction
-  * \sa SpectralAngleDataNodeFeatureFunction
- *
- * \ingroup OTBIndices
-  */
-
-template <
-class TImage,
-class TCoordRep = double,
-class TPrecision = double
->
-class ITK_EXPORT NDVIDataNodeFeatureFunction :
-    public DataNodeImageFunction<TImage, std::vector<TPrecision>, TCoordRep, TPrecision>
-{
-public:
-  /** Standard class typedefs. */
-  typedef NDVIDataNodeFeatureFunction                         Self;
-  typedef DataNodeImageFunction<TImage, std::vector<TPrecision>, TCoordRep, TPrecision>
-                                                              Superclass;
-  typedef itk::SmartPointer<Self>                             Pointer;
-  typedef itk::SmartPointer<const Self>                       ConstPointer;
-
-  /** Method for creation through the object factory. */
-  itkNewMacro(Self);
-
-  /** Run-time type information (and related methods). */
-  itkTypeMacro(NDVIDataNodeFeatureFunction, DataNodeImageFunction);
-
-  /** Some typedefs. */
-  typedef typename Superclass::DataNodeType           DataNodeType;
-  typedef typename DataNodeType::LineType             LineType;
-
-  typedef TImage                                      InputImageType;
-  typedef typename InputImageType::ConstPointer       InputImageConstPointer;
-  typedef typename InputImageType::PixelType          PixelType;
-  typedef typename InputImageType::InternalPixelType  ScalarRealType;
-  typedef typename InputImageType::IndexType          IndexType;
-  typedef typename InputImageType::IndexValueType     IndexValueType;
-
-  typedef TCoordRep                                   CoordRepType;
-
-  typedef TPrecision                                  PrecisionType;
-
-  typedef PolyLineImageConstIterator<InputImageType, LineType>
-                                                      ImageLineIteratorType;
-
-  typedef Functor::NDVI<ScalarRealType, ScalarRealType, PrecisionType>
-                                                      NDVIFunctorType;
-
-  typedef std::vector<PrecisionType>                  OutputType;
-
-  OutputType Evaluate( const DataNodeType& node ) const override;
-
-  /** Set/Get methods */
-  itkGetConstMacro(NDVIThreshold, PrecisionType);
-  itkSetMacro(NDVIThreshold, PrecisionType);
-
-  //TODO replace by metadata parsing
-  unsigned int GetREDChannelIndex() const
-  {
-    return m_NDVIFunctor.GetRedIndex()+1;
-  }
-
-  void SetREDChannelIndex(unsigned int id)
-  {
-    m_NDVIFunctor.SetRedIndex(id-1);
-  }
-
-  unsigned int GetNIRChannelIndex() const
-  {
-    return m_NDVIFunctor.GetNIRIndex()+1;
-  }
-
-  void SetNIRChannelIndex(unsigned int id)
-  {
-    m_NDVIFunctor.SetNIRIndex(id-1);
-  }
-
-protected:
-  NDVIDataNodeFeatureFunction();
-  ~NDVIDataNodeFeatureFunction() override {}
-  void PrintSelf(std::ostream& os, itk::Indent indent) const override;
-
-private:
-  NDVIDataNodeFeatureFunction(const Self&) = delete;
-  void operator=(const Self&) = delete;
-
-  /** NDVI Threshold & Functor */
-  PrecisionType               m_NDVIThreshold;
-  NDVIFunctorType             m_NDVIFunctor;
-};
-
-}
-#ifndef OTB_MANUAL_INSTANTIATION
-#include "otbNDVIDataNodeFeatureFunction.hxx"
-#endif
-
-#endif
diff --git a/Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.hxx b/Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.hxx
deleted file mode 100644
index 910bc13c1f..0000000000
--- a/Modules/Radiometry/Indices/include/otbNDVIDataNodeFeatureFunction.hxx
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef otbNDVIDataNodeFeatureFunction_hxx
-#define otbNDVIDataNodeFeatureFunction_hxx
-
-#include "otbNDVIDataNodeFeatureFunction.h"
-
-namespace otb
-{
-
-/**
- * Constructor
- */
-template <class TImage, class TCoordRep, class TPrecision>
-NDVIDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>
-::NDVIDataNodeFeatureFunction()
-{
-  m_NDVIThreshold = 0.3;    //Advised for QuickBird images
-  this->SetREDChannelIndex(3); //for QuickBird images
-  this->SetNIRChannelIndex(4); //for QuickBird images
-}
-
-/**
- * Standard "PrintSelf" method
- */
-template <class TImage, class TCoordRep, class TPrecision>
-void
-NDVIDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>
-::PrintSelf(
-  std::ostream& os,
-  itk::Indent indent) const
-{
-  Superclass::PrintSelf( os, indent );
-  os << indent << "NDVI Threshold: "    << m_NDVIThreshold << std::endl;
-  os << indent << "RED Channel Index: " << this->GetREDChannelIndex() << std::endl;
-  os << indent << "NIR Channel Index: " << this->GetNIRChannelIndex() << std::endl;
-}
-
-
-template <class TImage, class TCoordRep, class TPrecision>
-typename NDVIDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>
-::OutputType
- NDVIDataNodeFeatureFunction<TImage, TCoordRep, TPrecision>
-::Evaluate( const DataNodeType& node ) const
-{
-  if(!((this->GetREDChannelIndex() <= this->GetInputImage()->GetNumberOfComponentsPerPixel())
-      && (this->GetNIRChannelIndex() <= this->GetInputImage()->GetNumberOfComponentsPerPixel())
-      && (this->GetREDChannelIndex() > 0)
-      && (this->GetNIRChannelIndex() > 0)))
-    {
-    itkExceptionMacro(<< "Invalid RED or NIR Channel Index");
-    }
-
-  const typename ImageLineIteratorType::PathType* path;
-
-  switch (node.GetNodeType())
-        {
-        case FEATURE_POINT:
-          {
-          itkExceptionMacro(<< "This DataNode type is not handle yet");
-          break;
-          }
-        case FEATURE_LINE:
-          {
-          path = node.GetLine();
-          break;
-          }
-        case FEATURE_POLYGON:
-          {
-          path = node.GetPolygonExteriorRing();
-          break;
-          }
-        default:
-          {
-          itkExceptionMacro(<< "This DataNode type is not handle yet");
-          break;
-          }
-        }
-
-  ImageLineIteratorType lineIt(this->GetInputImage(), path);
-  lineIt.GoToBegin();
-
-  double nbValidPixel=0.;
-  double nbVisitedPixel=0.;
-
-  while(!lineIt.IsAtEnd())
-    {
-    if(this->IsInsideBuffer(lineIt.GetIndex()))
-      {
-      PixelType pixel = this->GetInputImage()->GetPixel(lineIt.GetIndex());
-      if(m_NDVIFunctor(pixel [this->GetREDChannelIndex() - 1],
-                       pixel [this->GetNIRChannelIndex() - 1]) >= this->GetNDVIThreshold())
-        {
-        nbValidPixel += 1;
-        }
-      nbVisitedPixel += 1;
-      }
-    ++lineIt;
-    }
-
-  OutputType output;
-
-  if(nbVisitedPixel == 0)
-    {
-    //std::cout << "nbValidPixel: " << nbValidPixel << "nbVisitedPixel" << nbVisitedPixel << std::endl;
-    //itkExceptionMacro(<< "The DataNode and the Support Image are disjointed");
-    output.push_back(static_cast<PrecisionType>(0.));
-    }
-  else
-    {
-    output.push_back(static_cast<PrecisionType>(nbValidPixel/nbVisitedPixel));
-    }
-
-  output.push_back(static_cast<PrecisionType>(nbValidPixel));
-  output.push_back(static_cast<PrecisionType>(nbVisitedPixel));
-
-  return output;
-}
-
-
-} // end namespace otb
-
-#endif
diff --git a/Modules/Radiometry/Indices/test/CMakeLists.txt b/Modules/Radiometry/Indices/test/CMakeLists.txt
index 3e5c835467..15b51770fd 100644
--- a/Modules/Radiometry/Indices/test/CMakeLists.txt
+++ b/Modules/Radiometry/Indices/test/CMakeLists.txt
@@ -22,7 +22,6 @@ otb_module_test()
 
 set(OTBIndicesTests
 otbIndicesTestDriver.cxx
-otbNDVIDataNodeFeatureFunction.cxx
 otbLandsatTMIndexNDSITest.cxx
 otbLandsatTMIndexBIOTest.cxx
 otbLAIFromReflectancesLinearFunctorTest.cxx
@@ -53,31 +52,6 @@ otb_module_target_label(otbIndicesTestDriver)
 
 # Tests Declaration
 
-otb_add_test(NAME bfTvNDVIDataNodeFeatureFunction_Polygon COMMAND otbIndicesTestDriver
-  --compare-ogr ${EPSILON_3}
-  ${BASELINE_FILES}/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shp
-  ${TEMP}/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shp
-  otbNDVIDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_BUILDINGS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/DEM/srtm_directory
-  ${TEMP}/bfTvNDVIDataNodeFeatureFunctionOutput_Polygon.shp
-  0
-  )
-
-otb_add_test(NAME bfTvNDVIDataNodeFeatureFunction_Line COMMAND otbIndicesTestDriver
-  --compare-ogr ${EPSILON_9}
-  ${BASELINE_FILES}/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shp
-  ${TEMP}/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shp
-  otbNDVIDataNodeFeatureFunction
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE_ROADS.shp
-  ${INPUTDATA}/Dempster-Shafer/ROI_QB_TOULOUSE.TIF
-  ${INPUTDATA}/DEM/srtm_directory
-  ${TEMP}/bfTvNDVIDataNodeFeatureFunctionOutput_Line.shp
-  0
-  )
-
-
 otb_add_test(NAME raTvLandsatTMIndexNDSITest COMMAND otbIndicesTestDriver
   otbLandsatTMIndexNDSI
   3   #TM1
diff --git a/Modules/Radiometry/Indices/test/otbIndicesTestDriver.cxx b/Modules/Radiometry/Indices/test/otbIndicesTestDriver.cxx
index d0b41d61e7..74b65ccde9 100644
--- a/Modules/Radiometry/Indices/test/otbIndicesTestDriver.cxx
+++ b/Modules/Radiometry/Indices/test/otbIndicesTestDriver.cxx
@@ -22,7 +22,6 @@
 
 void RegisterTests()
 {
-  REGISTER_TEST(otbNDVIDataNodeFeatureFunction);
   REGISTER_TEST(otbLandsatTMIndexNDSI);
   REGISTER_TEST(otbLandsatTMIndexBIO);
   REGISTER_TEST(otbLAIFromReflectancesLinear);
diff --git a/Modules/Radiometry/Indices/test/otbNDVIDataNodeFeatureFunction.cxx b/Modules/Radiometry/Indices/test/otbNDVIDataNodeFeatureFunction.cxx
deleted file mode 100644
index 18289e76d7..0000000000
--- a/Modules/Radiometry/Indices/test/otbNDVIDataNodeFeatureFunction.cxx
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2005-2019 Centre National d'Etudes Spatiales (CNES)
- *
- * This file is part of Orfeo Toolbox
- *
- *     https://www.orfeo-toolbox.org/
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-#include "otbNDVIDataNodeFeatureFunction.h"
-
-#include "otbVectorImage.h"
-#include "otbImageFileReader.h"
-#include "otbVectorData.h"
-#include "otbVectorDataFileReader.h"
-#include "otbVectorDataIntoImageProjectionFilter.h"
-#include "otbVectorDataFileWriter.h"
-#include "itkPreOrderTreeIterator.h"
-
-
-int otbNDVIDataNodeFeatureFunction(int itkNotUsed(argc), char* argv[])
-{
-  const char * inputVD  = argv[1];
-  const char * inputImg = argv[2];
-  const char * DEMDir   = argv[3];
-  const char * outputVD = argv[4];
-  int DisplayWarnings   = atoi(argv[5]);
-
-  typedef double                                      CoordRepType;
-  typedef double                                      PrecisionType;
-  typedef otb::VectorImage<PrecisionType>             ImageType;
-  typedef otb::ImageFileReader<ImageType>             ImageReaderType;
-  typedef otb::VectorData<CoordRepType, 2, PrecisionType>
-                                                      VectorDataType;
-  typedef VectorDataType::DataNodeType                DataNodeType;
-  typedef otb::VectorDataFileReader<VectorDataType>   VectorDataReaderType;
-  typedef otb::VectorDataIntoImageProjectionFilter<VectorDataType, ImageType>
-                                                      VectorDataReProjFilter;
-  typedef otb::VectorDataFileWriter<VectorDataType>   VectorDataWriterType;
-  typedef itk::PreOrderTreeIterator<VectorDataType::DataTreeType>
-                                                      TreeIteratorType;
-
-  typedef otb::NDVIDataNodeFeatureFunction<ImageType, CoordRepType, PrecisionType>
-                                         NDVIDataNodeFeaturefunctionType;
-  typedef NDVIDataNodeFeaturefunctionType::OutputType
-                                                      NDVIFeatureOutputType;
-
-  ImageReaderType::Pointer imgReader = ImageReaderType::New();
-  VectorDataReaderType::Pointer vdReader = VectorDataReaderType::New();
-  VectorDataReProjFilter::Pointer vdReProjFilter = VectorDataReProjFilter::New();
-  VectorDataWriterType::Pointer vdWriter = VectorDataWriterType::New();
-  NDVIDataNodeFeaturefunctionType::Pointer NDVIFeatureFunction = NDVIDataNodeFeaturefunctionType::New();
-
-  if (!DisplayWarnings)
-   {
-    imgReader->SetGlobalWarningDisplay(0);
-   }
-
-  otb::DEMHandler::Instance()->OpenDEMDirectory(DEMDir);
-
-  vdReader->SetFileName(inputVD);
-  vdReader->Update();
-
-  imgReader->SetFileName(inputImg);
-  imgReader->UpdateOutputInformation();
-  imgReader->Update(); //Needed to set m_EndIndex, m_StartIndex in otbDataNodeImageFunction
-
-  vdReProjFilter->SetInputImage(imgReader->GetOutput());
-  vdReProjFilter->SetInputVectorData(vdReader->GetOutput());
-  vdReProjFilter->SetUseOutputSpacingAndOriginFromImage(true);
-  vdReProjFilter->Update();
-/*
-  std::cout<< "vdReProjFilter->GetOutput()->Size(): "
-        << vdReProjFilter->GetOutput()->Size() << std::endl;
-*/
-  NDVIFeatureFunction->SetREDChannelIndex(3);
-  NDVIFeatureFunction->SetNIRChannelIndex(4);
-  NDVIFeatureFunction->SetNDVIThreshold(0.047);
-  NDVIFeatureFunction->SetInputImage(imgReader->GetOutput());
-
-  // Output
-  VectorDataType::Pointer outVD = VectorDataType::New();
-  // Retrieving root node
-  DataNodeType::Pointer root = outVD->GetDataTree()->GetRoot()->Get();
-  // Create the document node
-  DataNodeType::Pointer document = DataNodeType::New();
-  document->SetNodeType(otb::DOCUMENT);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(document, root);
-  // Create the folder node
-  DataNodeType::Pointer folder = DataNodeType::New();
-  folder->SetNodeType(otb::FOLDER);
-  // Adding the layer to the data tree
-  outVD->GetDataTree()->Add(folder, document);
-
-  TreeIteratorType itVector(vdReProjFilter->GetOutput()->GetDataTree());
-  itVector.GoToBegin();
-  while (!itVector.IsAtEnd())
-    {
-    if (itVector.Get()->IsLineFeature() || itVector.Get()->IsPolygonFeature())
-         {
-          const DataNodeType::Pointer currentGeometry = itVector.Get();
-          NDVIFeatureOutputType currentResult;
-          currentResult = NDVIFeatureFunction->Evaluate(*(currentGeometry.GetPointer()));
-          currentGeometry->SetFieldAsDouble("NDVI", (double)(currentResult[0]));
-          outVD->GetDataTree()->Add(currentGeometry, folder);
-         }
-    ++itVector;
-    }
-
-  vdWriter->SetInput(outVD);
-  vdWriter->SetFileName(outputVD);
-  vdWriter->Update();
-
-  return EXIT_SUCCESS;
-}
-- 
GitLab