ArcGIS REST API

Watershed

Description

Watershed diagram

The Watershed task determines the contributing area above a set of cells in a raster.

The value of each watershed will be taken from the value of the source in the input raster or feature pour point data. When the pour point is a raster, the cell values will be used. When the pour point is a point feature, the values from the specified field will be used.

Request parameters

ParameterDetails
inputFlowDirectionRaster

(Required)

The input raster that shows the direction of flow out of each cell.

Syntax: This parameter can be specified as a Portal Item ID, a URL to a raster image service layer, a cloud raster dataset, or a shared raster dataset.

Examples:

//Portal item as input raster
"inputFlowDirectionRaster": {"itemId": <portal item Id>}

//URL as input raster
"inputFlowDirectionRaster": {"url": <image service layer url>}

inPourPointData

(Required)

The input pour point locations.

For a raster, this represents cells above which the contributing area, or catchment, will be determined. All cells that are not NoData will be used as source cells. For a point input, this represents locations above which the contributing area, or catchment, will be determined.

Syntax: This parameter can have either a raster input or a feature input. For raster input, this parameter can be specified as a Portal Item ID, a URL to a raster image service layer, a cloud raster dataset, or a shared raster dataset. For feature input, this parameter can be specified as either a URL to a feature service layer or a feature collection.

Raster input examples:

//Portal item as input raster
"inPourPointData":{"itemId": <portal item Id>}

//URL as input raster
"inPourPointData":{"url": <image service layer url>}

Feature input examples:

//Feature layer URL
"inPourPointData":{"url": <feature service layer url>}

//Feature collection
"inPourPointData":{"layerDefinition": {}, "featureSet": {}}

outputName

(Required)

The output image service name that will be created.

You can specify the name, or you can create an empty service using Portal Admin Sharing API and use the return JSON object as input to this parameter.

Syntax: A JSON object describes the name of the output or the output raster.

Output name example:

"outputName":{"serviceProperties":{"name":"testrasteranalysis"}}

Output raster examples:

//Output portal item:
"outputName":{"itemId": <portal item id>}

//Output url:
"outputName":{"url": <image service url}

//Output raster layer service:
"outputName":{"serviceProperties":
  {"name":"testrasteranalysis",
    "serviceUrl":"https://<server name>/server/rest/services/Hosted/testrasteranalysis/ImageServer"},
  "itemProperties":{"itemId":"8cfbd3ec25584d0d8f4ed23b8ff7c43b","folderId":"sdfwerfbd3ec25584d0d8f4"}
}

pourPointField

The field used to assign values to the pour point locations.

If the input pour point dataset is a raster, use Value. If it is a feature, use a numeric field. If the field contains floating-point values, they will be truncated into integers.

Syntax: A string that represents a field name.

Example:

"pourPointField": "pptID"

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.
  • Mask (mask): Only cells that fall within the analysis mask will be considered in the operation.
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.

{
  "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>/Watershed/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>/Watershed/jobs/<jobId>/results/outputRaster

Example usage

Below is a sample request URL for Watershed.

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

JSON response example

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

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