Extraction of Public Transport Linegraphs from OpenStreetMap

Bachelor Project by Katharina Matulla

Supervision by Patrick Brosi

University of Freiburg
Department of Computer Science
Chair of Algorithms and Data Structures


Project Description

Goal of this project is to extract public transport data from OpenStreetMap (OSM) of a specific public transport system (tram or subway) within a given region, to adjust the data and to save it in a geoJSON file. The adjustments include merging all nodes of one station into one middle station, connecting the new merged stations with the ways and merging the ways (and accordingly the line numbers of the transportation system) connecting the stations, so that only one line runs between a set of two stations.

The result of this work could be used to render transitmaps as overlays and thus should be similar to LOOM (Line-Ordering Optimized Maps), which is generated using GTFS-data.[1]
Since this project only takes data from OpenStreetMap, linearized maps could be generated even if GTFS-data of cities aren't available.


All of the following options are required to run the program:

python3 osm_to_geojson.py

--min_lon: <float>
--min_lat: <float>
--max_lon: <float>
--max_lat: <float>
--xml_file: <string> (osm-filename)
--transport_vehicle: <string> (has to be 'tram' or 'subway')