生成近邻表 (Analysis)
插图
用法
-
此工具和近邻分析工具类似。但是,该工具不更新输入要素,而是创建一个新的输出表。而且,该工具能够发现和最接近匹配项的最大数量参数指定的数量一样多的邻近要素。
默认情况下,输出表包含三个字段:IN_FID、NEAR_FID 和 NEAR_DIST。其他字段则根据所选的可选参数(在参数条目中说明)添加到输出。
- IN_FID - 存储输入要素的要素 ID。
- NEAR_FID - 存储最近要素的要素 ID。
- NEAR_DIST - 存储输入要素与最近要素之间的距离。此字段的值采用输入要素坐标系的线性单位。
-
可以使用 IN_FID 或 NEAR_FID 字段将输出表连接回输入要素类或邻近要素类中。
-
输入要素和邻近要素均可为点、多点、线或面。
-
该工具的默认选项是要找到从每个输入要素到最近的邻近要素的距离。选择 ALL 选项,即取消取中仅查找最近的要素参数来创建包含所有输入和所有邻近要素之间的距离的表。
-
如果在搜索半径内未找到任何要素,则 NEAR_FID 和 NEAR_DIST 的值都将为 -1。
-
如果未指定搜索半径的值,将使用足够大的半径,以便所有邻近要素均可纳入距离计算中。如果使用默认的搜索半径(未指定半径),输出表可能会非常大。例如,如果计算一个要素类中 1000 个点与另一个要素类中 1000 个点之间的距离,可生成含有一百万个记录的输出表。可使用搜索半径来限制输出记录的数量。
-
输入要素和邻近要素可以是相同的数据集。在此情况下,如果输入要素和邻近要素是相同的记录,将忽略这一结果,这样就不会报告与一个要素的距离是 0 个单位的要素本身。
输入要素可以是您已执行要素选择的图层。使用工具执行操作时将使用并更新所选要素。其余要素将新建字段(例如 NEAR_FID 和 NEAR_DIST)的值设置为 -1。
此工具计算的距离将使用输入要素坐标系的单位。如果输入地理坐标系的数据,并且希望以线性单位(而不是十进制度)测量输出距离,必须首先使用“投影”工具将输入数据投影到投影坐标系。要获得最佳结果,请使用等距投影或适用于您的研究区域的投影(例如 UTM)。
语法
参数 | 说明 | 数据类型 |
in_features |
输入要素可以是点、折线、面或多点类型。 | Feature Layer |
near_features [near_features,...] |
用于查找与输入要素距离最近的要素的值。可以有一个或多个邻近要素的条目;每个条目可以是点、折线、面或多点类型。当指定邻近要素的多个条目时,会将新字段 NEAR_FC 添加到输入表中,以存储含有最近要素的源要素类的路径。 | Feature Layer |
out_table |
如有必要,输出表将包含邻近要素和 NEAR_FC 的邻近性信息(例如,IN_FID、NEAR_FID 和 NEAR_DIST)和其他属性(例如,位置 (NEAR_X、NEAR_Y) 和角度 (NEAR_ANGLE))。 | Table |
search_radius (可选) |
指定用于搜索候选邻近要素的半径。将考虑此半径中的邻近要素来计算最近的要素。如果未指定值,即使用默认(空)半径,将在计算中考虑所有的邻近要素。搜索半径的单位默认为输入要素坐标系的单位。可以将单位更改为任何其他单位。但是,这对 NEAR_DIST 单位不会产生任何影响,后者基于输入要素的坐标系单位。 | Linear unit |
location (可选) |
指定是否将邻近要素最近位置的 x 和 y 坐标分别写入新字段 NEAR_X 和 NEAR_Y。
| Boolean |
angle (可选) |
指定是否计算以十进制度为单位的邻近角度值,以及是否将其写入新字段 NEAR_ANGLE。邻近角测量 x 轴(水平轴)与特定方向的直线(该直线连接输入要素与其最近要素的最近位置)之间的夹角,它的范围在 0 到 180 或 0 到 -180 十进制度之间。0 代表东、90 代表北、180 (-180°) 代表西和 -90 代表南。
| 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.
# 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
try:
# find crime locations within the search radius
arcpy.GenerateNearTable_analysis(in_features, near_features, out_table, search_radius,
location, angle, closest, closest_count)
except:
print arcpy.GetMessages()