Zone To Zone

我们首先解释区域到区域需求生成的一般概念,然后再描述如何使用 SUMOPy 进行操作。

  1. 区域定义:区域的定义,在 SUMO 中也称为“交通分配区”(TAZ)。TAZ 定义了参与者出发(出发地)或到达(目的地)的区域。一个 TAZ 通常包含多个网络边。
  2. 区域到区域流量定义:定义出发区域和到达区域之间的出行次数(= OD 流量)。这种结构通常被称为起点到目的地矩阵(OD 矩阵)。OD 流量是针对以下内容定义的: - 一天中的不同时间段。 - 不同的交通模式。
  3. 出行生成:每个 OD 流量被分解为离散的单个出行,这些出行在指定时间间隔内的不同时间点,从出发区域内的不同边(及边位置)出发,并到达目的地区域内的不同边(及边位置)。
  4. 路径规划:为每个单个出行计算一条路径,连接出发区域内的边和目的地区域内的边。

这些步骤可以通过 SUMOPy 按照以下方式执行……

从 SUMOPy 网络操作工具中,选择 Add zone tool(添加区域工具)。

给区域命名 [1] 后,可以通过一系列 <Button-Left>(左键)点击在网络的画布上绘制多边形。通过最后一次 <Double-Button-Left>(左键双击)完成区域绘制。<Double-Button-Right>(右键双击)将放弃当前的区域绘制。目前,区域必须是凸多边形,否则会出现边检测问题。

只有完全位于区域内的边才被视为该区域的一部分。只有区域内的边才被视为相应区域中车辆出发或到达的点。创建区域后,可以通过选择菜单项来识别每个区域中的所有边:

Landuse>Zones>Identify zone edges(土地利用>区域>识别区域边)

可以通过使用信息工具并点击绿色的区域边界来查看所有区域边并更改区域名称。区域可以通过 scenario.demand.zones 访问。也可以使用网络编辑器的 Delete tool(删除工具)删除区域。

可以通过选择菜单项添加区域到区域的流量:

Demand>Zone-to-zone demand>Add zone-to-zone flows(需求>区域到区域需求>添加区域到区域流量)

将弹出一个“添加 OD 流量向导”,如图 下方 所示。

fig_sumopy_gui_odwizard.png

使用此向导,指定时间间隔(以整秒为单位)和交通模式。在向导菜单中选择 Edit>Add OD-flow to table(编辑>添加 OD 流量到表格)。然后表格中将出现一个新行。输入出发区域、目的地区域以及它们之间的出行次数。

除了手动输入 OD 流量外,向导还提供从 CSV 文件导入 OD 流量的功能。从向导菜单中选择:

File>Import CSV ...(文件>导入 CSV ...)

并从文件对话框窗口中选择一个 CSV 文件。CSV 文件必须具有以下格式:

<出发区域名称 1>, <目的地区域名称 1>,<出行次数 1>
<出发区域名称 2>, <目的地区域名称 2>,<出行次数 2>
...

一旦所有 OD 流量输入完毕,按 Save flows(保存流量)。缩放因子可用于在保存时将所有输入的出行次数乘以一个常数(默认为 1)。需求流量现在已保存到 SUMOPy 中,可以在以下位置浏览和修改:

scenario.demand.odintervals

通过选择菜单项从 OD 流量生成出行:

Demand>Zone-to-zone demand>Generate trips from flows(需求>区域到区域需求>从流量生成出行)

生成的出行可以在以下位置浏览和修改:

scenario.demand.trips

通过选择以下选项为每个出行执行最短路径路由:

Demand>Trips and router>Trips to routes with shortest path(需求>出行和路由>使用最短路径将出行转换为路线)

生成的路线可以在以下位置浏览:

scenario.demand.trips.routes

使用此方法,SUMO 的 duarouter 用于执行路由。请注意,每个出行现在都链接到一条路线(参见 trips 中的 ID route 列)。如果没有路线,则可能是出发区域中的边未连接到目的地区域中的边 [2]。路由器不规划行人路线,但这没有必要,因为他们的确切路线将在模拟期间确定。

现在可以通过选择以下选项来模拟场景:

Simulation>Sumo>export routes and simulate...(模拟>Sumo>导出路线并模拟...)

按照第 [1] 节中的描述进行操作。

OD 需求的测试文件位于:

SUMOHOME/tools/contributed/sumopy/testscenario/demo_dem_od_bikes.csv

  1. 区域名称稍后可以通过浏览器添加/修改。
  2. 可能有多种原因,通常是目的地边位于限制访问的区域,或者存在单行道阻碍了访问。实际上,这不应该经常发生,因为分解算法应该验证可访问性。