ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

生成空间权重矩阵

  • 描述
  • 插图
  • 使用方法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

描述

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

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

插图

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

使用方法

  • 此工具的输出是空间权重矩阵文件 (.swm)。需要指定空间关系的概念化的工具(例如热点分析)将接受空间权重矩阵文件;为空间关系的概念化参数选择 GET_SPATIAL_WEIGHTS_FROM_FILE,并为权重矩阵文件参数指定使用此工具创建的空间权重文件的完整路径。

  • 此工具还会报告所生成的空间权重矩阵文件的特征:要素数量、连通性以及最小相邻要素数、最大相邻要素数和平均相邻要素数。通过结果窗口可以访问此汇总,右键单击结果 窗口中的消息条目并选择视图即可查看。使用此汇总时,请确保所有要素至少具有 1 个相邻要素。通常,最好至少具有 8 个相邻要素且让要素连通性具有一个低值,尤其是大型数据集更是如此。

  • 对于空间/时间分析, 为空间关系的概念化参数选择 SPACE_TIME_WINDOW。可通过指定阈值距离值定义空间;也可通过指定日期/时间字段以及日期/时间类型(例如小时或天)和日期/时间间隔值定义时间。日期/时间间隔值为整数。例如,如果输入 1000 英尺,选择 HOURS,并为日期/时间间隔值提供值 3,则距离在 1000 英尺范围内且在彼此 3 小时内出现的要素将被视为相邻要素。

  • 空间权重矩阵文件 (.swm) 用于生成、存储、重用和共享一组要素之间关系的概念化。为了提高性能,文件采用二进制文件格式创建。要素关系存储为稀疏矩阵,因此,只有非零关系会被写入 SWM 文件。通常,即使 SWM 文件包含的非零关系超过 1500 万个,工具也会正常运行。如果在使用 SWM 文件时遇到内存错误,则应重新编辑定义要素关系的方法。根据经验,您应该以空间权重矩阵为目标,也就是说,每个要素至少具有 1 个相邻要素,最多具有大约 8 个相邻要素,任何要素的相邻要素都不会超过 1000 个。

  • 如果未投影输入要素类(即,坐标单位为度、分和秒),或者将输出坐标系设置为地理坐标系,则采用弦测量方法计算距离。使用弦距离测量法是因为此方法不仅计算速度快,而且提供真实测地线距离的良好估测,至少对于彼此 30 度以内的点是这样。弦距离以扁椭圆体为基础。给定地球表面上的任意两点,两点之间的弦距离是从三维地球穿过然后连接该两点的一条线的长度。弦距离以米为单位输出。

    警告:

    如果您的研究区域超过 30 度,则请确保投影数据。测地线距离超过 30 度时,弦距离不是理想的估测方法。

  • 如果分析时使用弦距离,阈值距离参数(如指定)应以米为单位。

  • 在 ArcGIS 10.2.1 之前的版本中,如果所选的参数和环境设置要求通过地理坐标(度、分、秒)计算结果,则会显示一条警告消息。该警告消息建议您投影数据到投影坐标系中,以使距离计算结果更为准确。但自 10.2.1 起,每当需要使用地理坐标系进行计算时,该工具都将计算弦距离。

    警告:

    由于该变化,如果您通过 ArcGIS 10.2.1 之前版本创建模型,且模型包含硬编码的地理坐标系参数值,则可能需要修改包含该工具的模型。例如,如果将距离参数设置为 0.0025 度,则需要将固定值的单位从度转化为米,然后重新保存模型。

  • 对于线和面要素,距离计算中会使用要素的质心。对于多点、折线或由多部分组成的面,将会使用所有要素部分的加权平均中心来计算质心。点要素的加权项是 1,线要素的加权项是长度,而面要素的加权项是面积。

  • 唯一 ID 字段与运行此工具后所获得的要素关系关联。因此,每个要素的唯一 ID 值都必须唯一,而且通常应该位于与要素类一同保留的永久性字段中。如果没有唯一 ID 字段,则可以轻松地创建一个,方法是向要素类表添加一个新的整型字段(添加字段),然后将此字段的值计算为与 FID 或 OBJECTID 字段的值相等(计算字段)。由于复制或编辑要素类时 FID 和 OBJECTID 字段值可能会发生变化,所以不能直接对唯一 ID 参数使用这些字段。

  • 相邻要素的数目参数可以覆盖“空间关系反距离或固定距离概念化”的阈值距离参数。如果指定的阈值距离为 10 英里,相邻要素数目参数为 3,则所有要素都至少会接收到 3 个相邻要素(即使必须增加距离阈值才能找到它们)。只有在未达到最小相邻要素数时,才增加距离阈值。

  • 空间关系的概念化参数的 CONVERT_TABLE 选项可用来将 ASCII 空间权重矩阵文件转换为 SWM 格式的空间权重矩阵文件。首先,需要将 ASCII 权重置入一个有格式的表(例如,使用 Excel)中。

    警告:

    如果您的表包含自然电位的权重,则在 SWM 输出文件中会忽略它们,而在分析中使用默认的自然电位值。热点分析工具的默认自然电位值是 1,但可以通过指定自然电位字段值覆盖此值;对于所有其他工具,默认自然电位值为零。

  • 对于面要素,几乎始终需要为行标准化参数选择 ROW。如果每个要素所具有的邻域数目由聚合方案或者采样过程决定,而不是反映您所分析的变量的实际空间分布,则行标准化将减少偏移。

  • 空间关系建模帮助主题提供了有关此工具的参数的附加信息。

  • 可以使用空间权重矩阵文件的工具会在进行分析之前将要素几何投影到先前的输出坐标系,并且所有数学计算均基于输出坐标系。因此,如果输出坐标系设置与输入要素类空间参考不匹配,对于使用空间权重矩阵文件的所有分析,请确保输出坐标系与在创建空间权重矩阵文件时使用的设置匹配;或者对输入要素类进行投影,使得输入要素类与空间权重矩阵文件相关的空间参考相匹配。

  • 警告:

    在使用 shapefile 时,请注意 shapefile 无法存储空值。根据非 shapefile 输入创建 shapefile 的工具或其他过程可能会将空值存储(或解释)为零。某些情况下,空值则以极大的负值储存于 shapefile 中。这会产生意外的结果。有关详细信息,请参阅 shapefile 输出的地理处理注意事项。

