← Back to all sparks
T

tidytransit

ANALYTICS
Velocity0.0

Read, Validate, Analyze, and Map GTFS Feeds

tidytransit tracks the GTFS spec as it grows, one reader and one router feature at a time.

rtransitgtfsroutingopen-data
Current state
tidytransit reads GTFS transit feeds into tidy data frames and computes travel times using a RAPTOR implementation. Recent work splits between the reader keeping pace with the spec — locations.geojson in 1.7.0, empty strings parsed as NA in 1.8.0 — and the router gaining realism, most recently in-seat transfers. Feed specifications are now pulled from the automatically parsed GTFS reference rather than maintained by hand.
Where it's heading
The package has settled into tracking an external standard, which is why the changelog reads as a sequence of spec conformance items rather than a roadmap. Parsing responsibility keeps shifting outward to gtfsio, and data sources have moved with the ecosystem, from the retired transitfeeds API to MobilityData. Router changes are rarer than reader changes but land in the same releases.
Prediction
Further GTFS spec features are the safest expectation, with GTFS-Flex the likeliest area now that locations.geojson reading is in place.

Recent moves

  1. 6mo ago

    In-seat transfers supported in raptor() and travel_times()

    raptor() and travel_times() gain in-seat transfer support, so trips where riders stay aboard through a route change are modelled correctly. Empty strings in txt files are now always NA, and max_departure_time is dropped from travel_times().

    View source ↗
  2. 11mo ago

    stop_group_distances() no longer ignores the by parameter

    Refreshes the bundled GTFS reference data and fixes stop_group_distances() silently ignoring its by parameter along with empty parameter handling in filter_stop_times(). The by fix changes results for anyone who relied on that grouping.

    View source ↗
  3. 1y ago

    locations.geojson reading; specs parsed from the GTFS reference

    read_gtfs() reads locations.geojson under the updated GTFS specification, requiring gtfsio 1.2.0 for JSON support, and switches internally to automatically parsed specifications from the GTFS reference. That last change is what keeps the reader current without hand edits.

    View source ↗
  4. 2y ago

    fare_media_id added to fare_products spec

    Adds fare_media_id to fare_products in the spec table and fixes sf object tests for CRAN. Contributed conformance detail.

    View source ↗
  5. 3y ago

    interpolate_stop_times() added; router updated

    Updates raptor() and travel_times() and adds interpolate_stop_times() for filling gaps between timed stops. Router work of the kind that recurs every few releases.

    View source ↗
  6. 3y ago

    Duplicated primary key check improved

    A single improvement to the duplicated primary key check introduced in 1.5.0. Follow-up on the validation work from the previous release.

    View source ↗