<root>
  <key>TrainImagesClassifier-libsvm</key>
  <exec>otbcli_TrainImagesClassifier</exec>
  <longname>TrainImagesClassifier (libsvm)</longname>
  <group>Learning</group>
  <description>Train a classifier from multiple pairs of images and training vector data.</description>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_InputImageList">ParameterMultipleInput</parameter_type>
    <key>io.il</key>
    <name>Input Image List</name>
    <description>A list of input images.</description>
    <datatype />
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_InputVectorDataList">ParameterMultipleInput</parameter_type>
    <key>io.vd</key>
    <name>Input Vector Data List</name>
    <description>A list of vector data to select the training samples.</description>
    <datatype />
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_InputFilename">ParameterFile</parameter_type>
    <key>io.imstat</key>
    <name>Input XML image statistics file</name>
    <description>Input XML file containing the mean and the standard deviation of the input images.</description>
    <isFolder />
    <optional>True</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_OutputFilename">OutputFile</parameter_type>
    <key>io.confmatout</key>
    <name>Output confusion matrix</name>
    <description>Output file containing the confusion matrix (.csv format).</description>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_OutputFilename">OutputFile</parameter_type>
    <key>io.out</key>
    <name>Output model</name>
    <description>Output file containing the model estimated (.txt format).</description>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Float">ParameterNumber</parameter_type>
    <key>elev.default</key>
    <name>Default elevation</name>
    <description>This parameter allows setting the default height above ellipsoid when there is no DEM available, no coverage for some points or pixels with no_data in the DEM tiles, and no geoid file has been set. This is also used by some application as an average elevation value.</description>
    <minValue />
    <maxValue />
    <default>0</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>sample.mt</key>
    <name>Maximum training sample size per class</name>
    <description>Maximum size per class (in pixels) of the training sample list (default = 1000) (no limit = -1). If equal to -1, then the maximal size of the available training sample list per class will be equal to the surface area of the smallest class multiplied by the training sample ratio.</description>
    <minValue />
    <maxValue />
    <default>1000</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>sample.mv</key>
    <name>Maximum validation sample size per class</name>
    <description>Maximum size per class (in pixels) of the validation sample list (default = 1000) (no limit = -1). If equal to -1, then the maximal size of the available validation sample list per class will be equal to the surface area of the smallest class multiplied by the validation sample ratio.</description>
    <minValue />
    <maxValue />
    <default>1000</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>sample.bm</key>
    <name>Bound sample number by minimum</name>
    <description>Bound the number of samples for each class by the number of available samples by the smaller class. Proportions between training and validation are respected. Default is true (=1).</description>
    <minValue />
    <maxValue />
    <default>1</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Empty">ParameterBoolean</parameter_type>
    <key>sample.edg</key>
    <name>On edge pixel inclusion</name>
    <description>Takes pixels on polygon edge into consideration when building training and validation samples.</description>
    <default>True</default>
    <optional>True</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Float">ParameterNumber</parameter_type>
    <key>sample.vtr</key>
    <name>Training and validation sample ratio</name>
    <description>Ratio between training and validation samples (0.0 = all training, 1.0 = all validation) (default = 0.5).</description>
    <minValue />
    <maxValue />
    <default>0.5</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_String">ParameterString</parameter_type>
    <key>sample.vfn</key>
    <name>Name of the discrimination field</name>
    <description>Name of the field used to discriminate class labels in the input vector data files.</description>
    <default>Class</default>
    <multiline />
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Choice">ParameterSelection</parameter_type>
    <key>classifier</key>
    <name>Classifier to use for the training</name>
    <description>Choice of the classifier to use for the training.</description>
    <options>
      <choices>
        <choice>libsvm</choice>
        </choices>
    </options>
    <default>0</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Choice">ParameterSelection</parameter_type>
    <key>classifier.libsvm.k</key>
    <name>SVM Kernel Type</name>
    <description>SVM Kernel Type.</description>
    <options>
      <choices>
        <choice>linear</choice>
        <choice>rbf</choice>
        <choice>poly</choice>
        <choice>sigmoid</choice>
      </choices>
    </options>
    <default>0</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Choice">ParameterSelection</parameter_type>
    <key>classifier.libsvm.m</key>
    <name>SVM Model Type</name>
    <description>Type of SVM formulation.</description>
    <options>
      <choices>
        <choice>csvc</choice>
        <choice>nusvc</choice>
        <choice>oneclass</choice>
      </choices>
    </options>
    <default>0</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Float">ParameterNumber</parameter_type>
    <key>classifier.libsvm.c</key>
    <name>Cost parameter C</name>
    <description>SVM models have a cost parameter C (1 by default) to control the trade-off between training errors and forcing rigid margins.</description>
    <minValue />
    <maxValue />
    <default>1</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Empty">ParameterBoolean</parameter_type>
    <key>classifier.libsvm.opt</key>
    <name>Parameters optimization</name>
    <description>SVM parameters optimization flag.</description>
    <default>True</default>
    <optional>True</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Empty">ParameterBoolean</parameter_type>
    <key>classifier.libsvm.prob</key>
    <name>Probability estimation</name>
    <description>Probability estimation flag.</description>
    <default>True</default>
    <optional>True</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>rand</key>
    <name>set user defined seed</name>
    <description>Set specific seed. with integer value.</description>
    <minValue />
    <maxValue />
    <default>0</default>
    <optional>True</optional>
  </parameter>
</root>
