生成近邻表 (分析)

摘要

计算一个或多个要素类或图层中的要素间距离和其他邻近性信息。 与可修改输入的近邻分析工具不同,生成近邻表可将结果写入新的独立表中,并支持查找多个邻近要素。

了解有关如何使用地理处理工具计算邻近值的详细信息

插图

生成近邻表工具图示

使用情况

  • 输出表将包含以下字段:

    • IN_FID- 输入要素的 ObjectID。
    • NEAR_FID- 最邻近要素的 ObjectID。
    • NEAR_DIST- 输入要素至邻近要素的距离。 该字段值的距离单位采用输入要素坐标系的线性单位,当方法参数设置为测地线且输入采用地理坐标系时,该字段值的距离单位为米。
    • NEAR_FC- 包含邻近要素的要素类的目录路径。 仅在指定了多个邻近要素值时,才会将此字段添加到输出表中。
    • NEAR_RANK- 将所有邻近要素根据其与单独输入要素的邻近性进行排序的整数值。 最近的要素值为 1,其次近的要素值为 2,以此类推。

    如果选中位置参数,则会将以下字段添加至输出表。 字段值单位取决于方法参数值。 如果方法参数设置为平面,则字段值将使用输入要素坐标系的线性单位。 如果其设置为测地线,则字段值将使用与输入要素坐标系相关联的地理坐标系。

    • FROM_X- 输入要素中距离邻近要素最近位置的 x 坐标
    • FROM_Y- 输入要素中距离邻近要素最近位置的 y 坐标
    • NEAR_X- 邻近要素中距离输入要素最近位置的 x 坐标
    • NEAR_Y- 邻近要素中距离输入要素最近位置的 y 坐标

    如果选中角度参数,则会将以下字段添加到输出表中。

    • NEAR_ANGLE- 连接输入要素和邻近要素的线在 FROM_XFROM_Y 位置的角度。

  • 输入要素和邻近要素相交时,则将以下值写入输出表:

    • NEAR_ANGLENEAR_DIST 将被设置为 0.0。
    • FROM_XFROM_Y 将与 NEAR_XNEAR_Y 相同,并且将为两个要素相交部分内的位置。

  • NEAR_DIST 字段的值将采用输入要素坐标系的线性单位。 如果输入位于地理坐标系中,且方法参数设置为测地线,则 NEAR_DIST 字段将以米为单位。

  • 输出表可使用 IN_FID 字段连接回输入要素,或使用 NEAR_FID 字段连接到邻近要素。

  • 如果指定了搜索半径参数值且未找到任何邻近要素,则不会输出任何记录。

  • 如果未指定搜索半径参数值,则所有邻近要素均被视为候选项。

  • 如果未指定搜索半径参数值且未选中仅查找最近的要素参数,并且最接近匹配项的最大数量参数设置为默认值(0 或空),则输出表将包含所有输入要素和邻近要素间的距离计算结果。 此过程可能需要花费较长时间并创建出一个大型输出表。 例如,如果有 1,000 个输入要素和 1,000 个邻近要素,输出表将包含 1,000,000 条记录。

  • 同一要素类或图层可同时用作输入要素和邻近要素。 这种情况下,所评估的输入要素将被排除在邻近要素候选项之外,以避免得出所有要素都与其自身最接近的结果。

  • 当使用方法参数的平面选项时,对于适用于距离测量值的输入要素,请使用投影,例如等距投影。

    了解有关坐标系和投影的详细信息

  • 要可视化 FROM_XFROM_YNEAR_XNEAR_Y 字段值,可将输出表用作创建 XY 事件图层XY 转线工具的输入。

  • 可以使用距离单位参数为 NEAR_DIST 字段设置测量单位,例如米、千米或英里。

参数

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

输入要素,可以为点、折线、面或多点类型。

Feature Layer
邻近要素

包含邻近要素候选项的输入要素图层或要素类。 邻近要素可以是点、折线、面或多点。 如果指定了多个图层或要素类,则 NEAR_FC 字段将被添加到输入表中,并将存储含有找到的最近要素的源要素类的路径。 同一要素类或图层可同时用作输入要素和邻近要素。

Feature Layer
邻近要素

一个或多个包含邻近要素候选项的要素图层或要素类。 邻近要素可以是点、折线、面或多点。 如果指定了多个图层或要素类,则 NEAR_FC 字段将添加到输入表中,并将存储含有找到的最近要素的源要素类的路径。 同一要素类或图层可同时用作输入要素和邻近要素。

