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

摘要

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

详细了解空间关系建模

插图

生成空间权重矩阵工具图示
展示一阶多边形邻接邻域。

使用情况

  • 此工具的输出是空间权重矩阵文件 (.swm)。 需要指定邻域类型(有时被称为空间关系的概念化)的工具,例如热点分析和双变量空间关联(Lee's L)工具,允许使用空间权重矩阵文件定义邻域和权重。 当您计划对同样的要素(例如医院位置或美国各县)进行多个分析或当您跟别人分享结果时,使用文件会有帮助。

  • 此信息包含空间权重矩阵文件,该文件显示了要素数,连通性,以及相邻要素的最小数、最大数和平均数。

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

  • 为了提高性能,文件采用二进制文件格式创建。 要素关系存储为稀疏矩阵,因此仅将非零关系写入 .swm 文件。 对于数目极为众多的关系(一般是数千万或数亿个相邻要素关系),存储器可能出错。 在这种情况下,使用不同的选项来降低每个要素的相邻要素数目(比如降低距离阈值)

  • 重合点不用于计算默认距离阈值。

  • 当使用具有含 z 值的坐标的数据时,邻域类型仅支持反距离、固定距离、K 最近邻和空间时间窗选项。

  • 如果输入要素类包含 z 值,那么垂直坐标系 (VCS) 的线性单位必须与水平坐标系的线性单位相匹配。 如果输入要素不具有 VCS,则假设垂直线性单位与水平线性单位相同。

  • 如果未投影输入要素(即,坐标单位为维度和经度),或者将输出坐标系设置为地理坐标系,则采用弦距离方法计算距离。 之所以使用弦距离是因为它们计算速度较快,并且可以准确估算实际测地线距离,高达将近 30 度。 给定椭球体上的任意两点,两点之间的弦距离是从三维地球穿过然后连接该两点的一条线的长度。 弦距离报表将以米为单位。

    警告:

    如果研究区域超过 30 度,请投影数据。 弦距离无法准确估算超出 30 度的测地线距离。

  • 如果分析时使用弦距离,阈值距离必须指定以米为单位。

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

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

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

  • 邻域类型参数的转换表选项可用来将 ASCII 空间权重矩阵文件转换为 SWM 格式的空间权重矩阵文件。 首先,将 ASCII 权重置入一个带格式的表中(例如,使用 Microsoft Excel )。

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

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

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

  • 警告:

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

参数

标注说明数据类型
输入要素

将为其创建要素的空间关系的要素。

Feature Class
唯一 ID 字段

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

Field
输出空间权重矩阵文件

输出空间权重矩阵文件 (.swm) 的完整路径。

File
邻域类型

指定如何确定每个要素的邻居。

  • 反距离—一个要素对另一个要素的影响会随着距离的增加而减小。
  • 固定距离—将每个要素的指定临界距离内的所有要素都包含在分析中。 将临界距离外的所有要素都将排除在外。
  • K 最近邻—将最近的 k 要素包含在分析中;k 是指定的数字参数。
  • 仅邻接边—共享一个边界的面要素将为相邻要素。
  • 邻接边拐角—共享一个边界或一个结点的面要素将为相邻要素。
  • Delaunay 三角测量—基于要素质心创建不重叠三角形的网格,并且共享边且与三角形结点关联的要素将为相邻要素。
  • 空间时间窗—指定临界距离和指定时间间隔内的要素将成为彼此的相邻要素。
  • 转换表—将在表中定义空间关系。
String
距离法
(可选)

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

  • 欧氏—将计算两点间的直线距离。 这是默认设置。
  • 曼哈顿—沿垂直轴度量的两点间的距离(例如城市街区),计算方法是对两点的 x 和 y 坐标的差值(绝对值)求和。
String
指数
(可选)

反距离计算值。 典型值为 1 或 2。

Double
阈值距离
(可选)

用于邻域类型参数的反距离和固定距离选项的中断距离。 使用环境输出坐标系中指定的单位输入此值。 为空间时间窗选项定义空间窗的大小。

此参数留空时,将根据输出要素类范围和要素数目计算默认阈值。 对于空间关系的反距离概念化,零值表示将不应用阈值距离,并且所有要素都将是其他所有要素的相邻要素

Double
邻居数
(可选)

用于反映指定相邻要素的最小数目或精确数目。 当将邻域类型参数设置为 K 最近邻时,每个要素都将具有指定数量的相邻要素。 对于反距离和固定距离选项,每个要素将至少具有这些数目的相邻要素(如有必要,距离阈值将临时增大以确保达到这个相邻要素数目)。 当选择仅邻接边或邻接边拐角选项时,每个面将被分配此最小数目的相邻要素。 对于具有少于此相邻要素数目的面,将根据要素质心邻近性获得附加相邻要素。 对于 K 最近邻,默认值为 8。 对于其他一切邻域类型,默认值为 0。 此值不包括焦点要素本身,因此如果计算中包含焦点要素,则相邻要素数将比提供的值大 1。

Long
行标准化
(可选)

指定是否按行标准化空间权重。 当要素分布由于采样设计或施加的聚合方案而可能偏离时,建议使用行标准化。

  • 选中 - 将按行对空间权重执行标准化。 每个权重都除以它的行总和。 这是默认设置。
  • 未选中 - 将不会对空间权重执行标准化。
Boolean
输入表
(可选)

当将表转换为空间权重矩阵时包含相邻要素对之间的数字权重的表。 该表的必填字段是唯一 ID 字段名称、NID(邻居 ID)和 WEIGHT 。

Table
日期/时间字段
(可选)

具有每个要素的时间戳的日期字段。

Field
日期/时间间隔类型
(可选)

指定将用于测量时间的单位。

  • 秒—单位将为秒。
  • 分—单位将为分钟。
  • 小时—单位将为小时。
  • 天—单位将为天。
  • 周—单位将为周。
  • 月—单位将为 30 天。
  • 年—单位将为年。
String
日期/时间间隔值
(可选)

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

例如,如果为日期/时间间隔类型参数选择小时,并为此参数指定 3,则时间窗将为 3 小时。 位于指定空间窗和指定时间窗内的要素将成为相邻要素。

Long
使用 Z 值
(可选)

指定在输入要素启用 z 的情况下是否在构建空间权重矩阵时使用 z 坐标。

  • 选中 - Z 值将用于空间权重矩阵的构建中。
  • 未选中 - 将不会使用 z 值。 忽略它们,且在空间权重矩阵的构建中仅考虑 X 和 Y 坐标。 这是默认设置。

Boolean
邻接阶数
(可选)

面邻接的阶数。 阶数是指从焦点面移动到其邻居所需的步数。 默认值为1,意思是只有焦点面的直接邻居才算邻居(即只需一步即可抵达的邻居)。 二阶的意思是两步或更少的步数即可抵达的所有面均为邻居。 该值必须介于 1 和 10 之间;然而一般推荐使用 1 到 3 之间的值。

Long
包括焦点要素

指定每个要素本身是否被视作相邻要素。

  • 选中 - 每个要素本身被视作相邻要素。
  • 未选中 - 每个要素本身不被视作相邻要素。 这是默认设置。

Boolean
加权法
(可选)

指定用于确定每个焦点要素邻居的空间权重的加权法。

  • 未加权—将不会对相邻要素进行加权。 这是默认设置。
  • 双平方核—将使用双平方核对相邻要素进行加权。
  • 高斯核—将使用高斯核对相邻要素进行加权。
  • 三角核—将使用三角核对相邻要素进行加权。
  • Epanechenikov (二次) 核—将使用二次核对相邻要素进行加权。
  • 字段值—字段的值将对相邻要素进行加权。
  • 共享的边界长度—将使用相邻要素跟焦点要素共享的边界长度对相邻要素进行加权。
String
核类型
(可选)

指定核带宽是否是所有要素之间共享的固定距离,还是每个要素使用不同的(自适应)带宽。 此参数仅应用于 k 最近邻邻域类型。

  • 固定距离—每个要素将使用相同的核带宽。 该值在核带宽参数中提供。
  • 自适应—每个要素将使用不同的(自适应)核带宽。 这是默认设置。
String
相邻要素的自适应核数目
(可选)

对于自适应核带宽,指定用来确定自适应核的相邻要素数。 例如,值为 10 表示每个要素的带宽将等于至其第 10 个相邻要素的距离。 默认值为相邻要素数加 1。 使用比相邻要素数大 1 的值,确保了每个相邻要素都默认接受非零权重。

Long
核带宽
(可选)

核带宽距离。 如果未提供任何值,则将在处理过程中估算一个值,并将其作为地理处理消息包含在内。

Linear Unit
权重字段
(可选)

包含每个要素的权重值的字段,该要素将在使用字段的值进行加权时使用。 所有值必须大于零,行标准化总是在字段值上执行。

Field

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}, {Use_Z_values}, {order}, include_focal_feature, {weighting_method}, {kernel_type}, {adaptive_neighbors}, {kernel_bandwidth}, {weight_field})
名称说明数据类型
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
(可选)

