描述
计算一个或多个要素类或图层中的要素间距离和其他邻近性信息。与可修改输入的近邻分析工具不同,生成近邻表可将结果写入新的独立表中,并支持查找多个邻近要素。
插图
使用方法
输出表将包含以下字段:
字段名称 描述 IN_FID 输入要素的 ObjectID。
NEAR_FID 最邻近要素的 ObjectID。
NEAR_DIST 输入要素至邻近要素的距离。该字段的值采用输入要素坐标系的线性单位,当方法参数设置为“测地线”且输入采用地理坐标系时,该字段的值的单位为“米”。
NEAR_FC 包含邻近要素的要素类的目录路径。仅在指定了多个邻近要素时,才会将此字段添加到输出表中。
NEAR_RANK 将所有邻近要素根据其与单独输入要素的邻近性进行排序的整数值。最近的要素的 NEAR_RANK 值将为 1,其次 NEAR_RANK 值将为 2,以此类推。
如果选中位置参数(在 Python 中 location 参数设置为 LOCATION),则以下字段将被添加到输出表中。字段值的单位取决于在方法参数中选择了什么方法。如果设置为 PLANAR,则该值采用输入要素坐标系的线性单位。如果设置为 GEODESIC,则该值采用与输入要素坐标系相关联的地理坐标系。
字段名称 描述 FROM_X 输入要素中距离邻近要素最近位置的 x 坐标。
FROM_Y 输入要素中距离邻近要素最近位置的 y 坐标。
NEAR_X 邻近要素中距离输入要素最近位置的 x 坐标。
NEAR_Y 邻近要素中距离输入要素最近位置的 y 坐标。
如果选中角度参数(在 Python 中 angle 参数设置为 ANGLE),则以下字段将被添加到输出表中。
字段 描述 NEAR_ANGLE 连接输入要素和邻近要素的位于 FROM_X 和 FROM_Y 位置的线的角度。
输入要素和邻近要素相交时,则将以下值写入输出表:
- NEAR_ANGLE 和 NEAR_DIST 将设置为 0.0。
- FROM_X 和 FROM_Y 将与 NEAR_X 和 NEAR_Y 相同,并且将为两个要素相交部分内的位置。
NEAR_DIST 字段的值采用输入要素坐标系的线性单位。如果输入位于地理坐标系中,且 Method 参数设置为 GEODESIC,则 NEAR_DIST 将以米为单位。
输出表可使用 IN_FID 与输入要素重新连接,或使用 NEAR_FID 与邻近要素重新连接。
如果指定了搜索半径且未找到任何邻近要素,则不会输出任何记录。
如果未指定搜索半径,则所有邻近要素均被视为候选项。
如果未指定搜索半径且未选中仅查找最近的要素(在 Python 中 closest 设置为 ALL),并且最近要素的最大数量为默认值(0 或空),则输出表将包含所有输入要素和邻近要素间的距离计算结果。这种处理可能需要花费很长时间并创建出一个巨大的输出表。例如,如果有 1,000 个输入要素和 1,000 个邻近要素,输出表将包含 1,000,000 条记录。
同一要素类或图层可同时用作输入要素和邻近要素。这种情况下,所评估的输入要素将被排除在邻近要素候选项之外,以避免得出所有要素都与其自身最接近的结果。
使用方法参数的平面选项时,输入要素应采用适合距离测量值的投影,如等距投影。
了解有关坐标系和投影的详细信息
为了显示 FROM_X、FROM_Y、NEAR_X 和 NEAR_Y 位置,输出表可用作创建 XY 事件图层或 XY 转线工具的输入。
语法
arcpy.analysis.GenerateNearTable(in_features, near_features, out_table, {search_radius}, {location}, {angle}, {closest}, {closest_count}, {method})
参数 | 说明 | 数据类型 |
in_features | 输入要素可以是点、折线、面或多点类型。 | Feature Layer |
near_features [near_features,...] | 一个或多个包含邻近要素候选项的要素类的图层。邻近要素可以是点、折线、面或多点。如果指定了多个图层或要素类,名为 NEAR_FC 的字段将被添加到输入表中,并存储包含所发现的最近要素的源要素类的路径。同一要素类或图层可同时用作输入要素和邻近要素。 | Feature Layer |
out_table | 包含分析结果的输出表。 | Table |
search_radius (可选) | 用于搜索邻近要素的半径。如果未指定任何值,则所有邻近要素都将是候选项。如果输入了距离,但单位留空或设为未知,则将使用输入要素的坐标系的单位。如果方法参数使用了测地线选项,则应使用线性单位(如公里或英里)。 | Linear Unit |
location (可选) | 指定是否将输入要素的位置以及邻近要素的最近位置的 x 坐标和 y 坐标写入 FROM_X、FROM_Y、 NEAR_X 和 NEAR_Y 字段。
| Boolean |
angle (可选) | 指定是否计算邻近角并将其写入输出表的 NEAR_ANGLE 字段。邻近角测量与直线(该直线连接输入要素与其最近要素的最近位置)方向之间的夹角。在 method 参数中使用 PLANAR 方法时,角度在 -180° 到 -180° 的范围内,0° 代表东,90° 代表北,180°(或 -180°)代表西,-90° 代表南。使用 GEODESIC 方法时,角度在 -180° 到 180° 的范围内,0° 代表北,90° 代表东,180°(或 -180°)代表南,-90° 代表西。
| Boolean |
closest (可选) | 指定仅返回最近要素或返回多个要素。
| Boolean |
closest_count (可选) | 限制对于每个输入要素报告的邻近要素的数量。如果 closest 参数设置为 CLOSEST.,则忽略此参数。 | Long |
method (可选) | 确定是使用椭球体上的最短路径(测地线)还是使用地平(平面)。强烈建议将测地线方法和存储于不适用进行距离测量的坐标系(例如 Web 墨卡托和任何地理坐标系)中的数据,或任何覆盖较大地理区域的数据集结合使用。
| String |
代码示例
下文演示了如何在 Python 窗口中使用 GenerateNearTable 函数。
import arcpy
arcpy.env.workspace = "C:/data/input/gnt.gdb"
arcpy.GenerateNearTable_analysis("campsites", ["parks", "trails"], "better_sites")
以下 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.GenerateNearTable_analysis(in_features, near_features, out_table, search_radius,
location, angle, closest, closest_count)
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是