gtfslib

GTFS database library


Keywords
GTFS, transit
License
GPL-3.0
Install
pip install gtfslib==1.0.0

Documentation

gtfslib-python

An open source (GPLv3) library in python for reading GTFS files and computing various stats and indicators about Public Transport networks

Build Status

A more complete documentation can be found in the wiki

-> Pour des explications en français, voir la page FR du wiki

Installation

(Optional) You may want to setup a virtual environment before: (See https://virtualenv.readthedocs.org/ for more info.)

$ virtualenv <ENV>
$ . <ENV>/bin/activate

Download and install the lib:

$ git clone git@github.com:afimb/gtfslib-python.git
$ cd gtfslib-python
$ pip install
$ gtfsdbloader --help

Usage

Command-line tool

$ gtfsdbloader --help

API tutorial

from gtfslib.dao import Dao
dao = Dao("db.sqlite")
dao.load_gtfs("mygtfs.zip")
for stop in dao.stops():
    print(stop.stop_name)
for route in dao.routes(fltr=Route.route_type == Route.TYPE_BUS):
    print("%s: %d trips" % (route.route_long_name, len(route.trips)))

For more information see here.

Data model

The internal model used, GTFS', is close to GTFS but simplified / normalized / expanded for ease of use.

The main differences are:

  • A calendar is a simple list of calendar dates (there is no date range, day of the week and positive/negative exceptions anymore).
  • All optional fields with a default value are set (for example, pickup/dropoff types)
  • Missing stop times are correctly interpolated, and marked with a flag.
  • Shape distances are converted to meters and computed if missing.
  • All frequencies are expanded to normal trips, and marked with a flag (TODO).
  • ...

For the detail and more information see here.