最佳路径为栅格 (空间分析)

摘要

将从源到目的地的最佳路径计算为栅格。

了解有关位置之间的最佳连接路径的详细信息

使用情况

  • 最优路径为栅格工具生成输出栅格。

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

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

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

  • 在生成最佳路径之前,通常使用以下工具之一来创建距离累积栅格和返回方向栅格:距离累积距离分配。 这些是生成最佳路径所需的输入。

  • 创建的最佳路径可以是基于 D8 流向的流动路径。 要以此方式生成最佳路径,将 D8 流向栅格用作输入返回方向或流向栅格参数的输入。 还需要提供输入距离累积栅格值;输入距离累积栅格值不用于确定路径。 无论您使用常量栅格还是数字高程模型 (DEM),路径都是相同的;只有路径上的属性值会有所不同。 有关 D8 流向栅格的详细信息,请参见流向工具文档。

  • 输出最佳路径上的值表示给定位置处的路径数。 在许多情况下,路径随沿相同的路线,留下一个源,然后发散到不同的目的地。 例如,值 1 表示在给定位置只有一条最佳路径,而值 5 表示在该位置存在 5 条经过研究区域中的该像元的最佳路径。

  • 要生成最佳路径,将忽略像元大小环境设置,并且使用输入成本回溯链接栅格值计算输出栅格。 如果对回溯链接栅格重采样使其具有不同分辨率,则该栅格的模式将被更改。 为避免混淆,请勿在使用此工具时设置像元大小。

  • 当输出栅格格式为 .crf 时,此工具支持金字塔栅格存储环境。 默认情况下,将在输出中创建金字塔。 对于任何其他输出格式,不支持此环境,并且不会创建金字塔。

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

参数

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

整型栅格或要素(点、线或面),用于标识确定通向最小成本源的最佳路径时基于的位置。

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

Raster Layer; Feature Layer
输入距离累积栅格

距离累积栅格用于确定从源到目的地的最佳路径。

距离累积栅格通常使用距离累积距离分配工具进行创建。 距离累积栅格中的每个像元表示表面上从每个像元到源像元集的最小累积成本距离。

Raster Layer
输入返回方向或流向栅格

返回方向栅格包含以度为单位的计算方向。 该方向用于标识沿最佳路径返回最小累积成本源同时避开障碍的下一个像元。

值的范围是 0 度到 360 度,并为源像元保留 0 度。 正东(右侧)是 90 度,且值以顺时针方向增加(180 是南方、270 是西方、360 是北方)。

Raster Layer
目标字段
(可选)

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

Field
路径类型
(可选)

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

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

返回值

标注说明数据类型
输出最优累积路径

输出栅格。

Raster

OptimalPathAsRaster(in_destination_data, in_distance_accumulation_raster, in_back_direction_raster, {destination_field}, {path_type})
名称说明数据类型
in_destination_data

整型栅格或要素(点、线或面),用于标识确定通向最小成本源的最佳路径时基于的位置。

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

Raster Layer; Feature Layer
in_distance_accumulation_raster

距离累积栅格用于确定从源到目的地的最佳路径。

距离累积栅格通常使用距离累积距离分配工具进行创建。 距离累积栅格中的每个像元表示表面上从每个像元到源像元集的最小累积成本距离。

Raster Layer
in_back_direction_raster

返回方向栅格包含以度为单位的计算方向。 该方向用于标识沿最佳路径返回最小累积成本源同时避开障碍的下一个像元。

值的范围是 0 度到 360 度,并为源像元保留 0 度。 正东(右侧)是 90 度,且值以顺时针方向增加(180 是南方、270 是西方、360 是北方)。

Raster Layer
destination_field
(可选)

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

Field
path_type
(可选)

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

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

返回值

名称说明数据类型
out_path_accumulation_raster

输出栅格。

Raster

代码示例

OptimalPathAsRaster 示例 1(Python 窗口)

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

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outOptimalRasPath = OptimalPathAsRaster("observers", "distAccum.tif", "backDir2", "IdField", "EACH_CELL")
outOptimalRasPath.save("c:/sapyexamples/output/bestpaths.tif")
OptimalPathAsRaster 示例 2(独立脚本)

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

# Name: OptimalPathAsRaster_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"
distAccumRaster = "distAccum.tif"
backDir = "backDir2.tif"
destField = "FID"
pathType = "EACH_CELL"

# Execute CostPath
outOptimalRasPath = OptimalPathAsRaster(inDestination, distAccumRaster, backDir, destField,
                       pathType)

# Save the output 
outOptimalRasPath.save("c:/sapyexamples/output/optimalraspath02.tif")