生成空间权重矩阵 (Spatial Statistics)

许可等级:BasicStandardAdvanced

摘要

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

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

插图

Spatial weights based on Polygon Contiguity
Spatial relationships based on polygon contiguity, Queen's case: shared edges or nodes.

用法

语法

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}, {Date_Time_Field}, {Date_Time_Interval_Type}, {Date_Time_Interval_Value})
参数说明数据类型
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基于要素质心创建不重叠三角形的网格;使用相同边且与三角形结点关联的要素是相邻要素。
  • SPACE_TIME_WINDOW相邻要素是指在指定的临界距离内且在彼此的指定时间间隔内出现的要素。
  • CONVERT_TABLE在表中定义空间关系。

注:只有具有 ArcGIS for Desktop Advanced 级别许可才能使用“面邻接”方法。

String
Distance_Method
(可选)

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

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

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

Double
Threshold_Distance
(可选)

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

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

Double
Number_of_Neighbors
(可选)

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

Long
Row_Standardization
(可选)

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

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

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

Table
Date_Time_Field
(可选)

包含每个要素的时间戳的日期字段。

Field
Date_Time_Interval_Type
(可选)

用于测量时间的单位。

  • SECONDS
  • MINUTES分钟
  • HOURS小时
  • DAYS
  • WEEKS
  • MONTHS
  • YEARS
String
Date_Time_Interval_Value
(可选)

反映构成时间窗的时间单位数量的整数。

例如,如果为“日期/时间间隔类型”选择 HOURS,为“日期/时间间隔值”选择 3,则时间窗为 3 小时;位于指定空间窗和指定时间窗内的要素将成为相邻要素。

Long

代码实例

生成空间权重矩阵 (GenerateSpatialWeightsMatrix) 示例 1(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) 示例 2(独立 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()

环境

输出坐标系

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

相关主题

许可信息

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