knitr::opts_chunk$set(collapse = TRUE, comment = "#>") library(GTFSwizard) gtfs <- for_rail_gtfs
GTFSwizard analyzes scheduled service. Results describe the timetable rather than observed vehicle movements or passenger demand. Pay attention to each function's aggregation method because it defines the observational unit.
A GTFS service_id identifies one service calendar. Several IDs can operate
on the same date. GTFSwizard assigns the same service_pattern to dates that
have the exact same set of active services. Consequently, one service_id can
belong to several patterns when the services operating alongside it change.
get_servicepattern(gtfs)
pattern_frequency is the number of dates represented by that exact active
service set. The most
frequent active pattern is therefore a useful default typical day, but it is
not necessarily a weekday and should be interpreted from the feed calendar.
plot_calendar(gtfs, fill = "service_pattern", facet_by_year = TRUE)
Frequency counts scheduled departures. Headway measures elapsed minutes
between successive service instances in a comparable group. Route-level
results retain direction_id when it is available.
head(get_frequency(gtfs, method = "by_route")) head(get_headways(gtfs, method = "by_route"))
Common method names use underscores:
by_trip returns one observation per trip;by_route aggregates by route, direction, and service pattern where
applicable;by_hour aggregates scheduled service by hour;detailed returns stop-call or interval-level observations.Check a function's help page because not every method is meaningful for every indicator.
plot_frequency(gtfs) plot_headways(gtfs)
Duration and distance are schedule and geometry properties. Speed combines them, dwell time is departure minus arrival at a stop call, and fleet counts simultaneously active scheduled trip instances.
head(get_durations(gtfs, method = "by_trip")) head(get_distances(gtfs, method = "by_trip")) head(get_speeds(gtfs, method = "by_route")) head(get_dwelltimes(gtfs, method = "by_route")) get_fleet(gtfs, method = "peak")
These are scheduled indicators. They do not estimate congestion, reliability, vehicle availability, layover policy, deadheading, or passenger loads unless those effects are already represented in the feed.
The spatial helpers return standard sf objects. Inferred shapes and corridor
segments connect coordinates with straight lines; they are not map-matched
paths.
stops <- get_stops_sf(gtfs$stops) shapes <- get_shapes_sf(gtfs$shapes) nrow(stops) nrow(shapes)
Hubs summarize stops by their scheduled trip and route connections. Corridors join frequently served consecutive stop pairs and report length in meters.
head(get_hubs(gtfs)) get_corridor(gtfs, i = 0.2, min_length = 100)
Use plot_hubs() and plot_corridor() for the corresponding network views.
The i argument is a share threshold, not an absolute number of trips.
plot_calendar() shows active dates, trip counts, or service patterns.plot_frequency() and plot_headways() show system service by hour.plot_routefrequency() compares routes with a readable top_n limit.plot_servicespan() shows first departure and final arrival.plot_serviceheatmap() compares scheduled departures by weekday and hour.plot_routeduration() compares trip-duration distributions.plot_servicesupply() compares scheduled vehicle-hours.All plotting functions return ggplot objects, so labels and themes can be
extended with ggplot2 when needed.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.