Какие проблемы с GTFS?

Я заинтересован в замене моего текущего формата данных, который я использую с GTFS, но я слышу и читаю тут и там, что есть недостатки в формате файлов GTFS.

Большую часть времени я вижу, что вы не можете каким-то образом предсказать некоторые вещи, такие как задержки или что-то в режиме реального времени. Они говорят, что вы не можете получить "полную картину" с ними.

Итак, я спрашиваю, есть ли кто-нибудь, имеющий более опытный опыт работы с GTFS, поскольку я вижу их только впервые, кто мог бы использовать GTFS в каком-либо приложении и мог бы рассказать о проблемах, с которыми они столкнулись при разработке?

Может быть, у кого-то есть предложение по поводу лучшего формата файла? Или сочетание некоторых форматов?

2 ответа

Решение

Трудно сказать, подходит ли GTFS для вашего приложения, не зная, каковы требования вашего приложения, но я могу предложить несколько замечаний.

Если ваша цель состоит в том, чтобы предоставлять пользователям данные в реальном времени, вам стоит взглянуть на GTFS-realtime, дополнительный формат данных, разработанный специально для выпуска обновлений в реальном времени. Для большинства приложений общественного транспорта совместное использование каналов GTFS и GTFS в реальном времени действительно дает "полную картину" о транзитной сети или достаточно близко.

Что касается самой GTFS, моя главная жалоба заключается в том, что она, кажется, разработана специально для приложений планирования маршрута, и использование данных в этом формате для любых других целей может быть затруднено. Например, в то время как фид GTFS записывает информацию о транзитных остановках и маршрутах, не требуется, чтобы каждый из них имел одну каноническую запись - если данные охватывают несколько периодов платы, почти всегда будут (по-видимому) повторяющиеся записи для каждого,

Это не имеет значения, если вы прокладываете маршрут, основываясь на том, где и когда человек путешествует, поскольку связи между объектами гарантируют, что вы всегда получите правильный результат. Если вы начинаете только с местоположения человека и хотите знать, "Какие транзитные ресурсы доступны поблизости?", То для надежного получения точного ответа требуются некоторые искажения.

Это зависит от ваших потребностей в импорте существующих каналов. Если да, то вы должны быть в состоянии справиться с этим в любом случае. В моем случае импорт требовался, поэтому я использую его для данных, которые основаны на других форматах, таких как расписания PDF. В противном случае вам необходимо использовать два формата. Если вам не нужно это для импорта (или экспорта), вы можете рассмотреть свой собственный формат: я считаю, что GTFS не показывает фактическую сеть.

GTFS нуждается в некоторой интерпретации и переваривании, чтобы получить полную картину, на которой вы можете ответить на вопросы планирования.

Я объединяю остановки вместе, если они расположены близко друг к другу, на расстоянии нескольких метров, и предполагаю "тривиальную прогулку", если 10-50 метров. Это автоматически обрабатывает объединение нескольких каналов.

Кроме того, я выворачиваю stop_times примерно наизнанку, чтобы создать "таблицу ссылок". Конечным результатом является то, что для каждой остановки у вас есть список отправлений и их пунктов назначения.

Самая большая проблема до сих пор заключается в том, что каналы GTFS могут записывать поездки с точки зрения оператора. Пассажиры могут оставаться в автобусе, если он переместит указатель с 351 на 285, сядет на борт нового водителя и продолжит движение. Это означает, что вам нужно знать, какие поездки на самом деле нужно рассматривать как пассажиры.

Я решил небольшую проблему для ручного ввода подачи, приняв мой синтаксический анализатор GTFS принять несколько конструкций, которые упрощают редактирование, таких как пропуск порядковых номеров для генерации с приращением и распознавание 02.13+1 как 26.13.

Другие вопросы по тегам