使用转向流量 (turnflows) 进行出行生成,可以以精确的方式对交通流进行建模,适用于简单、可能无环路且内部交通生成较少的网络。其基本思路是根据道路交通计数数据,为单个车辆生成出行和路径。这些交通计数可以在交叉口进行。理想情况下,所有相关交叉口的交通计数应同时进行。然而,考虑到节点处的流量守恒定律,某些路段的流量可以从其他路段的流量推导出来。
为了在预定的研究区域内重建路径,基本上需要两种类型的流量:
- 进入研究区域的所有路段 a 上的 生成流量 FG[a]。[1]
- 在具有多条出口路段的节点处,连接 a1 和 a2 之间的所有流量的 转向流量 FT[a1,a2]。
需要计数的交通流的选择通过一个示例网络进行说明:

忽略研究区域内生成的所有交通,需要计数以下流量:
- 进入网络的 生成流量 FG[3], FG[12]。
- 节点 6 处的 转向流量 F[8,9], F[8,2] 以及节点 3 处的 F[12,4], F[12,7]。所有其他节点仅有一条出口路段。
一旦为所有考虑的交通方式和时间间隔计数了必要的流量,就可以使用一个名为 JTRouter 的特殊路由器生成所有车辆的出行和路径。
在 SUMOPY 中,使用 SUMOPY 生成路径的过程如下:首先通过选择菜单项从 CSV 文件导入流量和转向流量
Demand>Turnflows>Import turnflows
导入转向流量的对话框将弹出,如下所示。

该对话框类似于第 区域到区域需求流量 节中解释的 OD 流向导,允许导入交通计数,并将其与时间间隔和交通方式关联。
要导入的 转向流量文件 (Turnflow File) 包含两种流量类型的交通计数:生成流量和转向流量。转向流量文件具有以下格式:
<ID1>, <count 1>, <ID11>, <count 11>, <ID12>, <count 12>, ...
<ID2>, <count 2>, <ID21>, <count 21>, <ID22>, <count 22>, ...
...
此符号表示的含义如下:
<IDa> 表示路段 a 的 SUMO 路段 ID,其中路段 a 是进入某个节点的路段。
<IDab> 表示路段 ab 的 SUMO 路段 ID,其中路段 ab 是从路段 a 进入的节点发出的路段。
<count a> 表示离开路段 a 的车辆数(如果该路段是生成流量的路段),否则该计数为零。
<count ab> 表示从路段 a 转向进入路段 b 的车辆数。
此文件中的所有计数均指对话框中指定的模式和时间间隔。
对于上文所示的示例网络,转向流量文件可能如下所示:
3, 1000
12, 800, 4, 200, 7, 600
8, 0, 9, 800, 2, 400
在这种情况下,特定模式和时间间隔的生成流量为 FG[3]=1000, F[12]=800,转向流量为 FT[8,9] = 800, FT[8,2] = 400 以及 FT[12,4] = 200, FT[12,7] = 500。
提示: 为了快速编写转向流量文件,可以并排打开一个文本编辑器和 SUMOPy 窗口。在 SUMOPy 网络编辑器中,通过点击网络画布下方缩放按钮旁边的按钮,取消选择车道、连接和过街设施。然后选择信息工具(如果尚未激活),并点击您考虑用于转向流量文件的路段。相应的路段将高亮显示,您可以在对象浏览器中看到所有路段属性,如下所示:

从那里,复制 SUMO 路段 ID 并将其粘贴到您的转向流量文本文件中。
可选地定义目的地区域:在转向流量需求模型中,目的地区域定义了车辆路径结束的路段。这可能是必要的,以防止车辆在研究区域外的网络上绕圈并重新进入研究区域。转向流量的目的地区域的创建方式与第 区域到区域需求流量 节中的交通分配区域相同。
通过选择菜单项直接从流量和转向流量信息生成路径
Demand>Turnflows>Turnflows to routes
此过程使用 SUMO 的 jtrouter,将同时生成出行和路径。现在可以通过选择以下选项来模拟场景
Simulation>Sumo>export routes and simulate...
转向流量的测试文件位于
SUMOHOME/tools/contributed/sumopy/testscenario/demo_dem_tf_car.csv
- 此外,也可以在研究区域内的路段上生成交通流,但在实践中测量这些流量很困难,因为需要在研究区域的道路沿线识别并仅计算出发的车辆。然而,对于某些出发车辆较多的特定路段,这样做可能是必要的。
