ArcGIS REST API

Flow Accumulation

Flow Accumulation task

The Flow Accumulation task creates a raster of accumulated flow into each cell. A weight factor can optionally be applied.

The result of the Flow Accumulation task is a raster of accumulated flow to each cell determined by accumulating the weight for all cells that flow into each downslope cell.

The Flow Accumulation task supports three flow modeling algorithms while computing accumulated flow. These are the D8, Multiple Flow Direction (MFD), and D-Infinity (DINF) flow methods.

If the input flow direction raster is not created with the Flow Direction task, there is a chance that the defined flow could loop. If the flow direction contains a loop, the Flow Accumulation task will go into an endless cycle and never finish.

Input flow direction can be created using the D8, MFD, or DINF method. The type of input flow direction raster between these three influences how the Flow Accumulation task partitions and accumulates flow in each cell. Use the flowDirectionType parameter to specify which method was used when the flow direction raster was created.

  • The accumulated flow is based on the number of total or a fraction of cells flowing into each cell in the output raster. The current processing cell is not considered in this accumulation.
  • Output cells with a high flow accumulation are areas of concentrated flow and can be used to identify stream channels.
  • Output cells with a flow accumulation of zero are local topographic highs and can be used to identify ridges.
  • Cells of undefined flow direction will only receive flow; they will not contribute to any downstream flow.
  • For an input D8 flow direction raster, a cell is considered to have an undefined flow direction if its value in the flow direction raster is anything other than 1, 2, 4, 8, 16, 32, 64, or 128.
  • For an input DINF flow direction raster, a cell is considered to have an undefined flow direction if its value in the flow direction raster is -1.

Request URL

https://<raster analysis url>/FlowAccumulation/submitJob

Request Parameters

The following table lists the parameters with syntax and details for each.

ParameterDescription

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, or a cloud raster dataset.

Examples:

  • "inputFlowDirectionRaster": {"itemId": <portal item id>}
  • "inputFlowDirectionRaster": {"url": <image service layer url>}

outputName

(Required)

The output image service name that will be created.

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

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.

Output name example:

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

Output raster examples:

"outputName":{"itemId": <portal item id>}
"outputName":{"url": <image service url}
"outputName":{"serviceProperties":
                  {"name":"testrasteranalysis",
                   "serviceUrl":"http://<server name>/server/rest/services/Hosted/testrasteranalysis/ImageServer"},
                   "itemProperties":{"itemId":"8cfbd3ec25584d0d8f4ed23b8ff7c43b","folderId":"sdfwerfbd3ec25584d0d8f4"}}

inputWeightRaster

An optional input raster for applying a weight to each cell.

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

Examples:

  • "inputWeightRaster": {"itemId": <portal item id>}
  • "inputWeightRaster": {"url": <image service layer url>}

dataType

The output accumulation raster can be one of several different data types.

Syntax: A string describing the data type, which can be one of the following:

  • FLOAT—The output raster will be floating-point type. This is the default.
  • INTEGER—The output raster will be integer type.
  • DOUBLE—The output raster will be double precision (64-bit) floating-point type.

Example:

  • "dataType": "DOUBLE"

flowDirectionType

The input flow direction raster can be of type D8, Multi Flow Direction (MFD) or D-Infinity (DINF).

Syntax: A string describing the flow direction type, which can be one of the following:

  • D8—The input flow direction raster is of type D8. This is the default.
  • MFD—The input flow direction raster is of type Multi Flow Direction (MFD).
  • DINF—The input flow direction raster is of type D-Infinity (DINF).

Example:

  • "flowDirectionType": "DINF"

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.

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 url>/FlowAccumulation/jobs/<jobId>

Accessing results

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>/jobs/<jobId>/results/outputRaster?token=<your token>&f=json

ParameterDescription

outputRaster

This is the output flow accumulation raster item ID and URL.

Example:

{"url": 
"https://<raster analysis url>/FlowAccumulation/jobs/<jobId>/results/outputRaster"}

The result has properties for parameter name, data type, and value. The content of value is always the itemid of the output raster dataset and the image service URL. For example:

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