点距离 (分析)

摘要

在某一指定搜索半径范围内,确定输入点要素与邻近要素中所有点之间的距离。

旧版本:

此工具已弃用。 此功能已由近邻分析生成近邻表工具替代,现用于计算点、折线和面要素间的距离。

插图

点距离图示

使用情况

  • 此工具用于创建两组点之间的距离表。如果使用默认搜索半径,则计算所有输入点与所有邻近点之间的距离。 输出表可能非常大。 例如,如果输入要素和邻近要素各包含 1,000 个点,则输出表会包含一百万条记录。

  • 使用有意义的搜索半径可限制输出的大小并提高工具的性能。 输出表仅包含具有搜索半径内邻近点的这些记录。

  • 结果将记录在输出表中,其中包含以下信息:

    • INPUT_FID - 输入要素的要素 ID
    • NEAR_FID - 邻近要素的要素 ID
    • DISTANCE - 输入要素与邻近要素之间的距离。 此字段的值采用输入要素坐标系的线性单位。
  • 输入要素邻近要素可以是同一数据集。在此情况下,如果输入要素和邻近要素是相同的记录,将忽略这一结果,这样就不会报告与一个要素的距离是 0 个单位的要素本身。

参数

标注说明数据类型
输入要素

计算点要素与邻近要素之间的距离时作为起点的点要素。

Feature Layer
邻近要素

计算输入要素与点之间的距离时作为终点的点。 可通过为输入要素和邻近要素指定同一要素类或图层来确定同一要素类或图层范围内各点之间的距离。

Feature Layer
输出表

包含输入要素列表和搜索半径内所有邻近要素相关信息的表。 如果未指定搜索半径,则计算所有输入要素与所有邻近要素之间的距离。

Table
搜索半径
(可选)

指定用于搜索候选邻近要素的半径。 将考虑此半径中的邻近要素来计算最近的要素。 如果未指定值(即使用默认(空)半径),则在计算中考虑所有邻近要素。 搜索半径的单位默认为输入要素的单位。 可以将单位更改为任何其他单位。 但是,这对输出 DISTANCE 字段的单位不会产生任何影响,后者基于输入要素的坐标系单位。

Linear Unit

arcpy.analysis.PointDistance(in_features, near_features, out_table, {search_radius})
名称说明数据类型
in_features

计算点要素与邻近要素之间的距离时作为起点的点要素。

Feature Layer
near_features

计算输入要素与点之间的距离时作为终点的点。 可通过为输入要素和邻近要素指定同一要素类或图层来确定同一要素类或图层范围内各点之间的距离。

Feature Layer
out_table

包含输入要素列表和搜索半径内所有邻近要素相关信息的表。 如果未指定搜索半径,则计算所有输入要素与所有邻近要素之间的距离。

Table
search_radius
(可选)

指定用于搜索候选邻近要素的半径。 将考虑此半径中的邻近要素来计算最近的要素。 如果未指定值(即使用默认(空)半径),则在计算中考虑所有邻近要素。 搜索半径的单位默认为输入要素的单位。 可以将单位更改为任何其他单位。 但是,这对输出 DISTANCE 字段的单位不会产生任何影响,后者基于输入要素的坐标系单位。

Linear Unit

代码示例

点距离 (PointDistance) 示例 1(Python 窗口)

以下 Python 交互式窗口脚本演示了如何在即时模式下使用 PointDistance 函数。

import arcpy
arcpy.env.workspace = "C:/data/pointdistance.gdb"
  
arcpy.analysis.PointDistance("police_stations", "crime_location", "crime_distances")
PointDistance 示例 2(独立脚本)

以下 Python 脚本演示了如何在独立脚本中使用 PointDistance 函数。

# Description: Finds distance of each near point from each input point and outputs to a table.
  
# import system modules
import arcpy
  
# set workspace environment
arcpy.env.workspace = "C:/data/pointdistance.gdb"
  
# set variables
in_features = "police_stations"
near_features = "crime_location"
out_table = "crime_distance4"
search_radius = "22000 Feet"
  
try:
    # find crime locations within the search radius
    arcpy.analysis.PointDistance(in_features, near_features, out_table, search_radius)
    print arcpy.GetMessages(0)
    
except arcpy.ExecuteError:
    print arcpy.GetMessages(2)
    
except Exception as ex:
    print ex.args[0]

许可信息

  • Basic: 否
  • Standard: 否
  • Advanced: 是