描述
根据每个要素与其最近邻要素之间的平均距离计算其最近邻指数。
插图
使用方法
“平均最近邻”工具将返回五个值:“平均观测距离”、“预期平均距离”、“最近邻指数”、z 得分和 p 值。您可通过结果窗口访问这些值,也可以将这些值作为派生输出值进行传递,以满足模型或脚本中的潜在使用需要。或者,此工具会创建一个 HTML 文件,其中包含了结果的图形汇总。双击结果窗口中的 HTML 条目时,将在默认的 Internet 浏览器中打开该 HTML 文件。右键单击结果窗口中的消息条目并选择查看,将在消息对话框中显示结果。
z 得分和 p 值结果是统计显著性的量度,用来判断是否拒绝零假设。但是应注意,此方法的统计意义受研究区域大小的强烈影响(请参阅下文)。对于“平均最近邻”统计,零假设表明要素是随机分布的。
“最近邻指数”的表示方式是“平均观测距离”与“预期平均距离”的比率。预期平均距离是假设随机分布中的邻域间的平均距离。如果指数小于 1,所表现的模式为聚类;如果指数大于 1,则所表现的模式趋向于离散或竞争。
平均最近邻方法对“面积”值非常敏感(面积参数值的细微变化都能导致 z 得分和 p 值结果产生巨大变化)。因此,平均最近邻工具最适用于对固定研究区域中不同的要素进行比较。下图是关于相同要素分布如何根据指定的研究区域进行分散或聚类的一个典型示例。
如果没有指定面积参数值,则使用输入要素周围最小外接矩形的面积。与范围不同,最小外接矩形不一定必须与 x 轴和 y 轴对齐。
如果未投影输入要素类(即,坐标单位为度、分和秒),或者将输出坐标系设置为地理坐标系,则采用弦测量方法计算距离。使用弦距离测量法是因为此方法不仅计算速度快,而且提供真实测地线距离的良好估测,至少对于彼此 30 度以内的点是这样。弦距离以扁椭圆体为基础。给定地球表面上的任意两点,两点之间的弦距离是从三维地球穿过然后连接该两点的一条线的长度。弦距离以米为单位输出。
如果分析时使用弦距离,面积参数(如指定)应以米为单位。
在 ArcGIS 10.2.1 之前的版本中,如果所选的参数和环境设置要求通过地理坐标(度、分、秒)计算结果,则会显示一条警告消息。该警告消息建议您投影数据到投影坐标系中,以使距离计算结果更为准确。但自 10.2.1 起,每当需要使用地理坐标系进行计算时,该工具都将计算弦距离。
在一些特殊情况下,输入要素可能会造成无效(面积为零)的最小外接矩形。在这种情况下,将使用基于输入要素的 XY 容差得到的一个较小值来创建最小外接矩形。例如,如果所有的要素都重合(也就是说,所有要素拥有完全相同的 X 和 Y 坐标),则在计算中将使用单一位置周围的一个非常小的方形面的面积。另一个例子是,所有要素完全对齐(例如,一条直线上的 3 个点);在这种情况下,将在计算中使用要素周围一个宽度很小的矩形面的面积。使用平均最近邻工具时,最好提供一个面积值。
尽管此工具将用于处理面或线数据,但它最适用于事件、事件点或其他定点要素数据。对于线要素和面要素,会在计算中使用每个要素真正的几何质心。对于多点、折线 (polyline) 或由多部件组成的面,使用所有要素部件的加权平均中心来计算质心。点要素的加权项是 1,线要素的加权项是长度,而面要素的加权项是面积。
此工具将选择性地创建 HTML 文件汇总结果。HTML 文件不会自动显示在目录窗口中。如果要在“目录”中显示 HTML 文件,可打开 ArcCatalog 应用程序,选择自定义菜单选项,单击 ArcCatalog 选项,然后选择文件类型选项卡。单击新建类型按钮,并指定 HTML 作为文件扩展名。
-
地图图层可用于定义输入要素类。在使用带有选择内容的图层时,分析只会包括所选的要素。
语法
arcpy.stats.AverageNearestNeighbor(Input_Feature_Class, Distance_Method, {Generate_Report}, {Area})
参数 | 说明 | 数据类型 |
Input_Feature_Class | 要对平均最近邻距离进行计算的要素类(通常是点要素类)。 | Feature Layer |
Distance_Method | 指定计算每个要素与邻近要素之间的距离的方式。
| String |
Generate_Report (可选) | 指定工具是否将创建结果的图形汇总。
| Boolean |
Area (可选) | 表示研究区域大小的数值。默认值是包含所有要素(或所有选定要素)的最小外接矩形的面积。单位应与“输出坐标系”的单位一致。 | Double |
代码示例
平均最近邻 (AverageNearestNeighbor) 示例 1(Python 窗口)
下面的 Python 窗口脚本演示了如何使用 AverageNearestNeighbor 工具。
import arcpy
arcpy.env.workspace = r"C:\data"
arcpy.AverageNearestNeighbor_stats("burglaries.shp", "EUCLIDEAN_DISTANCE", "NO_REPORT", "#")
AverageNearestNeighbor 示例 2(独立脚本)
以下独立 Python 脚本演示了如何使用 AverageNearestNeighbor 工具。
# Analyze crime data to determine if spatial patterns are statistically significant
# Import system modules
import arcpy
# Local variables...
workspace = "C:/data"
crime_data = "burglaries.shp"
try:
# Set the current workspace (to avoid having to specify the full path to the feature classes each time)
arcpy.env.workspace = workspace
# Obtain Nearest Neighbor Ratio and z-score
# Process: Average Nearest Neighbor...
nn_output = arcpy.AverageNearestNeighbor_stats(crime_data, "EUCLIDEAN_DISTANCE", "NO_REPORT", "#")
# Create list of Average Nearest Neighbor output values by splitting the result object
print("The nearest neighbor index is: " + nn_output[0])
print("The z-score of the nearest neighbor index is: " + nn_output[1])
print("The p-value of the nearest neighbor index is: " + nn_output[2])
print("The expected mean distance is: " + nn_output[3])
print("The observed mean distance is: " + nn_output[4])
print("The path of the HTML report: " + nn_output[5])
except arcpy.ExecuteError:
# If an error occurred when running the tool, print out the error message.
print(arcpy.GetMessages())
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是