Feature Layer
输出表

包含分析结果的输出表。

Table
搜索半径
(可选)

将用于搜索邻近要素的半径。 如果未指定任何值,则会考虑所有邻近要素。 如果指定了距离,但没有指定任何单位或将单位设置为未知,则将使用输入要素的坐标系单位。 如果 Method 参数使用了 Geodesic 选项,则使用线性单位(如公里或英里)。

Linear Unit
位置
(可选)

指定是否将输入要素的位置以及邻近要素的最近位置的 x 坐标和 y 坐标写入 FROM_XFROM_YNEAR_XNEAR_Y 字段。

  • 未选中 - 这些位置将不会被写入到输出表中。 这是默认设置。
  • 选中 - 位置将被写入到输出表中。
Boolean
(可选)

指定是否计算邻近角并将其写入输出表的 NEAR_ANGLE 字段。 邻近角测量与直线(该直线连接输入要素与其最近要素的最近位置)方向之间的夹角。 当方法参数使用平面方法时,角度将在 -180° 到 180° 的范围内,0°代表东,90°代表北,180°(或 -180°)代表西,-90° 代表南。 当方法参数使用测地线方法时,角度将在 -180° 到 180° 的范围内,0° 代表北,90° 代表东,180°(或 -180°)代表南,-90° 代表西。

  • 未选中 - 不会计算邻近角,也不会向输出表添加 NEAR_ANGLE 字段。 这是默认设置。
  • 选中 - 将计算邻近角,还将向输出表添加 NEAR_ANGLE 字段。
Boolean
仅查找最近的要素
(可选)

指定是否仅将最近的要素写入输出表。

  • 选中 - 仅将最近的邻近要素写入输出表。 这是默认设置。
  • 未选中 - 多个邻近要素将被写入输出表(可在最接近匹配项的最大数量参数中指定上限)。
Boolean
最接近匹配项的最大数量
(可选)

限制对于每个输入要素报告的邻近要素的数量。 如果已选中仅查找最近的要素参数,则此参数处于非活动状态。

Long
方法
(可选)

指定是使用椭球体上的最短路径(测地线)还是使用地平(平面)距离方法。 建议将测地线方法用于在不适合进行距离测量的坐标系(例如 Web 墨卡托或任何地理坐标系)中存储的数据,以及地理区域跨度较大的数据集。

  • 平面要素之间将使用平面距离。 这是默认设置。
  • 测地线将在要素之间使用测地线距离。 这种方法考虑到椭球体的曲率,并可以正确处理国际日期变更线和极点附近的数据。
String
距离单位
(可选)

指定 NEAR_DIST 字段的测量单位。 未指定任何测量单位时,NEAR_DIST 字段中的值将采用输入要素坐标系的线性单位。 如果输入位于地理坐标系中并且使用了测地线方法,则 NEAR_DIST 字段的单位将为米。

  • 千米单位将为公里。
  • 单位将为米。
  • 国际海里单位将为国际海里。
  • 法定英里单位将为法定英里。
  • 国际码单位将为国际码。
  • 国际英尺单位将为国际英尺。
  • 美国测量海里单位将为美国测量海里。
  • 美国测量英里单位将为美国测量英里。
  • 美国测量码单位将为美国测量码。
  • 美国测量英尺单位将为美国测量英尺。
String

arcpy.analysis.GenerateNearTable(in_features, near_features, near_features, out_table, {search_radius}, {location}, {angle}, {closest}, {closest_count}, {method}, {distance_unit})
名称说明数据类型
in_features

输入要素,可以为点、折线、面或多点类型。

Feature Layer
near_features
[near_features,...]

包含邻近要素候选项的输入要素图层或要素类。 邻近要素可以是点、折线、面或多点。 如果指定了多个图层或要素类,则 NEAR_FC 字段将被添加到输入表中,并将存储含有找到的最近要素的源要素类的路径。 同一要素类或图层可同时用作输入要素和邻近要素。

Feature Layer
near_features
[near_features,...]

一个或多个包含邻近要素候选项的要素图层或要素类。 邻近要素可以是点、折线、面或多点。 如果指定了多个图层或要素类,则 NEAR_FC 字段将添加到输入表中,并将存储含有找到的最近要素的源要素类的路径。 同一要素类或图层可同时用作输入要素和邻近要素。

