计算距离 (栅格分析)

摘要

计算距离单个源或一组源的欧氏距离。

旧版本:

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

距离累积距离分配工具提供了增强的功能或性能。

插图

计算距离工具图示

使用情况

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

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

  • 此工具的示例应用之一是查找从任意位置到最近城镇的距离。

  • 当输入源数据是影像服务时,源像元集包括具有有效值的源栅格中的所有像元。 具有 NoData 值的像元不包括在源集内。 值 0 将被视为合法的源。

  • 当输入源数据是要素服务时,源位置在执行分析之前从内部转换为栅格。 栅格的分辨率可以由输出像元大小参数或像元大小环境来控制。 默认情况下,分辨率将由输入空间参考中输入要素范围的宽度与高度中的较小值除以 250 来确定。

参数

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

此图层用于定义计算距离的源。 此图层可以是影像服务或要素服务。

对于影像服务,输入类型可以为整型或浮点型。

对于要素服务,输入可以为点、线或面。

Raster Layer; Image Service; Feature Layer; String
输出距离名称

输出距离栅格服务的名称。

String
最大距离
(可选)

用于计算输出的最大距离。

单位值为千米法定英里国际码国际英尺美国测量英里美国测量码美国测量英尺

默认单位为米。

Linear Unit
输出像元大小
(可选)

设置输出栅格的像元大小和单位。

单位值为千米法定英里国际码国际英尺美国测量英里美国测量码美国测量英尺

默认单位为米。

Linear Unit
输出方向名称
(可选)

输出方向栅格服务的名称。

String
输出分配名称
(可选)

输出分配栅格服务的名称。

String
分配字段
(可选)

用于保存定义每个源的值的源输出上的字段。 其类型必须为整型。

String
距离法
(可选)

指定是否使用平面(平地)或测地线(椭球)方法计算距离。

  • 平面将使用 2D 笛卡尔坐标系对投影平面执行距离计算。 这是默认设置。
  • 测地线距离计算将在椭圆体上执行。 因此,结果不会改变,不考虑输入或输出投影。
String
输入障碍栅格或要素
(可选)

定义障碍的数据集。

可通过整型或浮点型栅格或者要素图层来定义障碍。

Raster Layer; Image Service; Feature Layer; String
输出反向名称
(可选)

输出反向栅格服务的名称。

String

派生输出

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

输出距离栅格。

Raster Layer
输出方向栅格

输出方向栅格。

Raster Layer
输出反向栅格

输出反向栅格。

Raster Layer
输出分配栅格

输出分配栅格。

Raster Layer

arcpy.ra.CalculateDistance(inputSourceRasterOrFeatures, outputDistanceName, {maximumDistance}, {outputCellSize}, {outputDirectionName}, {outputAllocationName}, {allocationField}, {distanceMethod}, {inputBarrierRasterOrFeatures}, {outputBackDirectionName})
名称说明数据类型
inputSourceRasterOrFeatures

此图层用于定义计算距离的源。 此图层可以是影像服务或要素服务。

对于影像服务,输入类型可以为整型或浮点型。

对于要素服务,输入可以为点、线或面。

Raster Layer; Image Service; Feature Layer; String
outputDistanceName

输出距离栅格服务的名称。

String
maximumDistance
(可选)

用于计算输出的最大距离。

单位值为 KilometersMetersMilesIntYardsIntFeetIntMilesYardsFeet

默认单位为米。

Linear Unit
outputCellSize
(可选)

设置输出栅格的像元大小和单位。

单位值为 KilometersMetersMilesIntYardsIntFeetIntMilesYardsFeet

默认单位为米。

Linear Unit
outputDirectionName
(可选)

输出方向栅格服务的名称。

String
outputAllocationName
(可选)

输出分配栅格服务的名称。

String
allocationField
(可选)

用于保存定义每个源的值的源输出上的字段。 其类型必须为整型。

String
distanceMethod
(可选)

指定是否使用平面(平地)或测地线(椭球)方法计算距离。

  • Planar将使用 2D 笛卡尔坐标系对投影平面执行距离计算。 这是默认设置。
  • Geodesic距离计算将在椭圆体上执行。 因此,结果不会改变,不考虑输入或输出投影。
String
inputBarrierRasterOrFeatures
(可选)

定义障碍的数据集。

可通过整型或浮点型栅格或者要素图层来定义障碍。

Raster Layer; Image Service; Feature Layer; String
outputBackDirectionName
(可选)

输出反向栅格服务的名称。

String

派生输出

名称说明数据类型
outputDistanceRaster

输出距离栅格。

Raster Layer
outputDirectionRaster

输出方向栅格。

Raster Layer
outputBackDirectionRaster

输出反向栅格。

Raster Layer
outputAllocationRaster

输出分配栅格。

Raster Layer

代码示例

CalculateDistance 示例 1(Python 窗口)

此示例可计算距离单个源的欧氏距离。

import arcpy
arcpy.ra.CalculateDistance('https://MyPortal.esri.com/server/rest/services/Hosted/myPoints/FeatureServer/0',
                           "outDistance", "5000", "10", "outDirection", "outAllocation", "siting")
CalculateDistance 示例 2(独立脚本)

此示例可计算距离一组源的欧氏距离。

# Name: CalculateDistance_Ex_02.py
# Description: Calculates for each cell the Euclidean distance, direction and allocation
#              to the nearest source.
# Requirements: ArcGIS Image Server

# Import system modules
import arcpy

# Set local variables
inSourceData = 'https://MyPortal.esri.com/server/rest/services/Hosted/reccenter/ImageServer'
outDistanceName = "eucdistance"
maxDistance = "4000"
cellSize = "10"
outDirectionName = "eucdirect"
outAllocationName = "eurallocation"
allocationField = "dataid"


# Execute EucDistance
arcpy.ra.CalculateDistance(inSourceData, outDistanceName, maxDistance, cellSize, outDirectionName,
                           outAllocationName, allocationField)

许可信息

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

相关主题