如何从大型GTFS提要中提取一小块区域?


11

是否有工具可以从较大的GTFS提要中提取较小的区域?据我所知, Google的Transitfeed库包含“合并”工具,但不包含“提取/剪切”工具。我发现的其他库只能读取和绘制数据,但不支持操纵。

背景信息:Transitfeed Feedvalidator显示了我的GTFS文件的很多错误。我想提取我感兴趣的区域以评估本地质量。


Twitter上的建议向我介绍了FME,它既具有GTFS读取器又具有写入器。我的简单工作流程包括一个GTFS阅读器(左下),Shapefile阅读器(左上角为感兴趣的区域),一个裁剪器和一个GTFS书写器作为输出(现在只写停靠点和形状文件,但最终我还是想要所有文件):

在此处输入图片说明

到目前为止,问题在于输出形状内容(橙色点)不包含位于黄色区域内的所有输入点(绿色):

在此处输入图片说明

(数据来源:https : //transitfeeds.com/p/helsinki-regional-transport/735/latest/download


使用“ Create Aggregates” =“ No”,剪切的形状看起来很完整

在此处输入图片说明

但是停站肯定不是

在此处输入图片说明


是否可以共享在上例中使用的形状文件和工作空间?我意识到您无法共享GTFS数据本身。
肯·布拉格

工作区中的红色数字表示无法裁剪的功能。双击它会在数据检查器中打开它们,以便您查看它们是什么。我猜它们是没有几何的特征。
肯·布拉格

是的,据我所知,这些都是非几何文件中的所有功能。
昏暗

Answers:


6

这在FME 2016中应该是可能的。因为我们不能将聚合写入GTFS,所以需要在Clipper中设置“ Create Aggregates” =“ No”,以防止FME在将多个要素裁剪后导致创建FME。我测试过的工作空间在这里:https : //www.dropbox.com/s/b02hd7shefybtmw/gtfs2gtfs.fmw?dl=0 根据赫尔辛基示例数据在这里:https : //t.co/wAZHmUS5HN 在此处输入图片说明


谢谢,我得在办公室再试一次。顺便说一句,是否有足够的“黑魔法” /逻辑来剪辑本身不包含坐标的GTFS文件(例如,routes.txt和trips.txt)?
昏暗

您可以将非空间数据属性与功能部件合并,也可以与官方参考developer.google.com/transit/gtfs/reference合并,但并非所有赫尔辛基数据都已填充,因此合并将无法完全进行。
Mapperz

是的,正如@Mapperz指出的,我们需要使用FeatureMerger转换器将具有非空间特征的裁剪几何体连接起来。例如,可以通过使用FeatureMerger在shap_id上加入来找到旅程,然后在service_id上​​与trip合并可以找到日历记录。我在这里开始工作:dropbox.com/s/b02hd7shefybtmw/gtfs2gtfs.fmw?dl=0
Ken Bragg

1
我看到了问题,并且找到了解决方案;-)赫尔辛基示例数据中停靠点的parent_station属性有一些空格(如规范所允许),但它们似乎是空格字符,因此FME不会写它们,因为它们没有不符合FME定义的数据类型。我们强制执行整数或null。您可以使用AttributeManager转换器将其设置为null(如果它不是整数)来修复此问题。请参阅此处的屏幕截图:screencast.com/t/dvsWfoYe
Ken Bragg

2
如果上述方法不能解决问题,我们很乐意通过安全软件支持(safe.com/support)与您进行更紧密的合作,在解决所有问题后,我们可以在此处发布摘要。或者,如果您愿意,请在这里继续。
肯·布拉格

5

如果您知道您最感兴趣的区域内的路线,则GTFS变压器可以为您提供更小的GTFS。

这样,它将删除所有不包含在保留路线中的行程,形状,停靠点,停留时间和日历。

如果要删除route_id 1并保留route_id 3,则转换文件如下所示:

{"op":"retain","match":{"file":"routes.txt","route_id":"1"}}
{"op":"remove","match":{"file":"routes.txt","route_id":"3"}}

1
虽然不理想,但最终可能是最佳的解决方案。根据描述,我假设Transformer还将所有相关文件过滤为仅包含保留路由的信息。
黑暗

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.