SUMO学习(二):
创建路网
学习内容:
- netconvert转换第三方源
- OSM Overpass API query page下载城市地图
- OSMWebWizard.py
- openstreetmap截取地图
- netedit手动画图
- 直接编写路网文件
1. netconvert转换第三方源:
该程序是在sumo安装文件夹中的bin文件夹中
在终端中进行打开可将第三方源下载的文件转换为sumo可读的格式
支持的第三方源有:
OpenStreetMap
PTV Vissim
OpenDrive
MATsim
ArcView
Elmar Brockfelds unsplitted and splitted NavTeq-data
RoboCup Rescue League folders
以vissim为例
netconvert --vissim-file=vissim.inpx --output-file=map.net.xml
2. OSM Overpass API query page下载城市地图:
可以直接下载某城市的地图。方法较为简单,但是文件较大下载速度慢。
3. OSMWebWizard.py:
该程序是在sumo安装文件夹中的tools文件夹中
直接运行即可
有可能会出现‘ImportError: DLL load failed while importing _ssl: 找不到指定的模块。’的问题,解决方案在发布的另一篇文章中
该工具的好处在于简单易提取。
通过select area 对区域进行截取之后,可在右边工具栏选择路网对象(车,行人等)生成,选择好之后,点击generate scenario进行下载,下载完成之后自动打开sumo。
不过有一个疑惑的地方,生成的这个地标是什么?
4. openstreetmap截取地图:
官网:openstreetmap.org
操作简单,选择想要的区域,进行截取,然后导出,可以得到osm文件
再将osm文件转换为sumo可读文件
1.打开终端cd到sumo/bin路径中(安装的地方)运行以下代码得到net.xml文件(到这转换结束,以下的都是路网对象的生成)
netconvert --osm-files map.osm -o map.net.xml
2.将终端cd到sumo/tools路径中,将net.xml文件剪切到tools中,运行以下代码得到trip.xml文件(生成车辆等数据)
python randomTrips.py -n map.net.xml -l -e 100 -o map.trips.xml
3.将终端cd到sumo/bin路径中,将net.xml文件和trip.xml文件剪切到bin中,运行以下代码得到rou.xml文件(rou.xml也可以自己编写)
duarouter -n map.net.xml -t map.trips.xml -o map.rou.xml --ignore-errors
4.最后创建sumocfg文件,导入之前生成的路网,并且创建一些路网对象
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<input>
<net-file value="map.net.xml"/>
<route-files value="map.rou.xml"/>
</input>
<time>
<begin value="0"/>
<end value="120"/>
</time>
</configuration>
5.最后将sumocfg拖入bin文件夹中的sumo-gui.exe即可运行
5. netedit手动画图:
该程序是在sumo安装文件夹中的bin文件夹中
功能不多,但是也够用
6. 直接编写路网文件:
后续进行学习