用于 Conceptualization_of_Spatial_Relationships 参数的 INVERSE_DISTANCE 和 FIXED_DISTANCE 选项的中断距离。 使用环境输出坐标系中指定的单位输入此值。 为 SPACE_TIME_WINDOW 选项定义空间窗的大小。

此参数留空时,将根据输出要素类范围和要素数目计算默认阈值。 对于空间关系的反距离概念化,零值表示将不应用阈值距离,并且所有要素都将是其他所有要素的相邻要素

Double
Number_of_Neighbors
(可选)

用于反映指定相邻要素的最小数目或精确数目。 当将 Conceptualization_of_Spatial_Relationships 参数设置为 K_NEAREST_NEIGHBORS 时,每个要素的相邻要素数正好等于这个指定数目。 对于INVERSE_DISTANCE 和 FIXED_DISTANCE 选项,每个要素将至少具有这些数目的相邻要素(如有必要,距离阈值将临时增大以确保达到这个相邻要素数目)。 当选择 CONTIGUITY_EDGES_ONLY 或 CONTIGUITY_EDGES_CORNERS 选项时,每个面将被分配此最小数目的相邻要素。 对于具有少于此相邻要素数目的面,将根据要素质心邻近性获得附加相邻要素。 对于 K_NEAREST_NEIGHBORS,默认值为 8。 对于其他一切邻域类型,默认值为 0。 此值不包括焦点要素本身,因此如果计算中包含焦点要素,则相邻要素数将比提供的值大 1。

