gtfslib-python

December 6, 2016 · View on GitHub

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

Build Status

This software is open source (GPLv3); in particular, there is no warranty.

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.