ArcGIS REST API

Classify Pixels Using Deep Learning

Description

Classify Pixels Using Deep Learning diagram

The ClassifyPixelsUsingDeepLearning operation can be used to classify pixels in the imagery data using the designated deep learning model and generate an image service for the classified raster.

Request parameters

ParameterDetails
inputRaster

(Required)

The portal item Id, image service URL, cloud raster dataset, or shared raster dataset that will be classified. At least one type of input needs to be provided in the JSON object. If multiple inputs are given, the itemId takes priority.

Syntax: JSON object describes the input raster.

Example:

{"itemId": <portal item id>}
{"url": <image service url>}
{"uri": <cloud raster uri or shared data path>}
{"serviceProperties":{"name":"testrasteranalysis",
  "serviceUrl":"http://<server name>/server/rest/services/Hosted/testrasteranalysis/ImageServer"},
  "itemProperties":{"itemId":"8cfbd3ec25584d0d8f4ed23b8ff7c43b", "folderId":"sdfwerfbd3ec25584d0d8f4"}}

outputClassifedRaster

(Required)

The output hosted image service properties. If the hosted image service is already created, the portal item Id or service URL can be given to the service tool. The output path of the raster dataset generated in the raster store will be used to update the existing service definition. The service tool can also generate a new hosted image service with the given service properties.

The output hosted image service is stored in the raster store and shared on either the raster analysis image server or image hosting image server, depending on the Enterprise configuration.

Syntax:

Example:

{"itemId": <portal item id>}
{"url": <image service url}
{"uri": <cloud raster uri or shared data path>}
{"serviceProperties":{"name":"testrasteranalysis",
  "serviceUrl":"http://<server name>/server/rest/services/Hosted/testrasteranalysis/ImageServer"},
  "itemProperties":{"itemId":"8cfbd3ec25584d0d8f4ed23b8ff7c43b", "folderId":"sdfwerfbd3ec25584d0d8f4"}}

Model

(Required)

The input for model can be a model package item uploaded to your portal, an .emd file, or the entire JSON string of the model definition.

Syntax:

Example for portal item:

{"itemId": "x2u130909jcvojzkeeraedf"}
{"url": "https://<portal name>/portal/sharing/rest/content/items/x2u130909jcvojzkeeraedf"}

Example for .emd file:

{"uri": "\\\\sharedstorage\\sharefolder\\landclassification.emd"}

Example for JSON:

{
    "Framework": "TensorFlow",
    "ModelConfiguration": "DeepLab",
    "ModelFile":"frozen_inference_graph.pb",
    "ModelType":"ImageClassification",
    "ImageHeight":513,
    "ImageWidth":513,
    "ExtractBands":[0,1,2],
    "Classes": [
      {
        "Value": 0,
        "Name": "Evergreen Forest",
        "Color": [0, 51, 0]
      },
      {
        "Value": 1,
        "Name": "Grassland/Herbaceous",
        "Color": [241, 185, 137]
      },
      {
        "Value": 2,
        "Name": "Bare Land",
        "Color": [236, 236, 0]
      },
      {
        "Value": 3,
        "Name": "Open Water",
        "Color": [0, 0, 117]
      },
      {
        "Value": 4,
        "Name": "Scrub/Shrub",
        "Color": [102, 102, 0]
      },
      {
        "Value": 5,
        "Name": "Impervious Surface",
        "Color": [236, 236, 236]
      }
    ]
}

modelArguments

The name value pairs of arguments and their values that can be customized by the clients.

Syntax:

Example:

{"name1": "value1", "name2": "value2"}

context

Contains additional settings that affect task execution.

This task has the following settings:

  • Extent (extent)—A bounding box that defines the analysis area.
  • Output Spatial Reference (outSR)—The output raster will be projected into the output spatial reference.
  • Snap Raster (snapRaster)—The output raster will have its cells aligned with the specified snap raster.
  • Cell Size (cellSize)—The output raster will have the resolution specified by cell size.
  • Processor Type (processorType)—The specified processor (CPU or GPU) will be used for the analysis.
  • Parallel Processing Factor (parallelProcessingFactor)—The specified number or percentage of processes will be used for the analysis.
f

The response format. The default response format is html.

Values: html | json

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>/ClassifyPixelsUsingDeepLearning/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 url>/ClassifyPixelsUsingDeepLearning/jobs/<jobId>/results/outRaster

Example usage

Below is a sample request URL for ClassifyPixelsUsingDeepLearning.

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

JSON Response example

The response returns the outRaster output parameter, which has properties for parameter name, data type, and value. The content of the value is always the output raster dataset and image service URL.

{
    "paramName": "outRaster",
    "dataType": "GPString",
    "value": {
        "itemId": "f121390b85ef419790479fc75b493efd", 
        "url": "https://<server name>/arcgis/rest/services/Hosted/<service name>/ImageServer"
    }
}