Есть ли способ специально отфильтровать автобусы с определенным именем из 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)
Другие вопросы по тегам