Long
Row_Standardization
(可选)

指定是否按行标准化空间权重。 当要素分布由于采样设计或施加的聚合方案而可能偏离时,建议使用行标准化。

  • ROW_STANDARDIZATION—将按行对空间权重执行标准化。 每个权重都除以它的行总和。 这是默认设置。
  • NO_STANDARDIZATION—将不会对空间权重执行标准化。
Boolean
Input_Table
(可选)

当将表转换为空间权重矩阵时包含相邻要素对之间的数字权重的表。 该表的必填字段是唯一 ID 字段名称、NID(邻居 ID)和 WEIGHT 。

Table
Date_Time_Field
(可选)

具有每个要素的时间戳的日期字段。

Field
Date_Time_Interval_Type
(可选)

指定将用于测量时间的单位。

  • SECONDS—单位将为秒。
  • MINUTES—单位将为分钟。
  • HOURS—单位将为小时。
  • DAYS—单位将为天。
  • WEEKS—单位将为周。
  • MONTHS—单位将为 30 天。
  • YEARS—单位将为年。
String
Date_Time_Interval_Value
(可选)

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

例如,如果为 Date_Time_Interval_Type 参数选择 HOURS ,并为此参数指定 3,则时间窗将为 3 小时。 位于指定空间窗和指定时间窗内的要素将成为相邻要素。

Long
Use_Z_values
(可选)

指定在输入要素启用 z 的情况下是否在构建空间权重矩阵时使用 z 坐标。

  • USE_Z_VALUES—Z 值将用于空间权重矩阵的构建中。
  • DO_NOT_USE_Z_VALUES—将不会使用 z 值。 忽略它们,且在空间权重矩阵的构建中仅考虑 X 和 Y 坐标。 这是默认设置。
