<root>
  <key>SampleSelection</key>
  <exec>otbcli_SampleSelection</exec>
  <longname>Sample Selection</longname>
  <group>Learning</group>
  <description>Selects samples from a training vector data set.</description>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_InputImage">ParameterRaster</parameter_type>
    <key>in</key>
    <name>InputImage</name>
    <description>Support image that will be classified</description>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_InputImage">ParameterRaster</parameter_type>
    <key>mask</key>
    <name>InputMask</name>
    <description>Validity mask (only pixels corresponding to a mask value greater than 0 will be used for statistics)</description>
    <optional>True</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_InputFilename">ParameterFile</parameter_type>
    <key>vec</key>
    <name>Input vectors</name>
    <description>Input geometries to analyse</description>
    <isFolder />
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_OutputFilename">OutputFile</parameter_type>
    <key>out</key>
    <name>Output vectors</name>
    <description>Output resampled geometries</description>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_InputFilename">ParameterFile</parameter_type>
    <key>instats</key>
    <name>Input Statistics</name>
    <description>Input file storing statistics (XML format)</description>
    <isFolder />
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_OutputFilename">OutputFile</parameter_type>
    <key>outrates</key>
    <name>Output rates</name>
    <description>Output rates (CSV formatted)</description>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Choice">ParameterSelection</parameter_type>
    <key>sampler</key>
    <name>Sampler type</name>
    <description>Type of sampling (periodic, pattern based, random)</description>
    <options>
      <choices>
        <choice>periodic</choice>
        <choice>random</choice>
      </choices>
    </options>
    <default>0</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>sampler.periodic.jitter</key>
    <name>Jitter amplitude</name>
    <description>Jitter amplitude added during sample selection (0 = no jitter)</description>
    <minValue />
    <maxValue />
    <default>0</default>
    <optional>True</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Choice">ParameterSelection</parameter_type>
    <key>strategy</key>
    <name>Sampling strategy</name>
    <description />
    <options>
      <choices>
        <choice>byclass</choice>
        <choice>constant</choice>
        <choice>percent</choice>
        <choice>total</choice>
        <choice>smallest</choice>
        <choice>all</choice>
      </choices>
    </options>
    <default>4</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_InputFilename">ParameterFile</parameter_type>
    <key>strategy.byclass.in</key>
    <name>Number of samples by class</name>
    <description>Number of samples by class (CSV format with class name in 1st column and required samples in the 2nd.</description>
    <isFolder />
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>strategy.constant.nb</key>
    <name>Number of samples for all classes</name>
    <description>Number of samples for all classes</description>
    <minValue />
    <maxValue />
    <default>0</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Float">ParameterNumber</parameter_type>
    <key>strategy.percent.p</key>
    <name>The percentage to use</name>
    <description>The percentage to use</description>
    <minValue />
    <maxValue />
    <default>0.5</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>strategy.total.v</key>
    <name>The number of samples to generate</name>
    <description>The number of samples to generate</description>
    <minValue />
    <maxValue />
    <default>1000</default>
    <optional>False</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_String">ParameterString</parameter_type>
    <key>field</key>
    <name>Field Name</name>
    <description>Name of the field carrying the class name in the input vectors.</description>
    <default>class</default>
    <multiline />
    <optional>True</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_Int">ParameterNumber</parameter_type>
    <key>layer</key>
    <name>Layer Index</name>
    <description>Layer index to read in the input vector file.</description>
    <minValue />
    <maxValue />
    <default>0</default>
    <optional>True</optional>
  </parameter>
  <parameter>
    <parameter_type source_parameter_type="ParameterType_RAM">ParameterNumber</parameter_type>
    <key>ram</key>
    <name>Available RAM (Mb)</name>
    <description>Available memory for processing (in MB)</description>
    <minValue />
    <maxValue />
    <default>128</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>
