需要 Spatial Analyst 许可。
摘要
计算每个像元到最近源的欧氏距离。
插图
用法
输入源数据可以是要素类或栅格。
当输入源数据是栅格时,源像元集包括具有有效值的源栅格中的所有像元。具有 NoData 值的像元不包括在源集内。值 0 将被视为合法的源。使用提取工具可轻松地创建源栅格。
当输入源数据是要素类时,源位置在执行分析之前从内部转换为栅格。栅格的分辨率可以由输出像元大小参数或像元大小环境来控制。默认情况下,分辨率将由输入空间参考中输入要素范围的宽度与高度中的较小值除以 250 来确定。
当输入源数据为面要素数据时,如果输出像元大小相对于输入中的详细信息较为粗略,则必须注意输出像元大小的处理方式。内部栅格化过程将采用与面转栅格工具相同的默认像元分配类型方法,即像元中心法。这意味着,不在像元中心的数据将不会包含在中间栅格化源输出中,因此也不会在距离计算中表示出来。例如,如果您的源是一系列相对于输出像元大小偏小的面,如建筑物覆盖区,则可能只有一部分面会落入输出栅格像元的中心,从而导致分析中会缺少其他大部分面。
为避免出现这种情况,在中间步骤,您可以使用面转栅格工具直接将输入要素栅格化并设置优先级字段。然后将生成的输出用作希望使用的特定距离工具的输入。或者,您可以选择一个小的像元大小以从输入要素中捕获适当量的详细信息。
最大距离以与输入源数据相同的地图单位指定。
不可使用的分配输出,因为在源数据中没有浮点信息。如果希望使用分配输出,请使用可同时生成三个输出(分配、距离和方向)的欧氏分配工具。
该工具支持并行处理。如果您的计算机具有多个处理器或处理器具有多个内核,则会获得更好的性能,特别是处理较大数据集时。使用 Spatial Analyst 进行并行处理帮助主题提供了有关此功能及其配置方法的详细信息。
使用并行处理时,将写入临时数据以管理正在处理的数据区段。默认的临时文件夹位于您的本地 C 驱动器上。您可以通过设置名为 TempFolders 的系统环境变量并指定要使用的文件夹路径(例如,E:\RasterCache),来控制此文件夹的位置。如果您具有计算机管理权限,还可以使用注册表键(例如,[HKEY_CURRENT_USER\SOFTWARE\ESRI\Desktop10.6\Raster])。
默认情况下,此工具将使用可用内核数的 50%。如果输入数据大小小于 5,000 * 5,000 个像元,则会使用更少的内核。您可以控制该工具用于并行处理因子环境的内核数。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
语法
EucDistance (in_source_data, {maximum_distance}, {cell_size}, {out_direction_raster}, {distance_method})
参数 | 说明 | 数据类型 |
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 (可选) | 确定是否使用平面(平地)或测地线(椭球)方法计算距离。
| String |
返回值
名称 | 说明 | 数据类型 |
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"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute EucDistance
outEucDistance = EucDistance(inSourceData, maxDistance, cellSize, outDirectionRaster)
# Save the output
outEucDistance.save("C:/sapyexamples/output/eucdist")
环境
许可信息
- ArcGIS Desktop Basic: 需要 Spatial Analyst
- ArcGIS Desktop Standard: 需要 Spatial Analyst
- ArcGIS Desktop Advanced: 需要 Spatial Analyst