本文主要介绍「如何利用 ArcGIS【字段计算器】批量匹配 路段等级属性 与 路段速度属性」 ,该操作的目的是获取【网络分析】中所需的时间属性。
路网数据来源为 openstreetmap。
具体操作
在利用 ArcGIS 进行网络分析时需要通过【路段长度】与【路段通行速度】求出【路段通行时间】,用以进行【时间阻抗】下的各类分析。
通过 OSM 采集得到的道路属性中只含有等级信息(存储在【highway】字段中),通过以下代码可实现批量匹配:
# 创建字典用于存储对应关系:'等级':'速度'
speed_dic = {'bridleway' : '10', 'construction' : '0', 'cycleway' : '15', 'footway' : '5', 'living_street' : '5', 'motorway' : '50', 'motorway_link' : '50', 'path' : '5', 'pedestrian' : '5', 'platform' : '5', 'primary' : '40', 'primary_link' : '40', 'raceway' : '30', 'residential' : '5', 'road' : '10', 'secondary' : '30', 'secondary_link' : '30', 'service' : '10', 'steps' : '5', 'tertiary' : '10', 'tertiary_link' : '10', 'track' : '5', 'trunk' : '50', 'trunk_link' : '50', 'unclassified' : '20' ,'subway' : '50', 'rail' : '40'}
def Auto_Speed(w):
return speed_dic.get( w )
注意
在进行字段计算时因为以下内容出现过报错,可供参考:
- 注意使用【投影坐标系】进行字段计算。本人使用过程中出现计算出部分结果后中途报错,错误信息为‘字段不可为空’。后发现是因在【地理坐标系】下计算,转换坐标系后计算成功。
- 注意添加字段类型选择【双精度】。选择其他类型可能出现‘值类型与字段类型不兼容’问题。
- 在【编辑模式】下进行计算。出现过非编辑模式下计算出错,具体错误原因未知。
代码字典中等级与速度的对应关系是参考该文章,具体使用根据实际需求调整数字即可。