SUMO文档007:高级教程(上)

来源:互联网 发布:制作linux安装u盘 编辑:程序博客网 时间:2024/06/05 00:19

2.5.2.1介绍

这个教程是使用SUMO的比较高一层次的指导。提供创建一个方案(Scenario)的大概步骤,列出了每步推荐的wiki页面。

NOTE:

阅读这部教程前,默认你熟悉了前面的初级教程。

2.5.2.2创建道路网络

每次仿真都需要道路网络。NETCONVERT可以生成SUMO使用的网路文件。

(1)如果你已经有了一些网络数据

检查是否能直接使用。不然你需要通过NETCONVERT程序转变为普通的xml格式。更多的信息可以阅读页面: Networks/Import.

(2)如果你没有任何的网络数据

可以使用来自 OpenStreetMap 公开的网络数据。相关信息阅读:Networks/Import/OpenStreetMapDownload. 然后将网络文件导入程序即可:Networks/Import/OpenStreetMap.

2.5.2.3生成交通

首先你应该理解车辆模型的基础知识:Definition_of_Vehicles,_Vehicle_Types,_and_Routes.

你有多种方法将车辆插入到地图中,你的选择基本上取决于你拥有那种类型的交通数据:Demand/Introduction_to_demand_modelling_in_SUMO.

2.5.2.4提高你的方案(Improve your Scenario)

网络导入的大多数方法都离不开网络质量的某些方面。经常出现意想不到的/不现实的交通拥堵和传送车辆的错误。

1、修改网络

你不得不修补网络数据添加丢失的道路、禁止一些转弯、正确的车道数和增加/减少一些交通灯。进行必要修改的推荐防范是:

第一、在plain-xml文件中编码,阅读:Networks/Building_Networks_from_own_XML-descriptions.许多XML参数是可以选择的,你只需要修改你想改变的就可以。

第二、通过加载net.xml文件和plain-xml文件来修补你的网络数据。在最初导入时你就可使用(比如同时加载OSM文件和你的plain-xml文件)

(1)例子:修补node的类型

准备一个文件:

<nodes>
<node id="id_of_the_node_you_want_to_modify" type="right_before_left"/>
<nodes>

Patch.nod.xml

然后修补网络如下:

netconvert --sumo-net-file your.net.xml --node-files patch.nod.xml -o yourpatched.net.xml

或者在最初导入时执行修补:

netconvert --osm-file yourOSMfile.xml --node-files patch.nod.xml ...<other options>

(2)通过plain.xml修改导入网络文件

不仅仅修补个别元素,你能够转变你的网络为plain.xml。修改你的plain文件,然后重新组装:

netconvert --sumo-net-file your.net.xml --plain-output-prefix yourplain

或者当导入时:

netconvert --osm-files yourOSMinput.xml --plain-output-prefix yourplain ... <your other options>

这样会产生文件:

yourplain.edg.xml
 yourplain.nod.xml
 yourplain.con.xml
 yourplain.tll.xml

你能够编辑这些文件通过加载一些或者全部文件重新进行组装:

netconvert --edge-files yourplain.edg.xml --node-files yourplain.nod.xml -o new.net.xml

或者:

netconvert --edge-files yourplain.edg.xml --node-files yourplain.nod.xml --connection-files yourplain.con.xml -o new.net.xml

Note:
当使用OSM输入时,.edg.xml文件包含边的OSM-type信息。(比如高速、住宅)。当你通过NETCONVERT加载.edg.xml文件时,你需要提供选项--ignore-errors.edge-type或者加载一个类型文件(type-file)避免类型错误。

2、交通灯程序

在很多的例子中,交通灯程序都是被NETCONVERT猜到的,但是与真实的交通灯状况不同。一个比较简单的提高交通灯的方法是在不同的时间开始他们的程序周期。可以试验NETCONVERT的选项 --tls.half-offset或者全部的--tls.* 。

一个更有效的方式是:give the program explicitly with a tls.xml file.

这次NETCONVERT只是提供静态交通灯的创建。关于动态交通灯可以访问(这部分很重要,重点研究): Tutorials/TraCI4Traffic_Lights.

2.5.2.5管理方案(ManageScenarious)

如果你有两个网络文件a.net.xml和b.net.xml,你想知道两者之间有何不同。那么可以通过安装目录下的工具完成:<SUMO_HOME> /tools/net/netdiff.py。运行这个工具你将会得到一些列plain-XML不同文件。他们只包含哪些不同的部分比如删除、创建和改变元素。它甚至可以加载这些生成的文件和a.net.xml创建b.net.xml。

0 0
原创粉丝点击