计算近邻点距离 (空间统计)
摘要
返回一组要素与指定的 N 个最邻近点(N 为输入参数)的最小、最大和平均距离。可从结果 窗口访问执行结果。
插图
用法
-
指定一组要素,此工具会返回三个数值:到指定数目的 (N) 个邻近点之间的最小、最大和平均距离。示例:如果将 相邻元素参数指定为 8,则此工具会创建一个各要素与其 8 个最邻近点之间的距离的列表;然后,根据此距离列表计算最小、最大和平均距离。
- 最大值是以各要素为起点并确保所有要素都至少有 N 个邻近点的距离。
- 最小值是以各要素为起点并确保其中至少一个要素有 N 个邻近点的距离。
- 平均值是以各要素为起点以查找其 N 个最邻近点的平均距离。
-
此工具的输出以消息的形式写入到结果窗口中。右键单击消息条目并选择查看,以查看消息对话框中的结果。
-
有些工具(例如热点分析 (Getis-Ord Gi*) 和空间自相关 (Global Moran's I))可用于指定邻近距离范围或距离阈值的值。通过为距离范围或距离阈值参数指定此工具中的“最大距离”输出值,可确保输入要素类中的各要素至少有 N 个相邻点。
-
此工具提供一种通过“空间统计工具箱”中的工具(例如热点分析 (Getis-Ord Gi*) 或聚类和异常值分析 (Local Moran's I)),来确定将要使用的距离范围或距离阈值的值的策略。有关其他策略,请参阅选择固定距离。
-
此工具返回的距离采用地理处理环境的 Output_Coordinate_System 中设定的单位。
如果未投影输入要素类(即,坐标单位为度、分和秒),或者将输出坐标系设置为地理坐标系,则采用弦测量方法计算距离。使用弦距离测量法是因为此方法不仅计算速度快,而且提供真实测地线距离的良好估测,至少对于彼此 30 度以内的点是这样。弦距离以球体为基础,而不是以地球实际的扁椭圆体为基础。给定地球表面上的任意两点,两点之间的弦距离是从三维地球穿过然后连接该两点的一条线的长度。弦距离以米为单位报告。
警告:如果您的研究区延伸超过 30 度,则需确保投影数据。测地线距离超过 30 度时,弦距离不是理想的估测方法。
-
对于线和面要素,距离计算中会使用要素的质心。对于多点、折线或由多部件组成的面,将会使用所有要素部件的加权平均中心来计算质心。点要素的加权项是 1,线要素的加权项是长度,而面要素的加权项是面积。
语法
参数 | 说明 | 数据类型 |
Input_Features |
用于计算距离统计值的要素类或图层。 | Feature Layer |
Neighbors |
将要考虑的各要素的相邻点数目 (N)。此数目应为介于 1 和要素类中的要素总数之间的任意整数。各要素与其第 N 个相邻点之间的距离的列表将被编译,并且最大、最小和平均距离将被输出到“结果”窗口。 | Long |
Distance_Method |
指定计算每个要素与邻近要素之间的距离的方式。
| String |
代码实例
以下 Python 窗口脚本演示了 CalculateDistanceBandfromNeighborCount 工具的使用方法。
import arcpy
arcpy.env.workspace = "c:/data"
mindist, avgdist, maxdist = arcpy.CalculateDistanceBand_stats("Blocks", 10, "EUCLIDEAN_DISTANCE")
以下独立 Python 脚本演示了 CalculateDistanceBandfromNeighborCount 工具的使用方法。
# import module
import arcpy
# Set geoprocessing environment Workspace
arcpy.env.workspace = "c:/data"
# Set variables
infc = "Blocks"
field = "POP2000"
outfc = "PopHotSpots"
neighbors = 10
# Run the CalculateDistanceBand tool to get a distance for use with the Hot Spot tool from the tool result object
mindist, avgdist, maxdist = arcpy.CalculateDistanceBand_stats(infc, neighbors, "EUCLIDEAN_DISTANCE")
# Run the Hot Spot Analysis tool, using the maxdist output from the Calculate Distance Band tool as an input
arcpy.HotSpots_analysis(infc, field, outfc, "Fixed Distance Band", "EUCLIDEAN_DISTANCE", "None", maxdist)