生成网络空间权重 (Spatial Statistics)

许可等级:BasicStandardAdvanced

摘要

使用网络数据集构建一个空间权重矩阵文件 (.swm),从而在基础网络结构方向定义要素空间关系。

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

插图

Generate Network Spatial Weights illustration

用法

语法

GenerateNetworkSpatialWeights_stats (Input_Feature_Class, Unique_ID_Field, Output_Spatial_Weights_Matrix_File, Input_Network, Impedance_Attribute, {Impedance_Cutoff}, {Maximum_Number_of_Neighbors}, {Barriers}, {U-turn_Policy}, {Restrictions}, {Use_Hierarchy_in_Analysis}, {Search_Tolerance}, {Conceptualization_of_Spatial_Relationships}, {Exponent}, {Row_Standardization})
参数说明数据类型
Input_Feature_Class

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

Feature Class
Unique_ID_Field

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

Field
Output_Spatial_Weights_Matrix_File

创建的网络空间权重矩阵 (SWM) 文件的完整路径。

File
Input_Network

将对输入要素类中各要素间空间关系进行定义的网络数据集。

Network Dataset Layer
Impedance_Attribute

在分析中被用作阻抗的成本单位类型。

String
Impedance_Cutoff
(可选)

为空间关系的“反距离”和“固定距离”概念化指定中断值。使用“阻抗属性”参数指定的单位输入此值。

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

Double
Maximum_Number_of_Neighbors
(可选)

用于表示要为各要素查找的最大相邻要素数的整数。

Long
Barriers
(可选)

一种点要素类的名称,其中的要素用于表示阻塞的路口、封锁的道路、事故现场或网络中行程被阻止的其他位置。

Feature Layer
U-turn_Policy
(可选)

指定可选的 U 形转弯限制。

  • ALLOW_UTURNSU 形转弯可以出现在任何位置(默认)。
  • NO_UTURNS导航过程中不允许有任何 U 形转弯。
  • ALLOW_DEAD_ENDS_ONLYU 形转弯只能出现在死角(即单价交汇点)。
String
Restrictions
[Restriction,...]
(可选)

限制列表。选中在计算空间关系时要遵守的限制。

String
Use_Hierarchy_in_Analysis
(可选)

指定是否在分析中使用等级。

  • USE_HIERARCHY将在启发式路径算法中使用网络数据集的等级属性来加速分析过程。
  • NO_HIERARCHY将使用精确的路径算法。如果不存在等级属性,此选项不影响分析。
Boolean
Search_Tolerance
(可选)

在网络数据集的输入要素类中查找要素时使用的搜索阈值。该参数包括搜索值和容差单位。

Linear unit
Conceptualization_of_Spatial_Relationships
(可选)

指明如何指定与每个空间关系关联的加权方式。对于“反距离”,远处要素的权重比近处要素的权重小。对于“固定距离”,目标要素“阻抗中断”内的要素是相邻要素(权重为 1);目标要素“阻抗中断”外的要素不是相邻要素(权重为 0)。

String
Exponent
(可选)

空间关系“反距离”概念化的计算参数。典型值是 1 或 2。在此指数值增大时,权重会随着距离的增加快速下降。

Double
Row_Standardization
(可选)

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

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

代码实例

GenerateNetworkSpatialWeights 示例(Python 窗口)

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

import arcpy
arcpy.env.workspace = "c:/data"
arpcy.GenerateNetworkSpatialWeights_stats("Hospital.shp", "MyID","network6Neighs.swm", 
                                          "Streets_ND","MINUTES", 10, 6, "#", 
                                          "ALLOW_UTURNS","#", "USE_HIERARCHY", 
                                          "#", "INVERSE", 1,"ROW_STANDARDIZATION")
GenerateNetworkSpatialWeights 示例(独立 Python 脚本)

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

# Create a Spatial Weights Matrix based on Network Data 

# Import system modules
import arcpy

# Set the geoprocessor object property to overwrite existing output
arcpy.gp.overwriteOutput = True

# Check out the ArcGIS Network Analyst 扩展模块 (required for the Generate Network Spatial Weights tool)
arcpy.CheckOutExtension("Network")

# Local variables...
workspace = r"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

    # Create Spatial Weights Matrix based on Network Data 
    # Process: Generate Network Spatial Weights... 
    nwm = arcpy.GenerateNetworkSpatialWeights_stats("Hospital.shp", "MyID",
                        "network6Neighs.swm", "Streets_ND",
                        "MINUTES", 10, 6, "#", "ALLOW_UTURNS",
                        "#", "USE_HIERARCHY", "#", "INVERSE",
                        1, "ROW_STANDARDIZATION")

    # Create Spatial Weights Matrix based on Euclidean Distance
    # Process: Generate Spatial Weights Matrix... 
    swm = arcpy.GenerateSpatialWeightsMatrix_stats("Hospital.shp", "MYID",
                        "euclidean6Neighs.swm",
                        "K_NEAREST_NEIGHBORS",
                        "#", "#", "#", 6) 

    # Calculate Moran's Index of Spatial Autocorrelation for 
    # average hospital visit times using Network Spatial Weights 
    # Process: Spatial Autocorrelation (Morans I)...       
    moransINet = arcpy.SpatialAutocorrelation_stats("Hospital.shp", "VisitTime",
                        "NO_REPORT", "GET_SPATIAL_WEIGHTS_FROM_FILE", 
                        "EUCLIDEAN_DISTANCE", "NONE", "#", 
                        "network6Neighs.swm")

    # Calculate Moran's Index of Spatial Autocorrelation for 
    # average hospital visit times using Euclidean Spatial Weights   
    # Process: Spatial Autocorrelation (Morans I)...       
    moransIEuc = arcpy.SpatialAutocorrelation_stats("Hospital.shp", "VisitTime",
                        "NO_REPORT", "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: 需要 Network Analyst
ArcGIS for Desktop Standard: 需要 Network Analyst
ArcGIS for Desktop Advanced: 需要 Network Analyst
5/10/2014