成本路径折线 (栅格分析)

摘要

将从源到目标的的最小成本路径计算为线要素。

最佳路径为线工具提供了增强的功能或性能。

了解有关创建最小成本路径的详细信息

插图

成本路径折线工具图示

使用情况

  • 此栅格分析门户工具将在您登录到 ArcGIS Enterprise “了解 ArcGIS Enterprise 门户中的分析”链接 时可用,其中门户包含一个 ArcGIS Image Server “什么是 ArcGIS Image Server”链接,此链接专为 Raster Analysis “配置和部署栅格分析”链接 配置。调用该工具后,ArcGIS Pro 将充当客户端,处理将在与 ArcGIS Enterprise 联合的服务器中进行。门户工具接受来自门户的图层作为输入,并在门户中创建输出。

    输入栅格图层支持来自门户的图层、图像服务的 URI 或 URL 或创建影像服务器图层工具的输出。输入要素图层可以是来自门户、URI 或要素服务 URL 的图层。此工具不支持本地栅格数据或图层。虽然可以使用本地要素数据和图层作为此门户工具的输入,但是最佳做法是使用门户的图层作为输入。

  • 成本路径折线工具用于生成记录最小成本路径或从源到累积成本表面或欧氏距离表面内定义的最近目的地之间的路径的输出折线要素服务。

  • 如果您具有目标要素,则可以使用栅格化要素栅格函数将其转换为图像服务。 使用现有成本距离栅格作为栅格化函数的栅格输入。 这将确保使用相同的像元大小、范围和空间参考将这些要素正确转换为图像服务。

  • 目标栅格中存在的 NoData 值将不会作为有效值包含在函数中。 值 0 将被视为目标栅格中的合法值。

  • 需要两个输入图像服务才能运行成本路径折线。 如何生成这些输入取决于要完成的分析类型。

    • 成本分析将生成成本路径。 运行成本回溯链接成本距离栅格函数以生成必要的输入。
    • 欧氏分析将生成直线路径和围绕障碍的路径。 运行计算距离工具以生成欧氏反向和欧氏距离。 或者运行欧氏反向欧氏距离栅格函数。
    • 流动分析将生成流动路径。 使用 D8 选项运行流向栅格函数。 使用 D8 流向栅格作为输入成本回溯链接栅格的输入。 您还需要提供输入成本距离栅格输入成本距离栅格不用于确定路径。 无论您使用常量栅格还是数字高程模型 (DEM),您的路径都是相同的;只有路径上的属性值会有所不同。
  • 输出要素服务具有名为 DestID 的字段,用于标识每条线所通向的目的地。

  • 与大多数其他栅格分析工具不同,成本路径折线将忽略以下环境设置:输出坐标系、范围、像元大小和捕捉栅格。 如果对回溯链接栅格重采样或重投影,该栅格的模式将被严重更改,从而导致路径错误。

参数

标注说明数据类型
输入目标栅格或要素

用于识别这些位置的图像服务或要素服务(将确定的最小成本路径为这些位置与最低成本源之间的路径)。

如果输入是影像服务,则输入由具有有效值(零是有效值)的像元组成,并且必须为其余的像元指定 NoData。

Raster Layer; Image Service; Feature Layer; String
输入成本距离或欧氏距离栅格

要用于确定从源到目的地的最小成本路径的成本距离或欧式距离栅格。

Raster Layer; Image Service; String
输入成本回溯链接、反向或流向栅格

用于确定要经由最小成本路径或最短路径返回到源的路径的栅格名称。

对于回溯链接或方向栅格中的每个像元,该值用于识别在从该像元到源像元的路径上作为下一像元的邻近像元。

Raster Layer; Image Service; String
输出折线名称

将包含最小成本路径的输出要素服务。

String
路径类型
(可选)