Boolean
order
(可选)

面邻接的阶数。 阶数是指从焦点面移动到其邻居所需的步数。 默认值为1,意思是只有焦点面的直接邻居才算邻居(即只需一步即可抵达的邻居)。 二阶的意思是两步或更少的步数即可抵达的所有面均为邻居。 该值必须介于 1 和 10 之间;然而一般推荐使用 1 到 3 之间的值。

Long
include_focal_feature

指定每个要素本身是否被视作相邻要素。

  • INCLUDE_FOCAL—每个要素本身被视作相邻要素。
  • EXCLUDE_FOCAL—每个要素本身不被视作相邻要素。 这是默认设置。
Boolean
weighting_method
(可选)

指定用于确定每个焦点要素邻居的空间权重的加权法。

  • UNWEIGHTED—将不会对相邻要素进行加权。 这是默认设置。
  • BISQUARE—将使用双平方核对相邻要素进行加权。
  • GAUSSIAN—将使用高斯核对相邻要素进行加权。
  • TRIANGULAR—将使用三角核对相邻要素进行加权。
  • QUADRATIC—将使用二次核对相邻要素进行加权。
  • FIELD—字段的值将对相邻要素进行加权。
  • BORDER—将使用相邻要素跟焦点要素共享的边界长度对相邻要素进行加权。
String
kernel_type
(可选)

指定核带宽是否是所有要素之间共享的固定距离,还是每个要素使用不同的(自适应)带宽。 此参数仅应用于 k 最近邻邻域类型。

  • FIXED—每个要素将使用相同的核带宽。 该值在核带宽参数中提供。
  • ADAPTIVE—每个要素将使用不同的(自适应)核带宽。 这是默认设置。
String
adaptive_neighbors
(可选)

对于自适应核带宽,指定用来确定自适应核的相邻要素数。 例如,值为 10 表示每个要素的带宽将等于至其第 10 个相邻要素的距离。 默认值为相邻要素数加 1。 使用比相邻要素数大 1 的值,确保了每个相邻要素都默认接受非零权重。

Long
kernel_bandwidth
(可选)

核带宽距离。 如果未提供任何值,则将在处理过程中估算一个值,并将其作为地理处理消息包含在内。

Linear Unit
weight_field
(可选)

包含每个要素的权重值的字段,该要素将在使用字段的值进行加权时使用。 所有值必须大于零,行标准化总是在字段值上执行。

Field

代码示例

GenerateSpatialWeightsMatrix 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 GenerateSpatialWeightsMatrix 函数。

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

以下独立 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"

# 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
arcpy.management.CopyFeatures(
    "911Calls.shp", "911Copied.shp")

arcpy.management.Integrate("911Copied.shp #", "500 Feet")

# Use Collect Events to count the number of calls at each location.
# Process: Collect Events
arcpy.stats.CollectEvents("911Copied.shp", "911Count.shp", "Count", "#")

# Add a unique ID field to the count feature class.
# Process: Add Field and Calculate Field
arcpy.management.AddField(
    "911Count.shp", "MyID", "LONG", "#", "#", "#", "#", "NON_NULLABLE",
    "NON_REQUIRED", "#", "911Count.shp")
    
arcpy.management.CalculateField("911Count.shp", "MyID", "[FID]", "VB")

# Create Spatial Weights Matrix for Calculations.
# Process: Generate Spatial Weights Matrix... 
arcpy.stats.GenerateSpatialWeightsMatrix(
    "911Count.shp", "MYID", "euclidean6Neighs.swm", "K_NEAREST_NEIGHBORS", "#",
    "#", "#", 6, "NO_STANDARDIZATION") 

# Hot Spot Analysis of 911 Calls.
# Process: Hot Spot Analysis (Getis-Ord Gi*)
arcpy.stats.HotSpots(
    "911Count.shp", "ICOUNT", "911HotSpots.shp",
    "GET_SPATIAL_WEIGHTS_FROM_FILE", "EUCLIDEAN_DISTANCE", "NONE", "#", "#",
    "euclidean6Neighs.swm")

环境

特殊情况

输出坐标系

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

许可信息

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

相关主题