插图
使用方法
此工具需要使用投影数据来准确测量距离。
工具输出表包含以下字段:ExpectedK 和 ObservedK,分别包含 K 预期值和 K 观测值。由于应用了 L(d) 变换,因此 ExpectedK 值始终与距离值相匹配。DiffK 字段包含 K 观测值与 K 预期值的差值。如果指定了置信区间选项,则附加字段 LwConfEnv 和 HiConfEnv 也将包含在输出表中。这些字段包含工具的每个迭代(由距离段数量参数指定)的置信区间信息。
如果特定距离的 K 观测值大于 K 预期值,则与该距离(分析尺度)的随机分布相比,该分布的聚类程度更高。如果 K 观测值小于 K 预期值,则与该距离的随机分布相比,该分布的离散程度更高。如果 K 观测值大于 HiConfEnv 值,则该距离的空间聚类具有统计显著性。如果 K 观测值小于 LwConfEnv 值,则该距离的空间离散具有统计显著性。有关解释的其他信息,请参考多距离空间聚类分析(Ripley's K 函数)的工作原理。
-
对于线和面要素,距离计算中会使用要素的质心。对于多点、折线或由多部分组成的面,将会使用所有要素部分的加权平均中心来计算质心。点要素的加权项是 1,线要素的加权项是长度,而面要素的加权项是面积。
权重字段最适用于表示事件数或计数。
如果未指定权重字段,则最大 DiffK 值将告诉您促进空间聚类的过程最明显的距离。
下面将介绍如何计算置信区间:
- 无权重字段
如果未指定权重字段,则可通过在研究区域中随机分布点并计算该分布的 L(d) 来构建置信区间。点的每个随机分布称为一个“排列”。例如,如果选择了 99 次排列,则在每次迭代时,该工具均会将一组点随机分布 99 次。将这些点分布 99 次之后,该工具会对每个距离选择相对 k 观察值向上和向下偏离最大的 k 值;这些值将成为置信区间。
- 包含权重字段
指定了权重字段时,仅会对权重值进行随机重新分配来计算置信区间;点位置则保持固定。其实,指定“权重字段”时,位置会保持固定,并且该工具会评估空间中要素值的聚类。但如果未指定“权重字段”,则工具将分析要素位置的聚类/离散。
- 无权重字段
因为置信区间通过随机排列构建,所以定义置信区间的值将随着不同的随机排列而改变,甚至当参数相同时也是如此。但是,对于随机数生成器地理处理环境来说,如果设置一个种子值,重复分析将产生一致的结果。
为计算置信区间参数选择的排列数可以不受限制地转换为置信度:9 转换为 90%,99 转换为 99%,999 转换为 99.9%。
如果未指定研究区域,此工具会使用最小外接矩形作为研究区域面。与范围不同,最小外接矩形不一定必须与 x 轴和 y 轴对齐。
K 函数统计对研究区域的大小非常敏感。根据点所在研究区域大小的不同,相同的点排列可以表现为聚类或离散。因此,认真考虑研究区域的边界非常有必要。下图是关于相同要素分布如何根据指定的研究区域进行分散或聚类的一个典型示例。
如果研究区域方法参数选择了用户提供的研究区域要素类,则研究区域要素类为必填项。
如果指定了研究区域要素类,则应只具有一个单部分要素(研究区域面)。
如果未指定开始距离或距离增量,则将基于输入要素类的范围计算默认值。
K 函数对位于研究区域边界附近的要素具有统计缺漏偏差。边界校正方法参数提供了解决这一偏差的方法。
- 无
不应用任何特定的边界校正。但是,落在用户指定的研究区域外的输入要素类中的点在计入相邻点计数。如果您已从超大研究区域中收集数据但仅需分析数据集合边界内更小的区域,则此方法很适用。
- 模拟外边界值
此方法在研究区域边界外创建边界内所发现点的镜像点,以便校正边附近的低估现象。将镜像与研究区域的边的最大距离范围相等的距离内的点。使用已镜像的点会使边点的相邻点估计更加精确。下图说明哪些点用于计算以及哪些点仅用于边校正。
- 缩小分析区域
此边校正技术将分析区域的大小收缩一定的距离,此距离与将在分析中使用的最大距离范围相等。收缩研究区域后,仅在为仍处于研究区域内的点评估相邻点数目时,才会考虑新研究区域外发现的点。K 函数计算期间,不会以任何其他方式使用这些点。下图说明哪些点用于计算以及哪些点仅用于边校正。
- Ripley 边校正公式
此方法检查每个点与研究区域的边的距离以及这个点到其各相邻点的距离。如果有的相邻点与所涉及点的距离比与研究区域的边的距离更远,则所有这类相邻点都将被指定额外权重。此边校正方法仅适用于形状为正方形或矩形的研究区域,或者当为研究区域方法参数选择最小外接矩形时才适用。
- 无
如果未应用边界校正,则统计缺漏偏差会随分析距离的增加而增加。
从数学上说,“多距离空间聚类分析”工具使用 Ripley's k 函数的常用变换,其中带有随机点集的预期结果与输入距离相等。变换 L(d) 显示如下。
其中 A 表示区域,N 表示点数,d 表示距离而 k(i, j) 表示权重,当 i 和 j 之间的距离小于或等于 d 时,权重为(如果无边界校正)1,当 i 和 j 之间的距离大于 d 时,权重为 0。应用边校正后,k(i, j) 的权重略有变化。
-
地图图层可用于定义输入要素类。在使用带有选择内容的图层时,分析只会包括所选的要素。
警告:
在使用 shapefile 时,请注意 shapefile 无法存储空值。根据非 shapefile 输入创建 shapefile 的工具或其他过程可能会将空值存储(或解释)为零。某些情况下,空值则以极大的负值储存于 shapefile 中。这会产生意外的结果。有关详细信息,请参阅 shapefile 输出的地理处理注意事项。
语法
arcpy.stats.MultiDistanceSpatialClustering(Input_Feature_Class, Output_Table, Number_of_Distance_Bands, {Compute_Confidence_Envelope}, {Display_Results_Graphically}, {Weight_Field}, {Beginning_Distance}, {Distance_Increment}, {Boundary_Correction_Method}, {Study_Area_Method}, {Study_Area_Feature_Class})
参数 | 说明 | 数据类型 |
Input_Feature_Class | 要对其执行分析的要素类。 | Feature Layer |
Output_Table | 将要写入分析结果的表。 | Table |
Number_of_Distance_Bands | 针对聚类而递增邻域大小和分析数据集的次数。分别在 Beginning_Distance 和 Distance_Increment 参数中指定的增量的起点和大小。 | Long |
Compute_Confidence_Envelope (可选) | 置信区间通过将要素点(或要素值)随机放在研究区域中计算。随机放置的点/值的数量与要素类中的点的数量相同。每组随机放置都称为“排列”,置信区间就通过这些排列创建。此参数用于选择要使用多少排列来创建置信区间。
| String |
Display_Results_Graphically (可选) | 该参数无效,但仍支持向后兼容。
| Boolean |
Weight_Field (可选) | 数字字段,包含代表每个位置的要素/事件数量的权重。 | Field |
Beginning_Distance (可选) | 开始聚类分析的距离及开始增量的距离。为此参数输入的值应使用“输出坐标系”的单位。 | Double |
Distance_Increment (可选) | 每次迭代过程中要递增的距离。分析中使用的距离于 Beginning_Distance 处开始,以 Distance_Increment 中指定的数量增加。为此参数输入的值应使用“输出坐标系”环境设置的单位。 | Double |
Boundary_Correction_Method (可选) | 对于研究区域的边附近要素的相邻点数低估情况进行校正所采用的方法。
| String |
Study_Area_Method (可选) | 指定要用于研究区域的区域。K 函数对研究区域大小的变化很敏感,因此认真选择此值很重要。
| String |
Study_Area_Feature_Class (可选) | 描绘应在其中分析输入要素类的区域的要素类。仅在 Study_Area_Method = "USER_PROVIDED_STUDY_AREA_FEATURE_CLASS" 时指定。 | Feature Layer |
派生输出
名称 | 说明 | 数据类型 |
Result_Image | 汇总工具结果的折线图。 | 图形 |
代码示例
下面的 Python 窗口脚本演示了如何使用 MultiDistanceSpatialClustering 工具。
import arcpy
arcpy.env.workspace = r"C:\data"
arcpy.MultiDistanceSpatialClustering_stats("911Calls.shp","kFunResult.dbf", 11,
"0_PERMUTATIONS_-_NO_CONFIDENCE_ENVELOPE",
"NO_DISPLAY", "#", 1000, 200, "REDUCE_ANALYSIS_AREA",
"MINIMUM_ENCLOSING_RECTANGLE", "#")
以下独立 Python 脚本演示了如何使用 MultiDistanceSpatialClustering 工具。
# Use Ripley's K-Function to analyze the spatial distribution of 911
# calls in Portland Oregon
# Import system modules
import arcpy
# Set property to overwrite existing outputs
arcpy.env.overwriteOutput = True
# Local variables...
workspace = r"C:\Data"
try:
# Set the current workspace (to avoid having to specify the full path to the feature classes each time)
arcpy.env.workspace = workspace
# Set Distance Band Parameters: Analyze clustering of 911 calls from
# 1000 to 3000 feet by 200 foot increments
numDistances = 11
startDistance = 1000.0
increment = 200.0
# Process: Run K-Function...
kFun = arcpy.MultiDistanceSpatialClustering_stats("911Calls.shp",
"kFunResult.dbf", numDistances,
"0_PERMUTATIONS_-_NO_CONFIDENCE_ENVELOPE",
"NO_DISPLAY", "#", startDistance, increment,
"REDUCE_ANALYSIS_AREA",
"MINIMUM_ENCLOSING_RECTANGLE", "#")
except:
# If an error occurred when running the tool, print out the error message.
print(arcpy.GetMessages())
环境
- 输出坐标系
在分析之前,会将要素几何投影到“输出坐标系”,因此为开始距离和距离增量参数输入的值与“输出坐标系”中指定的值一致。所有数学计算都基于输出坐标系空间参考。
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是