-
Cédric Traizet authored3e071bca
## 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.#otb_module_test()#----------- ComputeOGRLayersFeaturesStatistics TESTS ----------------otb_test_application(NAME apTvClComputeOGRLayersFeaturesStatistics APP ComputeOGRLayersFeaturesStatistics OPTIONS -inshp ${INPUTDATA}/Classification/apTvClLabeledVector.shp -feat meanB0 meanB1 meanB2 meanB3 varB0 varB1 varB2 varB3 -outstats ${TEMP}/apTvClComputeOGRLayersFeaturesStatistics.xml VALID --compare-ascii ${NOTOL} ${OTBAPP_BASELINE_FILES}/apTvClComputeOGRLayersFeaturesStatistics.xml ${TEMP}/apTvClComputeOGRLayersFeaturesStatistics.xml)#----------- SOMClassification TESTS ----------------otb_test_application(NAME apTvClSOMClassificationSmall APP SOMClassification OPTIONS -in ${INPUTDATA}/poupees_sub.png -rand 121212 -out ${TEMP}/apTvClSOMClassificationSmall.tif uint16 VALID --compare-image ${NOTOL} ${BASELINE}/apTvClSOMClassificationSmall.tif ${TEMP}/apTvClSOMClassificationSmall.tif)otb_test_application(NAME apTvClSOMClassificationFull APP SOMClassification OPTIONS -in ${INPUTDATA}/poupees_sub.png -out ${TEMP}/apTvClSOMClassificationFull.tif uint16 -vm ${INPUTDATA}/poupees_sub_c1.png -tp 0.8 -ts 13000 -som ${TEMP}/apTvClSOMClassificationMap.tif -sx 30 -sy 30 -nx 9 -ny 9 -ni 5 -bi 1.0 -bf 0.1 -iv 0 -rand 121212 VALID --compare-n-images ${NOTOL} 2 ${BASELINE}/apTvClSOMClassificationFull.tif ${TEMP}/apTvClSOMClassificationFull.tif ${BASELINE}/apTvClSOMClassificationMap.tif ${TEMP}/apTvClSOMClassificationMap.tif)#----------- ImageClassifier TESTS ----------------# Input file typesset(raster_input_format ".tif")set(vector_input_format ".sqlite")7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
set(stat_input_format ".xml")
# Input file depending on classifier
set(libsvm_input "")
set(svm_input "")
set(boost_input "Water_Vegetation")
set(dt_input "")
set(ann_input "")
set(bayes_input "")
set(rf_input "")
set(knn_input "")
# Output type
set(raster_output_format ".tif")
set(raster_output_option "uint8")
# Output model type depending on classifier
set(libsvm_output_format ".libsvm")
set(svm_output_format ".svm")
set(boost_output_format ".boost")
set(dt_output_format ".dt")
set(ann_output_format ".ann")
set(bayes_output_format ".bayes")
set(rf_output_format ".rf")
set(knn_output_format ".knn")
set(sharkrf_output_format ".txt")
set(sharkkm_output_format ".txt")
# Training algorithms parameters
set(libsvm_parameters "-classifier.libsvm.opt" "true" "-classifier.libsvm.prob" "true")
#set(svm_parameters "-classifier.svm.opt" "true")
set(boost_parameters "")
set(dt_parameters "")
set(ann_parameters "-classifier.ann.sizes" "100")
set(bayes_parameters "")
set(rf_parameters "")
set(knn_parameters "")
set(sharkrf_parameters "")
set(sharkkm_parameters "")
# Validation depending on mode
set(ascii_comparison --compare-ascii ${EPSILON_6})
set(ascii_confmat_comparison --compare-ascii 2)
set(raster_comparison --compare-image ${NOTOL})
set(raster_comparison_two --compare-n-images ${NOTOL} 2)
set(raster_comparison_three --compare-n-images ${NOTOL} 3)
# Reference ffiles depending on modes
set(ascii_ref_path ${OTBAPP_BASELINE_FILES})
set(raster_ref_path ${OTBAPP_BASELINE})
set(classifierList)
#if(OTB_USE_LIBSVM)
#list(APPEND classifierList "LIBSVM")
#endif()
if(OTB_USE_OPENCV)
#list(APPEND classifierList "SVM" "BOOST" "DT" "ANN" "BAYES" "RF" "KNN")
list(APPEND classifierList "BOOST" "DT" "ANN" "BAYES" "RF" "KNN")
if(NOT OTB_OPENCV_3)
set(dt_output_format "cv2.dt")
endif()
endif()
if(OTB_USE_SHARK)
list(APPEND classifierList "SHARKRF" "SHARKKM")
endif()
set(classifier_with_confmap "LIBSVM" "BOOST" "KNN" "ANN" "RF")
set(classifier_with_probamap "SHARKRF")
# This is a black list for classifier that can not have a baseline
141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
# because they are using randomness and seed can not be set
set(classifier_without_baseline "")
# Loop on classifiers
foreach(classifier ${classifierList})
string(TOLOWER ${classifier} lclassifier)
# Derive output file name
set(OUTMODELFILE cl${classifier}_ModelQB1${${lclassifier}_output_format})
# Derive confusion matrix file name
set(OUTCONFMATFILE cl${classifier}_ConfMatQB1${${lclassifier}_output_format})
set(OUTRASTER cl${classifier}LabeledImageQB1${raster_output_format})
set(OUTCONFMAP cl${classifier}ConfidenceMapQB1${raster_output_format})
set(OUTPROBAMAP cl${classifier}ProbabilityMapQB1${raster_output_format})
list(FIND classifier_without_baseline ${classifier} _classifier_has_baseline)
if(${_classifier_has_baseline} EQUAL -1)
set(valid ${ascii_confmat_comparison} ${ascii_ref_path}/${OUTCONFMATFILE} ${TEMP}/${OUTCONFMATFILE})
else()
set(valid "")
endif()
otb_test_application(
NAME apTvClTrainMethod${classifier}ImagesClassifierQB1
APP TrainImagesClassifier
OPTIONS -io.il ${INPUTDATA}/Classification/QB_1_ortho${raster_input_format}
-io.vd ${INPUTDATA}/Classification/VectorData_${${lclassifier}_input}QB1_utm31n${vector_input_format}
-io.imstat ${INPUTDATA}/Classification/clImageStatisticsQB1${stat_input_format}
-classifier ${lclassifier}
${${lclassifier}_parameters}
-io.out ${TEMP}/${OUTMODELFILE}
-sample.vfn class
-rand 121212
-outxml ${TEMP}/cl${classifier}_OutXML1.xml
-io.confmatout ${TEMP}/${OUTCONFMATFILE}
VALID ${valid}
)
set_tests_properties(apTvClTrainMethod${classifier}ImagesClassifierQB1 PROPERTIES
RESOURCE_LOCK ${INPUTDATA}/Classification/VectorData_${${lclassifier}_input}QB1_utm31n${vector_input_format})
if(${_classifier_has_baseline} EQUAL -1)
set(valid ${ascii_confmat_comparison} ${ascii_ref_path}/${OUTCONFMATFILE} ${TEMP}/${OUTCONFMATFILE})
else()
set(valid "")
endif()
otb_test_application(
NAME apTvClTrainMethod${classifier}ImagesClassifierQB1_InXML1
APP TrainImagesClassifier
OPTIONS -inxml ${TEMP}/cl${classifier}_OutXML1.xml
-io.out ${TEMP}/OutXML1_${OUTMODELFILE}
-io.confmatout ${TEMP}/${OUTCONFMATFILE}
VALID ${valid}
)
set_tests_properties(apTvClTrainMethod${classifier}ImagesClassifierQB1_InXML1 PROPERTIES DEPENDS apTvClTrainMethod${classifier}ImagesClassifierQB1)
list(FIND classifier_with_confmap ${classifier} _classifier_has_confmap)
list(FIND classifier_with_probamap ${classifier} _classifier_has_probamap)
if(${_classifier_has_confmap} EQUAL -1)
otb_test_application(
NAME apTvClMethod${classifier}ImageClassifierQB1
APP ImageClassifier
OPTIONS -in ${INPUTDATA}/Classification/QB_1_ortho${raster_input_format}
-model ${INPUTDATA}/Classification/${OUTMODELFILE}
-imstat ${INPUTDATA}/Classification/clImageStatisticsQB1${stat_input_format}
211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
-out ${TEMP}/${OUTRASTER} ${raster_output_option}
VALID ${raster_comparison}
${raster_ref_path}/${OUTRASTER}
${TEMP}/${OUTRASTER}
)
else()
if(${_classifier_has_probamap} EQUAL -1)
otb_test_application(
NAME apTvClMethod${classifier}ImageClassifierQB1
APP ImageClassifier
OPTIONS -in ${INPUTDATA}/Classification/QB_1_ortho${raster_input_format}
-model ${INPUTDATA}/Classification/${OUTMODELFILE}
-imstat ${INPUTDATA}/Classification/clImageStatisticsQB1${stat_input_format}
-out ${TEMP}/${OUTRASTER} ${raster_output_option}
-confmap ${TEMP}/${OUTCONFMAP}
VALID ${raster_comparison_two}
${raster_ref_path}/${OUTRASTER}
${TEMP}/${OUTRASTER}
${raster_ref_path}/${OUTCONFMAP}
${TEMP}/${OUTCONFMAP}
)
else()
message(${classifier})
otb_test_application(
NAME apTvClMethod${classifier}ImageClassifierQB1
APP ImageClassifier
OPTIONS -in ${INPUTDATA}/Classification/QB_1_ortho${raster_input_format}
-model ${INPUTDATA}/Classification/${OUTMODELFILE}
-imstat ${INPUTDATA}/Classification/clImageStatisticsQB1${stat_input_format}
-out ${TEMP}/${OUTRASTER} ${raster_output_option}
-confmap ${TEMP}/${OUTCONFMAP}
-nbclasses 4
-probamap ${TEMP}/${OUTPROBAMAP}
VALID ${raster_comparison_three}
${raster_ref_path}/${OUTRASTER}
${TEMP}/${OUTRASTER}
${raster_ref_path}/${OUTCONFMAP}
${TEMP}/${OUTCONFMAP}
${raster_ref_path}/${OUTPROBAMAP}
${TEMP}/${OUTPROBAMAP}
)
endif()
endif()
endforeach()
#----------- LIBSVM Classifier TESTS ----------------
if(OTB_USE_LIBSVM)
otb_test_application(NAME apTvClImageSVMClassifierQB2
APP ImageClassifier
OPTIONS -in ${INPUTDATA}/Classification/QB_2_ortho.tif
-imstat ${INPUTDATA}/Classification/clImageStatisticsQB1.xml
-model ${INPUTDATA}/Classification/clsvmModelQB1.svm
-out ${TEMP}/clLabeledImageQB2.tif
VALID --compare-image ${NOTOL}
${OTBAPP_BASELINE}/clLabeledImageQB2.tif
${TEMP}/clLabeledImageQB2.tif)
otb_test_application(NAME apTvClImageSVMClassifierQB3
APP ImageClassifier
OPTIONS -in ${INPUTDATA}/Classification/QB_3_ortho.tif
-imstat ${INPUTDATA}/Classification/clImageStatisticsQB1.xml
-model ${INPUTDATA}/Classification/clsvmModelQB1.svm
-out ${TEMP}/clLabeledImageQB3.tif
VALID --compare-image ${NOTOL}
${OTBAPP_BASELINE}/clLabeledImageQB3.tif
281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
${TEMP}/clLabeledImageQB3.tif)
otb_test_application(NAME apTvClImageSVMClassifierQB1
APP ImageClassifier
OPTIONS -in ${INPUTDATA}/Classification/QB_1_ortho.tif
-imstat ${INPUTDATA}/Classification/clImageStatisticsQB1.xml
-model ${INPUTDATA}/Classification/clsvmModelQB1.svm
-out ${TEMP}/clLabeledImageQB1.tif
VALID --compare-image ${NOTOL}
${OTBAPP_BASELINE}/clLabeledImageQB1.tif
${TEMP}/clLabeledImageQB1.tif)
otb_test_application(NAME apTvClImageSVMClassifierQB456_6
APP ImageClassifier
OPTIONS -in ${INPUTDATA}/Classification/QB_6_extract.tif
-mask ${INPUTDATA}/Classification/QB_6_mask.tif
-imstat ${INPUTDATA}/Classification/clImageStatisticsQB456.xml
-model ${INPUTDATA}/Classification/clsvmModelQB456.svm
-out ${TEMP}/clLabeledImageQB456_6.tif
VALID --compare-image ${NOTOL}
${OTBAPP_BASELINE}/clLabeledImageQB456_6.tif
${TEMP}/clLabeledImageQB456_6.tif)
otb_test_application(NAME apTvClImageSVMClassifierQB456_4
APP ImageClassifier
OPTIONS -in ${INPUTDATA}/Classification/QB_4_extract.tif
-imstat ${INPUTDATA}/Classification/clImageStatisticsQB456.xml
-model ${INPUTDATA}/Classification/clsvmModelQB456.svm
-out ${TEMP}/clLabeledImageQB456_4.tif
VALID --compare-image ${NOTOL}
${OTBAPP_BASELINE}/clLabeledImageQB456_4.tif
${TEMP}/clLabeledImageQB456_4.tif)
otb_test_application(NAME apTvClImageSVMClassifierQB456_5
APP ImageClassifier
OPTIONS -in ${INPUTDATA}/Classification/QB_5_extract.tif
-imstat ${INPUTDATA}/Classification/clImageStatisticsQB456.xml
-model ${INPUTDATA}/Classification/clsvmModelQB456.svm
-out ${TEMP}/clLabeledImageQB456_5.tif
VALID --compare-image ${NOTOL}
${OTBAPP_BASELINE}/clLabeledImageQB456_5.tif
${TEMP}/clLabeledImageQB456_5.tif)
otb_test_application(NAME apTvClImageSVMClassifierQB123_6
APP ImageClassifier
OPTIONS -in ${INPUTDATA}/Classification/QB_6_extract.tif
-imstat ${INPUTDATA}/Classification/clImageStatisticsQB123.xml
-model ${INPUTDATA}/Classification/clsvmModelQB123.svm
-out ${TEMP}/clLabeledImageQB123_6.tif
VALID --compare-image ${NOTOL}
${OTBAPP_BASELINE}/clLabeledImageQB123_6.tif
${TEMP}/clLabeledImageQB123_6.tif)
otb_test_application(NAME apTvClImageSVMClassifierQB456_1
APP ImageClassifier
OPTIONS -in ${INPUTDATA}/Classification/QB_1_ortho.tif
-imstat ${INPUTDATA}/Classification/clImageStatisticsQB456.xml
-model ${INPUTDATA}/Classification/clsvmModelQB456.svm
-out ${TEMP}/clLabeledImageQB456_1.tif
VALID --compare-image ${NOTOL}
${OTBAPP_BASELINE}/clLabeledImageQB456_1.tif
${TEMP}/clLabeledImageQB456_1.tif)
otb_test_application(NAME apTvClImageSVMClassifierQB123_3
APP ImageClassifier
OPTIONS -in ${INPUTDATA}/Classification/QB_3_ortho.tif
-imstat ${INPUTDATA}/Classification/clImageStatisticsQB123.xml
-model ${INPUTDATA}/Classification/clsvmModelQB123.svm
-out ${TEMP}/clLabeledImageQB123_3.tif
VALID --compare-image ${NOTOL}
351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
${OTBAPP_BASELINE}/clLabeledImageQB123_3.tif
${TEMP}/clLabeledImageQB123_3.tif)
otb_test_application(NAME apTvClImageSVMClassifierQB123_2
APP ImageClassifier
OPTIONS -in ${INPUTDATA}/Classification/QB_2_ortho.tif
-imstat ${INPUTDATA}/Classification/clImageStatisticsQB123.xml
-model ${INPUTDATA}/Classification/clsvmModelQB123.svm
-out ${TEMP}/clLabeledImageQB123_2.tif
VALID --compare-image ${NOTOL}
${OTBAPP_BASELINE}/clLabeledImageQB123_2.tif
${TEMP}/clLabeledImageQB123_2.tif)
otb_test_application(NAME apTvClImageSVMClassifierQB123_1
APP ImageClassifier
OPTIONS -in ${INPUTDATA}/Classification/QB_1_ortho.tif
-imstat ${INPUTDATA}/Classification/clImageStatisticsQB123.xml
-model ${INPUTDATA}/Classification/clsvmModelQB123.svm
-out ${TEMP}/clLabeledImageQB123_1.tif
VALID --compare-image ${NOTOL}
${OTBAPP_BASELINE}/clLabeledImageQB123_1.tif
${TEMP}/clLabeledImageQB123_1.tif)
endif()
#----------- ComputeConfusionMatrix TESTS ----------------
otb_test_application(NAME apTvComputeConfusionMatrixV
APP ComputeConfusionMatrix
OPTIONS -in ${OTBAPP_BASELINE}/clLabeledImageQB123_1.tif
-ref vector
-ref.vector.in ${INPUTDATA}/Classification/VectorData_QB1_ter_utm31n.sqlite
-ref.vector.field class
-out ${TEMP}/apTvComputeConfusionMatrixTconfusionVOut.csv
VALID --compare-ascii ${NOTOL}
${OTBAPP_BASELINE_FILES}/apTvComputeConfusionMatrixTconfusionVOut.csv
${TEMP}/apTvComputeConfusionMatrixTconfusionVOut.csv)
otb_test_application(NAME apTvComputeConfusionMatrixExtraReferenceLabelsV
APP ComputeConfusionMatrix
OPTIONS -in ${INPUTDATA}/Classification/QB_1_ortho_C7.tif
-ref vector
-ref.vector.in ${INPUTDATA}/Classification/VectorData_QB1_ter_utm31n.sqlite
-ref.vector.field class
-out ${TEMP}/apTvComputeConfusionMatrixExtraRefLabelsVOut.csv
VALID --compare-ascii ${NOTOL}
${OTBAPP_BASELINE_FILES}/apTvComputeConfusionMatrixExtraRefLabelsVOut.csv
${TEMP}/apTvComputeConfusionMatrixExtraRefLabelsVOut.csv)
otb_test_application(NAME apTvComputeConfusionMatrixExtraReferenceLabelsR
APP ComputeConfusionMatrix
OPTIONS -in ${INPUTDATA}/Classification/QB_1_ortho_C7.tif
-ref raster
-ref.raster.in ${INPUTDATA}/Classification/clLabeledImageQB456_1_NoData_255.tif
-ref.raster.nodata 255
-nodatalabel 255
-out ${TEMP}/apTvComputeConfusionMatrixExtraRefLabelsROut.csv
VALID --compare-ascii ${NOTOL}
${OTBAPP_BASELINE_FILES}/apTvComputeConfusionMatrixExtraRefLabelsROut.csv
${TEMP}/apTvComputeConfusionMatrixExtraRefLabelsROut.csv)
otb_test_application(NAME apTvComputeConfusionMatrixR
APP ComputeConfusionMatrix
OPTIONS -in ${OTBAPP_BASELINE}/clLabeledImageQB123_1.tif
-ref raster
-ref.raster.in ${INPUTDATA}/Classification/clLabeledImageQB456_1_NoData_255.tif
-ref.raster.nodata 255
-nodatalabel 255
-out ${TEMP}/apTvComputeConfusionMatrixTconfusionROut.csv
VALID --compare-ascii ${NOTOL}
${OTBAPP_BASELINE_FILES}/apTvComputeConfusionMatrixTconfusionROut.csv
421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490
${TEMP}/apTvComputeConfusionMatrixTconfusionROut.csv)
otb_test_application(NAME apTvComputeConfusionMatrixExtraProducedLabelsR
APP ComputeConfusionMatrix
OPTIONS -in ${INPUTDATA}/Classification/clLabeledImageQB456_1_NoData_255.tif
-ref raster
-ref.raster.in ${INPUTDATA}/Classification/QB_1_ortho_C8.tif
-ref.raster.nodata 255
-nodatalabel 255
-out ${TEMP}/apTvComputeConfusionMatrixExtraProdLabelsROut.csv
VALID --compare-ascii ${NOTOL}
${OTBAPP_BASELINE_FILES}/apTvComputeConfusionMatrixExtraProdLabelsROut.csv
${TEMP}/apTvComputeConfusionMatrixExtraProdLabelsROut.csv)
#----------- ComputeContingencyTable TESTS ----------------
otb_test_application(NAME apTvComputeContingencyTableExtraProducedLabelsR
APP ComputeConfusionMatrix
OPTIONS -in ${INPUTDATA}/Classification/clLabeledImageQB456_1_NoData_255.tif
-ref raster
-ref.raster.in ${INPUTDATA}/Classification/QB_1_ortho_C8.tif
-ref.raster.nodata 255
-nodatalabel 255
-format contingencytable
-out ${TEMP}/apTvComputeContingencyTableExtraProdLabelsROut.csv
VALID --compare-ascii ${NOTOL}
${OTBAPP_BASELINE_FILES}/apTvComputeContingencyTableExtraProdLabelsROut.csv
${TEMP}/apTvComputeContingencyTableExtraProdLabelsROut.csv)
#----------- FusionOfClassifications TESTS ----------------
otb_test_application(NAME apTvFusionOfClassificationsDSPrecision6Inputs
APP FusionOfClassifications
OPTIONS -il ${INPUTDATA}/Classification/QB_1_ortho_C1.tif
${INPUTDATA}/Classification/QB_1_ortho_C2.tif
${INPUTDATA}/Classification/QB_1_ortho_C3.tif
${INPUTDATA}/Classification/QB_1_ortho_C4.tif
${INPUTDATA}/Classification/QB_1_ortho_C5.tif
${INPUTDATA}/Classification/QB_1_ortho_C6.tif
-method dempstershafer
-method.dempstershafer.cmfl ${INPUTDATA}/Classification/QB_1_ortho_C1.csv
${INPUTDATA}/Classification/QB_1_ortho_C2.csv
${INPUTDATA}/Classification/QB_1_ortho_C3.csv
${INPUTDATA}/Classification/QB_1_ortho_C4.csv
${INPUTDATA}/Classification/QB_1_ortho_C5.csv
${INPUTDATA}/Classification/QB_1_ortho_C6.csv
-method.dempstershafer.mob precision
-nodatalabel 10
-undecidedlabel 7
-out ${TEMP}/apTvFusionOfClassificationsDS6InputsPrecisionOutput.tif uint8
VALID --compare-image ${NOTOL}
${BASELINE}/QB_1_ortho_DS_FUSED_PRECISION.tif
${TEMP}/apTvFusionOfClassificationsDS6InputsPrecisionOutput.tif)
otb_test_application(NAME apTvFusionOfClassificationsMV3Inputs
APP FusionOfClassifications
OPTIONS -il ${INPUTDATA}/Classification/clLabeledImageQB123_1.tif
${INPUTDATA}/Classification/clLabeledImageQB456_1.tif
${INPUTDATA}/Classification/clLabeledImageQB1.tif
-method majorityvoting
-undecidedlabel 100
-out ${TEMP}/apTvFusionOfClassificationsMV3InputsOutput.tif uint16
VALID --compare-image ${NOTOL}
${OTBAPP_BASELINE}/apTvFusionOfClassifications3InputsOutput.tif
${TEMP}/apTvFusionOfClassificationsMV3InputsOutput.tif)
otb_test_application(NAME apTvFusionOfClassificationsDSKappa6Inputs
APP FusionOfClassifications
OPTIONS -il ${INPUTDATA}/Classification/QB_1_ortho_C1.tif
${INPUTDATA}/Classification/QB_1_ortho_C2.tif
${INPUTDATA}/Classification/QB_1_ortho_C3.tif
491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560
${INPUTDATA}/Classification/QB_1_ortho_C4.tif
${INPUTDATA}/Classification/QB_1_ortho_C5.tif
${INPUTDATA}/Classification/QB_1_ortho_C6.tif
-method dempstershafer
-method.dempstershafer.cmfl ${INPUTDATA}/Classification/QB_1_ortho_C1.csv
${INPUTDATA}/Classification/QB_1_ortho_C2.csv
${INPUTDATA}/Classification/QB_1_ortho_C3.csv
${INPUTDATA}/Classification/QB_1_ortho_C4.csv
${INPUTDATA}/Classification/QB_1_ortho_C5.csv
${INPUTDATA}/Classification/QB_1_ortho_C6.csv
-method.dempstershafer.mob kappa
-nodatalabel 10
-undecidedlabel 7
-out ${TEMP}/apTvFusionOfClassificationsDS6InputsKappaOutput.tif uint8
VALID --compare-image ${NOTOL}
${BASELINE}/QB_1_ortho_DS_FUSED_KAPPA.tif
${TEMP}/apTvFusionOfClassificationsDS6InputsKappaOutput.tif)
otb_test_application(NAME apTvFusionOfClassificationsDSRecall6Inputs
APP FusionOfClassifications
OPTIONS -il ${INPUTDATA}/Classification/QB_1_ortho_C1.tif
${INPUTDATA}/Classification/QB_1_ortho_C2.tif
${INPUTDATA}/Classification/QB_1_ortho_C3.tif
${INPUTDATA}/Classification/QB_1_ortho_C4.tif
${INPUTDATA}/Classification/QB_1_ortho_C5.tif
${INPUTDATA}/Classification/QB_1_ortho_C6.tif
-method dempstershafer
-method.dempstershafer.cmfl ${INPUTDATA}/Classification/QB_1_ortho_C1.csv
${INPUTDATA}/Classification/QB_1_ortho_C2.csv
${INPUTDATA}/Classification/QB_1_ortho_C3.csv
${INPUTDATA}/Classification/QB_1_ortho_C4.csv
${INPUTDATA}/Classification/QB_1_ortho_C5.csv
${INPUTDATA}/Classification/QB_1_ortho_C6.csv
-method.dempstershafer.mob recall
-nodatalabel 10
-undecidedlabel 7
-out ${TEMP}/apTvFusionOfClassificationsDS6InputsRecallOutput.tif uint8
VALID --compare-image ${NOTOL}
${BASELINE}/QB_1_ortho_DS_FUSED_RECALL.tif
${TEMP}/apTvFusionOfClassificationsDS6InputsRecallOutput.tif)
otb_test_application(NAME apTvFusionOfClassificationsDSAccuracy6Inputs
APP FusionOfClassifications
OPTIONS -il ${INPUTDATA}/Classification/QB_1_ortho_C1.tif
${INPUTDATA}/Classification/QB_1_ortho_C2.tif
${INPUTDATA}/Classification/QB_1_ortho_C3.tif
${INPUTDATA}/Classification/QB_1_ortho_C4.tif
${INPUTDATA}/Classification/QB_1_ortho_C5.tif
${INPUTDATA}/Classification/QB_1_ortho_C6.tif
-method dempstershafer
-method.dempstershafer.cmfl ${INPUTDATA}/Classification/QB_1_ortho_C1.csv
${INPUTDATA}/Classification/QB_1_ortho_C2.csv
${INPUTDATA}/Classification/QB_1_ortho_C3.csv
${INPUTDATA}/Classification/QB_1_ortho_C4.csv
${INPUTDATA}/Classification/QB_1_ortho_C5.csv
${INPUTDATA}/Classification/QB_1_ortho_C6.csv
-method.dempstershafer.mob accuracy
-nodatalabel 10
-undecidedlabel 7
-out ${TEMP}/apTvFusionOfClassificationsDS6InputsAccuracyOutput.tif uint8
VALID --compare-image ${NOTOL}
${BASELINE}/QB_1_ortho_DS_FUSED_ACCURACY.tif
${TEMP}/apTvFusionOfClassificationsDS6InputsAccuracyOutput.tif)
otb_test_application(NAME apTvFusionOfClassificationsMV2Inputs
APP FusionOfClassifications
OPTIONS -il ${INPUTDATA}/Classification/clLabeledImageQB123_1.tif
${INPUTDATA}/Classification/clLabeledImageQB456_1.tif
-method majorityvoting
-undecidedlabel 100
561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630
-out ${TEMP}/apTvFusionOfClassificationsMV2InputsOutput.tif uint16
VALID --compare-image ${NOTOL}
${OTBAPP_BASELINE}/apTvFusionOfClassifications2InputsOutput.tif
${TEMP}/apTvFusionOfClassificationsMV2InputsOutput.tif)
#----------- KMeansClassification TESTS ----------------
if(OTB_USE_SHARK)
otb_test_application(NAME apTvClKMeansImageClassification_composite
APP KMeansClassification
OPTIONS -in ${INPUTDATA}/qb_RoadExtract.img
-vm ${INPUTDATA}/qb_RoadExtract_mask_binary.png
-ts 30000
-nc 5
-maxit 10000
-sampler periodic
-rand 121212
-nodatalabel 255
-centroids.out ${TEMP}/apTvClKMeansImageClassificationFilterOutMeans.txt
-out ${TEMP}/apTvClKMeansImageClassificationFilterOutput.tif uint8
-cleanup 0
VALID --compare-image ${NOTOL}
${OTBAPP_BASELINE}/apTvClKMeansImageClassificationFilterOutput.tif
${TEMP}/apTvClKMeansImageClassificationFilterOutput.tif )
endif()
if(OTB_USE_SHARK)
otb_test_application(NAME apTvClKMeansImageClassification_inputCentroids
APP KMeansClassification
OPTIONS -in ${INPUTDATA}/qb_RoadExtract.img
-ts 30000
-nc 5
-maxit 10000
-sampler periodic
-nodatalabel 255
-rand 121212
-centroids.in ${INPUTDATA}/Classification/KMeansInputCentroids.txt
-out ${TEMP}/apTvClKMeansImageClassificationInputCentroids.tif uint8
-cleanup 0
VALID --compare-image ${NOTOL}
${OTBAPP_BASELINE}/apTvClKMeansImageClassificationInputCentroids.tif
${TEMP}/apTvClKMeansImageClassificationInputCentroids.tif )
endif()
#----------- TrainImagesClassifier TESTS ----------------
if(OTB_USE_LIBSVM)
otb_test_application(NAME apTvClTrainSVMImagesClassifierQB1_allOpt_InXML
APP TrainImagesClassifier
OPTIONS
-inxml ${TEMP}/clsvmModelQB1_allOpt.xml
-io.out ${TEMP}/clsvmModelQB1_allOpt_InXML.svm
-io.confmatout ${TEMP}/clsvmConfMatQB1_allOpt_InXML.svm
VALID ${ascii_confmat_comparison}
${OTBAPP_BASELINE_FILES}/clsvmConfMatQB1_allOpt.svm
${TEMP}/clsvmConfMatQB1_allOpt_InXML.svm)
set_tests_properties(apTvClTrainSVMImagesClassifierQB1_allOpt_InXML PROPERTIES DEPENDS apTvClTrainSVMImagesClassifierQB1_allOpt)
otb_test_application(NAME apTvClTrainSVMImagesClassifierQB123
APP TrainImagesClassifier
OPTIONS -io.il ${INPUTDATA}/Classification/QB_1_ortho.tif
${INPUTDATA}/Classification/QB_2_ortho.tif
${INPUTDATA}/Classification/QB_3_ortho.tif
-io.vd ${INPUTDATA}/Classification/VectorData_QB1_utm31n.sqlite
${INPUTDATA}/Classification/VectorData_QB2_utm31n.sqlite
${INPUTDATA}/Classification/VectorData_QB3_utm31n.sqlite
-io.imstat ${INPUTDATA}/Classification/clImageStatisticsQB123.xml
-sample.vfn class
-classifier libsvm
-classifier.libsvm.opt true
631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700
-io.out ${TEMP}/clsvmModelQB123.svm
-rand 121212)
# RK: 09/2016. same reason explained for leTvSVMImageModelEstimatorTrainWithOptimization test
# VALID --compare-ascii ${NOTOL}
# ${OTBAPP_BASELINE_FILES}/clsvmModelQB123.svm
# ${TEMP}/clsvmModelQB123.svm
otb_test_application(NAME apTvClTrainSVMImagesClassifierQB1
APP TrainImagesClassifier
OPTIONS -io.il ${INPUTDATA}/Classification/QB_1_ortho.tif
-io.vd ${INPUTDATA}/Classification/VectorData_QB1_utm31n.sqlite
-io.imstat ${INPUTDATA}/Classification/clImageStatisticsQB1.xml
-classifier libsvm
-classifier.libsvm.opt true
-sample.vfn class
-io.out ${TEMP}/clsvmModelQB1.svm
-io.confmatout ${TEMP}/clsvmConfMatQB1.svm
-rand 121212
VALID ${ascii_confmat_comparison}
${OTBAPP_BASELINE_FILES}/clsvmConfMatQB1.svm
${TEMP}/clsvmConfMatQB1.svm)
otb_test_application(NAME apTvClTrainSVMImagesClassifierQB456
APP TrainImagesClassifier
OPTIONS -io.il ${INPUTDATA}/Classification/QB_4_extract.tif
${INPUTDATA}/Classification/QB_5_extract.tif
${INPUTDATA}/Classification/QB_6_extract.tif
-io.vd ${INPUTDATA}/Classification/VectorData_QB4_utm31n.sqlite
${INPUTDATA}/Classification/VectorData_QB5_utm31n.sqlite
${INPUTDATA}/Classification/VectorData_QB6_utm31n.sqlite
-io.imstat ${INPUTDATA}/Classification/clImageStatisticsQB456.xml
-sample.vfn class
-classifier libsvm
-classifier.libsvm.opt true
-io.out ${TEMP}/clsvmModelQB456.svm
-rand 121212)
# RK: 09/2016. same reason explained for leTvSVMImageModelEstimatorTrainWithOptimization test
# VALID --compare-ascii ${NOTOL}
# ${OTBAPP_BASELINE_FILES}/clsvmModelQB456.svm
# ${TEMP}/clsvmModelQB456.svm
otb_test_application(NAME apTvClTrainSVMImagesClassifierQB1_allOpt
APP TrainImagesClassifier
OPTIONS -io.il ${INPUTDATA}/Classification/QB_1_ortho.tif
-io.vd ${INPUTDATA}/Classification/VectorData_QB1_utm31n.sqlite
-io.imstat ${INPUTDATA}/Classification/clImageStatisticsQB1.xml
-classifier libsvm
-sample.mv 100
-sample.mt 100
-sample.vtr 0.5
-sample.vfn class
-classifier.libsvm.opt true
-rand 121212
-io.out ${TEMP}/clsvmModelQB1_allOpt.svm
-io.confmatout ${TEMP}/clsvmConfMatQB1_allOpt.svm
-outxml ${TEMP}/clsvmModelQB1_allOpt.xml
VALID ${ascii_confmat_comparison}
${OTBAPP_BASELINE_FILES}/clsvmConfMatQB1_allOpt.svm
${TEMP}/clsvmConfMatQB1_allOpt.svm)
endif()
#----------- ClassificationMapRegularization TESTS ----------------
otb_test_application(NAME apTvClassificationMapRegularization
APP ClassificationMapRegularization
OPTIONS -io.in ${OTBAPP_BASELINE}/clLabeledImageQB123_1.tif
-io.out ${TEMP}/clLabeledImageQB123_1_CMR_r2_nodl_10_undl_7.tif
-ip.radius 2
-ip.suvbool true
-ip.nodatalabel 10
701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770
-ip.undecidedlabel 7
VALID --compare-image ${NOTOL}
${OTBAPP_BASELINE}/clLabeledImageQB123_1_CMR_r2_nodl_10_undl_7.tif
${TEMP}/clLabeledImageQB123_1_CMR_r2_nodl_10_undl_7.tif)
#----------- OGRLayerClassifier TESTS ----------------
#----------- VectorClassifier TESTS ----------------
if(OTB_USE_OPENCV)
otb_test_application(NAME apTvClSVMVectorClassifier
APP VectorClassifier
OPTIONS -in ${INPUTDATA}/Classification/apTvClLabeledVector.shp
-instat ${OTBAPP_BASELINE_FILES}/apTvClComputeOGRLayersFeaturesStatistics.xml
-model ${OTBAPP_BASELINE_FILES}/apTvClModel.svm
-out ${TEMP}/apTvClSVMLabeledVector.shp
-feat meanB0 meanB1 meanB2 meanB3 varB0 varB1 varB2 varB3
-cfield class
VALID --compare-ogr 0.0
${OTBAPP_BASELINE_FILES}/apTvClSVMLabeledVector.shp
${TEMP}/apTvClSVMLabeledVector.shp)
endif()
#----------- ComputeImagesStatistics TESTS ----------------
otb_test_application(NAME apTvClComputeImagesStatisticsQB1
APP ComputeImagesStatistics
OPTIONS -il ${INPUTDATA}/Classification/QB_1_ortho.tif
-out ${TEMP}/apTvClEstimateImageStatisticsQB1.xml
VALID --compare-ascii ${NOTOL}
${OTBAPP_BASELINE_FILES}/clImageStatisticsQB1.xml
${TEMP}/apTvClEstimateImageStatisticsQB1.xml)
otb_test_application(NAME apTvClComputeImagesStatisticsQB456
APP ComputeImagesStatistics
OPTIONS -il ${INPUTDATA}/Classification/QB_4_extract.tif
${INPUTDATA}/Classification/QB_5_extract.tif
${INPUTDATA}/Classification/QB_6_extract.tif
-out ${TEMP}/apTvClEstimateImageStatisticsQB456.xml
VALID --compare-ascii ${NOTOL}
${OTBAPP_BASELINE_FILES}/clImageStatisticsQB456.xml
${TEMP}/apTvClEstimateImageStatisticsQB456.xml)
otb_test_application(NAME apTvClComputeImagesStatisticsQB123
APP ComputeImagesStatistics
OPTIONS -il ${INPUTDATA}/Classification/QB_1_ortho.tif
${INPUTDATA}/Classification/QB_2_ortho.tif
${INPUTDATA}/Classification/QB_3_ortho.tif
-out ${TEMP}/apTvClEstimateImageStatisticsQB123.xml
VALID --compare-ascii ${NOTOL}
${OTBAPP_BASELINE_FILES}/clImageStatisticsQB123.xml
${TEMP}/apTvClEstimateImageStatisticsQB123.xml)
if(OTB_USE_OPENCV)
#----------- TrainRegression TESTS ----------------
# y = 0.01*x^2 + 1.5*x - 300
otb_test_application(NAME apTvClTrainRegressionTest_monovar
APP TrainRegression
OPTIONS -io.il ${INPUTDATA}/QB_Toulouse_Ortho_regression.tif
-io.imstat ${INPUTDATA}/QB_Toulouse_Ortho_regression.xml
-io.out ${TEMP}/apTvClTrainRegressionTest_monovar.rf
-sample.mt 20000
-sample.mv 20000
-sample.vtr 0.5
-rand 121212
-classifier rf
-classifier.rf.ra 0.0001
-classifier.rf.max 6
-classifier.rf.acc 0.0005
TESTENVOPTIONS ${TEMP}/apTvClTrainRegressionTest_monovar.txt
VALID ${ascii_comparison}
771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840
${OTBAPP_BASELINE_FILES}/apTvClTrainRegressionTest_monovar.txt
${TEMP}/apTvClTrainRegressionTest_monovar.txt)
#----------- PredictRegression TESTS ----------------
otb_test_application(NAME apTvClPredictRegressionTest_monovar
APP PredictRegression
OPTIONS -in ${INPUTDATA}/QB_Toulouse_Ortho_PAN.tif
-model ${OTBAPP_BASELINE_FILES}/apTvClTrainRegressionTest_monovar.rf
-imstat ${INPUTDATA}/QB_Toulouse_Ortho_regression.xml
-out ${TEMP}/apTvClPredictRegressionTest_monovar.tif
VALID --compare-image 1
${OTBAPP_BASELINE}/apTvClPredictRegressionTest_monovar.tif
${TEMP}/apTvClPredictRegressionTest_monovar.tif)
endif()
#----------- PolygonClassStatistics TESTS ----------------
otb_test_application(NAME apTvClPolygonClassStatisticsTest
APP PolygonClassStatistics
OPTIONS -in ${INPUTDATA}/Classification/QB_1_ortho.tif
-vec ${INPUTDATA}/Classification/VectorData_QB1_utm31n.sqlite
-field class
-out ${TEMP}/apTvClPolygonClassStatisticsOut.xml
VALID --compare-ascii ${NOTOL}
${OTBAPP_BASELINE_FILES}/apTvClPolygonClassStatisticsOut.xml
${TEMP}/apTvClPolygonClassStatisticsOut.xml)
#----------- SampleSelection TESTS -----------------------
otb_test_application(NAME apTvClSampleSelection
APP SampleSelection
OPTIONS -in ${INPUTDATA}/Classification/QB_1_ortho.tif
-vec ${INPUTDATA}/Classification/VectorData_QB1_utm31n.sqlite
-field class
-out ${TEMP}/apTvClSampleSelectionOut.sqlite
-instats ${OTBAPP_BASELINE_FILES}/apTvClPolygonClassStatisticsOut.xml
-outrates ${TEMP}/apTvClSampleSelectionOutRates.txt
-strategy byclass
-strategy.byclass.in ${INPUTDATA}/Classification/sampling_required.csv
-sampler periodic
VALID --compare-ogr ${NOTOL}
${OTBAPP_BASELINE_FILES}/apTvClSampleSelectionOut.sqlite
${TEMP}/apTvClSampleSelectionOut.sqlite)
#----------- SampleExtraction TESTS -----------------------
otb_test_application(NAME apTvClSampleExtraction
APP SampleExtraction
OPTIONS -in ${INPUTDATA}/Classification/QB_1_ortho.tif
-vec ${INPUTDATA}/Classification/apTvClSampleSelectionOut.sqlite
-field class
-out ${TEMP}/apTvClSampleExtractionOut.sqlite
VALID --compare-ogr ${NOTOL}
${OTBAPP_BASELINE_FILES}/apTvClSampleExtractionOut.sqlite
${TEMP}/apTvClSampleExtractionOut.sqlite)
#----------- TrainVectorClassifier TESTS ----------------
if(OTB_USE_OPENCV)
otb_test_application(NAME apTvClTrainVectorClassifier
APP TrainVectorClassifier
OPTIONS -io.vd ${INPUTDATA}/Classification/apTvClSampleExtractionOut.sqlite
-feat value_0 value_1 value_2 value_3
-cfield class
-classifier rf
-io.confmatout ${TEMP}/apTvClTrainVectorClassifierConfMat.txt
-io.out ${TEMP}/apTvClTrainVectorClassifierModel.rf
VALID ${ascii_comparison}
${OTBAPP_BASELINE_FILES}/apTvClTrainVectorClassifierModel.rf
${TEMP}/apTvClTrainVectorClassifierModel.rf)
endif()
#----------- TrainVectorRegression TESTS ----------------
841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910
if(OTB_USE_OPENCV)
otb_test_application(NAME apTvClTrainVectorRegression
APP TrainVectorRegression
OPTIONS -io.vd ${INPUTDATA}/Classification/apTvClSampleExtractionOut.sqlite
-feat value_0 value_1 value_2 value_3
-cfield class
-classifier rf
-io.out ${TEMP}/apTvClTrainVectorRegressionModel.rf
-io.mse ${TEMP}/apTvClTrainVectorRegressionModel.txt
TESTENVOPTIONS ${TEMP}/apTvClTrainVectorRegressionModel.txt
VALID ${ascii_comparison}
${OTBAPP_BASELINE_FILES}/apTvClTrainVectorRegressionModel.txt
${TEMP}/apTvClTrainVectorRegressionModel.txt)
endif()
#----------- TrainVectorClassifier unsupervised TESTS ----------------
if(OTB_USE_SHARK)
otb_test_application(NAME apTvClTrainVectorUnsupervised
APP TrainVectorClassifier
OPTIONS -io.vd ${INPUTDATA}/Classification/apTvClSampleExtractionOut.sqlite
-feat value_0 value_1 value_2 value_3
-classifier sharkkm
-io.out ${TEMP}/apTvClTrainVectorClusteringModel.txt)
otb_test_application(NAME apTvClTrainVectorUnsupervisedWithClass
APP TrainVectorClassifier
OPTIONS -io.vd ${INPUTDATA}/Classification/apTvClSampleExtractionOut.sqlite
-feat value_0 value_1 value_2 value_3
-cfield class
-classifier sharkkm
-io.out ${TEMP}/apTvClTrainVectorClusteringModelWithClass.txt)
endif()
#------------ MultiImageSamplingRate TESTS ----------------
otb_test_application(
NAME apTvClMultiImageSamplingRate
APP MultiImageSamplingRate
OPTIONS -il ${INPUTDATA}/Classification/vector_stats_QB1.xml
${INPUTDATA}/Classification/vector_stats_QB2.xml
${INPUTDATA}/Classification/vector_stats_QB3.xml
-out ${TEMP}/apTvClMultiImageSamplingRate_out.csv
-strategy constant
-strategy.constant.nb "300"
-mim proportional
VALID --compare-n-ascii ${NOTOL} 3
${OTBAPP_BASELINE_FILES}/apTvClMultiImageSamplingRate_out_1.csv
${TEMP}/apTvClMultiImageSamplingRate_out_1.csv
${OTBAPP_BASELINE_FILES}/apTvClMultiImageSamplingRate_out_2.csv
${TEMP}/apTvClMultiImageSamplingRate_out_2.csv
${OTBAPP_BASELINE_FILES}/apTvClMultiImageSamplingRate_out_3.csv
${TEMP}/apTvClMultiImageSamplingRate_out_3.csv
)
#------------ SampleAgmentation TESTS ----------------
otb_test_application(NAME apTvClSampleAugmentationReplicate
APP SampleAugmentation
OPTIONS -in ${INPUTDATA}/Classification/apTvClSampleExtractionOut.sqlite
-field class
-label 3
-samples 100
-out ${TEMP}/apTvClSampleAugmentationReplicate.sqlite
-exclude originfid
-strategy replicate
)
otb_test_application(NAME apTvClSampleAugmentationJitter
APP SampleAugmentation
OPTIONS -in ${INPUTDATA}/Classification/apTvClSampleExtractionOut.sqlite
-field class
-label 3
911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980
-samples 100
-out ${TEMP}/apTvClSampleAugmentationJitter.sqlite
-exclude originfid
-strategy jitter
-strategy.jitter.stdfactor 10
)
otb_test_application(NAME apTvClSampleAugmentationSmote
APP SampleAugmentation
OPTIONS -in ${INPUTDATA}/Classification/apTvClSampleExtractionOut.sqlite
-field class
-label 3
-samples 100
-out ${TEMP}/apTvClSampleAugmentationSmote.sqlite
-exclude originfid
-strategy smote
-strategy.smote.neighbors 5
)
#----------- ZonalStatistics TESTS ----------------
otb_test_application(NAME apTvClZonalStatisticsVec
APP ZonalStatistics
OPTIONS -inzone vector -inzone.vector.in ${INPUTDATA}/Classification/VectorData_QB1_ter_utm31n.sqlite -out.vector.filename ${TEMP}/apTvClVectorData_QB1_ter_with_stats.sqlite -in ${INPUTDATA}/Classification/QB_1_ortho.tif -inzone.vector.reproject 1
VALID --compare-ogr ${EPSILON_9}
${OTBAPP_BASELINE_FILES}/apTvClVectorData_QB1_ter_with_stats.sqlite
${TEMP}/apTvClVectorData_QB1_ter_with_stats.sqlite)
otb_test_application(NAME apTvClZonalStatisticsImg
APP ZonalStatistics
OPTIONS -inzone labelimage -inzone.labelimage.in ${INPUTDATA}/Classification/VectorData_QB1_ter.tif -out.xml.filename ${TEMP}/apTvClVectorData_QB1_ter_stats.xml -in ${INPUTDATA}/Classification/QB_1_ortho.tif -out xml
VALID --compare-ascii ${NOTOL}
${OTBAPP_BASELINE_FILES}/apTvClVectorData_QB1_ter_stats.xml
${TEMP}/apTvClVectorData_QB1_ter_stats.xml)
otb_test_application(NAME apTvClZonalStatisticsImgNoData
APP ZonalStatistics
OPTIONS -inzone labelimage -inzone.labelimage.in ${INPUTDATA}/Classification/VectorData_QB1_ter.tif -out.xml.filename ${TEMP}/apTvClVectorData_QB1_ter_stats_nodata.xml -in ${INPUTDATA}/Classification/QB_1_ortho.tif -inzone.labelimage.nodata -1 -out xml
VALID --compare-ascii ${NOTOL}
${OTBAPP_BASELINE_FILES}/apTvClVectorData_QB1_ter_stats_nodata.xml
${TEMP}/apTvClVectorData_QB1_ter_stats_nodata.xml)
otb_test_application(NAME apTvClZonalStatisticsInVecOutRaster
APP ZonalStatistics
OPTIONS
-in ${INPUTDATA}/Classification/QB_1_ortho.tif
-inzone vector
-inzone.vector.in ${INPUTDATA}/Classification/VectorData_QB1_ter_utm31n.sqlite
-inzone.vector.reproject 1
-out raster
-out.raster.filename ${TEMP}/apTvClZonalStats_QB1_ter_with_stats_invec.tif
-out.raster.bv -1
VALID --compare-image 1
${OTBAPP_BASELINE}/apTvClZonalStats_QB1_ter_with_stats_invec.tif
${TEMP}/apTvClZonalStats_QB1_ter_with_stats_invec.tif
)
otb_test_application(NAME apTvClZonalStatisticsInRasterOutRaster
APP ZonalStatistics
OPTIONS
-in ${INPUTDATA}/Classification/QB_1_ortho.tif
-inzone labelimage
-inzone.labelimage.in ${INPUTDATA}/Classification/VectorData_QB1_ter.tif
-inzone.labelimage.nodata -1
-out raster
-out.raster.filename ${TEMP}/apTvClZonalStats_QB1_ter_with_stats_inraster.tif
VALID --compare-image 1
${OTBAPP_BASELINE}/apTvClZonalStats_QB1_ter_with_stats_inraster.tif
${TEMP}/apTvClZonalStats_QB1_ter_with_stats_inraster.tif
)
981