SUMO文档019:导入网络文件(上)——OpenStreetMap

network_Import

原文链接:http://sumo.dlr.de/wiki/Networks/Import

 

可以通过netconvert程序将很多的第三方的路网文件转化为sumo可读的文件。以下列出了可以转化应用的格式:

1.        OpenStreetMap(一种开源的地图引擎);

2.        PTV VISUM

3.        PTV VISSIM

4.        OpenDRIVE

5.        MATsim

6.        ArcView

7.        Elmar Brockfelds unsplitted andsplitted NavTeq-data;

8.        RoboCup Rescue League folders

一般的转化条件只需要两个参数就可以完成。一个是输入的文件类型,另一个就是输出的文件。下面的命令就是将visum格式的路网转化为sumo可读的格式:

netconvert --visum=MyVisumNet.inp--output-file=MySUMONet.net.xml

当然还有其他的参数可以影响输出的文件。一般这些路网都是xml格式的变体。两种不同的路网格式可以相互转换,不会丢失数据。

OpenStreetMap

OpenStreetMap(简称OSM)是一个全世界开源的地图,任何人都可以编辑它。有关osm数据的下载有很多不同的工具和下载方法,具体参考osm官网:http://www.openstreetmap.org/

1.快读入门

在sumo中提供了自己的一个下载osm地图的脚本。可以在浏览器中选定区域并且制定车辆类型和数量等信息,直接生成一个可以运行仿真的文件(这个很实用)。文件名称:OSMWebWizard.py。这个文件在tools文件夹下面,直接运行就会打开浏览器。关于这个文件的详细教程可以参考:http://sumo.dlr.de/wiki/Tutorials/OSMWebWizard

2.导入路网文件

主要是上面提到的两条命令:输入文件格式和输出文件。

netconvert --osm-files berlin.osm.xml -o berlin.net.xml

上面的命令就是将osm文件转化为sumo路网文件net.xml文件。在osm中默认使用的经纬度坐标为WGS84,自动转化后坐标不符合要求的话,需要你添加其他的参数。详细的参数列表可以查看netconvert页面。

3.常见的其他参数命令

--geometry.remove --roundabouts.guess --ramps.guess --junctions.join --tls.guess-signals --tls.discard-simple --tls.join

--geometry.remove:在不改变拓扑结构的情况下简化网络(节省空间)

--roundabouts.guess:对环形交叉口进行优化。如果没有加这个参数,有可能会发生交通拥堵;

--ramps.guess: 在osm数据中不包含加速减速的这种坡道信息,可以通过这个参数来进行设置,添加这些可能的信息;

--junction.join:有关节点的。下面有详细描述。

--tls.guess-signals/--tls.discard-simple/--tls.join.:有关信号灯的,下面有详细描述

4.推荐的地图类型

不同的交通方针场景对应的地图类型也不相同,在data/typemap文件夹下面有不同种类的场景地图文件。

可以通过命令—type-files filename实现。

5.导入额外的多边形地图(建筑/水池等)

就是将一些非路网的部分,包含到路网中去。具体用法:

polyconvert --net-file berlin.net.xml --osm-files berlin.osm --type-file typemap.xml -o berlin.poly.xml


上面的命令是生成poly文件。其中typemap.xml文件时上面图中的osmPolyconvert.type.xml。

在配置文件中的使用方法:

<configuration>
     <input>
         <net-file value="berlin.net.xml"/>            
         <additional-files value="berlin.poly.xml"/>
     </input>
 </configuration>


只需要加一条additional的命令即可。

6.其他导入脚本

这里不描述了,较少使用。

7.高程数据

也就是z轴的信息数据(海拔信息)。这个一直在实验中,代码完善中。

其中主要包含两个命令。一个是跟海拔有关的(osm中出现key=”ele”),另一个是跟层有关的(osm中出现key=”layer”);其中有关高程数据的其他信息可以参看:http://sumo.dlr.de/wiki/Networks/Elevation

8有关其他的信息

8.1junctiom节点

主要介绍了合并节点的参数使用;junction-join

8.2traffic light交通信号灯

讲述了信号灯相位猜测和信号灯合并的信息。如果转化后的文件没有红绿灯信息,那么源文件没有这些信息或者是转化后丢失了数据。

 

 

后面还提到了如何删去路网中不想要的道路种类:

--remove-edges.by-vclass hov,taxi,bus,delivery,transport,lightrail,cityrail, \ 
  rail_slow,rail_fast,motorcycle,bicycle,pedestrian


划重点了:

有关osm和sumo的对应关系:

  •  节点是一对一的对应的;
  •   osm中道路不区分车道,因此5677可能被是被为5677#0/5677#1/-5677#0/-5677#1.

 

展开阅读全文

没有更多推荐了,返回首页