Awesome
gtfsio <img align="right" src="man/figures/logo.png" width="180">
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.
Installation
Stable version:
install.packages("gtfsio")
Development version:
install.packages("gtfsio", repos = "https://dhersz.r-universe.dev")
# or
# install.packages("remotes")
remotes::install_github("r-transit/gtfsio")
Usage
GTFS feeds are read using the import_gtfs()
function:
library(gtfsio)
path <- system.file("extdata/ggl_gtfs.zip", package = "gtfsio")
gtfs <- import_gtfs(path)
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:
tmpf <- tempfile(fileext = ".zip")
export_gtfs(gtfs, tmpf)
zip::zip_list(tmpf)$filename
#> [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.