插图
使用方法
“平均最近邻”工具将返回五个值:“平均观测距离”、“预期平均距离”、“最近邻指数”、z 得分和 p 值。在工具执行期间,该值在地理处理窗格底部以消息形式写入,并将作为派生输出值进行传递,以满足模型或脚本中的潜在使用需要。您可以将鼠标悬停在进度条上来访问该消息,单击弹出按钮或展开地理处理窗格中的消息部分。您还可以通过地理处理历史访问之前运行工具的消息。此外,此工具会创建一个 HTML 报表文件,其中包含了结果的图形汇总。报表路径将随附在汇总工具执行参数的消息中。单击此路径将弹开报表文件。
z 得分和 p 值结果是统计显著性的量度,用来判断是否拒绝零假设。但是应注意,此方法的统计意义受研究区域大小的强烈影响(请参阅下文)。对于“平均最近邻”统计,零假设表明要素是随机分布的。
“最近邻指数”的表示方式是“平均观测距离”与“预期平均距离”的比率。预期平均距离是假设随机分布中的邻域间的平均距离。如果指数小于 1,所表现的模式为聚类;如果指数大于 1,则所表现的模式趋向于离散或竞争。
平均最近邻方法对“面积”值非常敏感(面积参数值的细微变化都能导致 z 得分和 p 值结果产生巨大变化)。因此,平均最近邻工具最适用于对固定研究区域中不同的要素进行比较。下图是关于相同要素分布如何根据指定的研究区域进行分散或聚类的一个典型示例。
如果没有指定面积参数值,则使用输入要素周围最小外接矩形的面积。与范围不同,最小外接矩形不一定必须与 x 轴和 y 轴对齐。
如果未投影输入要素类(即,坐标单位为度、分和秒),或者将输出坐标系设置为地理坐标系,则采用弦测量方法计算距离。使用弦距离测量法是因为此方法不仅计算速度快,而且提供真实测地线距离的良好估测,至少对于彼此 30 度以内的点是这样。弦距离以扁椭圆体为基础。给定地球表面上的任意两点,两点之间的弦距离是从三维地球穿过然后连接该两点的一条线的长度。弦距离以米为单位输出。
警告:
如果您的研究区域超过 30 度,则请确保投影数据。测地线距离超过 30 度时,弦距离不是理想的估测方法。
如果分析时使用弦距离,面积参数(如指定)应以米为单位。
在一些特殊情况下,输入要素可能会造成无效(面积为零)的最小外接矩形。在这种情况下,将使用基于输入要素的 XY 容差得到的一个较小值来创建最小外接矩形。例如,如果所有的要素都重合(也就是说,所有要素拥有完全相同的 X 和 Y 坐标),则在计算中将使用单一位置周围的一个非常小的方形面的面积。另一个例子是,所有要素完全对齐(例如,一条直线上的 3 个点);在这种情况下,将在计算中使用要素周围一个宽度很小的矩形面的面积。使用平均最近邻工具时,最好提供一个面积值。
尽管此工具将用于处理面或线数据,但它最适用于事件、事件点或其他定点要素数据。对于线要素和面要素,会在计算中使用每个要素真正的几何质心。对于多点、折线 (polyline) 或由多部件组成的面,使用所有要素部件的加权平均中心来计算质心。点要素的加权项是 1,线要素的加权项是长度,而面要素的加权项是面积。
-
地图图层可用于定义输入要素类。在使用带有选择内容的图层时,分析只会包括所选的要素。
警告:
在使用 shapefile 时,请注意 shapefile 无法存储空值。根据非 shapefile 输入创建 shapefile 的工具或其他过程可能会将空值存储(或解释)为零。某些情况下,空值则以极大的负值储存于 shapefile 中。这会产生意外的结果。有关详细信息,请参阅 shapefile 输出的地理处理注意事项。
语法
arcpy.stats.AverageNearestNeighbor(Input_Feature_Class, Distance_Method, {Generate_Report}, {Area})
参数 | 说明 | 数据类型 |
Input_Feature_Class | 要对平均最近邻距离进行计算的要素类(通常是点要素类)。 | Feature Layer |
Distance_Method | 指定计算每个要素与邻近要素之间的距离的方式。
| String |
Generate_Report (可选) | 指定工具是否将创建结果的图形汇总。
| Boolean |
Area (可选) | 表示研究区域大小的数值。默认值是包含所有要素(或所有选定要素)的最小外接矩形的面积。单位应与“输出坐标系”的单位一致。 | Double |
代码示例
下面的 Python 窗口脚本演示了如何使用 AverageNearestNeighbor 工具。
import arcpy
arcpy.env.workspace = r"C:\data"
arcpy.AverageNearestNeighbor_stats("burglaries.shp", "EUCLIDEAN_DISTANCE", "NO_REPORT", "#")
以下独立 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: 是