描述
使用 Getis-Ord General G 统计可度量高值或低值的聚类程度。
可从结果窗口获取此工具的结果(包括可选报表文件)。如果禁用了后台处理,结果也将被写入进度对话框。
插图
使用方法
“高/低聚类”工具可返回四个值:General G 观测值、General G 期望值、z 得分以及 p 值。您可通过结果窗口访问这些值,也可以将这些值作为派生输出值进行传递,以满足模型或脚本中的潜在使用需要。或者,此工具会创建一个 HTML 文件,其中包含了结果的图形汇总。在结果窗口中双击此 HTML 文件,该文件将在默认的 Internet 浏览器中打开。右键单击结果窗口中的消息条目并选择查看,将在消息对话框中显示结果。
输入字段应包含多种非负值。如果输入字段包含负值,将显示错误消息。此外,此统计数学方法要求待分析的变量存在一定程度的变化;例如,如果所有输入都是 1 便无法求解。如果要使用此工具分析事件数据的空间模式,应考虑聚合事件数据。优化的热点分析工具也可以用于分析事件数据的空间模式。
- z 得分和 p 值是统计显著性的量度,用来判断是否拒绝零假设。对于此工具,零假设表示与要素相关的值随机分布。
z 得分基于随机化零假设进行计算。有关 z 得分的详细信息,请参阅什么是 z 得分? 什么是 p 值?
z 得分越高(或越低),聚类程度就越高。如果 z 得分接近零,则表示研究区域内不存在明显的聚类。z 得分为正表示高值的聚类。z 得分为负表示低值的聚类。
如果未投影输入要素类(即,坐标单位为度、分和秒),或者将输出坐标系设置为地理坐标系,则采用弦测量方法计算距离。使用弦距离测量法是因为此方法不仅计算速度快,而且提供真实测地线距离的良好估测,至少对于彼此 30 度以内的点是这样。弦距离以扁椭圆体为基础。给定地球表面上的任意两点,两点之间的弦距离是从三维地球穿过然后连接该两点的一条线的长度。弦距离以米为单位输出。
分析时如使用弦距离,距离范围或距离阈值参数(如指定)应以米为单位。
在 ArcGIS 10.2.1 之前的版本中,如果所选的参数和环境设置要求通过地理坐标(度、分、秒)计算结果,则会显示一条警告消息。该警告消息建议您投影数据到投影坐标系中,以使距离计算结果更为准确。但自 10.2.1 起,每当需要使用地理坐标系进行计算时,该工具都将计算弦距离。
对于线和面要素,距离计算中会使用要素的质心。对于多点、折线或由多部分组成的面,将会使用所有要素部分的加权平均中心来计算质心。点要素的加权项是 1,线要素的加权项是长度,而面要素的加权项是面积。
此工具将选择性地创建 HTML 文件汇总结果。HTML 文件不会自动显示在目录窗口中。如果要在“目录”中显示 HTML 文件,可打开 ArcCatalog 应用程序,选择自定义菜单选项,单击 ArcCatalog 选项,然后选择文件类型选项卡。单击新建类型按钮并为文件扩展名指定 HTML。
空间关系的概念化参数的选择应反映要分析的要素之间的固有关系。对要素在空间中彼此交互方式构建的模型越逼真,结果就越准确。选择空间关系的概念化:最佳做法中给出了建议。以下是一些额外提示:
- FIXED_DISTANCE_BAND
默认的距离范围或距离阈值将确保每个要素至少拥有一个相邻要素,这一点十分重要。但通常,此默认值并不是适用于分析的最合适的距离。为分析选择适合的比例(距离范围)的其他策略在选择固定距离范围值中进行了概括介绍。
- INVERSE_DISTANCE 或 INVERSE_DISTANCE_SQUARED
如果为距离范围或阈值距离参数输入 0,则所有要素均被视为所有其他要素的相邻要素;如果将此参数留空,则将采用默认距离。
如果距离权重小于 1,则对其取倒数时将变得不稳定。因此,对于分隔距离小于 1 单位的要素权重,权重值将指定为 1。
对于反距离选项(INVERSE_DISTANCE、INVERSE_DISTANCE_SQUARED 或 ZONE_OF_INDIFFERENCE),为避免产生除数为零的情况,任何重合两点的权重值均将指定为 1。这样便可确保将要素包含在分析之内。
- FIXED_DISTANCE_BAND
空间关系的概念化参数的附加选项(包括空间-时间关系)在使用生成空间权重矩阵或者生成网络空间权重工具时可用。要利用这些附加选项,请使用上述任一工具构造空间的权重矩阵文件,然后进行分析;为空间关系的概念化参数选择 GET_SPATIAL_WEIGHTS_FROM_FILE;为权重矩阵文件参数指定您所创建的空间权重文件的路径。
地图图层可用于定义输入要素类。在使用带有选择内容的图层时,分析只会包括所选的要素。
如果提供的是一个带 .swm 扩展名的权重矩阵文件,则此工具需要输入的是一个使用生成空间权重矩阵或生成网络空间权重工具创建的空间权重矩阵文件;否则,此工具需要输入一个 ASCII 格式的空间权重矩阵文件。在某些情况下,根据您所使用的空间权重矩阵文件类型,行为会有所不同:
- ASCII 格式的空间权重矩阵文件:
- 按原样使用权重。所缺失的要素与要素之间的关系被视为零。
- 如果对权重进行了行标准化,则选择集的分析结果很有可能不正确。如果需要对选择集运行分析,则通过以下方法将 ASCII 空间权重文件转换为 SWM 文件:将 ASCII 数据读入表,然后将 CONVERT_TABLE 选项与生成空间权重矩阵工具结合使用。
- SWM 格式的空间权重矩阵文件:
- 如果对权重进行了行标准化,则会针对选择集将其重新标准化;否则按原样使用权重。
- ASCII 格式的空间权重矩阵文件:
使用 ASCII 格式的空间权重矩阵文件运行您的分析会占用大量内存。如果要分析的要素超过 5,000 个,则考虑将 ASCII 格式的空间权重矩阵文件转换为 SWM 格式的文件。首先,将 ASCII 权重置入一个带格式的表中(例如,使用 Excel)。接下来运行生成空间权重矩阵工具,并使用空间关系的概念化参数的 CONVERT_TABLE。输出将是 SWM 格式的空间权重矩阵文件。
空间关系建模帮助主题提供了有关此工具的参数的附加信息。
语法
arcpy.stats.HighLowClustering(Input_Feature_Class, Input_Field, {Generate_Report}, Conceptualization_of_Spatial_Relationships, Distance_Method, Standardization, {Distance_Band_or_Threshold_Distance}, {Weights_Matrix_File})
参数 | 说明 | 数据类型 |
Input_Feature_Class | 将计算 General G 统计的要素类。 | Feature Layer |
Input_Field | 要评估的数值字段。 | Field |
Generate_Report (可选) |
| Boolean |
Conceptualization_of_Spatial_Relationships | 指定要素空间关系的定义方式。
| String |
Distance_Method | 指定计算每个要素与邻近要素之间的距离的方式。
| String |
Standardization | 当要素的分布由于采样设计或施加的聚合方案而可能偏离时,建议使用行标准化。
| String |
Distance_Band_or_Threshold_Distance (可选) | 为“反距离”和“固定距离”选项指定中断距离。将在对目标要素的分析中忽略为该要素指定的中断之外的要素。但是,对于 ZONE_OF_INDIFFERENCE,指定距离之外的要素的影响会随距离的减小而变弱,而在距离阈值之内的影响则被视为是等同的。输入的距离值应该与输出坐标系的值匹配。 对于空间关系的反距离概念化,值为 0 表示未应用任何阈值距离;当将此参数留空时,将计算并应用默认阈值。此默认值为确保每个要素至少具有一个邻域的欧氏距离。 当选择了面邻接(CONTIGUITY_EDGES_ONLY 或 CONTIGUITY_EDGES_CORNERS)或 GET_SPATIAL_WEIGHTS_FROM_FILE 的空间概念化时,该参数无效。 | Double |
Weights_Matrix_File (可选) | 包含权重(其定义要素间的空间关系以及可能的时态关系)的文件的路径。 | File |
代码示例
高低聚类 (HighLowClustering) 示例 1(Python 窗口)
下面的 Python 窗口脚本演示了如何使用 HighLowClustering 工具。
import arcpy
arcpy.env.workspace = r"C:\data"
arcpy.HighLowClustering_stats("911Count.shp", "ICOUNT", "false", "GET_SPATIAL_WEIGHTS_FROM_FILE", "EUCLIDEAN_DISTANCE", "NONE", "#", "euclidean6Neighs.swm")
HighLowClustering 示例 2(独立脚本)
以下独立 Python 脚本演示了如何使用 HighLowClustering 工具。
# Analyze the spatial distribution of 911 calls in a metropolitan area
# using the High/Low Clustering (Getis-Ord General G) tool
# 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
# Copy the input feature class and integrate the points to snap
# together at 500 feet
# Process: Copy Features and Integrate
cf = arcpy.CopyFeatures_management("911Calls.shp", "911Copied.shp",
"#", 0, 0, 0)
integrate = arcpy.Integrate_management("911Copied.shp #", "500 Feet")
# Use Collect Events to count the number of calls at each location
# Process: Collect Events
ce = arcpy.CollectEvents_stats("911Copied.shp", "911Count.shp", "Count", "#")
# Add a unique ID field to the count feature class
# Process: Add Field and Calculate Field
af = arcpy.AddField_management("911Count.shp", "MyID", "LONG", "#", "#", "#", "#",
"NON_NULLABLE", "NON_REQUIRED", "#",
"911Count.shp")
cf = arcpy.CalculateField_management("911Count.shp", "MyID", "!FID!", "PYTHON")
# Create Spatial Weights Matrix for Calculations
# Process: Generate Spatial Weights Matrix...
swm = arcpy.GenerateSpatialWeightsMatrix_stats("911Count.shp", "MYID",
"euclidean6Neighs.swm",
"K_NEAREST_NEIGHBORS",
"#", "#", "#", 6,
"NO_STANDARDIZATION")
# Cluster Analysis of 911 Calls
# Process: High/Low Clustering (Getis-Ord General G)
hs = arcpy.HighLowClustering_stats("911Count.shp", "ICOUNT",
"false",
"GET_SPATIAL_WEIGHTS_FROM_FILE",
"EUCLIDEAN_DISTANCE", "NONE",
"#", "euclidean6Neighs.swm")
except:
# If an error occurred when running the tool, print out the error message.
print(arcpy.GetMessages())
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是