Есть ли способ специально отфильтровать автобусы с определенным именем из GTFS?
Я имею дело с какой-то хитрой GTFS от бельгийского оператора общественного транспорта De Lijn, который каким-то образом добавил belbus (автобусы, реагирующие на спрос) в качестве автобусного маршрута, который ходит каждый час на их GTFS, из-за чего некоторые плохо обслуживаемые сельские районы ошибочно выглядят как легкодоступные районы с отличное транспортное сообщение.
В route.txt они перечислены так:
Я действительно хочу знать, как я могу фильтровать любые маршруты с " Belbus " в их route_desc или route_long_name.
Сначала я пытался просто найти их в Excel, удалить и сохранить в route.txt, но, конечно, это не сработало, когда я вычислил частоту стоп-уровня в ArcGIS, так как я полагаю, что он просто смотрит на stop_times.txt и не проверяет, пропали ли данные в Routes.txt.
Я также использовал gtfstools, чтобы попытаться отфильтровать его по route_type, но, к сожалению, это либо отключило все автобусы, либо нет.
2 ответа
Я рекомендую фильтровать строки с помощьюstr_detect
функцию отstringr
упаковка.
library(dplyr)
library(stringr)
df_filtered <- df %>% filter(str_detect(route_long_name, "Belbus") == TRUE)
{gtfstools}
ремонтник здесь.
Что бы я сделал:
library(gtfstools)
path <- "path_to_gtfs.zip"
gtfs <- read_gtfs(path)
# select route ids whose route_long_name includes "Belbus"
selected_routes <- gtfs$routes[grepl("Belbus", route_long_name)]$route_id
# filter them out of the gtfs object
filtered_gtfs <- filter_by_route_id(gtfs, selected_routes, keep = FALSE)