Optimal Path As Raster (Raster Analysis)

Summary

Calculates the optimal path from a source to a destination as a raster.

Illustration

Optimal Path As Raster workflow

Usage

  • This raster analysis portal tool is available when you are signed in to an ArcGIS Enterprise portal that has an ArcGIS Image Server configured for Raster Analysis. When the tool is invoked, ArcGIS Pro serves as a client and the processing occurs in the servers federated with ArcGIS Enterprise. The portal tool accepts layers from your portal as input and creates output in your portal.

    The input raster layer supports a layer from the portal, a URI or URL to an image service, or the output from the Make Image Server Layer tool. The input feature layer can be a layer from the portal or a URI or URL to a feature service. This tool does not support local raster data or layers. While you can use local feature data and layers as input to this portal tool, best practice is to use layers from your portal as input.

  • When the input destination data is a raster, the set of destination cells consists of all cells in the Input raster or feature destination data that have valid values. Cells that have NoData values are not included in the source set. The value zero is considered a legitimate destination. A destination raster can be created using the extraction tools.

  • When using feature data for the input destinations, care must be taken with how the output cell size is managed, particularly when it is coarse relative to the detail present in the input. An internal rasterization process using the Feature to Raster tool is applied. This means that data that is not located at the center of the cell will not be included in the intermediate rasterized destination output, and will not be represented in the distance calculations. For example, if your destinations are a series of small polygons, such as building footprints, that are small relative to the output cell size, it is possible that only a few of them will fall under the centers of the output raster cells, seemingly causing many of the others to be lost in the analysis.

    To avoid this situation, as an intermediate step, you could rasterize the input features directly with the Feature to Raster tool and set the Field parameter. Then use the resulting output as input to the particular distance tool you want to use. Alternatively, you could select a small cell size to capture the appropriate amount of detail from the input features.

  • Before generating an optimal path, usually one of the following tools is used to create a distance accumulation raster and a back direction raster: Distance Accumulation or Distance Allocation. These are required inputs to generate an optimal path.

  • The optimal path created can be a flow path based on D8 flow direction. To generate an optimal path in this way, use a D8 flow direction raster as input for the Input back direction or flow direction raster. You also need to supply an Input distance accumulation raster; the Input distance accumulation raster is not used to determine the path. Whether you use a constant raster or a digital elevation model (DEM), your path will be the same; only an attribute value on your path will vary. See the Flow Direction tool for more information on D8 flow direction rasters.

  • The values on the output optimal path represent the number of paths at a given location. In many cases, paths follow the same route, leaving a source and then diverging to different destinations. For example, a value of one indicates that there is only one optimal path at a given location, while a value of five means at that location there are five optimal paths going through that cell in the study area.

  • To generate an optimal path, the Cell size environment setting is ignored and the cell size of the Input cost back direction raster is used to calculate the output raster. The pattern of the back direction raster would be seriously altered if it were resampled to a different resolution. To avoid any confusion, the cell size should not be set when using this tool.

  • Unlike most other Raster Analysis tools, Optimal Path As Line will ignore the following environment settings: Output Coordinate System, Extent, Cell Size, and Snap Raster. The pattern of the back link raster would be significantly altered if it were resampled or reprojected, resulting in an incorrect path.

Parameters

LabelExplanationData Type
Input raster or feature destination data

A raster or feature dataset identifying locations from which the least accumulative cost path is determined to the least costly source.

For a raster, the input type must be integer, and it must consist of cells that have valid values (zero is a valid value). The remaining cells must be assigned NoData. For a feature service, the input type can be point, line or polygon.

Raster Layer; Feature Layer
Input distance accumulation raster

The distance accumulation raster is used to determine the optimal path from the sources to the destinations.

The distance accumulation raster is usually created with the Distance Accumulation or Distance Allocation tool. Each cell in the distance accumulation raster represents the minimum accumulative cost distance over a surface from each cell to a set of source cells.

Raster Layer
Input back direction or flow direction raster

The back direction raster contains calculated directions in degrees. The direction identifies the next cell along the optimal path back to the least accumulative cost source while avoiding barriers.

The range of values is from 0 degrees to 360 degrees. The value 0 is reserved for the source cells. Due east (right) is 90 degrees, and the values increase clockwise (180 is south, 270 is west, and 360 is north).

Raster Layer
Output Raster Name

The name of output raster service that contains the optimal paths.

String
Destination field
(Optional)

The field that will be used to obtain values for the destination locations.

Field
Path type
(Optional)

