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

摘要

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

插图

最佳路径为栅格工作流

使用情况

  • 当您登录到已针对 Raster Analysis 配置 ArcGIS Image ServerArcGIS Enterprise 门户时,可以使用栅格分析门户工具。 调用该工具后,ArcGIS Pro 将充当客户端,处理将在与 ArcGIS Enterprise 联合的服务器中进行。 门户工具接受来自门户的图层作为输入,并在门户中创建输出。

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

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

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

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

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

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

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

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

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

参数

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

用于标识确定通向最小成本源的最小积累成本路径时基于的位置的栅格或要素数据集。

对于栅格,输入类型必须为整型,并且必须由具有有效值(零为有效值)的像元组成。 并且必须为其余的像元指定 NoData。 对于要素服务,输入类型可以为点、线或面。

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

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

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

Raster Layer
输入反向或流向栅格

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

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

Raster Layer
输出栅格名称

包含最佳路径的输出栅格服务的名称。

String
目的地字段
(可选)

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

Field
路径类型
(可选)

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

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

派生输出

标注说明数据类型
输出栅格

输出栅格。

Raster

arcpy.ra.OptimalPathAsRaster(inputDestinationRasterOrFeatures, inputDistanceAccumulationRaster, inputBackDirectionRaster, outputRasterName, {destinationField}, {pathType})
名称说明数据类型
inputDestinationRasterOrFeatures

用于标识确定通向最小成本源的最小积累成本路径时基于的位置的栅格或要素数据集。

对于栅格,输入类型必须为整型,并且必须由具有有效值(零为有效值)的像元组成。 并且必须为其余的像元指定 NoData。 对于要素服务,输入类型可以为点、线或面。

Raster Layer; Feature Layer
inputDistanceAccumulationRaster

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

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

Raster Layer
inputBackDirectionRaster

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

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

Raster Layer
outputRasterName

包含最佳路径的输出栅格服务的名称。

String
destinationField
(可选)

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

Field
pathType
(可选)

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

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

派生输出

名称说明数据类型
outputRaster

输出栅格。

Raster

代码示例

最佳路径为栅格示例 1(Python 窗口)

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

import arcpy

arcpy.ra.OptimalPathAsRaster(
    "https://myserver/rest/services/destination/ImageServer", 
    "https://myserver/rest/services/accumulationraster/ImageServer", 
    "https://myserver/rest/services/backdirection/ImageServer", 
    "outpath")
最佳路径为栅格示例 2(独立脚本)

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

#-------------------------------------------------------------------------------
# Name: OptimalPathAsRaster_Ex_02.py
# Description: Calculates the optimal 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'
inputAccumulationLayer =
    'https://MyPortal.esri.com/server/rest/services/Hosted/costaccumulation/ImageServer'
inputDirectionLayer = 
    'https://MyPortal.esri.com/server/rest/services/Hosted/backdirection/ImageServer'
outOptimalPathName = 'OptimalPath'

arcpy.ra.OptimalPathAsRaster(inputDestinationLayer, inputAccumulationLayer,
                            inputDirectionLayer, outOptimalPathName)

环境

许可信息

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

相关主题