File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ library(sf )
2+ library(tidyverse )
3+ library(tidytransit )
4+
5+ # city limit
6+ geneve_limit = st_read(" original/Ville_de_Genève.shp" )
7+ geneve_limit = st_transform(geneve_limit , 4326 )
8+
9+ # very large swiss gtfs
10+ swiss_gtfs = read_gtfs(" original/gtfs_fp2025_20251002.zip" )
11+ summary(swiss_gtfs )
12+ geneve_gtfs = swiss_gtfs | > filter_feed_by_area(geneve_limit ) # crop in geneve
13+
14+
15+ # Method 1 - with GTFSwizard ----------------------------------------------
16+
17+
18+ # create shape_id variable when is missing
19+ geneve_gtfs $ trips = geneve_gtfs $ trips | > mutate(shape_id = NA ) # this is the trick!
20+ write_gtfs(geneve_gtfs , " original/geneve_gtfs.zip" )
21+
22+ geneve_gtfs_wshapes = GTFSwizard :: read_gtfs(" original/geneve_gtfs.zip" ) # create the shapes
23+ summary(geneve_gtfs_wshapes )
24+ GTFSwizard :: write_gtfs(geneve_gtfs_wshapes , " original/geneve_gtfs_shapes.zip" ) # saved GTFS with shapes
25+
26+ # verify shapes
27+ geneve_shapes = tidytransit :: shapes_as_sf(geneve_gtfs_wshapes $ shapes )
28+ mapview :: mapview(geneve_shapes , zcol = " mode" )
29+
30+
31+
32+ # Method 2 - from OSM -----------------------------------------------------
33+ library(osmdata )
34+
35+ geneve_transit_osm = opq(bbox = st_bbox(geneve_limit )) | >
36+ add_osm_feature(key = " route" , value = " bus" )
37+ # add_osm_feature(key = "network") |>
38+
39+ trips_geometry_osm = GTFShift :: osm_trips_to_routes(geneve_gtfs_wshapes , geneve_transit_osm )
40+ # not working
You can’t perform that action at this time.
0 commit comments