You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

墨西哥城GTFS文件在R库计算行程时间失败的问题排查

墨西哥城GTFS文件在R的gtfsrouter/tidytransit库中无法计算行程时间的问题

我从TransitLand下载了墨西哥城的GTFS文件,希望用它计算行程时间,但该文件无法在R语言的gtfsrouter和tidytransit库中正常工作,无法获取两地、两站点间的行程时间。

使用gtfsrouter时的报错情况

library(gtfsrouter)
gtfs <- extract_gtfs ("MexicoCity_TransitLand.zip") # 文件能正常加载

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

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

报错信息:Error in 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)

报错:Error: gtfs must have a transfers table; please use 'gtfs_transfer_table()' to construct one

添加transfers表后重新尝试:

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

res <- gtfs_traveltimes (gtfs_tt, from, start_times)

仍报错:Error in gtfs_traveltimes(gtfs_tt, from, start_times) : There are no scheduled services after that time.

使用tidytransit时的报错情况

library(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)

报错:Error in travel_times(stop_times, "Las Torres", return_coords = TRUE) : Stops and transfers not found in filtered_stop_times attributes. Use filter_stop_times() to prepare data or use raptor() for lower level access.

疑似GTFS文件存在的问题

查看gtfs$stop_times发现,所有行程的起始时间均为"00:00:00",仅存储了首站到同行程其他站点的耗时,这与标准GTFS中存储到站时间的格式不符。

疑问

请问是我的操作有误,还是GTFS文件存在问题?是否有解决办法?


内容的提问来源于stack exchange,提问作者Orlando Sabogal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 16:55:26