生成空间权重矩阵 (空间统计)

摘要

构建一个空间权重矩阵 (.swm) 文件,以表示数据集中各要素间的空间关系。

详细了解“生成空间权重矩阵”的工作原理

插图

Spatial weights based on Polygon Contiguity.
空间关系基于面邻接,皇后区的案例:共享边或节点。

用法

语法

GenerateSpatialWeightsMatrix_stats (Input_Feature_Class, Unique_ID_Field, Output_Spatial_Weights_Matrix_File, Conceptualization_of_Spatial_Relationships, Distance_Method, {Exponent}, {Threshold_Distance}, {Number_of_Neighbors}, {Row_Standardization}, {Input_Table})
参数说明数据类型
Input_Feature_Class

将被评估要素空间关系的要素类。

Feature Class
Unique_ID_Field

包含输入要素类中每个要素不同值的整型字段。

Field
Output_Spatial_Weights_Matrix_File

要创建的空间权重矩阵文件 (.swm) 的完整路径名。

File
Conceptualization_of_Spatial_Relationships

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

  • INVERSE_DISTANCE一个要素对另一个要素的影响随着距离的增加而减少。
  • FIXED_DISTANCE将每个要素指定临界距离内的所有要素都包含在分析中;将临界距离外的所有要素都排除在外。
  • K_NEAREST_NEIGHBORS将最近的“k”要素包含在分析中;k 是指定的数字参数。
  • CONTIGUITY_EDGES_ONLY共用一个边界的面要素是相邻要素。
  • CONTIGUITY_EDGES_CORNERS共用一个边界和/或一个结点的面要素是相邻要素。
  • DELAUNAY_TRIANGULATION基于要素质心创建不重叠三角形的网格;使用相同边且与三角形结点关联的要素是相邻要素。
  • CONVERT_TABLE在表中定义空间关系。

注:只有具有 ArcInfo 级别许可才能使用面邻接方法。

String
Distance_Method

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

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

反距离计算参数。典型值是 1 或 2。

Double
Threshold_Distance
(可选)

为空间关系的“反距离”和“固定距离”概念化指定中断距离。使用在环境输出坐标系中指定的单位输入此值。

零值表明应未应用任何距离阈值。此参数留空时,将根据输出要素类范围和要素数量计算默认阈值。

Double
Number_of_Neighbors
(可选)

用于表示相邻要素最小数目或精确数目的整数。对于 K 最近邻,每个要素的相邻要素数正好等于这个指定数目。对于反距离固定距离,每个要素将至少具有这些数量的相邻要素(如有必要,距离阈值将临时增大以确保达到这个相邻要素数)。如果存在一些岛屿面,并且选择了一个有关邻接空间关系的概念化,则指定的最近面的数目将与这些岛屿面关联。

Integer
Row_Standardization
(可选)

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

  • ROW_STANDARDIZATION按行对空间权重执行标准化。每个权重都除以它的行总和。
  • NO_STANDARDIZATION不对空间权重执行标准化。
Boolean
Input_Table
(可选)

由输入要素类中每个要素相对于其他要素的数字权重组成的表。必填字段是“输入要素类唯一 ID”字段、“NID”(相邻要素 ID)和“权重”。

File

代码示例

GenerateSpatialWeightsMatrix 示例(Python 窗口)

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

import arcpy
arcpy.env.workspace = "C:/data"
arcpy.GenerateSpatialWeightsMatrix_stats("911Count.shp", "MYID","euclidean6Neighs.swm","K_NEAREST_NEIGHBORS","#", "#", "#", 6,"NO_STANDARDIZATION") 
GenerateSpatialWeightsMatrix 示例(独立 Python 脚本)

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

# 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()

环境

输出坐标系

进行分析之前,将要素几何投影到“输出坐标系”。

相关主题


7/10/2012