需要 Spatial Analyst 许可。
描述
将从源到目的地的最佳路径计算为线。
使用方法
最佳路径为线工具用于生成作为从源到目的地的最佳路径的输出折线要素。
当输入目标数据是栅格时,目标像元集包括输入栅格中的所有像元或具有有效值的要素目标数据。具有 NoData 值的像元不包括在源集内。值零将被视为合法目标。使用提取工具可创建目标栅格。
使用输入要素目标的面要素数据时,必须注意输出像元大小的处理方式,特别是在输出像元相对于输入中的详细信息较为粗略时尤其如此。系统将应用使用面转栅格工具的内部栅格化过程,其中像元分配类型的默认设置为 像元中心。这意味着,不在像元中心的数据将不会包含在中间栅格化目标输出中,也不会在距离计算中表示出来。例如,如果您的目标是一系列相对于输出像元大小偏小的面,如建筑物覆盖区,则可能只有一部分面会落入输出栅格像元的中心,从而导致分析中会缺少其他许多面。
为避免出现这种情况,在中间步骤,您可以使用要素转栅格工具直接将输入要素栅格化并设置字段参数。然后将生成的输出用作希望使用的特定距离工具的输入。或者,您可以选择一个小的像元大小以从输入要素中捕获适当量的详细信息。
在生成最佳路径之前,通常使用以下工具之一来创建距离累积栅格和反向栅格:距离累积或距离分配。这些是生成最佳路径所需的输入。
创建的最佳路径可以是基于 D8 流向的流动路径。要以此方式生成最佳路径,将 D8 流向栅格用作输入反向或流向栅格的输入。您还需要提供输入距离累积栅格。如果创建网络路径参数未启用,则输入距离累积栅格不会用于确定路径。因此,无论您使用常量栅格还是数字高程模型 (DEM),您的路径都是相同的;只有路径上的属性值会有所不同。但是,如果生成创建网络路径,则输入距离累积栅格必须是输出流量累积栅格。有关 D8 流向栅格以及创建累积栅格的流量累积工具的详细信息,请参阅流向工具。
输出折线要素具有一个名为 DestID 字段以及名为 PathCost 的字段。DestID 字段用于标识每条线通向的目的地。PathCost 字段显示每条路径的总累积成本。如果将输出写入文件地理数据库,则会生成一个名为 shape_length 的字段,其中包含最小成本路径的总长度。
要生成最佳路径,将忽略像元大小环境设置,并且使用输入成本回溯链接栅格计算输出栅格。如果对回溯链接栅格重采样使其具有不同分辨率,则该栅格的模式将被严重更改。为避免出现任何混淆,使用此工具时不得设置像元大小。
语法
OptimalPathAsLine(in_destination_data, in_distance_accumulation_raster, in_back_direction_raster, out_polyline_features, {destination_field}, {path_type}, {create_network_paths})
参数 | 说明 | 数据类型 |
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 |
out_polyline_features | 作为最佳路径的输出要素类。 | Feature Class |
destination_field (可选) | 要用于获得目标位置的值的整型字段。 | Field |
path_type (可选) | 用于指定对输入目标数据上的值和区域在成本路径计算中的解释方式进行定义的关键字。
| String |
create_network_paths (可选) | 指定是计算从目的地到源的完整路径(可能重叠),还是创建不重叠的网络路径。
| Boolean |
代码示例
以下 Python 窗口脚本演示了如何使用此工具。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
OptimalPathAsLine("observers.shp", "distaccum.tif", "backdir.tif",
"c:/sapyexamples/output/outOptimalPath01.shp")
计算从源到目的地的最小成本路径。
# Name: OptimalPathAsLine_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"
inDistAccum = "accumraster.tif"
inBackDir = "backdir2.tif"
outPathFeat = "c:/sapyexamples/output.gdb/optimalfeaturepaths02"
destField = "FID"
method = "EACH_CELL"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute
OptimalPathAsLine(inDestination, inDistAccum, inBackDir,
outPathFeat, destField, method)
环境
许可信息
- Basic: 需要 Spatial Analyst
- Standard: 需要 Spatial Analyst
- Advanced: 需要 Spatial Analyst