Skip To Content
ArcGIS Developers
Dashboard

Train Classifier

Description

Train Classifier diagram

The Train Classifier task is a service to train image classifiers in a deep learning model and return an .ecs file in JSON. The .ecs file is used in the Classify task.

This task can be used to train a classifier using a single multiband raster, or using a change analysis raster generated by the AnalyzeChangesUsingCCDC or AnalyzeChangesUsingLandTrendr tools. When training using a change analysis raster, the output from the Classify task will be a time series of classified rasters.

Request parameters

ParameterDetails
inputRaster

(Required)

The complete JSON rft (uri or by value), the complete XML rft (uri or value), portal item ID, image service URL, cloud raster dataset, or shared raster dataset that will be used for training. If multiple input types are provided, the itemId takes priority.

Syntax: A string describes the input raster

Input raster

Example:

//Portal Item ID
{"itemId": <portal item id>}

//Image Service URL
{"url": <image service url}

//Service Properties
{"serviceProperties":{"name":"testrasteranalysis",
  "serviceUrl":"https://<server name>/server/rest/services/Hosted/testrasteranalysis/ImageServer"},
  "itemProperties":{"itemId":"8cfbd3ec25584d0d8f4ed23b8ff7c43b", "folderId", "sdfwerfbd3ec25584d0d8f4",: }}

Raster dataset example

{
  "rasterFunction":"ExtractBand",
  "rasterFunctionArguments":{
    "BandIDs":[1,2,4],
    "Raster": <image service url>
  }
}
inputTrainingSampleJSON

(Required)

This is the JSON representation of the training samples. Its format is the same as the JSON converted from a training shapefile that was saved out by the ArcMap image classification toolbar.

Syntax: JSON object describes the training samples.

{
  "displayFieldName": "",
  "fieldAliases":{
    "FID":"FID",
    "Classname":"Classname",
    "Classvalue":"Classvalue",
    "RED":"RED",
    "GREEN":"GREEN", 
    "BLUE":"BLUE",
    "Count":"Count"
  },
  "geometryType":"esriGeometryPolygon",
  "spatialReference":{
    "wkid":102719,
    "latestWkid":2264
  },
  "fields":[
    {
      "name":"FID",
      "type":"esriFieldTypeOID",
      "alias":"FID"
    },
    {
      "name":"Classname",
      "type":"esriFieldTypeString",
      "alias":"Classname",
      "length":254
    },
    {
      "name":"Classvalue",
      "type":"esriFieldTypeInteger",
      "alias":"Classvalue"
    },
    {
      "name":"RED",
      "type":"esriFieldTypeInteger",
      "alias":"RED"
    },
    {
      "name":"GREEN",
      "type":"esriFieldTypeInteger",
      "alias":"GREEN"
    },
    {
      "name":"BLUE",
      "type":"esriFieldTypeInteger",
      "alias":"BLUE",
    },
    {
      "name":"Count",
      "type":"esriFieldTypeInteger",
      "alias":"Count"
    }
  ],
  "features":[  ]
}

classifierParameters

(Required)

The classifier algorithm and parameters used in the supervised training.

Random trees example

{
  "method":"rt",
  "params": {
    "maxNumTrees":50,
    "maxTreeDepth":30,
    "maxSampleClass":1000
  }
}

Support vector machine example

{
  "method":"svm",
  "params":{"maxSampleClass":1000}
}

Maximum likelihood example

{"method":"mlc"}
segmentedRaster

(Optional)

The complete JSON rft (uri or by value), the complete XML rft (uri or by value), portal item ID, image service URL, cloud raster dataset, or shared raster dataset that will be used for training as the segmented raster input. If multiple inputs are given, itemId takes priority.

Syntax: A string describes the input raster.

Example:

//Portal Item ID
{"itemId": <portal item id>}

//Image Service URL
{"url": <image service url}

//Service Properties
{"serviceProperties":{"name":"testrasteranalysis",
  "serviceUrl":"https://<server name>/server/rest/services/Hosted/testrasteranalysis/ImageServer"},
  "itemProperties":{"itemId":"8cfbd3ec25584d0d8f4ed23b8ff7c43b", "folderId", "sdfwerfbd3ec25584d0d8f4",: }}

Raster dataset example

{
  "rasterFunction": "SegmentMeanShift",
  "rasterFunctionArguments": {
    "SpectralDetail": 15.5,
    "SpatialDetail": 15,
    "MinNumPixelPerSegment": 20,
    "Raster": <image service url>
  }
}
segmentAttributes

(Required)

The string of segment attributes used in the training (separated by semicolon). It is the permutation of the following attributes: COLOR; MEAN; STD; COUNT; COMPACTNESS; RECTANGULARITY.

dimensionValueField

(Optional)

The field from the inputTrainingSampleJSON object that contains dimension value information. This parameter is required when using the output from the AnalyzeChangesUsingCCDC or AnalyzeChangesUsingLandTrendr tools for classification.

Syntax: String

Example:

//Portal Item ID
{"itemId": <portal item id>}

//Image Service URL
{"url": <image service url}

//Service Properties
{"serviceProperties":{"name":"testrasteranalysis",
  "serviceUrl":"https://<server name>/server/rest/services/Hosted/testrasteranalysis/ImageServer"},
  "itemProperties":{"itemId":"8cfbd3ec25584d0d8f4ed23b8ff7c43b", "folderId", "sdfwerfbd3ec25584d0d8f4",: }}

Response

When you submit a request, the task assigns a unique job ID for the transaction.

Syntax:

{
"jobId": "<unique job identifier>",
"jobStatus": "<job status>"
}

After the initial request is submitted, you can use the jobId to periodically check the status of the job and messages as described in Checking job status. Once the job has successfully completed, you use the jobId to retrieve the results. To track the status, you can make a request of the following form:

https://<raster analysis tools url>/TrainClassifier/jobs/<jobId>

When the status of the job request is esriJobSucceeded, you can access the results of the analysis by making a request of the following form:

https://<raster analysis tools url>/TrainClassifier/jobs/<jobId>/results/output_Classifier_Definition

The ecd is the value property of the resulting JSON.

Example usage

The following is a sample request URL for TrainClassifier:

https://services.myserver.com/arcgis/rest/services/System/RasterAnalysisTools/GPServer/TrainClassifier/submitJob