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

R5r包能否在多模式网络中纳入缆车?求解实现方法

解决R5r未纳入波哥大缆车线路的问题

1. 确认GTFS中缆车的route_type标识

先检查GTFS的routes表,确认缆车线路的route_type值。GTFS规范中缆车(Gondola Lift)对应类型为11,但部分本地数据集可能使用自定义值。用R验证:

library(data.table)
routes <- fread("your_gtfs_directory/routes.txt")
# 筛选含缆车关键词的线路(适配波哥大本地术语)
gondola_routes <- routes[grepl("gondola|cable|teleférico", route_long_name, ignore.case = TRUE)]
print(gondola_routes[, .(route_id, route_type, route_long_name)])

2. 显式指定Transit模式包含缆车

R5r默认的WALK+TRANSIT模式可能未自动包含缆车,需在计算时显式声明transit_modes参数:

library(r5r)

# 初始化R5核心
r5_core <- setup_r5(data_path = "your_gtfs_directory", verbose = FALSE)

# 计算出行时间矩阵时指定包含缆车
travel_times <- travel_time_matrix(
  r5_core = r5_core,
  origins = your_origins_df,
  destinations = your_destinations_df,
  mode = c("WALK", "TRANSIT"),
  transit_modes = c("BUS", "RAIL", "GONDOLA"), # 加入GONDOLA类型
  departure_datetime = as.POSIXct("2024-05-20 07:00:00", tz = "America/Bogota"),
  max_trip_duration = 120
)

transit_modes支持的取值包括BUS、RAIL、SUBWAY、TRAM、FERRY、GONDOLA,需匹配线路的实际类型映射。

3. 修复非标准route_type(若需)

如果你的GTFS中缆车的route_type不是标准的11,R5无法自动识别为缆车模式,需修改routes.txt:

# 将目标线路的route_type改为标准值11
routes[route_id %in% gondola_routes$route_id, route_type := 11]
# 保存修改后的文件
fwrite(routes, "your_modified_gtfs/routes.txt")

之后用修改后的GTFS重新初始化R5网络。

4. 验证缆车是否成功纳入

构建网络后,可通过以下代码确认缆车线路已被加载:

# 提取网络中的公交模式线路
transit_routes <- r5_core$transit_routes
# 筛选缆车线路
gondola_in_network <- transit_routes[mode == "GONDOLA"]
print(gondola_in_network)

若输出包含目标缆车线路,说明已成功纳入多模式网络。


内容的提问来源于stack exchange,提问作者Santiago Cardona Urrea

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:25:21