Разделение gtfs транзитных данных на более мелкие

Иногда у меня очень большой размер zip-файла gtfs - он действителен в течение 6 месяцев, но это невыгодно для загрузки такого большого размера данных в малый ресурс (например, 2 гигабайта памяти и 10 гигабайт жесткого диска) EC2 сервер.

Я надеюсь, что смогу разбить эти большие размерные gtfs на 3 меньших zt-файла gtfs с периодом достоверности данных за 2 месяца (6 месяцев /3 файла), конечно, это означает, что мне придется заменять данные каждые 2 месяца.

Я нашел программу на Python, которая достигла противоположной цели MERGE здесь https://github.com/google/transitfeed/blob/master/merge.py (это очень хороший проект Python, кстати.)

Я очень благодарен за любой указатель.

С наилучшими пожеланиями,

Dunn.

2 ответа

Решение

Стоит отметить, что записи в stop_times.txt, как правило, занимают наибольшее место в памяти при загрузке канала GTFS. Поскольку большинство систем не реплицируют поездки + остановки_время для дат, когда эти поездки активны, сокращение календаря обслуживания, вероятно, не спасет вас сильно.

Тем не менее, есть несколько инструментов для нарезки и нарезки кубиками GTFS. Проверьте инструмент OneBusAway GTFS Transformer, например:

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

Другой, более свежий вариант обработки больших файлов GTFS — это transportland-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
Другие вопросы по тегам