欧氏距离 (Spatial Analyst)

需要 Spatial Analyst 许可。

摘要

针对各个像元,计算到最近源的欧氏距离。

旧版本:

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

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

了解有关欧氏距离分析的详细信息

插图

欧氏距离图示
Euc_Dist = EucDistance(Source_Ras)

使用情况

  • 输入源数据可以是要素类或栅格。 要素类可以是点、线或面。

  • 当输入源数据是栅格时,源像元集包括具有有效值的源栅格中的所有像元。 具有 NoData 值的像元不包括在源集内。 零是有效值。 可使用提取工具创建源栅格。

  • 当输入源数据是要素类时,源位置在执行分析之前从内部转换为栅格。

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

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

  • 最大距离值以与输入源数据相同的地图单位指定。

  • 输出像元大小参数可以通过数值进行定义,也可以从现有栅格数据集获取。 如果没有将像元大小明确指定为参数值,则将从像元大小环境获取相应值(前提是已指定环境)。 如果参数像元大小和环境像元大小均未指定,则默认的输出像元大小会根据输入数据集的类型,按照如下所示方式进行确定。

    • 如果输入数据集是栅格,则使用数据集的像元大小。
    • 如果输入数据集为要素,且设置了捕捉栅格环境,则使用捕捉栅格的像元大小。 如果未设置捕捉栅格,则像元大小会通过使用范围的宽度或高度中的较小值除以 250 来计算,其中范围位于在环境中指定的输出坐标系内。
  • 如果使用数值指定像元大小,则工具会直接将其用于输出栅格。

    如果使用栅格数据集指定像元大小,则该参数将显示栅格数据集的路径而不是像元大小的值。 如果数据集的空间参考与输出空间参考相同,则栅格数据集的像元大小将直接用于分析。 如果数据集的空间参考与输出空间参考不同,将根据指定的像元大小方法值进行投影。

  • 此工具的默认处理范围是输入的并集值。 系统将处理两个输入数据集的组合范围。

  • 该工具支持并行处理。 如果您的计算机具有多个处理器或处理器具有多个内核,则会获得更好的性能,特别是处理较大数据集时。 使用 Spatial Analyst 进行并行处理帮助主题提供了有关此功能及其配置方法的详细信息。

    使用并行处理时,将写入临时数据以管理正在处理的数据区段。 默认的临时文件夹位置在您的本地 C: 驱动器上。 您可以通过设置名为 TempFolders 的系统环境变量并指定要使用的文件夹路径(例如,E:\RasterCache),来控制此文件夹的位置。 如果您具有计算机管理权限,还可以使用注册表项(例如,[HKEY_CURRENT_USER\SOFTWARE\ESRI\ArcGISPro\Raster])。

    默认情况下,此工具将使用可用内核数的 50%。 如果输入数据大小小于 5,000 * 5,000 个像元,则会使用更少的内核。 您可以控制该工具用于并行处理因子环境的内核数。

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

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

参数

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

输入源位置。

此为栅格或要素,用于标识在计算每个输出像元位置的欧氏距离时将使用的像元或位置。

对于栅格,输入类型可以为整型或浮点型。

Raster Layer; Feature Layer
最大距离
(可选)

累积距离值不能超过的阈值。

如果累积的欧氏距离值超过该值,则像元位置的输出值为 NoData。

默认距离是到输出栅格边的距离。

Double
输出像元大小
(可选)

将创建的输出栅格的像元大小。

此参数可以通过数值进行定义,也可以从现有栅格数据集获取。 如果未将像元大小明确指定为参数值,则将使用环境像元大小值(如果已指定);否则,将使用其他规则通过其他输出计算像元大小。 有关详细信息,请参阅用法部分。

Analysis Cell Size
输出方向栅格
(可选)

输出欧氏方向栅格。

此方向栅格包含计算的方向(以度为单位),每个像元中心都来自最近的源像元中心。

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

输出栅格为整型。

Raster Dataset
距离法
(可选)

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

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

定义障碍的数据集。

可通过整型栅格或浮点型栅格,或通过点、线或面要素来定义障碍。

Raster Layer; Feature Layer
输出反向栅格
(可选)

输出欧氏反向栅格。

反向栅格中包含以度为单位的计算方向。 该方向可用于识别沿最短路径返回最近源同时避开障碍的下一像元。

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

输出栅格为浮点类型。

Raster Dataset

返回值

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

输出欧氏距离栅格。

此距离栅格标识每个像元至最近源像元、源像元集或源位置的欧氏距离。

输出栅格为浮点型。

Raster

EucDistance(in_source_data, {maximum_distance}, {cell_size}, {out_direction_raster}, {distance_method}, {in_barrier_data}, {out_back_direction_raster})
名称说明数据类型
in_source_data

输入源位置。

此为栅格或要素,用于标识在计算每个输出像元位置的欧氏距离时将使用的像元或位置。

对于栅格,输入类型可以为整型或浮点型。

Raster Layer; Feature Layer
maximum_distance
(可选)

累积距离值不能超过的阈值。

如果累积的欧氏距离值超过该值,则像元位置的输出值为 NoData。

默认距离是到输出栅格边的距离。

Double
cell_size
(可选)

将创建的输出栅格的像元大小。

此参数可以通过数值进行定义,也可以从现有栅格数据集获取。 如果未将像元大小明确指定为参数值,则将使用环境像元大小值(如果已指定);否则,将使用其他规则通过其他输出计算像元大小。 有关详细信息,请参阅用法部分。

Analysis Cell Size
out_direction_raster
(可选)

输出欧氏方向栅格。

此方向栅格包含计算的方向(以度为单位),每个像元中心都来自最近的源像元中心。

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

输出栅格为整型。

Raster Dataset
distance_method
(可选)

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

  • PLANAR将使用 2D 笛卡尔坐标系对投影平面执行距离计算。 这是默认设置。
  • GEODESIC距离计算将在椭圆体上执行。 无论输入或输出投影,结果均不会改变。
String
in_barrier_data
(可选)

定义障碍的数据集。

可通过整型栅格或浮点型栅格,或通过点、线或面要素来定义障碍。

Raster Layer; Feature Layer
out_back_direction_raster
(可选)

输出欧氏反向栅格。

反向栅格中包含以度为单位的计算方向。 该方向可用于识别沿最短路径返回最近源同时避开障碍的下一像元。

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

输出栅格为浮点类型。

Raster Dataset

返回值

名称说明数据类型
out_distance_raster

输出欧氏距离栅格。

此距离栅格标识每个像元至最近源像元、源像元集或源位置的欧氏距离。

输出栅格为浮点型。

Raster

代码示例

EucDistance 示例 1(Python 窗口)

以下 Python 窗口脚本演示了 EuclideanDistance 工具的使用方法。

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outEucDistance = EucDistance("rec_sites.shp", 5000, 5, 
                             "c:/sapyexamples/output/EucDirOut")
outEucDistance.save("C:/sapyexamples/output/eucdist")
EucDistance 示例 2(独立脚本)

计算每个像元最近源的直线距离。

# Name: EucDistance_Ex_02.py
# Description: Calculates for each cell the Euclidean distance to the nearest source.
# 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
inSourceData = "rec_sites.shp"
maxDistance = 4000
cellSize = 4
outDirectionRaster = "C:/sapyexamples/output/eucdirect"

# Execute EucDistance
outEucDistance = EucDistance(inSourceData, maxDistance, cellSize, outDirectionRaster)

# Save the output 
outEucDistance.save("C:/sapyexamples/output/eucdist")

许可信息

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

相关主题