General Transit Feed Specification

From HandWiki
Short description: Data standard for public transport information
General Transit Feed Specification
Visualization of GTFS transit routes in Madrid
A visualization created from GTFS data for transit routes in Madrid, Spain
Filename extension.zip
Initial release27 September 2006; 17 years ago (2006-09-27)
Type of formatTransit schedule format
Extended fromCSV
StandardDe facto standard
Websitegtfs.org

The General Transit Feed Specification (GTFS)[1] defines a common format for public transportation schedules and associated geographic information.

History

What was to become GTFS started out as a side project of Google employee Chris Harrelson in 2005, who “monkeyed around with ways to incorporate transit data into Google Maps when he heard from Tim and Bibiana McHugh, married IT managers at TriMet, the transit agency for Portland, Oregon”.[2] McHugh is cited with being frustrated about finding transit directions in unfamiliar cities, while popular mapping services were already offering easy-to-use driving directions at the time.[3]

Bibiana and Tim McHugh eventually got into contact with Google and provided the company with CSV exports of TriMet's schedule data. In December 2005, Portland became the first city to be featured in the first version of Google's “Transit Trip Planner”.[4] In September 2006, five more US cities were added to the Google Transit Trip Planner, and the data format released as the Google Transit Feed Specification.[5]

In the United States , there had not been any standard for public transit timetables prior to the advent of GTFS, not even a de facto standard. According to long-time BART website manager Timothy Moore, before the advent of GTFS, BART had to provide different data consumers with different formats, making a standardized transit format very desirable.[2] The publicly and freely available format specification, as well as the availability of GTFS schedules, quickly made developers base their transit-related software on the format. This resulted in “hundreds of useful and popular transit applications”[3] as well as catalogues listing available GTFS feeds. Due to the common data format those applications adhere to, solutions do not need to be custom-tailored to one transit operator, but can easily be extended to any region where a GTFS feed is available.

Due to the wide use of the format, the “Google” part of the original name was seen as a misnomer “that makes some potential users shy away from adopting GTFS”. As a consequence, it was proposed to change the name of the specification to General Transit Feed Specification in 2009.[6]

Applications

Screenshot showing OpenTripPlanner with route from GTFS data highlighted.
GTFS-based reachability analysis via Mapnificent

Journey planning

GTFS is typically used to supply data on public transit for use in multi-modal journey planner applications. In most cases, GTFS is combined with a detailed representation of the street/pedestrian network to allow routing to take place from point to point rather than just between stops. OpenTripPlanner is open-source software that can do journey planning with a combination of GTFS and OpenStreetMap data.[7] Other general purpose applications exist such as the ArcMap Network Analyst extension which can incorporate GTFS for transit routing.[8]

GTFS was originally designed for use in Google Transit, an online multi-modal journey planning application.

Accessibility research

GTFS is often used in research on transit accessibility where it is typically used to estimate travel times by transit from one point to many other points at different times of day.[9][10] Studies however have called such applications into question due to their reliance on schedules alone without accounting for reliability issues and regular schedule non-adherence.[11]

Comparing service levels

GTFS has been used to measure changes in accessibility due to changes in transit service provision, either actual[12] or proposed.[13] Analysis of changes in service over time can be accomplished by simply comparing published GTFS data for the same agency from different time periods. For comparison of existing service with proposed infrastructure or service changes, a future GTFS must often be constructed by hand based on proposed service characteristics.[13]

Feed registries

Public GTFS feeds have been aggregated in a variety of feed registries:

- TransitFeeds / OpenMobilityData maintains a directory of GTFS and GTFS Realtime feeds and an interactive website for browsing feed contents.

- GTFS Data Exchange (2008 - 2016) allowed public transit agencies of all sizes to upload copies of their GTFS feeds. The website is no longer active but still allows browsing and download of historical data.

- Transitland (2014 - present) maintains a directory of GTFS and GTFS Realtime feeds in 55+ countries and provides both an interactive website and APIs for querying feed contents. Transitland was originally created by Mapzen and is now maintained by Interline Technologies.

Structure

Class diagram of GTFS
Class diagram of GTFS

A GTFS feed is a collection of at least six, and up to 13 CSV files (with extension .txt) contained within a .zip file. Preferred character encoding is UTF-8. Together, the related CSV tables describe a transit system's scheduled operations as visible to riders. The specification is designed to be sufficient to provide trip planning functionality, but is also useful for other applications such as analysis of service levels and some general performance measures. In contrast to European transit industry exchange standards such as Transmodel or VDV-45X, GTFS only includes scheduled operations that are meant to be distributed to riders. It is also limited to scheduled information and does not include real-time information. However, real-time information can be related to GTFS schedules according to the related GTFS-realtime specification.[14]

Following are descriptions of the tables required for a valid GTFS data feed. Each table is literally a text CSV file whose filename is the name of the table, suffixed by '.txt'. So for the 'agency' table below, a CSV file called 'agency.txt' would be included in a valid GTFS feed.

Mandatory tables

