生成近邻表 (分析)
摘要
在搜索半径范围内,确定输入要素中的每个要素与邻近要素中的一个或多个附近要素之间的距离。结果将记录在输出表中。
插图
用法
-
此工具和近邻分析工具类似。但是,该工具不更新输入要素,而是创建一个新的输出表。而且,该工具能够发现和最接近匹配项的最大数量参数指定的数量一样多的邻近要素。
默认情况下,输出表包含三个字段 IN_FID、NEAR_FID 和 NEAR_DIST。其他字段则根据所选的可选参数(在参数条目中说明)添加到输出。
-
可以使用 INPUT_FID 或 NEAR_FID 字段将输出表连接回输入要素类或邻近要素类中。
-
输入要素和邻近要素都可以是点、多点、线或面。
-
该工具的默认选项是要找到从每个输入要素到最近的邻近要素的距离。选择 ALL 选项,即取消取中仅查找最近的要素 参数来创建包含所有输入和所有邻近要素之间的距离的表。
-
如果在搜索半径内未找到任何要素,则 NEAR_FID 和 NEAR_DIST 的值都将为 -1。
-
如果未指定搜索半径,将使用足够大的半径,以便所有邻近要素都可纳入距离计算中。如果使用默认搜索半径(未指定半径),则输出表可能非常大。例如,如果计算一个要素类中 1000 个点与另一个要素类中 1000 个点之间的距离,则可生成含有一百万个记录的输出表。可使用搜索半径来限制输出记录的数量。
-
输入要素和邻近要素可以是相同的数据集。在输入要素和邻近要素是相同记录的情况下,将忽略这一结果,这样就不会报告与一个要素的距离是 0 个单位的要素本身。
语法
参数 | 说明 | 数据类型 |
in_features |
输入要素可以是点、折线 (polyline)、面或多点类型。 | Feature Layer |
near_features [near_features,...] |
邻近要素用于查找距离输入要素最近的要素。可以有一个或多个邻近要素的条目;每个条目可以是点、折线 (polyline)、面或多点类型。当指定邻近要素的多个条目时,会将新字段 NEAR_FC 添加到输入表中,以存储含有最近要素的源要素类的路径。 | Feature Layer |
out_table |
如有必要,输出表将包含 NEAR_FC 和邻近要素的邻近性信息(例如,IN_FID、NEAR_FID、NEAR_DIST)和其他属性(例如,位置 (NEAR_X, NEAR_Y)、角度 (NEAR_ANGLE))。 | Table |
search_radius (可选) |
指定用于搜索候选邻近要素的半径。将考虑此半径中的邻近要素来计算最近的要素。如果未指定值,则使用默认(空)半径,将在计算中考虑所有的临近要素。可以指定任何距离单位来替换输入要素的默认单位。 | Linear unit |
location (可选) |
指定是否将邻近要素最近位置的 x 和 y 坐标分别写入新字段 NEAR_X 和 NEAR_Y。
| Boolean |
angle (可选) |
指定是否计算以十进制度为单位的邻近角度值,以及是否将其写入新字段 NEAR_ANGLE。邻近角测量 x 轴(水平轴)与特定方向的直线(该直线连接输入要素与其最近要素的最近位置)之间的夹角;它的范围在 0 到 180 或 0 到 -180 十进制度之间。
| Boolean |
closest (可选) |
确定是只定位并返回最近的要素,还是返回搜索半径内的所有要素。
| Boolean |
closest_count (可选) |
仅查找指定数量的最近要素。当选中仅查找最近的要素选项时,此参数将不能使用。 | Long |
代码示例
以下代码片段演示了如何在 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. # Author: ESRI # import system modules import arcpy from arcpy import env # set workspace environment env.workspace = "C:/data/input/gnt.gdb" # set required parameters inFeatures = "campsites" nearFeatures = ["parks", "trails"] outTable = "near_parks_trails" # optional parameters searchRadius = '1500 Meters' location = 'NO_LOCATION' angle = 'NO_ANGLE' closest = 'ALL' closestCount = 3 # find crime locations within the search radius arcpy.GenerateNearTable_analysis(inFeatures, nearFeatures, outTable, searchRadius, location, angle, closest, closestCount)