Feature Layer
out_table

包含分析结果的输出表。

Table
search_radius
(可选)

将用于搜索邻近要素的半径。 如果未指定任何值,则会考虑所有邻近要素。 如果指定了距离,但没有指定任何单位或将单位设置为未知,则将使用输入要素的坐标系单位。 如果针对 method 参数使用了 GEODESIC 选项,则使用线性单位,例如千米或英里。

Linear Unit
location
(可选)

指定是否将输入要素的位置以及邻近要素的最近位置的 x 坐标和 y 坐标写入 FROM_XFROM_YNEAR_XNEAR_Y 字段。

  • NO_LOCATION这些位置将不会被写入到输出表中。 这是默认设置。
  • LOCATION这些位置将被写入到输出表中。
Boolean
angle
(可选)

指定是否计算邻近角并将其写入输出表的 NEAR_ANGLE 字段。 邻近角测量与直线(该直线连接输入要素与其最近要素的最近位置)方向之间的夹角。 当 method 参数使用 PLANAR 方法时,角度将在 -180° 到 180° 的范围内,0°代表东,90°代表北,180°(或 -180°)代表西,-90° 代表南。 当 method 参数使用 GEODESIC 方法时,角度将在 -180° 到 180° 的范围内,0° 代表北,90° 代表东,180°(或 -180°)代表南,-90° 代表西。

  • NO_ANGLE不会计算邻近角,也不会向输出表添加 NEAR_ANGLE 字段。 这是默认设置。
  • ANGLE将计算邻近角,还将向输出表添加 NEAR_ANGLE 字段。
Boolean
closest
(可选)

指定是否仅将最近的要素写入输出表。

  • CLOSEST仅将最近的邻近要素写入输出表。 这是默认设置。
  • ALL多个邻近要素将被写入输出表(可在 closest_count 参数中指定上限)。
Boolean
closest_count
(可选)

限制对于每个输入要素报告的邻近要素的数量。 如果 closest 参数设置为 CLOSEST,则忽略此参数。

Long
method
(可选)

指定是使用椭球体上的最短路径(测地线)还是使用地平(平面)距离方法。 建议将 GEODESIC 方法用于在不适合进行距离测量的坐标系(例如 Web 墨卡托或任何地理坐标系)中存储的数据,以及地理区域跨度较大的数据集。

  • PLANAR要素之间将使用平面距离。 这是默认设置。
  • GEODESIC将在要素之间使用测地线距离。 这种方法考虑到椭球体的曲率,并可以正确处理国际日期变更线和极点附近的数据。
String
distance_unit
(可选)

指定 NEAR_DIST 字段的测量单位。 未指定任何测量单位时,NEAR_DIST 字段中的值将采用输入要素坐标系的线性单位。 如果输入位于地理坐标系中并且使用了测地线方法,则 NEAR_DIST 字段的单位将为米。

  • Kilometers单位将为公里。
  • Meters单位将为米。
  • NauticalMilesInt单位将为国际海里。
  • MilesInt单位将为法定英里。
  • YardsInt单位将为国际码。
  • FeetInt单位将为国际英尺。
  • NauticalMiles单位将为美国测量海里。
  • Miles单位将为美国测量英里。
  • Yards单位将为美国测量码。
  • Feet单位将为美国测量英尺。
String

代码示例

GenerateNearTable 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 GenerateNearTable 函数。

import arcpy

arcpy.env.workspace = "C:/data/input/gnt.gdb"

arcpy.analysis.GenerateNearTable("campsites", ["parks", "trails"], "better_sites")
GenerateNearTable 示例 2(独立脚本)

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

# Name: GenerateNearTable.py
# Description: Finds 3 nearest in the near feature class from the input feature class.


# import system modules
import arcpy

# set workspace environment
arcpy.env.workspace = "C:/data/input/gnt.gdb"

# set required parameters 
in_features = "campsites"
near_features = ["parks", "trails"]
out_table = "near_parks_trails"

# optional parameters
search_radius = '1500 Meters'
location = 'NO_LOCATION'
angle = 'NO_ANGLE'
closest = 'ALL'
closest_count = 3

# find crime locations within the search radius
arcpy.analysis.GenerateNearTable(in_features, near_features, out_table, search_radius, 
                                 location, angle, closest, closest_count)

许可信息

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

相关主题