这些值基于以下内容: http://wiki.openstreetmap.org/wiki/Map_Features. 警告:
这些值通过网络设置,而且没有被验证。如果你重新设计并改进它,这将是极大地帮助,这样做请让我们知道。
显式道路属性
道路包含车道数的定义(key=\lanes\或者允许的最高车速(key=\maxspeed\使用这些值就不必参考类型值。而且,单边信息表示该边是否是单向的(one-way): (key=\oneway\如果边属于环状交叉路(key=\junction\roundabout\也被设置成单向的(one-way)。
不考虑不想要的交通模型
多数情况下,对于道路交通研究而言,我们对不相交的轨道和道路不感兴趣,但是可以排除那些被NETCONVERT用选项—remove-deges.by-vclass导入的边。
下面的调用方式实现移除所有的不允许客车通行的边:
--remove-edges.by-vclass hov,taxi,bus,delivery,transport,
lightrail,cityrail,rail_slow,rail_fast,motorcycle,bicycle,pedestrian
下面的调用方式实现移除所有道路车辆禁止通行的边(是不是步行街?):
--remove-edges.by-vclass rail_slow,rail_fast,bicycle,pedestrian
缺失的描述: TLS计算
车道到车道连接的计算
真正导入了什么(边的属性怎样被确定) 其他交通模型 路网质量
其它的Netconvert参数选项
Netconvert工具提供了很多参数选项以描述网络应怎样被导入,一些参数选项的范围并未覆盖所有的导入类型。
设置默认值:上面提到过,如果边的参数被遗漏,则会使用默认值。我们可以设置导入边的类型的默认值,车道数,允许的最大速度,优先级等,这需要依次使用参数选项:--type
添加转弯处(Turnarounds):通常转弯处被添加为一个可能的边延续,这在网络构建中扮演重要角色。有时,你可能不想添加它们,这时可以用选项--no-turnarounds禁止它们的出现。
删除几何节点:在多数的导入网络中,你会发现在一些节点处,拥有相同属性的街道进来又出去,或者两条平行的边进来并且具有相同属性的两条平行边又从这出去,这时这些节点没有任何意义(除了可能会是一个U型转弯处),可以被删除。删除这些节点,将会加快仿真速度,因为每次处理的边数减少了。可以使用--remove-geometry来删除这些节点,并使进出的边结合。删除这些节点后仍保持了边的几何形状,这靠在删除的节点处添加另外的几何点来实现。
使用Km/h作为边的最大速度:一些人不喜欢使用m/s最为速度单位,如果你想使用Km/h来定义边的最大速度,可以通过NETCONVERT工具的选项--speed-in-kmh来实现。
导入没有交通灯逻辑的网络:。。。 猜测出入口匝道:。。。
交叉口内的交通:如果你已经了解SUMO或者你看过一些例子,你可能发现车辆习惯于跳过交叉口而不是驶过交叉口。这种行为十分合适在仿真大型方案时,因为仿真错误可以被
忽略(至少我们已经忽略了).从版本0.10.0开始,SUMO开始默认以驶过现实中你知道的道路交叉口的方式仿真交通,因为动态给网络插入内部车道增加了网络规模,你可能希望使用老式的仿真行为(跳过交叉口),你可以使用选项--no-internal-links来实现。
修剪导入的网络:NETCONVERT可以让你限制读入的边,如果你有一个大型街道网络但只想仿真一部分或主要道路,这时这个限制功能非常有用。首先可以通过命名(指出)所有你想保留的边来实现限制,你可以在命令行或使用配置文件直接使用--keep-edges
--keep-edges.postload感兴趣,该选项强制NETCONVERT首先结合各边,然后删除不想要的边。
也可以这样限制导入的边:给出边上允许的最小速度以在生成的网络中包含这些边。这需要使用参数选项--edges-min-speed
6.3.NETCONVERT的输出
NETCONVERT的额外输出
NETCONVERT和NETGEN允许产生除网络文件外的其他输出文件,下面我们将介绍这些: 普通网络输出:解析出来的节点和边定义可以保存到XML文件中,这些文件和被用来导入XML格式网络的文件具有相同的格式(参考节点描述和边描述)。这使得从其他格式读入的网络的处理变得容易。选项--plain-output
right,normal),信息被保存。另外,如果车道有允许/禁止的车辆类别,这些信息也被保存。
几何移除的信息:选型--map-output
edge1
如果边不是由其他边结合而成,那么边的ids/length列表仅有一个值,例如:
edge
节点结合转储:
当测试几何计算时使用选项--node-geometry-dump
6.4.网络生成
P55
可以自动生成网格网、裂变网、随机网三种类型的路网。 生成网格网:
netgen --grid --grid.x-number=3 --grid.y-number=3 --grid.y-length=500 --grid.x-length=500 -L 5 -j traffic_light --output-file=zilinan.net.xml
注意:-L选项设置道路默认车道数目为5;-j 选项指定交叉口类型
7.需求建模
7.1.SUMO的需求简介
在产生路网之后,我们通过GUISIM可以发现,并没有车辆运行。我们还需要对车辆进行一些描述。从现在开始我们使用以下术语:
旅程(trip):旅程是车辆从一地到另一地的移动,由起始边,目的边和所用时间的定义。 路径(route):路径是扩展的旅程,这就是说路径的定义不仅包含起止边,还包括车俩将通过的所有的边。SUMO和GUISIM需要路径作为车辆移动的输入数据。有多种方法可以为SUMO生产路径信息。
使用旅程定义:如上所述,每个旅程至少包括起始边,终止边和所需旅行时间。
使用(交通)流定义:这和旅程定义差不多,但是需要把具有相同旅行时间和边的车辆结合起来。
使用流定义和转弯率:可以不使用流的目的边,而使用交叉口处的转弯比率来代替。 使用OD矩阵:OD矩阵必须被转换成旅程,然后再转换成路径信息。 手工处理:我们可以手工生产路径
使用随机路径:这是快速填充仿真所需文件的方法,但是没有实际的意义。 描述网络中的人口信息:动态的需求模型 导入可用路径
目前,SUMO包含四个用来处理路径信息的应用程序: DUAROUTER程序负责从其他仿真软件包导入路径或定义,并使用Dijkstra的最短路径算法计算路径。另外与仿真相结合,DUAROUTER程序可以计算动态用户分配(C. Gawron的模型)。
JTRROUTER程序使用交叉口的转弯率来静态的建模交通。 OD2TRIPS程序帮助我们转换OD矩阵到旅程信息。 DFROUTER程序从所给的观察点的度量计算路径。
7.2.车辆、车辆类型、路径的定义
最简单的获得自己的路径的方法就是手工编辑路径文件,但这仅适用于路径数不多的时候。开始之前,知道以下信息很重要,SUMO中的车辆包含三部分信息:描述车辆物理属性的车俩类型,车辆将要使用的路径,车辆本身。路径和车辆类型可以被其他车辆共享使用。
下面将给出包含所有这些信息的路径文件的例子,文件命名为routes.rou.xml。
7.2.1.车辆类型
原始的车辆类型被定义为:
使用这个定义,可以创建一个type1类型的车辆,上面的数值在很多例子中会使用到。他们是Stefan Krau?.的理论使用的标准车辆类型。 这是个原始的定义,包括了车辆的纯物理参数,例如车辆长度,颜色,最大速度等,还包括使用的车辆跟驰模型的参数。请注意,即使跟驰模型参数是象最大加速度或最大减速度一样的描述值,但这不表示司机会采取这一值。例如最大加速度不是车辆可以达到的最大加速度,而是司机采取的最大加速度(即使你有一辆捷豹汽车,你也不想通过城市时在5秒内加速到100Km/h)。 为了允许使用不同的车辆跟驰模型(Krau?的模型之外的),我们扩展了车辆类型定义。原始的那个定义还可以使用,但是扩展车辆类型可以让用户额外选择其他模型并给出所需参数。下面是新车辆类型的描述(对应于上面的原始类型): carFollowing-IDM carFollowing-Krauss carFollowing-KraussOrig1 carFollowing-PWagner2009 carFollowing-BKerner carFollowing-MSDU 我们发现车辆跟驰模型参数被列在了车辆类型定义的子元素位置,要注意车辆跟驰元素的值是vtype元素中给出的重写值。 各个值的意义如下: 属性名字 是否必需 值类型 描述