语法

arcpy.stats.GenerateSpatialWeightsMatrix(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

包含输入要素类中每个要素不同值的整型字段。如果没有“唯一 ID”字段,则可以创建一个,方法是向要素类表添加一个整型字段,然后将此字段的值计算为与 FID 或 OBJECTID 字段的值相等。

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 —在表中定义空间关系。
String
Distance_Method
(可选)

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

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

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

Double
Threshold_Distance
(可选)

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

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

Double
Number_of_Neighbors
(可选)

用于表示相邻要素最小数目或精确数目的整数。对于 K_NEAREST_NEIGHBORS,每个要素的相邻要素数正好等于这个指定数目。对于 INVERSE_DISTANCE 或 FIXED_DISTANCE,每个要素将至少具有这些数量的相邻要素(如有必要,距离阈值将临时增大以确保达到这个相邻要素数)。选中一个邻接空间关系的概念化后,将向每个面分配至少该最小数量的相邻要素。对于具有少于此数量相邻要素的面,将根据要素质心邻近性获得附加相邻要素。

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 —30 天
  • 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 property to overwrite existing output, by default
arcpy.env.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())

环境

  • 当前工作空间
  • 临时工作空间
  • 输出坐标系
    注:

    在分析之前,会将要素几何投影到“输出坐标系”,这样,为距离阈值参数输入的值会与“输出坐标系”中指定的值一致。所有数学计算都基于“输出坐标系”的空间参考进行。输出坐标系基于度、分、秒时,测地线距离用弦距离(米)估测。

  • 地理变换

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题

  • “空间关系建模”工具集概述
  • 空间自相关 (Global Moran's I)
  • 高/低聚类(Getis-Ord General G)
  • 聚类和异常值分析 (Anselin Local Moran's I)
  • 热点分析(Getis-Ord Gi*)
  • 分组分析
  • 空间权重
  • 空间关系建模
  • 生成网络空间权重

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明