一个更详细但等价的写法如下:
上面的input部分仅服务于文件目的,没有功能方面的意思。 带有配置文件的SUMO调用是这样的: sumo.exe -c test.sumo.cfg
这意味着我们不用参数,而是仅用参数--configuration-file
3.3.1.配置文件命名规范
不同的目标程序有不同的扩展名,强烈建议遵循该规范。GUISIM的仿真配置必须遵循规范,它仅能后缀为“.sumo.cfg”的仿真配置文件。扩展名规范如下:
? *.sumo.cfg: Configuration file for SUMO and GUISIM ? *.netc.cfg: Configuration file for NETCONVERT ? *.netg.cfg: Configuration file for NETGEN ? *.rou.cfg: Configuration file for DUAROUTER ? *.jtr.cfg: Configuration file for JTRROUTER ? *.df.cfg: Configuration file for DFROUTER ? *.od2t.cfg: Configuration file for OD2TRIPS
3.3.2.配置文件和命令行参数
附加配置文件后,命令行参数照样可以使用(GUI程序例外,它需要在配置文件里设置好所有参数)。如果一个参数在配置文件和命令行里同时被设置,那么命令行里的值优先使用。
3.3.3.生成配置文件模板
SUMO包里的程序允许用户生成配置文件模板,可以保存一个空的配置。可以这样来实现(使用netgen命令):--save –template
3.3.4.保存当前配置到文件
可以把当前参数设置保存到配置文件,这样来实现:--save-configuration
3.4.通用参数
SUMO包里的程序共享一些参数,具体参看下表: 报告参数:
参数
--verbose
--suppress-warnings --print-options --help -? --log-file
不记录警告信息
打印参数,并给出当前参数值 程序帮助信息
所有信息都显示在控制台,并记录进指定的文件
描述
详细报告应用程序正在做什么
随机数参数:
这些参数决定了随机数发生器的种子怎么产生。相同的种子导致产生相同的随机数序列。 但是默认情况下,种子被硬编码为固定值。因此,只要保持配置设置不变,几次仿真运行的结果输出是完全一样的。为了改变这种情况,使用下面的参数:
参数
--srand
描述
给随机数生成器设置指定值。可以使用不同的值以获得不同但可重现的仿真结果 让SUMO自己选择种子。如果可能,种子将给予/dev/urandom的输出,否则会基于当前系统时间。该参数优先于—srand
注意: --abs-rand 的优先权高于 --srand
4.仿真准备
4.1.所需数据
首先,需要让被仿真的交通网络运行起来。由于SUMO仿真大型网络,所以我们主要关注导入交通网络及导入数据中丢失值的计算。因此,没有网络图形编辑器可用。另外,还需要网络中道路的信息,及交通灯的信息。
更进一步,你可能需要交通需求的信息。尽管许多交通仿真使用统计分布,但是SUMO中的每辆汽车知道自己的路径,这里的路径是要通过的边(道路)的列表。
你必须遵循以下步骤来实现一个仿真方案: 1) 创建网络
这一步可以有三种方法实现: 1:使用NETGEN生成抽象网络
2:在XML文件里设置自己的描述,并用NETCONVERT导入
3:使用NETCONVERT导入一个已经存在的网络(可以使用OSM地图) 2) 创建需求
这一步可以有五种方法实现: 1:描述明确的车辆路径
2:仅使用车流和转弯百分比(可以考虑) 3:生成随机路径(不实用) 4:导入OD矩阵(特定格式) 5:导入已存在的路径
3) A:如果需要,计算动态用户分配 4) B:用给定的方法校正仿真
5) 执行仿真,获得你所需要的输出 下图比较形象地表述了这个过程:
4.2.最佳实践
选择正确的方案依赖于所做的调查。如果想让结果容易评估,生成的抽象网络可能是最好的解决方案,抽象网络已经被用来评估C2C-networks的弱点。如果需要研究真实交通,可能会重用已经有的数据。
5.网络构建
5.1.SUMO道路网络
SUMO使用自有的道路网络描述。尽管是可读的,但不意味着SUMO的道路网络要手工编辑。相比之下,应该使用NETCONVERT转换已有的地图,或者使用NETGEN产生简单、抽象的几何道路图形。
NETGEN允许自由地创建网络。对一些重新选择路径的小规模测试,tls-signals等,这可
能是最佳方法。街道的清晰命名使得容易定义自己的路径。但是如果你想仿真真实网络,那么使用NETGEN产生的网络是没有用的。
使用NETCONVERT可以从其他数据源导入道路网络,如VISIM,shape files 和OSM数据库,这也是设置真实世界网络的工具。
然而,多数例子是手工写成的XML文件,和从NETCONVERT转换来的。起初,这些例子很小,手工编写可以比使用NETGEN更好的控制输出。而且使用XML数据定义自己的网络非常灵活。 网络格式:
粗略地讲,SUMO道路网络是个有向图。节点代表道路交叉口,边代表道路或街道。 边和车道 边的属性有: Id:边的标识
From:起始节点的ID To:终止节点的ID
Priority:道路的重要程度,是一个数值类型 Function:一个抽象边的用途(目的)
对于仿真,我们感兴趣的是”function”这个属性,它描述了边怎么被使用,在真实世界中是否可以找到这样的边,或者它只是一个为实现分配而建的辅助结构。我们定义了以下用途: 1) normal:这类“边”是道路网络中的普通部分,如高速公路或链接两条道路的街道。 2) connector:这类“边”是个微观连接器—并不是真实世界道路网络的一部分。然而
在仿真中,不区分“连接器道路”和“普通道路”,仅GUISIM允许隐藏“连接器道路”。 3) internal:这类“边”是交叉口的一部分(在交叉口内部)。在仿真中它的使用不同于普
通边(normal)。
每个边都需要它所拥有的车道的定义,每个车道的定义如下: ? id: 车道id
? depart(开出):车辆是否可以从该车道正常开出(1可以,2不可以) ? vclasses: 该车道允许或禁止通行的车辆类别列表。 ? maxspeed: 该车道所允许的最高车速 ? length: 该车道的长度
此外,车道有形状属性。尽管网络从(0,0)开始转换,并不一定网络的所有部分的坐标为正。
节点
注意:可能两个不同的节点有相同的位置(怎么解释?)
5.2.坐标系和对齐
这里的网络使用笛卡尔坐标系,最左端的节点在x=0处,最下端的节点在y=0处。这意味着,导入路网时,如果原始网络使用的不是笛卡尔坐标系,NETCONVERT 和 NETGEN将会首先映射网络。然后移动网络到原点(0,0).
这个处理被记录在生成网络的元素位置里。可以找到如下属性: 以下省略。。。
SUMO道路网络向北对齐,当然这取决于用户怎么定义道路网络,但是如果从Open Street Map or shape files导入路网,上指向北方。
现有改动:
警告:如果从0.10.x版升级到24.07.2009版之后,请注意这个更正说明: 22.07.2009版与24.07.2009版之间网络格式发生了重大变化,可被概括为把所有字符数据移动到了属性里面,具体如下:
?“车道形状”不在存储在车道的字符区域部分,而是移到了车道的形状属性里 ? “网络映射、位置、边界描述”不在使用net=offset,conv-boundary>, orig-boundary, and orig-proj等元素,而是引进了“location”元素,这些值被保存到该元素的如下属性里:netOffset, convBoundary, origBoundary, projParameter。
? row-logic的子元素:“关键字,请求大小,车道数”依次转移到row-logic的如下属性里:id, requestSize, and laneNumber
? tl-logic的子元素:“关键字,子关键字,偏移”依次转移到tl-logic元素的如下属性里:id, programID, and offset。元素phaseno被丢弃不用。
? 交叉口的子元素inclanes(进入交叉口的边),intlanes(驶出交叉口的边),shape依次转移到交叉口的如下属性里:incLanes, intLanes, and shape。
? 区域形状不在存储在区域的字符区,而是在区域的形状属性里。 ? 多边形形状不在存储在多边形字符区,而是多边形的形状属性里。
5.3.使用自己的XML描述构建网络
几乎分发包里的所有例子都是手工创建的。这样做,你至少需要两个文件:一个文件存储节点,另一个文件存储节点间的边。注意这里的“节点”和“交叉口”同义,“边”和“街道”同义。除了定义节点和边,你还可以用类型来结合边的属性,设置边和车道的明确关系。以下将描述这四个文件类型是怎么样的。(可以下载这些XML文档的模式描述)
创建这四类XML文件。。。
在生成这些文件后,你至少需要节点文件和边文件(类型和连接文件是可选的),你可以运行NETCONVERT 以构建网络。如果仅用节点和边文件(MyEdges.edg.xml,MyNodes.nod.xml),调用格式如下:
netconvert --xml-node-files=MyNodes.nod.xml --xml-edge-files=MyEdges.edg.xml \\
--output-file=MySUMONet.net.xml
如果还使用了类型和连接文件,则调用格式如下:
netconvert --xml-node-files=MyNodes.nod.xml --xml-edge-files=MyEdges.edg.xml \\ --xml-connection-files=MyConnections.con.xml --xml-type-files=MyTypes.typ.xml \\ --output-file=MySUMONet.net.xml
可能你的边的定义不完整或有错,如果你仍希望导入这个网络,可以试着使用
NETCONVERT的--dismiss-loading-errors参数忽略这些。这样,定义不正确的边将被省略,但是NETCONVERT仍试图构建网络。还可以绕水平轴翻转网络(使用参数--flip-y)。
5.4.节点描述
节点文件一般以“.nod.xml”作为扩展名,每行描述一个节点,如下所示:
方括号表示该参数可选,每个属性都有特定意义和值域:
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库城市交通仿真平台SUMO(4)在线全文阅读。
相关推荐: