SUMO中车辆需求建模方法(rou.xml)

SUMO需求建模种类

生成网络后,可以使用SUMO-GUI对其进行查看 ,但不会有汽车行驶。仍然需要有关车辆的某种描述。这称为交通需求。从现在开始,我们将使用以下术语:行程是由起点(街道),目的地终点和出发时间定义的从一个地方到另一个地方的车辆运动。一个途径是扩大之旅,这意味着,该路由定义不仅包含第一个和最后边缘,但所有边缘的车辆会通过。SUMO和 SUMO-GUI需要路线作为车辆运动的输入。

我的需求,将交通局能获取的真实数据转换成sumo可以进行仿真运行的数据格式。因为需要sumo仿真运行后的平均排队长度、延误时间、车辆平均速度等输出,这些是真实情况下不方便获取的信息,只能通过真实数据仿真来得到。

有几种生成SUMO路由的方法。选择取决于您可用的输入数据:

1. 使用行程定义

每个行程至少包括起点和终点以及出发时间。当您要手动创建需求或编写自己的脚本以导入自定义数据时,这很有用。您可以使用 DUAROUTER将旅程变成路线。请参阅 Demand / Shortest_or_Optimal_Path_Routing 和 Demand / Dynamic_User_Assignment,或者您可以将行程直接加载到SUMO中 (更多详细信息)。

DUAROUTER工具

DUAROUTER导入不同的需求定义,并使用最短路径计算来计算SUMO可能使用的车辆路线;当被迭代调用时,DUAROUTER执行动态用户分配(DUA)。可以通过工具duaiterate.py收敛到平衡状态(DUE)来促进这种情况 。

目的:
A)根据需求定义构建车辆路线
B)在用户分配期间计算路线
C)修复现有路由文件中的连接问题

输入(必填):
A)通过NETCONVERT或 NETGENERATE生成的道路网络 ,请参阅构建网络
B)需求定义,请参阅需求建模(车辆定义、行人定义等)

输出: SUMO 可用的车辆定义,车辆类型和路线

这是根据基本的车辆信息等需求,自己去找全局路径最短的路线,是仿真过程中比较优秀的路线定义,但是并不符合实际生活,人们未必都会选择最短路径的那条路线。

2.使用流定义flow

这与使用行程定义的方法大致相同,但使用此方法可以将出发和到达边缘相同的车辆合并。

3.使用随机化

如果您无权进行任何测量,但结果极不切实际,这是获取流量的一种快速方法。参见 工具/Trip#randomTrips.py

仿真过程中最常用的方法,路线随机,生成迅速方便,不需要任何需求建模。用于快速跑一个仿真,离真实情况相差甚远。快但粗糙且落后,初级人员使用

4.使用OD矩阵

交通当局通常可以提供起点-目的地矩阵(或OD矩阵)。必须使用OD2TRIPS将它们转换为行程 。请参见 Demand / Importing_O / D_Matrices, Demand / Shortest_or_Optimal_Path_Routing 和 Demand / Dynamic_User_Assignment。

OD2TRIPS

OD2TRIPS导入O / D矩阵并将其分为单次车辆行程。将通过起点和终点区域定义的流量映射到网络的边缘。

目的:将O / D矩阵转换为单车行程

输入(必填):
A)O / D矩阵
B)a set of districts
输出:车辆行程定义列表
您可以使用XML模式定义文件来设置OD2TRIPS配置: od2tripsConfiguration.xsd。
这大概是与真实交通状况最拟合的方式了,之前看过很多交通仿真系统,与交通局官方等相连的话一般都会使用OD矩阵进行需求建模。复杂但是真实性高,可以与实际需求相连,未来的趋势。

http://sumo.sourceforge.net/userdoc/OD2TRIPS.html

5.使用流量定义和转向比

人们也可以忽略目的地的流量边界,而在路口使用转弯比。参见 JTRROUTER。
主要还是做实验用,比随机生成的要好,可以通过自己是上帝视角规定转弯比例,调控全局。通过flow和turndef两个xml,调用工具JTRROUTER就可以生成rou.xml了。如果你想调整流量分布,在netedit工具中打开,找到你想修改的edge/lane/node的id,之后在turndef.xml中找到对应的路线(每相邻两个节点都会有对应信息),之后修改转弯比例即可。各方向比例之和为1。

6.使用探测器数据(观察点)

交通当局通常使用感应环路和类似设备来测量流量。使用DFROUTER,您可以使用此数据来生成需求。请参阅 Demand / Routes_from_Observation_Points。

从0.9.5版开始,SUMO软件包包含一个名为DFROUTER的路由模块 。该路由器背后的想法是,如今,大多数高速公路都配备了感应环路,可以测量每条高速公路的进出流量。给定该信息,可以假设高速公路上的流量是完全已知的。DFROUTER直接使用从感应环路收集的信息来重建车辆数量和路线。这是分几个步骤完成的,主要是:

  1. 计算(并选择保存)检测器类型的方法是将每个感应设置为源检测器,接收器检测器或中间检测器
  2. 计算(并选择保存)检测器之间的路由
  3. 计算检测器之间的流量 节省流量并进一步控制结构

http://sumo.sourceforge.net/userdoc/Demand/Routes_from_Observation_Points.html

7.用手动生成rou.xml

当然,您可以手动生成路由XML文件。参见 Definition_of_Vehicles,_Vehicle_Types,_and_Routes。

包括三个部分:

  1. 描述车辆物理特性的车辆类型,
  2. 车辆应走的路线
  3. 车辆本身

http://sumo.sourceforge.net/userdoc/Definition_of_Vehicles,_Vehicle_Types,_and_Routes.html

这个是最容易出错的,手动生成坑多坑深,不是大神不要轻易尝试吧,改的人头晕T.T

8.使用人口统计

程序ACTIVITYGEN可用于将人口统计数据转换为交通需求。请参阅 基于需求/活动的需求生成。
ACTIVITYGEN读取匹配给定网络的人口的定义。它可以计算出该人群的移动性愿望。

目的:为综合人群创造需求

输入(必填):
A)通过NETCONVERT或 NETGENERATE生成的道路网络 ,请参阅构建网络
B)人口定义,请参见基于活动的需求生成

输出: SUMO 可用的车辆定义,车辆类型和路线

没试过,一般交通局也没有这种信息来源吧。。。

9.使用其他来源的数据

请参见SUMO_User_Documentation#Demand_Modelling

http://sumo.sourceforge.net/userdoc/SUMO_User_Documentation.html#demand_modelling

总结

到目前为止,SUMO软件包包含四个用于生成路线的应用程序。

  1. DUAROUTER负责从其他仿真包中导入路线或其定义,并使用Dijkstra的最短路径算法来计算路线。 【自动计算分配最短路径】
  2. DUAROUTER可以计算C. Gawron制定的动态用户分配。 【需要自己写需求建模】
  3. 如果您想使用交汇处的流量和转弯百分比对交通进行统计建模,可以使用JTRROUTER。【上帝视角调控转弯比例】
  4. OD2TRIPS可帮助您将OD矩阵(起点/终点矩阵)转换为行程。该 DFROUTER计算从给定的观测点测量路线。【交通当局真实数据转仿真数据,真实性高】

!!!能用工具尽量用工具,不要自己造轮子。

你可能感兴趣的:(SUMO)