插图
使用方法
网络数据集可以来自以下任何来源:
- 已保存在本地驱动器或网络上的网络数据集。如果您的组织维护其自己的街道网络数据集,您可能已经访问过这些数据集。
- 在 ArcGIS Online 或 ArcGIS Enterprise 中托管的物流和发布路径服务。如果使用 ArcGIS Online 执行分析,求解程序将参考存储在 ArcGIS Online 云中的高质量的世界级网络数据集并会消耗 ArcGIS Online 配额。
- 由 ArcGIS StreetMap Premium 提供的已配置网络数据集。这些网络数据集采用 SDC 格式,包括北美、拉丁美洲、欧洲、中东、非洲、日本、澳大利亚和新西兰。
-
此工具将空间权重矩阵文件 (*.swm) 创建为输出。空间统计和时空模式挖掘工具箱中的各种工具包括空间关系的概念化参数,该参数允许您使用此文件定义要素的空间关系。通过将空间权重矩阵与网络数据源一起使用,可以通过其距离、行驶时间和行驶成本定义空间关系。
-
输入要素类必须是点。此工具不支持面和折线。
-
唯一 ID 字段参数用于将该工具的输出与输入要素相关联。如果没有唯一 ID 值,则可以创建一个,方法是向要素类表添加一个新的整型字段,然后将此字段的值计算为与 FID 或 OBJECTID 字段的值相等。由于复制或编辑要素类时 FID 和 OBJECTID 字段值可能会发生变化,所以不能直接对唯一 ID 字段参数使用这些字段。
-
与每个要素关联的相邻要素数量由 最大相邻要素数参数和三个阻抗中断参数。该工具将使用尽可能多的最接近输入要素的相邻要素,而不会超过最大相邻要素数,或者使用其阻抗超过任何中断值的任何要素。阻抗可以通过距离、行驶时间或成本进行定义。可以使用的阻抗类型取决于网络数据源的属性和出行模式参数的值。。
-
如果您的网络数据集具有等级,则可用于定义空间关系。等级可将网络边分为主要道路、次要道路和地方干道。如果使用网络等级创建要素的空间关系,则在选择行进道路时会优先选择主要道路,然后是次要道路,最后是地方干道。
为空间关系的概念化参数指定反向时,建议您通过选中行标准化参数执行行标准化。如果不执行行标准化,则不同的距离单位将导致不同的空间权重。
-
在分析之前,所有输入要素都将投影到网络数据集的空间参考,并且网络空间权重矩阵文件将在此空间参考中进行构建。建议您在此空间参考中执行所有后续分析,以正确表示空间关系。
语法
arcpy.stats.GenerateNetworkSWM(Input_Feature_Class, Unique_ID_Field, Output_Spatial_Weights_Matrix_File, Input_Network_Data_Source, Travel_Mode, Impedance_Distance_Cutoff, {Impedance_Temporal_Cutoff}, {Impedance_Cost_Cutoff}, {Maximum_Number_of_Neighbors}, {Time_of_Day}, {Time_Zone}, {Barriers}, {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_Data_Source | 用于查找每个输入要素的相邻要素的网络数据集。网络数据集通常表示街道网络,但也可以表示其他种类的运输网络,例如铁路或步行路径。网络数据集必须至少包含一个与距离、行驶时间或成本相关的属性。 | Network Data Source |
Travel_Mode | 用于分析的交通模式。出行模式为一组网络设置(例如行驶限制和 U 形转弯),用于定义行人、汽车、卡车或其他交通媒介在网络中的移动方式。 arcpy.na.TravelMode 对象和包含出行模式有效 JSON 表示的字符串也可用作参数的输入。 | String |
Impedance_Distance_Cutoff | 所允许的、要素的相邻要素最大阻抗距离。距离比该值远的任何要素都不会用作相邻要素。默认情况下不使用距离中断。 | Linear Unit |
Impedance_Temporal_Cutoff (可选) | 所允许的、要素的相邻要素最大阻抗行驶时间。行驶时间比该值长的任何要素都不会用作相邻要素。默认情况下不使用临时中断。 | Time Unit |
Impedance_Cost_Cutoff (可选) | 所允许的、要素的相邻要素最大阻抗成本。行驶成本比该值大的任何要素都不会用作相邻要素。默认情况下不使用成本中断。 | Double |
Maximum_Number_of_Neighbors (可选) | 用于表示各要素的最大相邻要素数的整数。由于阻抗中断,用于每个要素的实际相邻要素数可能会更少。 | Long |
Time_of_Day (可选) | 将在分析中考虑一天中的交通状况。交通状况会影响可在给定时间内行驶的距离。如果未提供任何日期或时间,则分析将不会考虑流量的影响。 您可以使用以下日期而非特定日期来指定一周中的某一天:
例如,要指定行程从星期二 5:00 p.m. 开始,则请将该参数值指定为 1/2/1900 5:00 PM。 | Date |
Time_Zone (可选) | 指定 Time_of_Day 参数的时区。
| String |
Barriers (可选) | 此要素用于表示阻塞的路口、封锁的道路、事故现场或网络中行程被阻止的其他位置。 | Feature Layer |
Search_Tolerance (可选) | 用于将每个输入要素分配到网络上的某个位置的最大距离。如果任何输入点并未恰好位于网络的线上,它们将被分配到网络上最近的位置进行分析。但是,如果该要素比来自网络上任何位置的搜索容差值都远,则该要素将不会被分配给网络,也不会包含在分析中。 | Linear Unit |
Conceptualization_of_Spatial_Relationships (可选) | 指定为每个相邻要素定义权重的方式。
| String |
Exponent (可选) | 为 Conceptualization_of_Spatial_Relationships 参数指定 INVERSE 时使用的指数。通过将距离、时间或成本乘以指数幂来计算已分配给每个相邻要素的权重。默认值为 1,且该值必须介于 0.01 到 4 之间。权重将随着指数的增加而更快地下降。 | Double |
Row_Standardization (可选) | 指定是否会应用行标准化。当输入点的位置由于采样设计或施加的聚合方案而可能偏离时,建议使用行标准化。此外,还建议您在根据反距离、时间或成本对相邻要素加权时,对行进行标准化。
| Boolean |
代码示例
以下 Python 脚本演示了如何使用 GenerateNetworkSWM 工具:
import arcpy
arcpy.env.workspace = "c:\Data"
# Use a network data source hosted on ArcGIS Online.
arcpy.stats.GenerateNetworkSWM(r"Data.gdb\Hospital", "MyID",
"Hospital.swm", "https://www.arcgis.com/",
"Driving Time", None, None, None, None, None,
"LOCAL_TIME_AT_LOCATIONS", None, "5000 Meters",
"FIXED", 1, "ROW_STANDARDIZATION")
# Use a network data source stored on a local drive.
arcpy.stats.GenerateNetworkSWM(r"Data.gdb\Hospital", "MyID", "Hospital.swm",
r"Data.gdb\transportation\streets_ND",
"Driving Time", None, None, None, None, None,
"LOCAL_TIME_AT_LOCATIONS", None, "5000 Meters",
"FIXED", 1, "ROW_STANDARDIZATION")
以下 Python 脚本演示了如何使用 GenerateNetworkSWM 工具:
# Create a Spatial Weights Matrix based on Network Data
# Import system modules
import arcpy
# Set the environment property to overwrite existing output
arcpy.env.overwriteOutput = True
# Check out the ArcGIS Network Analyst extension
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...
arcpy.stats.GenerateNetworkSWM(r"Data.gdb\Hospital","MyID",
"Hospital.swm", r"Data.gdb\Transportation\Streets_ND",
"Driving Time", None, None, None, None, None,
"LOCAL_TIME_AT_LOCATIONS", None, "5000 Meters", "FIXED",
1,"ROW_STANDARDIZATION")
# Create Spatial Weights Matrix based on Euclidean Distance
# Process: Generate Spatial Weights Matrix...
arcpy.stats.GenerateSpatialWeightsMatrix(
r"Data.gdb\Hospital", "MyID", r"Euclidean6Neighs.swm",
"K_NEAREST_NEIGHBORS", "EUCLIDEAN", 1, None, 6,
"ROW_STANDARDIZATION", None, None, '', None, None)
# Calculate Moran's Index of Spatial Autocorrelation for
# average hospital visit times using Network Spatial Weights
# Process: Spatial Autocorrelation (Morans I)...
moransINet = arcpy.stats.SpatialAutocorrelation("Data.gdb\Hospital",
"VisitTime", "NO_REPORT", "GET_SPATIAL_WEIGHTS_FROM_FILE",
"EUCLIDEAN_DISTANCE", "ROW", None, "Hospital.swm", None)
# Calculate Moran's Index of Spatial Autocorrelation for
# average hospital visit times using Euclidean Spatial Weights
# Process: Spatial Autocorrelation (Morans I)...
moransIEuc = arcpy.stats.SpatialAutocorrelation("Data.gdb\Hospital",
"VisitTime", "NO_REPORT", "GET_SPATIAL_WEIGHTS_FROM_FILE",
"EUCLIDEAN_DISTANCE", "ROW", None, r"Euclidean6Neighs.swm",
None)
except arcpy.ExecuteError:
# If an error occurred when running the tool, print out the error message.
print(arcpy.GetMessages())
许可信息
- Basic: 需要 Network Analyst
- Standard: 需要 Network Analyst
- Advanced: 需要 Network Analyst