Время в пути с 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