Ubuntu 16.04系统中基于OSM创建并运行SUMO网络模型

严正声明:本文系作者davidhopper原创,未经许可,不得转载。

SUMO全称Simulation of Urban Mobility,是一个开源、微观、多模态交通仿真模拟软件。
前一篇博客《Ubuntu 16.04系统中SUMO安装方法及简单示例》已经介绍了SUMO的一个简单示例,但那只是一个玩具,没有任何实用价值。
若从头开始构建自己的网络模型,需要花费的精力很多。是否有一种比较省事的办法,能快速搭建一个相对复杂且实用的网络模型呢?答案是肯定的,基于OpenStreetMap(OSM)就可快速实现该需求。事实上,SUMO已经为我们提供了一个Python脚本文件osmWebWizard.py来完成此任务。然而,如果是通过我上篇博客的方法安装SUMO,则安装程序中少了很多数据文件,直接使用osmWebWizard.py必然报错,错误信息类似如下:

1
要解决该问题,必须下载额外的数据文件。本文将具体介绍基于OSM创建并运行SUMO网络模型的具体操作步骤。

一、下载SUMO源代码

使用Ctrl+Alt+T打开一个命令终端,切换到一个合适的目录,然后使用Git下载源代码:

cd ~/code
git clone git@github.com:eclipse/sumo.git

在前一篇博客中,我们安装的版本是0.32.0,因此我们需要把该版本签出,命令如下:

# 切换到sumo源代码目录
cd ~/code/sumo

# 查看标签列表
git tag --list

# 签出标签v0_32_0并在本地同步建立v0_32_0分支
# -b后第一个参数表示分支名,第二个参数表示标签名
git checkout -b v0_32_0 v0_32_0

# 查看本地分支,确认目前处于v0_32_0分支
git branch

二、将SUMO源代码中的data目录复制到/usr/share/sumo目录

若使用我前一篇博客的安装方法,则默认的安装根目录位于/usr/share/sumo,如果通过其他方法安装,位置不一定与此相同,可以借助如下命令查找:

sudo find / -name sumo

使用如下命令,将将SUMO源代码中的data目录复制到/usr/share/sumo目录:

sudo cp -r ~/code/sumo/data/ /usr/share/sumo

# 查看是否复制成功
cd /usr/share/sumo
ll | grep data

如果出现类似如下信息,则表明复制成功:

drwxr-xr-x   7 root root  4096 813 10:45 data/

三、借助osmWebWizard.py生成并运行SUMO网络模型

使用如下命令执行osmWebWizard.py

cd ~/code/sumo-exercise/osm
python /usr/share/sumo/tools/osmWebWizard.py

会在浏览器中出现如下界面:
2
按照下图提示设置并生成SUMO网络模型:
3
生成过程中会出现一些警告信息,不必理会。如果生成过程顺利,命令行终端中最后的提示信息类似如下:
4
并且在当前目录(我运行在~/code/sumo-exercise/osm目录)以当前时间戳生成一个文件夹(类似于2018-08-13-11-34-19),里面存放着下载的OSM地图数据以及转换后的SUMO网络模型文件。
注意:一定要保持网络畅通,否则无法顺利下载地图并生成SUMO网络模型。我有好几次长时间停在那里不动,最后发现是网络原因导致。根据我的实践,如果使用代理,生成速度会相对较快;如果不使用代理,需要很长时间才能完成。
接下来,还会打开sumo-gui窗口,如下图所示:
5
点击界面中的播放按钮(如下图所示),运行刚才生成的模型:
6

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值