Skip To Content
ArcGIS Developer
Dashboard

Nibble

Description

Nibble diagram

The Nibble task replaces the input cells corresponding to a mask with the values of the nearest neighbors.

This task can be used to replace a few individual cells with the values immediately nearby. With larger mask areas, larger swaths of cells can be replaced.

Cells that are NoData in the inputMaskRaster define which cells will be nibbled. Any locations in the inputRaster that are not within the mask area will not be nibbled, and so the output value for them will be the same as the input value.

NoData cells in the input raster that are not within the mask are not nibbled. They will remain NoData regardless of the settings of the nibbleValues and nibbleNodata parameters.

Request parameters

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

ParameterDetails
inputRaster

(Required)

The input raster to nibble.

The input raster can be either an integer or a floating-point type.

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
"inputRaster": {"itemId": <portal item id>}

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

inputMaskRaster

(Required)

The input raster to use as the mask.

Cells that are NoData in the mask raster identify the cells in inputRaster that will be nibbled, or replaced, by the value of the closest neighbour.

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:

//Input mask raster as Portal ID
"inputMaskRaster": {"itemId": <portal item id>}

//Input mask raster as URL
"inputMaskRaster": {"url": <image service layer url>}
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"}
}

nibbleValues

Specify whether or not NoData values in the input raster are allowed to nibble into the area defined by the mask raster.

Syntax: A Boolean value as either true or false.

  • true specifies that the nearest neighbor value will be used whether it is NoData or another data value in the input raster. NoData values in the input raster are free to nibble into areas defined in the mask if they are the nearest neighbor. This is the default.
  • false specifies that only data values are free to nibble into areas defined in the mask raster. NoData values in the input raster are not allowed to nibble into areas defined in the mask raster, even if they are the nearest neighbor.

Example:

"nibbleValues": "false"
nibbleNodata

Specify if NoData cells in the input raster will remain NoData in the output raster.

Syntax: A Boolean value as either false or true.

  • false specifies NoData cells in the input raster will remain NoData in the output. This is the default.
  • true specifies that NoData cells in the input raster and within the mask can be nibbled into valid output cell values.

Example:

"nibbleNodata": "true"
inputZoneRaster

The input raster that defines the zones to use as the mask.

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:

//Input zone raster as portal item
"inputZoneRaster": {"itemId": <portal item id>}

//Input zone raster as URL
"inputZoneRaster": {"url": <image service layer url>}
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 | pjson

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>/Nibble/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>/Nibble/jobs/<jobId>/results/outputRaster

Example usage

Below is a sample request URL for Nibble.

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

JSON Response syntax

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": <parameter name>,
  "dataType": "GPString",
  "value": {
    "itemId": <item Id>,
    "url": <URL>
  }
}

JSON Response example

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