Specifies a keyword defining the manner in which the values and zones in the input destination data will be interpreted in the cost path calculations.

  • Each zoneFor each zone in the input destination data, a least-cost path will be determined and saved on the output raster. With this option, the least-cost path for each zone begins at the cell with the lowest cost distance weighting in the zone. This is the default.
  • Best singleFor all cells in the input destination data, the least-cost path will be derived from the cell with the minimum of the least-cost paths to source cells.
  • Each cellFor each cell with valid values in the input destination data, a least-cost will be is determined and saved on the output raster. With this option, each cell of the input destination data is treated separately, and a least-cost path is determined for each cell.
String

Derived Output

LabelExplanationData Type
Output Raster

The output raster.

Raster

arcpy.ra.OptimalPathAsRaster(inputDestinationRasterOrFeatures, inputDistanceAccumulationRaster, inputBackDirectionRaster, outputRasterName, {destinationField}, {pathType})
NameExplanationData Type
inputDestinationRasterOrFeatures

A raster or feature dataset identifying locations from which the least accumulative cost path is determined to the least costly source.

For a raster, the input type must be integer, and it must consist of cells that have valid values (zero is a valid value). The remaining cells must be assigned NoData. For a feature service, the input type can be point, line or polygon.

Raster Layer; Feature Layer
inputDistanceAccumulationRaster

The distance accumulation raster is used to determine the optimal path from the sources to the destinations.

The distance accumulation raster is usually created with the Distance Accumulation or Distance Allocation tool. Each cell in the distance accumulation raster represents the minimum accumulative cost distance over a surface from each cell to a set of source cells.

Raster Layer
inputBackDirectionRaster

The back direction raster contains calculated directions in degrees. The direction identifies the next cell along the optimal path back to the least accumulative cost source while avoiding barriers.

The range of values is from 0 degrees to 360 degrees. The value 0 is reserved for the source cells. Due east (right) is 90 degrees, and the values increase clockwise (180 is south, 270 is west, and 360 is north).

Raster Layer
outputRasterName

The name of output raster service that contains the optimal paths.

String
destinationField
(Optional)

The field that will be used to obtain values for the destination locations.

Field
pathType
(Optional)

Specifies a keyword defining the manner in which the values and zones in the input destination data will be interpreted in the cost path calculations.

  • EACH_ZONEFor each zone in the input destination data, a least-cost path will be determined and saved on the output raster. With this option, the least-cost path for each zone begins at the cell with the lowest cost distance weighting in the zone. This is the default.
  • BEST_SINGLEFor all cells in the input destination data, the least-cost path will be derived from the cell with the minimum of the least-cost paths to source cells.
  • EACH_CELLFor each cell with valid values in the input destination data, a least-cost will be is determined and saved on the output raster. With this option, each cell of the input destination data is treated separately, and a least-cost path is determined for each cell.
String

Derived Output

NameExplanationData Type
outputRaster

The output raster.

Raster

Code sample

Optimal Path As Raster example 1 (Python window)

The following Python Window script demonstrates how to use the OptimalPathAsRaster tool.

import arcpy

arcpy.ra.OptimalPathAsRaster(
    "https://myserver/rest/services/destination/ImageServer", 
    "https://myserver/rest/services/accumulationraster/ImageServer", 
    "https://myserver/rest/services/backdirection/ImageServer", 
    "outpath")
Optimal Path As Raster example 2 (stand-alone script)

Calculate the optimal path from destinations to sources.

#-------------------------------------------------------------------------------
# Name: OptimalPathAsRaster_Ex_02.py
# Description: Calculates the optimal path from a source to a destination.
# Requirements: ArcGIS Image Server

# Import system modules
import arcpy

# Set local variables
inputDestinationLayer =
    'https://MyPortal.esri.com/server/rest/services/Hosted/destination/ImageServer'
inputAccumulationLayer =
    'https://MyPortal.esri.com/server/rest/services/Hosted/costaccumulation/ImageServer'
inputDirectionLayer = 
    'https://MyPortal.esri.com/server/rest/services/Hosted/backdirection/ImageServer'
outOptimalPathName = 'OptimalPath'

arcpy.ra.OptimalPathAsRaster(inputDestinationLayer, inputAccumulationLayer,
                            inputDirectionLayer, outOptimalPathName)

Environments

Licensing information

  • Basic: Requires ArcGIS Image Server
  • Standard: Requires ArcGIS Image Server
  • Advanced: Requires ArcGIS Image Server

Related topics