聚类和异常值分析 (Anselin Local Moran's I) (Spatial Statistics)

许可等级:BasicStandardAdvanced

摘要

给定一组加权要素,使用 Anselin Local Moran's I 统计量来识别具有统计显著性的热点、冷点和空间异常值。

详细了解“聚类和异常值分析 (Anselin Local Moran's I)”的工作原理

插图

Cluster and Outlier Analysis illustration

用法

语法

ClustersOutliers_stats (Input_Feature_Class, Input_Field, Output_Feature_Class, Conceptualization_of_Spatial_Relationships, Distance_Method, Standardization, {Distance_Band_or_Threshold_Distance}, {Weights_Matrix_File})
参数说明数据类型
Input_Feature_Class

要执行聚类/异常值分析的要素类。

Feature Layer
Input_Field

要评估的数值字段。

Field
Output_Feature_Class

用于接收结果字段的输出要素类。

Feature Class
Conceptualization_of_Spatial_Relationships

指定要素空间关系的概念化方式。

  • INVERSE_DISTANCE与远处的要素相比,附近的邻近要素对目标要素的计算的影响要大一些。
  • INVERSE_DISTANCE_SQUARED与 INVERSE_DISTANCE 类似,但它的坡度更明显,因此影响下降得更快,并且只有目标要素的最近邻域会对要素的计算产生重大影响。
  • FIXED_DISTANCE_BAND将对邻近要素环境中的每个要素进行分析。在指定临界距离内的邻近要素将分配值为 1 的权重,并对目标要素的计算产生重大影响。在指定临界距离外的邻近要素将分配值为零的权重,并且不会对目标要素的计算产生任何影响。
  • ZONE_OF_INDIFFERENCE在目标要素的指定临界距离内的要素将分配值为 1 的权重,并且会影响目标要素的计算。一旦超出该临界距离,权重(以及邻近要素对目标要素计算的影响)就会随距离的增加而减小。
  • CONTIGUITY_EDGES_ONLY只有共用边界或重叠的相邻面要素会影响目标面要素的计算。
  • CONTIGUITY_EDGES_CORNERS共享边界、结点或重叠的面要素会影响目标面要素的计算。
  • GET_SPATIAL_WEIGHTS_FROM_FILE将在空间权重文件中定义空间关系。指向空间权重文件的路径在“权重矩阵文件”参数中指定。
String
Distance_Method

指定计算每个要素与邻近要素之间的距离的方式。

  • EUCLIDEAN_DISTANCE两点间的直线距离
  • MANHATTAN_DISTANCE沿垂直轴度量的两点间的距离(城市街区);计算方法是对两点的 x 和 y 坐标的差值(绝对值)求和。
String
Standardization

当要素的分布由于采样设计或施加的聚合方案而可能偏离时,建议使用行标准化。

  • NONE不对空间权重执行标准化。
  • ROW对空间权重执行标准化;每个权重都会除以行的和(所有相邻要素的权重和)。
String
Distance_Band_or_Threshold_Distance
(可选)

为“反距离”和“固定距离”选项指定中断距离。将在对目标要素的分析中忽略为该要素指定的中断之外的要素。但是,对于“无差别的区域”,指定距离之外的要素的影响会随距离的减小而变弱,而在距离阈值之内的影响则被视为是等同的。输入的距离值应该与输出坐标系的值匹配。

对于空间关系的“反距离”概念化,值为 0 表示未应用任何阈值距离;当将此参数留空时,将计算并应用默认阈值。此默认值为确保每个要素至少具有一个邻域的欧氏距离。

如果选择了“面邻接”或者“通过文件获取空间权重”空间概念化,则此参数不会产生任何影响。

Double
Weights_Matrix_File
(可选)

包含权重(其定义要素间的空间关系以及可能的时态关系)的文件的路径。

File

代码实例

ClusterandOutlierAnalysis 示例 1(Python 窗口)

下面的 Python 窗口脚本演示了如何使用 ClusterandOutlierAnalysis 工具。

import arcpy
arcpy.env.workspace = "c:/data/911calls"
arcpy.ClustersOutliers_stats("911Count.shp", "ICOUNT","911ClusterOutlier.shp","GET_SPATIAL_WEIGHTS_FROM_FILE","EUCLIDEAN_DISTANCE", "NONE","#", "euclidean6Neighs.swm")
ClusterandOutlierAnalysis 示例 2(独立 Python 脚本)

下面的独立 Python 脚本演示了如何使用 ClusterandOutlierAnalysis 工具。

# Analyze the spatial distribution of 911 calls in a metropolitan area
# using the Cluster-Outlier Analysis Tool (Anselin's Local Moran's I)

# Import system modules
import arcpy

# Set geoprocessor object property to overwrite outputs if they already exist
arcpy.gp.OverwriteOutput = True

# Local variables...
workspace = r"C:\Data\911Calls"

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) 

    # Cluster/Outlier Analysis of 911 Calls
    # Process: Local Moran's I
    clusters = arcpy.ClustersOutliers_stats("911Count.shp", "ICOUNT", 
                        "911ClusterOutlier.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()

环境

输出坐标系

在分析之前,会将要素几何投影到“输出坐标系”,这样,为距离范围或距离阈值参数输入的值会与“输出坐标系”中指定的值一致。所有数学计算都基于“输出坐标系”的空间参考进行。

相关主题

许可信息

ArcGIS for Desktop Basic:是
ArcGIS for Desktop Standard:是
ArcGIS for Desktop Advanced:是
9/15/2013