jtrrouter 是一种路径规划应用,它使用交通流量和交叉路口的转向百分比作为输入。必须提供以下参数:
- 车辆行驶的网络,
- 交叉路口转向比率的描述(也可以使用默认值),以及
- 交通流量的描述。
调用命令示例如下:
jtrrouter --route-files=<FLOW_DEFS> --turn-ratio-files=<TURN_DEFINITIONS> --net-file=<SUMO_NET> \
--output-file=MySUMORoutes.rou.xml --begin <UINT> --end <UINT>
Note
如果已知的是转向计数而非转向比率,则可以使用其他工具。
转向定义#
| 转向和汇点定义 | |
|---|---|
| 文件名后缀 | .turns.xml |
| 内容类型 | 转向和汇点定义 |
| 开放格式? | 是 |
| SUMO 特有? | 是 |
| XML Schema | edgerelations_file.xsd |
要描述转向定义,需要编写一个 XML 文件。在该文件中,必须为每个时间间隔和每条边给出使用特定后继边的百分比列表。示例如下:
<edgeRelations>
<interval begin="0" end="3600">
<edgeRelation from="myEdge0" to="myEdge1" probability="0.2"/>
<edgeRelation from="myEdge0" to="myEdge2" probability="0.7"/>
<edgeRelation from="myEdge0" to="myEdge3" probability="0.1"/>
... 其他边 ...
</interval>
... 其他时间间隔 ...
</edgeRelations>
Note
如果提供的转向定义存在重叠(例如在多个文件中),后出现的转向定义将覆盖先前的定义。
该代码段定义了在 0 秒到 3600 秒的时间间隔内,到达边 "myEdge0" 末端的车辆将以 20% 的概率选择边 "myEdge1",以 70% 的概率选择 "myEdge2",以 10% 的概率选择 "myEdge3"。另一种节省准备描述时间的方法是使用默认值。参数 --turn-defaults (-T) <TURN_DEFAULTS> 可用于描述所有交叉路口在所有时间步长将使用的默认比率。<TURN_DEFAULTS> 是一个由逗号 ',' 分隔的浮点数列表。要实现与上述示例相同的行为,请使用 --turn-defaults 20,70,10。这些值将应用于某条边的后继边,从右侧边(20%)开始,到最左侧边(10%)结束。由于不同边的可能后继边数量不同,对于后继边数量与给定转向概率默认值数量不同的边,这些值将被重新采样。给定 --turn-defaults 20,70,10,使用具有两个后继边的边的车辆将以 55% 的概率使用右侧的后继边,以 45% 的概率使用左侧的后继边。
自动生成转向定义#
有关基于网络结构的自动(但可能是人为的)转向定义生成,请参见 generateTurnDefs.py。
您也可以从现有的路径文件生成转向定义,请参见 generateTurnRatios.py。
汇点定义#
车辆一旦到达汇点边就会离开网络。由于并非所有网络都定义了汇点边,可以使用 --sinks <EDGE_ID>[,<EDGE_ID>]* 来支持将边列表声明为汇点。您也可以将汇点定义添加到转向文件(仅限 XML):
<turns>
... 如上所述的其他转向定义 ...
<sink edges="<EDGE_ID>[ <EDGE_ID>]*"/>
... 其他汇点定义 ...
</turns>
如果未定义汇点,可以使用选项 --accept-all-destinations <BOOL> 将所有边声明为可能的汇点。
流量定义#
流量的定义 与 duarouter 相同,只有一个区别:由于车辆使用的路径是随机计算的,因此不知道车辆将在何处离开网络,所以必须使用属性 from 来指定路径,并且必须省略属性 to:
<routes>
<flow id="example0" from="A" begin="0" end="3600" probability="0.5"/>
<flow id="example1" ... />
....
</routes>
随机流量#
工具 randomTrips.py 可用于生成 jtrrouter 输入,方法是设置选项 --flows <INT> --jtrrouter。
重叠流量#
默认情况下,JTRRouter 将通过网络规划流量路径,并在交叉路口进行分流,直到流量的每个部分都到达汇点边。当这样的流量到达另一条流量的源边时,总交通量会相加。 以下选项可以更改此行为:
- --sources-are-sinks(快捷方式 -S)。设置此选项后,所有流量在到达另一条流量的源边时将终止。问题 #6601
- --discount-sources(快捷方式 -D)。设置此选项后,从某条边出发的流量将减去从上游流量到达该边的交通量。与选项 --sources-are-sinks 结合使用时,当达到源流量数值时,上游流量将在下游边终止。
其他选项#
理论上,当车辆被迫始终朝同一方向行驶时,路径可能会无限长,因此可以使用选项 --max-edges-factor <FLOAT> 来限制路径的大小。该因子乘以所用网络的边数,即为路径允许的最大边数。默认值为 2.0,表示路径可以包含的边数是网络边数的两倍。任何长于此大小的路径都将被标记为无效。我们假设对于每个网络,都需要重新选择此数字。
