Cost Path (Spatial Analyst)
Summary
Calculates the least-cost path from a source to a destination.
Usage
-
The Cost Path tool produces an output raster that records the least-cost path or paths from selected locations to the closest source cell defined within the accumulative cost surface, in terms of cost distance.
-
One or more of the weighted cost tools (Cost Distance, Cost Back Link, or Cost Allocation) are generally required to run prior to running Cost Path to create the input cost distance and back link rasters. These are mandatory input rasters to Cost Path.
-
Each least-cost path is assigned a value when encountered in the scanning process. The ending cell on the original source raster (from which the cost distance and back link were derived) of a cost path receives one, the first path receives three, the second four, and so on. The value two is reserved for the merged portion of paths that have portions of a common cost path.
-
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 easily created using the extraction tools.
When the source input is a feature, by default, the first valid available field will be used. If no valid fields exist, the ObjectID field (for example, OID or FID, depending on the type of feature input) will be used.
-
When multiple paths merge and follow the remaining distance back to a source on the same route, the segment where the two paths travel together is assigned the value 2. The merged portion of the path cannot be assigned the value of one of the paths, since the merged portion belongs to both routes.
-
Cost Path does not respect the Mask environment setting. The analysis extent should not be different from the cost distance and cost back link rasters.
-
Cost Path will ignore the Cell size environment setting and use the cell size of the Input cost backlink raster for the output raster. The pattern of the back link 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.
-
Cost Path can also be used to derive the path of least resistance down a digital elevation model (DEM). In this case, use the DEM for the Input cost distance raster and the output from the Flow Direction tool for the Input cost backlink raster. Valid flow direction raster values are 1, 2, 4, 8, 16, 32, 64, and 128; valid values in the back link raster are 1, 2, 3, 4, 5, 6, 7, and 8. Both of these rasters are acceptable.
-
When the input destination data is feature, it must contain at least one valid field.
Syntax
Parameter | Explanation | Data Type |
in_destination_data |
A raster or feature dataset that identifies those cells from which the least-cost path is determined to the least costly source. If the input is a raster, the input consists of cells that have valid values (zero is a valid value), and the remaining cells must be assigned NoData. | Raster Layer | Feature Layer |
in_cost_distance_raster |
The name of a cost distance raster to be used to determine the least-cost path from the destination locations to a source. The cost distance raster is usually created with the Cost Distance, Cost Allocation or Cost Back Link tools. The cost distance raster stores, for each cell, the minimum accumulative cost distance over a cost surface from each cell to a set of source cells. | Raster Layer |
in_cost_backlink_raster |
The name of a cost back link raster used to determine the path to return to a source via the least-cost path. For each cell in the back link raster, a value identifies the neighbor that is the next cell on the least accumulative cost path from the cell to a single source cell or set of source cells. | Raster Layer |
path_type (Optional) |
A keyword defining the manner in which the values and zones on the input destination data will be interpreted in the cost path calculations.
| String |
destination_field (Optional) |
The field used to obtain values for the destination locations. Input feature data must contain at least one valid field. | Field |
Return Value
Name | Explanation | Data Type |
out_raster |
The output cost path raster. The output raster is of integer type. | Raster |
Code Sample
The following Python Window script demonstrates how to use the CostPath tool.
import arcpy from arcpy import env from arcpy.sa import * env.workspace = "C:/sapyexamples/data" outCostPath = CostPath("observers", "costraster", "backlink2", "EACH_CELL") outCostPath.save("c:/sapyexamples/output/costpath")
Calculates the least-cost path from a source to a destination.
# Name: CostPath_Ex_02.py # Description: Calculates the least-cost path from a source to # a destination. # Requirements: Spatial Analyst Extension # Author: ESRI # Import system modules import arcpy from arcpy import env from arcpy.sa import * # Set environment settings env.workspace = "C:/sapyexamples/data" # Set local variables inDestination = "observers.shp" costRaster = "costraster" backLink = "backlink2" method = "EACH_CELL" destField = "FID" # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Execute CostPath outCostPath = CostPath(inDestination, costRaster, backLink, method, destField) # Save the output outCostPath.save("c:/sapyexamples/output/costpath02")