【ArcGIS】利用字段计算器按 OSM 道路等级生成道路速度

本文主要介绍「如何利用 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 )

字段计算器截图

注意

在进行字段计算时因为以下内容出现过报错,可供参考:

  1. 注意使用【投影坐标系】进行字段计算。本人使用过程中出现计算出部分结果后中途报错,错误信息为‘字段不可为空’。后发现是因在【地理坐标系】下计算,转换坐标系后计算成功。
  2. 注意添加字段类型选择【双精度】。选择其他类型可能出现‘值类型与字段类型不兼容’问题。
  3. 在【编辑模式】下进行计算。出现过非编辑模式下计算出错,具体错误原因未知。

代码字典中等级与速度的对应关系是参考该文章,具体使用根据实际需求调整数字即可。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值