gtfsio offers tools for the development of
GTFS-related packages. It establishes a standard for representing GTFS
feeds using R data types based on Google’s
Static GTFS Reference. It provides fast and flexible functions to
read and write GTFS feeds while sticking to this standard. It defines a
basic gtfs
class which is meant to be extended by packages
that depend on it. And it also offers utility functions that support
checking the structure of GTFS objects.
Stable version:
install.packages("gtfsio")
Development version:
install.packages("gtfsio", repos = "https://dhersz.r-universe.dev")
# or
# install.packages("remotes")
::install_github("r-transit/gtfsio") remotes
GTFS feeds are read using the import_gtfs()
function:
library(gtfsio)
<- system.file("extdata/ggl_gtfs.zip", package = "gtfsio")
path
<- import_gtfs(path)
gtfs
names(gtfs)
#> [1] "calendar_dates" "fare_attributes" "fare_rules"
#> [4] "feed_info" "frequencies" "levels"
#> [7] "pathways" "routes" "shapes"
#> [10] "stop_times" "stops" "transfers"
#> [13] "translations" "trips" "agency"
#> [16] "attributions" "calendar"
import_gtfs()
returns a gtfs
object. The
gtfs
class might be extended by other packages using the
constructor, validator and methods provided by
gtfsio:
class(gtfs)
#> [1] "gtfs" "list"
Use the export_gtfs()
function to write GTFS objects to
disk:
<- tempfile(fileext = ".zip")
tmpf
export_gtfs(gtfs, tmpf)
::zip_list(tmpf)$filename
zip#> [1] "calendar_dates.txt" "fare_attributes.txt"
#> [3] "fare_rules.txt" "feed_info.txt"
#> [5] "frequencies.txt" "levels.txt"
#> [7] "pathways.txt" "routes.txt"
#> [9] "shapes.txt" "stop_times.txt"
#> [11] "stops.txt" "transfers.txt"
#> [13] "translations.txt" "trips.txt"
#> [15] "agency.txt" "attributions.txt"
#> [17] "calendar.txt"
For a more complete demonstration please read the introductory vignette.