Fill task

The Fill task fills sinks in a surface raster to remove small imperfections in the data.

A sink is a cell with an undefined drainage direction; no cells surrounding it are lower. The pour point is the boundary cell with the lowest elevation for the contributing area of a sink. If the sink was filled with water, this is the point where water would pour out.

The z-limit specifies the maximum difference allowed between the depth of a sink and the pour point and determines which sinks will be filled and which will remain untouched. The z-limit is not the maximum depth to which a sink will be filled.

For example, consider a sink area where the pour point is 210 feet in elevation, and the deepest point within the sink is 204 feet (a difference of 6 feet). If the z-limit is set to 8, this particular sink will be filled. However, if the z-limit is set to 4, this sink will not be filled since the depth of this sink exceeds this difference and would be considered a valid sink.

All sinks that are less than the z-limit and lower than their lowest adjacent neighbor, will be filled to the height of their pour points.

Request URL

http://<raster analysis url>/Fill/submitJob

Request Parameters

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




The input raster representing a continuous surface.

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


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



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:


Output raster examples:

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


Maximum elevation difference between a sink and its pour point to be filled.

If the difference in z-values between a sink and its pour point is greater than the z_limit, that sink will not be filled.

The value for z-limit must be greater than zero.

Unless a value is specified for this parameter, all sinks will be filled, regardless of depth.

Syntax: A numerical value.


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.


The response format. The default response format is html.

Values: html | json


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:

http://<raster analysis url>/Fill/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:

http://<raster analysis url>/jobs/<jobId>/results/outputRaster?token=<your token>&f=json



The output fill raster item ID and URL.


"http://<raster analysis url>/Fill/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"