成本路径折线 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

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

旧版本:

此工具已弃用,并将从未来的版本中移除。

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

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

使用情况

  • 在成本距离方面,成本路径折线工具可生成用于记录最小成本路径或从源到累积成本面内所定义的最近目的地之间的路径的输出折线要素。

  • 在运行成本路径折线之前,通常需要运行一个或多个加权成本工具(成本距离成本回溯链接成本分配),才能创建输入成本距离和回溯链接栅格。 它们是成本路径折线必需的输入栅格。

  • 当输入目标数据是栅格时,目标像元集包括输入栅格中的所有像元或具有有效值的要素目标数据。 具有 NoData 值的像元不包括在源集内。 值零将被视为合法目标。 使用提取工具可创建目标栅格。

  • 当源输入是要素时,默认情况下,将使用第一个有效可用字段。 如果不存在有效字段,则将使用 ObjectID 字段(例如 OIDFID,取决于要素输入的类型)。

  • 使用输入要素目标的面要素数据时,必须注意输出像元大小的处理方式,特别是在输出像元相对于输入中的详细信息较为粗略时尤其如此。 系统将应用使用面转栅格工具的内部栅格化过程,其中像元分配类型的默认设置为像元中心。 这意味着,不在像元中心的数据将不会包含在中间栅格化目标输出中,也不会在距离计算中表示出来。 例如,如果您的目标是一系列相对于输出像元大小偏小的面,如建筑物覆盖区,则可能只有一部分面会落入输出栅格像元的中心,从而导致分析中会缺少其他许多面。

    为避免出现这种情况,在中间步骤,您可以使用要素转栅格工具直接将输入要素栅格化并设置字段参数。 然后将生成的输出用作希望使用的特定距离工具的输入。 或者,您可以选择一个小的像元大小以从输入要素中捕获适当量的详细信息。

  • 输出折线要素具有名为 DestID 的字段,用于标识每条线所通向的目的地。 如果将输出写入文件地理数据库,则会生成一个名为 shape_length 的字段,其中包含最小成本路径的总长度。

  • 成本路径折线将忽略像元大小环境设置,并将输入成本回溯链接栅格数据的像元大小用于输出栅格。 如果对回溯链接栅格重采样使其具有不同分辨率,则该栅格的模式将被严重更改。 为了避免混淆,在使用此工具时,不应设置像元大小。

  • 成本路径折线可用于根据 D8 流向来确定流动路径。 如需以此方式使用成本路径折线,请将 D8 流向栅格用作输入成本回溯链接栅格的输入。 您还需要提供输入成本距离栅格输入成本距离栅格不用于确定路径。 无论您使用常量栅格还是数字高程模型 (DEM),您的路径都是相同的;只有路径上的属性值会有所不同。 有关 D8 流向栅格的详细信息,请参见流向工具。

  • 成本路径折线可用于根据欧氏工具生成的输出反向栅格来确定绕过障碍的路径。 如需以此方式使用成本路径折线,首先请运行任意定义了输入栅格或要素障碍数据的欧氏工具,以生成输出距离栅格输出反向栅格。 将通过欧氏工具生成的输出用作成本路径折线的输入。

  • 有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst

参数

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

用于识别这些像元的栅格或要素数据集(将确定的最小成本路径为这些像元与成本最低的源之间的路径)。

如果输入是栅格,则它必须由具有有效目标值的像元组成,并且必须为其余的像元指定 NoData。 零是有效值。

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

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

成本距离栅格通常通过成本距离成本分配成本回溯链接工具进行创建。 对于每个像元,成本距离栅格存储从每个像元到一组源像元的成本表面上的最小累积成本距离。

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

成本回溯链接栅格,用于确定通过最小成本路径或最短路径返回到源的路径。

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

Raster Layer
输出折线要素

将保存最小成本路径的输出要素类。

Feature Class
路径类型
(可选)

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

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

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

如果输入目标数据是要素,则它必须至少包含一个有效的整数字段。 默认使用该属性表中的第一个整数字段。

如果指定了栅格,则默认为 Value 字段。

Field
回溯链接栅格的强制流向约定
(可选)

指定是否将输入回溯链接栅格视为流向栅格。 流向栅格可以使用 0 和 255 之间的整数值。

  • 未选中 - 输入成本回溯链接栅格参数值会根据值的范围(以及该值是整数值还是浮点值)进行解释。 对于 0-8 的值范围,输入成本回溯链接栅格值将被视为回溯链接栅格。 对于值 0-255 和整数值,输入成本回溯链接栅格值将被视为流向栅格。 对于 0-360 的值范围和浮点值,输入成本回溯链接栅格值将被视为反向栅格。
  • 选中 - 输入成本回溯链接栅格数据参数值将被视为流向栅格。 如果流向栅格的最大值不超过 8,则该操作是必需的。
Boolean

CostPathAsPolyline(in_destination_data, in_cost_distance_raster, in_cost_backlink_raster, out_polyline_features, {path_type}, {destination_field}, {force_flow_direction_convention})
名称说明数据类型
in_destination_data

用于识别这些像元的栅格或要素数据集(将确定的最小成本路径为这些像元与成本最低的源之间的路径)。

如果输入是栅格,则它必须由具有有效目标值的像元组成,并且必须为其余的像元指定 NoData。 零是有效值。

Raster Layer; Feature Layer
in_cost_distance_raster

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

成本距离栅格通常通过成本距离成本分配成本回溯链接工具进行创建。 对于每个像元,成本距离栅格存储从每个像元到一组源像元的成本表面上的最小累积成本距离。

Raster Layer
in_cost_backlink_raster

成本回溯链接栅格,用于确定通过最小成本路径或最短路径返回到源的路径。

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

Raster Layer
out_polyline_features

将保存最小成本路径的输出要素类。

Feature Class
path_type
(可选)

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

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

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

如果输入目标数据是要素,则它必须至少包含一个有效的整数字段。 默认使用该属性表中的第一个整数字段。

如果指定了栅格,则默认为 Value 字段。

Field
force_flow_direction_convention
(可选)

指定是否将输入回溯链接栅格视为流向栅格。 流向栅格可以使用 0 和 255 之间的整数值。

  • INPUT_RANGEin_cost_backlink_raster 参数值会根据值的范围(以及该值是整数值还是浮点值)进行解释。 对于 0-8 的值范围,值将被视为回溯链接栅格。 对于值 0-255 和整数值,值将被视为流向栅格。 对于 0-360 的值范围和浮点值,值将被视为反向栅格。
  • FLOW_DIRECTIONin_cost_backlink_raster 参数值将被视为流向栅格。 如果流向栅格的最大值不超过 8,则该操作是必需的。
Boolean

代码示例

CostPathAsPolyline 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用此工具。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
CostPathAsPolyline("observers", "costdistraster", "backlink2", "c:/sapyexamples/output/outcostpth01.shp")
CostPathAsPolyline 示例 2(独立脚本)

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

# Name: CostPathAsPolyline_Ex_02.py
# Description: Calculates the least-cost path from a source to 
#              a destination.
# Requirements: Spatial Analyst Extension

# 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"
inCostDistRaster = "costdistraster"
inBacklink = "backlink2"
outCostPathFeat = "c:/sapyexamples/output.gdb/outcostpathfeat02"
method = "EACH_CELL"
destField = "FID"

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Execute
CostPathAsPolyline(inDestination, inCostDistRaster, inBacklink, 
                   outCostPathFeat, method, destField)

许可信息

  • Basic: 需要 Spatial Analyst
  • Standard: 需要 Spatial Analyst
  • Advanced: 需要 Spatial Analyst

相关主题