【问题标题】:splitting gtfs transit data into smaller ones将 gtfs 中转数据拆分成更小的数据
【发布时间】:2014-11-12 17:12:44
【问题描述】:

有时我有一个非常大的 gtfs zip 文件 - 有效期为 6 个月,但这对于将如此大的数据大小加载到低资源中是不经济的(例如,2 gig 的内存和 10 gig 的硬盘)磁盘)EC2 服务器。

我希望能够将这个大尺寸的 gtfs 拆分为 3 个较小的 gtfs zip 文件,其中包含 2 个月(6 个月/3 个文件)期间的有效数据,当然这意味着我需要每 2 个月更换一次数据。

我在https://github.com/google/transitfeed/blob/master/merge.py找到了一个实现相反目标的python程序 MERGE(顺便说一句,这是一个非常好的python项目。)

我非常感谢任何指点。

最好的问候,

邓恩。

【问题讨论】:

    标签: python gtfs transit


    【解决方案1】:

    值得注意的是,在加载 GTFS 提要时,stop_times.txt 中的条目通常是最大的内存占用。由于大多数系统不会为这些旅行活动的日期复制 trips+stop_times,因此减少服务日历可能不会为您节省太多。

    也就是说,有一些工具可以对 GTFS 进行切片和切块。查看 OneBusAway GTFS Transformer 工具,例如:

    http://developer.onebusaway.org/modules/onebusaway-gtfs-modules/1.3.3/onebusaway-gtfs-transformer-cli.html

    【讨论】:

    • 您的回答解释并解决了我遇到的两个问题。鉴于我们卡尔加里市的 gtfs 数据的条件,我已经通过删除旧的过期数据来完成对数据的更小切片,并解决了从搜索返回的 2 个相同结果 - 这是由于 routes.txt 具有几乎相同的对在calendar.txt中记录了不同时间段的route_id。抱歉,我在最初的问题中没有提到以避免混淆和混淆,但这里有一个完整的解释groups.google.com/forum/#!topic/onebusaway-developers/…
    【解决方案2】:

    另一个用于处理大型 GTFS 文件的更新选项是 transitland-lib。它是用 Go 编程语言编写的,在解析巨大的 GTFS 提要方面非常有效。

    请参阅transitland extract 命令,该命令可以使用多个参数将现有 GTFS 提要缩减为更小的尺寸:

    % transitland extract --help
    Usage: extract <input> <output>
      -allow-entity-errors
            Allow entities with errors to be copied
      -allow-reference-errors
            Allow entities with reference errors to be copied
      -create
            Create a basic database schema if none exists
      -create-missing-shapes
            Create missing Shapes from Trip stop-to-stop geometries
      -ext value
            Include GTFS Extension
      -extract-agency value
            Extract Agency
      -extract-calendar value
            Extract Calendar
      -extract-route value
            Extract Route
      -extract-route-type value
            Extract Routes matching route_type
      -extract-stop value
            Extract Stop
      -extract-trip value
            Extract Trip
      -fvid int
            Specify FeedVersionID when writing to a database
      -interpolate-stop-times
            Interpolate missing StopTime arrival/departure values
      -normalize-service-ids
            Create Calendar entities for CalendarDate service_id's
      -set value
            Set values on output; format is filename,id,key,value
      -use-basic-route-types
            Collapse extended route_type's into basic GTFS values
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-19
      • 1970-01-01
      • 1970-01-01
      • 2011-02-21
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 2013-08-06
      相关资源
      最近更新 更多