简介#
通用交通数据规范 (General Transit Feed Specification, GTFS) 为公共交通时刻表及相关地理信息定义了一种通用格式。此处描述的工具可方便地将时刻表(在有限程度上也可将线路)导入 SUMO。这些工具需要安装 pandas 库。为获得最佳性能,建议至少使用 pandas 2.0。
另请参阅 GTFS 教程。
gtfs2pt.py#
此工具是用于从 GTFS 导入公共交通的主要脚本。根据可用的输入文件,您可以通过以下方式导入线路:
- 搜索站点之间的最快路径。此选项仅需要 SUMO 网络和 GTFS 文件:routes.txt、stops.txt、stop_times.txt、trips.txt、calendar.txt 和 calendar_dates.txt。
- 从 OSM 导入线路路径。为此,您还需要 GTFS 文件 shapes.txt 以及来自 OSM 的公共交通线路定义(参见 ptLines 输出)。
- 从 OSM(或任何其他位置)导入候选站点。这将引导站点位置的选择,而线路将通过最快路径搜索构建。
最小调用命令为:
python tools/import/gtfs/gtfs2pt.py --network <net-file> --gtfs <gtfs-data-file> --date <YYYYMMDD>
或者,对于使用 OSM 线路的选项:
python tools/import/gtfs/gtfs2pt.py --network <net-file> --gtfs <gtfs-data-file> --date <YYYYMMDD> --osm-routes <ptlines-file>
如果 OSM 线路或形状不可用,加载包含候选停靠位置的文件会有所帮助(即通过使用 --ptstop-output 选项导入 OSM 获得)。每当 GTFS 坐标附近有站点时,所有这些站点都将被视为候选站点,而不是使用范围内的所有边。这大大加快了导入速度。
python tools/import/gtfs/gtfs2pt.py --network <net-file> --gtfs <gtfs-data-file> --date <YYYYMMDD> --stops <ptstop-file>
在任何一种情况下,您都可以使用 --modes 选项来选择应导入哪些公共交通模式(bus、tram、train、subway 和/或 ferry)。默认情况下,所有模式都会被导入。
输出将包含一个附加文件 (.add.xml),其中包含站点,以及一个包含车辆定义的路由文件 (.rou.xml)。如果未提供 --osm-routes 选项,附加文件还将包含静态路由。为了按出发时间排序车辆定义,必须提供 --sort 选项。
如果使用了 --osm-routes 选项,将生成一个额外的文件 "gtfs_missing.xml",其中包含无法导入的 GTFS 元素(站点和 ptLines)。给定的 OSM 线路可能存在连接性问题,可以使用 --repair 选项进行修复。启用此选项后,如果修复过程中出现一些警告和错误,这些信息将被写入一个新的输出文件 "invalid_osm_routes.txt"。
如果设置了 --write-terminals 选项,则每辆车还将记录 <param> 元素,描述终点站名称和终点出发/到达时间。如果 GTFS 数据的范围大于加载的网络,这可能很有用。
已知站点位置#
运行时间和映射质量取决于为放置站点和构建线路而测试正确的候选边。如果部分或全部站点位置已知(例如,通过使用 netconvert 选项 --ptstop-output 导入 OSM 网络),则可以通过设置选项 --stops 来使用这些站点作为候选位置。这可以大大加快搜索速度,因为它将候选范围限制在选项 --radius(默认 150m)内且与站点坐标匹配的所有已加载站点。如果没有加载的候选站点,则会考虑所有具有合适权限的边。
Note
当从 --ptstop-output 获取站点时,也应设置 --ptline-output 选项,因为如果 OSM 站点位置本身存在歧义,这会改进基于 OSM 的站点到边的映射。
gtfs2fcd.py#
这是一个辅助脚本,用于将 GTFS 数据中找到的站点序列转换为 SUMO 的 FCD 格式,也可选择转换为 GPS 轨迹以供进一步处理。它由脚本 gtfs2pt.py 使用。
最小调用命令为:
python tools/import/gtfs/gtfs2fcd.py --gtfs <gtfs-data-file> --date <YYYYMMDD>
gtfs2osm.py#
此辅助脚本包含从 GTFS 和 OSM 导入公共交通所需的函数。当提供 --osm-routes 选项时,脚本 gtfs2pt.py 会使用它。
