Skip to content

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.