Beschneidung des GTFS-Feeds mit RStudio
Zusätzlich wurde an der Beschneidung des Feeds gearbeitet und ein wenig gebastelt. Es erschien am sinnvollsten, wenn die Ausdehnung des Untersuchungsgebiets mitsamt ein- und ausbrechenden Verkehren gewählt wird.
Erster Schritt Die Grenze des zu untersuchenden Gebiets in Gis über QuickOSM laden. Den MultiPolygon-Layer in WGS84 als geojson abspeichern.
Zweiter Schritt Zur Weiterarbeit in RStudio müssen gtfstools, sf und dplyr installiert sein.
library(gtfstools) library(sf) library(dplyr)
path <- r"(Pfad zur gtfs.zip)" gtfs <- read_gtfs(path)
gebiet <- st_read(r"(Pfad zur Grenzen.geojson)")
stops_sf <- gtfs$stops %>% filter(!is.na(stop_lat), !is.na(stop_lon)) %>% st_as_sf(coords = c("stop_lon", "stop_lat"), crs = 4326)
stops_filtered <- stops_sf[st_intersects(stops_sf, gebiet, sparse = FALSE), ] stop_ids <- stops_filtered$stop_id
gtfs_filtered <- filter_by_stop_id(gtfs, stop_ids) # gtfs_filtered <- filter_by_stop_id(gtfs, stop_ids, full_trips = FALSE) ## Mit dieser Zeile könnte man den Feed direkt an der Grenze abschneiden
write_gtfs(gtfs_filtered, r"(Pfad zur neuen gtfs.zip)") cat("erfolgreich geschrieben")
Optional Nach dem Beschneiden werden wieder die Haltestellen des Feeds in Gis eingelesen. Bi dem ersten Layer die Eigenschaften öffnen und unter "Informationen" - > "Ausdehnung" die Koordinaten kopieren (z. B. 10.4124522000000006,52.1867942000000014 : 10.6433891999999997,52.3573830999999998). Diese in Protomaps in das Feld "Paste bbox or GeoJSON" kopieren, den Doppelpunkt entfernen (10.4124522000000006,52.1867942000000014,10.6433891999999997,52.3573830999999998) und damit den Kartenausschnitt laden. Der ist dann passgenau zu seinem Gebiet.