生成网络空间权重 (Spatial Statistics)
插图
用法
-
此工具的输出是空间权重矩阵文件 (.swm)。需要指定空间关系的概念化选项的工具将接受空间权重矩阵文件;为空间关系的概念化参数选择 GET_SPATIAL_WEIGHTS_FROM_FILE,并且为权重矩阵文件参数指定使用此工具创建的空间权重文件的完整路径名。
-
此工具的设计初衷是仅用来处理输入要素类点数据。
-
空间权重矩阵可将数据集中各要素间的空间关系进行量化。空间统计工具箱中的许多工具都可以基于每个要素的邻近要素环境对各要素进行评估。空间权重矩阵文件就是用于定义这些邻域关系。对于此工具,如果行程仅限于一个网络,则邻域关系取决于要素间的时间或距离。有关空间权重和空间权重矩阵文件的详细信息,请参阅空间权重。
-
唯一 ID 字段与运行此工具后所获得的要素关系关联。因此,每个要素的唯一 ID 值都必须唯一,而且通常应该位于与要素类一同保留的永久性字段中。如果没有“唯一 ID”字段,则可以轻松地创建一个,方法是向要素类表添加一个新的整型字段(添加字段),然后将此字段的值计算为与 FID 或 OBJECTID 字段的值相等(计算字段)。由于复制或编辑要素类时 FID/OID 字段值会发生变化,所以不能直接对唯一 ID参数使用这些字段。
-
此工具的最大相邻要素数参数可指定将与各要素关联的精确相邻要素数。阻抗中断会覆盖相邻要素数参数,因此,如果不能在中断距离/时间内找到指定数量的相邻要素,则有些要素的相邻要素可能会减少。
-
可以在网络数据集中使用等级(如果存在等级)定义空间关系,方法是选中在分析中应用等级参数。等级可将网络边分为主要道路、次要道路和地方干道。如果使用网络等级创建要素的空间关系,则在选择行进道路时会优先选择主要道路,然后是次要道路,最后是地方干道。
此工具不支持“环境”输出坐标系。进行分析前,会将所有要素几何进行投影,使之与网络数据集关联的空间参考相匹配。此工具创建生成的空间权重矩阵文件将反映使用“网络数据集”空间参考所定义的空间关系。在使用网络空间权重矩阵文件执行分析时,建议对输入要素类进行投影,使之与用于创建网络 swm 的网络数据集的坐标系相匹配。
ESRI 数据和地图(对于 ArcGIS 用户是免费的)包含 StreetMap 数据,该数据包含以 SDC 格式预构建的网络数据集。此数据集的 coverage 是美国和加拿大。此工具可直接使用这些网络数据集。
在使用 shapefile 时,请注意 shapefile 无法存储空值。根据非 shapefile 输入创建 shapefile 的工具或其他过程可能会将空值存储(或解释)为零。某些情况下,空值则以极大的负值储存于 shapefile 中。这会产生意外的结果。有关详细信息,请参阅 shapefile 输出的地理处理注意事项。
语法
参数 | 说明 | 数据类型 |
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 形转弯限制。
| String |
Restrictions [Restriction,...] (可选) |
限制列表。选中在计算空间关系时要遵守的限制。 | String |
Use_Hierarchy_in_Analysis (可选) |
指定是否在分析中使用等级。
| Boolean |
Search_Tolerance (可选) |
在网络数据集的输入要素类中查找要素时使用的搜索阈值。该参数包括搜索值和容差单位。 | Linear unit |
Conceptualization_of_Spatial_Relationships (可选) |
指明如何指定与每个空间关系关联的加权方式。对于“反距离”,远处要素的权重比近处要素的权重小。对于“固定距离”,目标要素“阻抗中断”内的要素是相邻要素(权重为 1);目标要素“阻抗中断”外的要素不是相邻要素(权重为 0)。 | String |
Exponent (可选) |
空间关系“反距离”概念化的计算参数。典型值是 1 或 2。在此指数值增大时,权重会随着距离的增加快速下降。 | Double |
Row_Standardization (可选) |
当要素的分布由于采样设计或施加的聚合方案而可能出现偏离时,建议使用行标准化。
| Boolean |
代码实例
下面的 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")
下面的独立 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()