用于指定输入目标数据上的值和区域在成本路径计算中的解释方式。

  • 最佳单一对于输入目标数据上的所有像元,最小成本路径派生自距源像元具有最小成本路径的最小值的像元。
  • 每个区域对于输入目标数据上的每个区域,系统会确定最小成本路径并将该路径保存在输出栅格上。 利用该选项,每个区域的最小成本路径将起始于区域内成本距离权重最小的像元。
  • 每个像元对于输入目标数据上每一个具有有效值的像元,系统会确定最小成本路径并将该路径保存在输出栅格上。 利用该选项,系统会单独处理输入目标数据的每个像元,并确定每个“起始”像元的最小成本路径。
String
目的地字段
(可选)

要用于获得目标位置的值的字段。

Field

派生输出

标注说明数据类型
输出折线要素

折线要素。

Feature Layer

arcpy.ra.CostPathAsPolyline(inputDestinationRasterOrFeatures, inputCostDistanceRaster, inputCostBacklinkRaster, outputPolylineName, {pathType}, {destinationField})
名称说明数据类型
inputDestinationRasterOrFeatures

用于识别这些位置的图像服务或要素服务(将确定的最小成本路径为这些位置与最低成本源之间的路径)。

如果输入是影像服务,则输入由具有有效值(零是有效值)的像元组成,并且必须为其余的像元指定 NoData。

Raster Layer; Image Service; Feature Layer; String
inputCostDistanceRaster

要用于确定从源到目的地的最小成本路径的成本距离或欧式距离栅格。

Raster Layer; Image Service; String
inputCostBacklinkRaster

用于确定要经由最小成本路径或最短路径返回到源的路径的栅格名称。

对于回溯链接或方向栅格中的每个像元,该值用于识别在从该像元到源像元的路径上作为下一像元的邻近像元。

Raster Layer; Image Service; String
outputPolylineName

将包含最小成本路径的输出要素服务。

String
pathType
(可选)

用于指定输入目标数据上的值和区域在成本路径计算中的解释方式。

  • BEST_SINGLE对于输入目标数据上的所有像元,最小成本路径派生自距源像元具有最小成本路径的最小值的像元。
  • EACH_ZONE对于输入目标数据上的每个区域,系统会确定最小成本路径并将该路径保存在输出栅格上。 利用该选项,每个区域的最小成本路径将起始于区域内成本距离权重最小的像元。
  • EACH_CELL对于输入目标数据上每一个具有有效值的像元,系统会确定最小成本路径并将该路径保存在输出栅格上。 利用该选项,系统会单独处理输入目标数据的每个像元,并确定每个“起始”像元的最小成本路径。
String
destinationField
(可选)

要用于获得目标位置的值的字段。

Field

派生输出

名称说明数据类型
outputPolylineFeatures

折线要素。

Feature Layer

代码示例

CostPathAsPolyline 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 CostPathAsPoyline 函数。

import arcpy

arcpy.CostPathAsPolyline_ra(
    "https://myserver/rest/services/destination/ImageServer", 
    "https://myserver/rest/services/costsurface/ImageServer", 
    "https://myserver/rest/services/direction/ImageServer", 
    "outpath", "BEST_SINGLE")
CostPathAsPolyline 示例 2(独立脚本)

用于计算从源到目标的最小成本路径。

#-------------------------------------------------------------------------------
# Name: CostPathAsPolyline_Ex_02.py
# Description: Calculates the least-cost 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'
inputCostLayer =
    'https://MyPortal.esri.com/server/rest/services/Hosted/costraster/ImageServer'
inputDirectionLayer = 
    'https://MyPortal.esri.com/server/rest/services/Hosted/direction/ImageServer'
outputName = 'outTravelPaths'
pathType = 'BEST_SINGLE'

arcpy.CostPathAsPolyline_ra(inputDestinationLayer, inputCostLayer,
                            inputDirectionLayer, outputName, pathType)

环境

特殊情况

许可信息

  • Basic: 需要 ArcGIS Image Server
  • Standard: 需要 ArcGIS Image Server
  • Advanced: 需要 ArcGIS Image Server

相关主题