Время в пути с GTFS

У меня есть файл GTFS для Мехико, загруженный с сайта Transitland.Вот ссылка на файл, который я использую в своем коде.

Я хочу использовать GTFS для расчета времени в пути. Тем не менее, похоже, что GTFS не работает ни с одной из библиотек на основе R (gtfsrouter и tidytransit). Мне не удалось узнать время в пути между двумя точками, между двумя станциями или между транзитной станцией и любой другой станцией.

С gtfsrouter:

      library(gtfsrouter)
gtfs <- extract_gtfs ("MexicoCity_TransitLand.zip") # The GTFS loads ok without problem

gtfs <- gtfs_timetable (gtfs, day = "Wed")

gtfs_route (gtfs,
            from = "Las Torres",
            to = "Plaza Ermita",
            start_time = 120)

Я получаю сообщение об ошибке "Ошибка в rcpp_csa(gtfs$timetable, gtfs$transfers, nrow(gtfs$stop_ids), :Index out of bounds: [index='from_stop_id']." Я пробовал поездки в разные места , в разные дни, и разное время.Кроме того, я проверил, что поездки выполнимы.

Я также пробовал:

      from <- "Las Torres"
start_times <- 12 * 3600 + c (0, 60) * 60 # 8:00-9:00
res <- gtfs_traveltimes (gtfs, from, start_times)

Но я получаю следующую ошибку: «Ошибка: gtfs должна иметь таблицу переводов; пожалуйста, используйте gtfs_transfer_table () для ее создания» . Итак, я попытался:

      gtfs_tt <- gtfs
gtfs_tt$transfers <- gtfs_transfer_table(gtfs_tt)

res <- gtfs_traveltimes (gtfs_tt, from, start_times)

Но я получил «Ошибка в gtfs_traveltimes (gtfs_tt, from, start_times): после этого времени запланированных рейсов нет». Опять же, я тестировал разные станции и разное звездное время, но все равно получаю один и тот же результат.

С tidytransit

библиотека (аккуратный транзит)

      gtfs <- read_gtfs("MexicoCity_TransitLand.zip")

gtfs <- cluster_stops(gtfs, 
                      group_col = "stop_name", 
                      cluster_colname = "stop_name")

stop_times <- filter_stop_times(gtfs, "2021-05-01")
tts <- travel_times(stop_times, "Las Torres", return_coords = TRUE)

Я получаю "Ошибка в travel_times(stop_times, "Las Torres", return_coords = TRUE) : ​​Остановки и трансферы не найдены в атрибутах filtered_stop_times. Используйте filter_stop_times() для подготовки данных или используйте raptor() для доступа более низкого уровня." Опять же, я проверил различные атрибуты.

Проблема с файлом GFTS?

Я просматривал файлы GTFS, и это может быть проблема с файлом stop_times . Если вы сделаете

      View(gtfs$stop_times)

Вы заметите, что каждая поездка начинается в «00:00:00» , поэтому информация, хранящаяся в этом файле, в основном представляет собой время в пути от первой станции до любой другой станции в той же поездке. Я думаю, что это не соответствует стандарту. В других GTFS я видел, что время, указанное в этом файле, — это время прибытия на станцию.

Я делаю что-то неправильно? файл GTFS неправильный? есть ли обходной путь?

1 ответ

Этот фид включает в себяfrequencies.txtфайл. Это используется для указания частоты «интервала», с которой маршрут проходит между назначенным временем начала и окончания: https://gtfs.org/schedule/reference/#frequenciestxt .

Я не знаком с этими библиотеками R. Тем не менее, это похоже наgtfsrouterимеетfrequencies_to_stop_timesфункция, которую стоит попробовать: https://cran.r-project.org/web/packages/gtfsrouter/gtfsrouter.pdf#Rfn.frequencies.Rul.to.Rul.stop.Rul.times.1

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