agency

The agency table provides information about the transit agency as such, including name, website and contact information.

Required fields:

  • agency_name
  • agency_url
  • agency_timezone

routes

The routes table identifies distinct routes. This is to be distinguished from distinct routings (or paths), several of which may belong to a single route.

Required fields:

  • route_id (primary key)
  • route_short_name
  • route_long_name
  • route_type

trips

Required fields:

  • trip_id (primary key)
  • route_id (foreign key)
  • service_id (foreign key)

Optional fields:

  • block_id - The block ID indicates the schedule block to which a trip belongs.

stop_times

Required fields:

  • stop_id (primary key)
  • trip_id (foreign key)
  • arrival_time
  • departure_time
  • stop_sequence

Note that dwell time may be modelled by the difference between the arrival and departure times. However, many agencies do not seem to model dwell time for most stops.

stops

The stops table defines the geographic locations of each and every actual stop or station in the transit system as well as, and optionally, some of the amenities associated with those stops.

Required fields:

  • stop_id (primary key)
  • stop_name
  • stop_lon
  • stop_lat

calendar

The calendar table defines service patterns that operate recurrently such as, for example, every weekday. Service patterns that don't repeat such as for a one-time special event will be defined in the calendar_dates table.

Required fields:

  • service_id (primary key)
  • Monday
  • Tuesday
  • Wednesday
  • Thursday
  • Friday
  • Saturday
  • Sunday
  • start_date
  • end_date

Optional tables

calendar_dates.txt

fare_attributes.txt

fare_rules.txt

shapes.txt

Rules for drawing lines on a map to represent a transit organization's routes.

frequencies.txt

Headway (time between trips) for routes with variable frequency of service.

transfers.txt

Rules for making connections at transfer points between routes.

feed_info.txt

See also

References

  1. "Reference | Static Transit". https://developers.google.com/transit/gtfs/reference/#general_transit_feed_specification_reference. 
  2. 2.0 2.1 Roush, Wade (2012). "Welcome to Google transit: How (and why) the search giant is remapping public transportation". Community Transportation: 3. https://ctaa.org/wp-content/uploads/2018/10/Spring_12_DigitalCT.pdf. 
  3. 3.0 3.1 Dyson, Lauren; Goldstein, Brett; Nemani, Abhi (2013). Beyond Transparency. Code for America Press. pp. 125–135. 
  4. Garg, Avichal. "Public Transit via Google". https://googleblog.blogspot.de/2005/12/public-transit-via-google.html. 
  5. Harrelson, Chris. "Happy Trails with Google Transit". https://googleblog.blogspot.de/2006/09/happy-trails-with-google-transit.html. 
  6. Hughes, Joe. "proposal: remove "Google" from the name of GTFS". Google Groups. https://groups.google.com/d/msg/gtfs-changes/ob_7MIOvOxU/zEScjv6VLBMJ. 
  7. "Home | OpenTripPlanner". http://www.opentripplanner.org/. 
  8. "Yay, transit! - Using GTFS Data in ArcGIS Network Analyst". http://transit.melindamorang.com/. 
  9. Farber, Steven; Morang, Melinda Z.; Widener, Michael J. (2014-09-01). "Temporal variability in transit-based accessibility to supermarkets". Applied Geography 53: 149–159. doi:10.1016/j.apgeog.2014.06.012. 
  10. Fransen, Koos; Neutens, Tijs; Farber, Steven; De Maeyer, Philippe; Deruyter, Greet; Witlox, Frank (2015-10-01). "Identifying public transport gaps using time-dependent accessibility levels". Journal of Transport Geography 48: 176–187. doi:10.1016/j.jtrangeo.2015.09.008. https://biblio.ugent.be/publication/6956461. 
  11. Wessel, Nate; Allen, Jeff; Farber, Steven (2017-06-01). "Constructing a routable retrospective transit timetable from a real-time vehicle location feed and GTFS". Journal of Transport Geography 62: 92–97. doi:10.1016/j.jtrangeo.2017.04.012. ISSN 0966-6923. 
  12. Farber, Steven; Fu, Liwei (2017-03-01). "Dynamic public transit accessibility using travel time cubes: Comparing the effects of infrastructure (dis)investments over time". Computers, Environment and Urban Systems 62: 30–40. doi:10.1016/j.compenvurbsys.2016.10.005. https://zenodo.org/record/890050. 
  13. 13.0 13.1 Farber, Steven; Grandez, Maria (2017). "Transit Accessibility, Land Development and Socioeconomic Priority: A Typology of Planned Station Catchment Areas in the Greater Toronto and Hamilton Area". Journal of Transport and Land Use 10 (1). doi:10.5198/jtlu.2017.980. (note: forthcoming edition). https://stevenfarber.files.wordpress.com/2016/11/public-draft-transit-accessibility-developable-land-and-socioeconomic-priority-farber-grandez.pdf. 
  14. "What is GTFS-realtime?". https://developers.google.com/transit/gtfs-realtime/. 

External links