GTFS 有哪些问题?
What are some of the problems with GTFS?
我有兴趣用 GTFS 替换我当前使用的数据格式,但我从各处听到和读到 GTFS 文件格式存在缺陷。
大多数时候我发现您无法以某种方式预测某些事情,例如延迟或一些实时的事情。他们说你不能和他们一起得到"whole picture"。
所以我想问的是,有没有人对 GTFS 更有经验,因为我只是第一次见到他们,他们可能在某种应用程序中使用了 GTFS 并且可以说出他们在开发过程中遇到的问题?
也许有人对更好的文件格式有建议?还是一些格式的组合?
如果不知道您的应用程序的要求,很难说 GTFS 是否适合您的应用程序,但我可以提供一些评论。
如果您的目标是向用户提供实时数据,您应该看看 GTFS-realtime,这是一种专门为发布实时更新而设计的补充数据格式。对于大多数 public-transit 应用程序,同时使用 GTFS 和 GTFS-realtime feed 确实提供了 "whole picture" 关于公交网络,或者足够接近。
就 GTFS 本身而言,我的主要抱怨是它似乎是专门为 为 路线规划应用程序设计的,并且将这种格式的数据用于任何其他目的可能很困难。例如,虽然 GTFS 提要记录了有关公交站点和路线的信息,但并不要求每个站点都有一个规范的条目——如果数据跨越多个登机时段,则每个站点几乎总是(看似)重复条目.
如果您根据某人旅行的地点和时间绘制路线,这无关紧要,因为链接对象之间确保您始终生成正确的结果。如果您只是从一个人的位置开始并想知道,"What transit resources are available nearby?",可靠地产生准确的答案需要一些扭曲。
这取决于您导入现有提要的需要。如果是,那么您无论如何都需要能够处理它。在我的例子中,需要导入,所以我对源自其他格式(如 PDF timetables)的数据使用相同的数据。否则你需要支持两种格式。如果导入(或导出)不需要它,您可以考虑自己的格式:我发现 GTFS 不会显示实际网络。
GTFS 需要进行相当多的解释和消化,才能得出您可以回答规划问题的全貌。
如果停靠站很近,比如相隔几米,我会合并到一起,如果相距 10-50 米,则假设 'trivial walk'。自动处理合并多个提要。
除此之外,我将 stop_times 大致 inside-out 转为 'link' table'。最终结果是,对于每一站,您都有一个出发地和目的地列表。
迄今为止最大的问题是 GTFS 提要可以从操作员的角度记录行程。如果将车头标志从 351 翻转为 285,乘客可以继续坐在公共汽车上,乘坐新的 driver 上车并继续。这意味着您需要知道在乘客方面实际上需要将哪些行程视为加入。
我通过让我的 GTFS 解析器接受一些易于编辑的结构解决了手动提要输入的小问题,例如省略序列号以使其递增生成,并将 02.13+1 识别为 26.13。
我有兴趣用 GTFS 替换我当前使用的数据格式,但我从各处听到和读到 GTFS 文件格式存在缺陷。
大多数时候我发现您无法以某种方式预测某些事情,例如延迟或一些实时的事情。他们说你不能和他们一起得到"whole picture"。
所以我想问的是,有没有人对 GTFS 更有经验,因为我只是第一次见到他们,他们可能在某种应用程序中使用了 GTFS 并且可以说出他们在开发过程中遇到的问题?
也许有人对更好的文件格式有建议?还是一些格式的组合?
如果不知道您的应用程序的要求,很难说 GTFS 是否适合您的应用程序,但我可以提供一些评论。
如果您的目标是向用户提供实时数据,您应该看看 GTFS-realtime,这是一种专门为发布实时更新而设计的补充数据格式。对于大多数 public-transit 应用程序,同时使用 GTFS 和 GTFS-realtime feed 确实提供了 "whole picture" 关于公交网络,或者足够接近。
就 GTFS 本身而言,我的主要抱怨是它似乎是专门为 为 路线规划应用程序设计的,并且将这种格式的数据用于任何其他目的可能很困难。例如,虽然 GTFS 提要记录了有关公交站点和路线的信息,但并不要求每个站点都有一个规范的条目——如果数据跨越多个登机时段,则每个站点几乎总是(看似)重复条目.
如果您根据某人旅行的地点和时间绘制路线,这无关紧要,因为链接对象之间确保您始终生成正确的结果。如果您只是从一个人的位置开始并想知道,"What transit resources are available nearby?",可靠地产生准确的答案需要一些扭曲。
这取决于您导入现有提要的需要。如果是,那么您无论如何都需要能够处理它。在我的例子中,需要导入,所以我对源自其他格式(如 PDF timetables)的数据使用相同的数据。否则你需要支持两种格式。如果导入(或导出)不需要它,您可以考虑自己的格式:我发现 GTFS 不会显示实际网络。
GTFS 需要进行相当多的解释和消化,才能得出您可以回答规划问题的全貌。
如果停靠站很近,比如相隔几米,我会合并到一起,如果相距 10-50 米,则假设 'trivial walk'。自动处理合并多个提要。
除此之外,我将 stop_times 大致 inside-out 转为 'link' table'。最终结果是,对于每一站,您都有一个出发地和目的地列表。
迄今为止最大的问题是 GTFS 提要可以从操作员的角度记录行程。如果将车头标志从 351 翻转为 285,乘客可以继续坐在公共汽车上,乘坐新的 driver 上车并继续。这意味着您需要知道在乘客方面实际上需要将哪些行程视为加入。
我通过让我的 GTFS 解析器接受一些易于编辑的结构解决了手动提要输入的小问题,例如省略序列号以使其递增生成,并将 02.13+1 识别为 26.13。