简介#
本教程将指导您如何仅使用 OpenStreetMap 文件 作为输入,从头开始构建公交(PT)仿真场景。如果您是 SUMO 与 OpenStreetMap 结合使用的新手,OSM 教程也会对您有所帮助。
公交仿真的创建分为两个步骤:
- 提取初始路网和公交信息
- 计算可行的站点间行程时间并创建公交时刻表
Note
如果您使用 osmWebWizard 工具,当您勾选 Import Public Transport 复选框时,这些步骤将自动执行。
提取初始路网和公交信息#
第一步是提取公交站点和线路信息。通过以下方式调用 netconvert 执行此步骤:
netconvert --osm-files osm.xml -o net.net.xml --osm.stop-output.length 20
--ptstop-output additional.xml --ptline-output ptlines.xml
其中:
- --osm-files osm.xml 指向 OpenStreetMap 文件
- -o net.net.xml 指向要生成的 SUMO 路网文件
- --osm.stop-output.length 20 定义公交站台的长度(单位:米)
- --ptstop-output additional.xml 指向要生成的 公交站点文件
- --ptline-output ptlines.xml 指向定义公交线路的中间文件
计算可行的站点间行程时间并创建公交时刻表#
第二步是运行一个 Python 脚本,执行以下操作:
- 为了确定可行的站点间行程时间,针对每条公交线路运行一辆公交车辆进行仿真。
- 根据站点间的行程时间信息,为所有线路创建公交时刻表(定时刻表)。
站点间的行程时间是在空路网上确定的。可以很容易地扩展该脚本,以便在现有交通模型中确定站点间的行程时间。但这超出了本教程的范围。通过以下方式调用 ptlines2flows.py 脚本来执行这些步骤:
python tools/ptlines2flows.py -n net.net.xml -s additional.xml -l ptlines.xml
-o flows.rou.xml -p 600 --use-osm-routes
其中:
- -n net.net.xml 指向先前使用 netconvert 创建的 SUMO 路网
- -s additional.xml 指向使用 netconvert 创建的公交站点文件
- -l ptlines.xml 指向使用 netconvert 创建的公交线路定义文件
- "-o flows.rou.xml" 指向要生成的公交车辆的 路径 文件
- "-p 600" 是定时刻表的周期,单位为秒
- "--use-osm-routes" 表示脚本将采用 osm.xml 中的公交路径,而不是在站点之间创建新的最短路径
