热点分析 (Getis-Ord Gi*) (空间统计)
插图
用法
-
此工具用于识别具有统计显著性的高值(热点)和低值(冷点)的空间聚类。它使用 z 得分和 p 值为输入要素类中的每个要素创建一个新的输出要素类。它还以派生输出值的形式返回 z 得分和 p 值字段的名称,而这些名字可能会在自定义模型和脚本中使用。
-
z 得分和 p 值都是统计显著性的度量,用于逐要素地判断是否拒绝零假设。实际上,它们可指明观测所得的高值或低值的空间聚类是否比我们在这些相同值的随机分布中预期的更加明显。
-
如果要素的 z 得分高且 p 值小,则表示有一个高值的空间聚类。如果 z 得分低并为负数且 p 值小,则表示有一个低值的空间聚类。z 得分越高(或越低),聚类程度就越大。如果 z 得分接近于零,则表示不存在明显的空间聚类。
-
z 得分基于随机化零假设进行计算。有关 z 得分的详细信息,请参阅什么是 z 得分?什么是 p 值?
-
基于欧氏距离或者曼哈顿距离的计算需要投影数据来准确测量距离。
-
对于线和面要素,会在距离计算中使用要素质心。对于多点、折线 (polyline) 或由多部分组成的面,使用所有要素部分的加权平均中心来计算质心。点要素的加权项是 1,线要素的加权项是长度,而面要素的加权项是面积。
-
输入字段应包含多种值。此统计数学方法要求待分析的变量存在一定程度的变化;例如,如果所有输入都是 1 便无法求解。如果要使用此工具分析事件数据的空间模式,应考虑聚合事件数据。
-
空间关系的概念化参数的选择应反映要分析的要素之间的固有关系。对要素在空间中以彼此交互方式构建的模型越逼真,结果就越准确。查看这些建议。以下是一些额外提示:
-
FIXED_DISTANCE_BAND
距离范围或距离阈值参数的默认值用于确保每个要素至少拥有一个相邻要素,这一点十分重要。但通常,此默认值并不是适用于分析的最合适的距离。
要了解有关距离范围或距离阈值参数的详细信息,请单击此处。
- INVERSE_DISTANCE 或者 INVERSE_DISTANCE_SQUARED
如果针对距离范围或距离阈值参数输入 0,则所有要素均将视为所有其他要素的相邻要素;如果将此参数留空,则将采用默认距离阈值。
如果距离权重小于 1 将会变得不稳定。对于分隔距离小于一个单位的要素的权重(常见于地理坐标系投影)为 1。
警告:如果选择使用任何基于反距离的空间概念化方法(INVERSE_DISTANCE、INVERSE_DISTANCE_SQUARED 或者 ZONE_OF_INDIFFERENCE),则不建议对具有地理坐标系投影的要素进行分析。
对于这些“反距离”选项,为避免产生除数为零的情况,任何重合两点的权重值均将指定为 1。这样便可确保将要素包含在分析之内。
-
FIXED_DISTANCE_BAND
-
空间关系的概念化参数的附加选项在使用生成空间权重矩阵或者生成网络空间权重工具时可用。要利用这些附加选项,请使用上述工具之一构造空间权重矩阵文件,然后进行分析;为空间关系的概念化参数选择 GET_SPATIAL_WEIGHTS_FROM_FILE;为权重矩阵文件参数指定到您创建的空间权重文件的路径。
-
地图图层可用于定义输入要素类。在使用带有选择内容的图层时,分析只会包括所选的要素。
如果提供的是一个带 SWM 或 .swm 扩展名的权重矩阵文件,则此工具需要输入的是一个由生成空间权重矩阵或生成网络空间权重工具所创建的空间权重矩阵文件;否则,此工具需要输入一个 ASCII 格式的空间权重矩阵文件。在某些情况下,工具行为将根据所使用的空间矩阵文件类型的不同而有所区别:
- ASCII 格式的空间权重矩阵文件:
- SWM 格式的空间权重矩阵文件:
- 如果对权重进行了行标准化,则会将其选择集重新标准化。否则将“按原样”使用权重。
- 除非您指定了一个自然电位字段值,否则自然电位的默认权重为 1。
使用 ASCII 格式的空间权重矩阵文件运行您的分析会占用大量内存。如果要分析的要素超过 5000 个,则考虑将 ASCII 格式的空间权重矩阵文件转换为 .swm 格式的文件。首先,将 ASCII 权重置入一个带格式的表中(例如,使用 Excel)。接下来运行生成空间权重矩阵工具,并使用空间关系的概念化参数的 CONVERT_TABLE。输出将是 .swm 格式化的空间权重矩阵文件。
-
在 ArcMap 中运行此工具时,输出要素类会自动添加到内容列表,同时对 z 得分字段应用默认渲染。所应用的由热到冷的渲染将由 <ArcGIS>/Desktop10.x/ArcToolbox/Templates/Layers 中的图层文件进行定义。需要时,可通过导入模板图层符号系统重新应用默认渲染。
The Output Feature Class includes a SOURCE_ID field which allows you to Join it to the Input Feature Class, if needed.
-
空间关系建模帮助主题提供了有关此工具的参数的附加信息。
在使用 shapefile 时,请注意 shapefile 无法存储空值。根据非 shapefile 输入创建 shapefile 的工具或其他过程可能会将空值存储(或解析)为零。这会产生意外的结果。另请参阅 shapefile 输出的地理处理注意事项。
Prior to ArcGIS 10.0, the output feature class was a duplicate of the input feature class with the z-score and p-value results fields added. After ArcGIS 10.0, the output feature class only includes the z-score and p-value fields as well as the fields input for the analysis. To join other input fields to the output feature class, use the SOURCE_ID field to join the fields using tools in the Joins toolset.
语法
参数 | 说明 | 数据类型 |
Input_Feature_Class |
将要执行热点分析的要素类。 | Feature Layer |
Input_Field |
要计算的数值型计数字段(受害者人数、犯罪行为数量,工作等等)。 | Field |
Output_Feature_Class |
接收 z 得分和 p 值结果的输出要素类。 | Feature Class |
Conceptualization_of_Spatial_Relationships |
指定要素空间关系的概念化方式。
| String |
Distance_Method |
指定计算每个要素与邻近要素之间的距离的方式。
| String |
Standardization |
当要素的分布由于采样设计或施加的聚合方案而可能偏离时,建议使用行标准化。
| String |
Distance_Band_or_Threshold_Distance |
为“反距离”和“固定距离”选项指定中断距离。将在对目标要素的分析中忽略为该要素指定的中断之外的要素。但是,对于“无差别的区域”,指定距离之外的要素的影响会随距离的减小而变弱,而在距离阈值之内的影响则被视为是等同的。输入的值应该与输出坐标系的值匹配。 对于空间关系的“反距离”概念化,值为 0 表示未应用任何阈值距离;当将此参数留空时,将计算并应用默认阈值。此默认值为确保每个要素至少具有一个邻域的欧氏距离。 如果选择了“面邻接”或者“通过文件获取空间权重”空间概念化,则此参数不会产生任何影响。 | Double |
Self_Potential_Field (可选) |
表示自然电位的字段:要素与其自身之间的距离或权重。 | Field |
Weights_Matrix_File (可选) |
指向包含空间权重(其定义要素间的空间关系)的文件的路径。 | File |
代码示例
以下 Python 窗口脚本演示了如何使用热点分析 (HotSpotAnalysis) 工具。
import arcpy arcpy.env.workspace = "C:/data" arcpy.HotSpots_stats("911Count.shp", "ICOUNT", "911HotSpots.shp","GET_SPATIAL_WEIGHTS_FROM_FILE","EUCLIDEAN_DISTANCE", "NONE","#", "#", "euclidean6Neighs.swm")
以下独立 Python 脚本演示了如何使用热点分析 (HotSpotAnalysis) 工具。
# Analyze the spatial distribution of 911 calls in a metropolitan area # using the Hot-Spot Analysis Tool (Local Gi*) # Import system modules import arcpy # Set geoprocessor object property to overwrite existing output, by default arcpy.gp.overwriteOutput = True # Local variables... workspace = "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]", "VB") # 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") # Hot Spot Analysis of 911 Calls # Process: Hot Spot Analysis (Getis-Ord Gi*) hs = arcpy.HotSpots_stats("911Count.shp", "ICOUNT", "911HotSpots.shp", "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()
环境
- 输出坐标系
在分析之前,会将要素几何投影到“输出坐标系”,这样,为“距离范围或距离阈值”参数输入的值会与“输出坐标系”中指定的值一致。所有数学计算都基于输出坐标系空间参考。