Wie entsteht eine ÖPNV Fahrzeit Heatmap Karte?
Datengrundlage: Von Openstreetmaps zur PostGIS Datenbank
Dieses Tutorial ist sehr hilfreich: How to import OpenStreetMap data into PostgreSQL
- laufende Postgres Datenbank, z.B. mit Postgres.app
- Postgres.app starten, psql ausführen
- Eine Datenbank erstellen mit
CREATE DATABASE <dbname>;
- Mit \l (kleines L) kann man sich alle Datenbanken anzeigen lassen. Mit \q wieder beenden und ins normale Terminal zurückkehren. Anschließend Postgis Funktionalität zur erstellten Datenbank hinzufügen mit
psql -U <username> -d <datenbankname> -f /Applications/Postgres.app/Contents/Versions/9.3/share/postgresql/contrib/postgis-2.1/postgis.sql
- Dies sollte mit folgendem quittiert werden:
SET BEGIN CREATE FUNCTION CREATE FUNCTION ... CREATE FUNCTION CREATE FUNCTION GRANT GRANT GRANT COMMIT
- Nun der Download des osm2pgsql Programms für MacOSX
- Nun sind noch Zusatzfunktionalitäten zur PostGIS Datenbank hinzuzufügen, welche mit der Datei 900913.sql (zu finden z.B. hier oder im osm2pgsql Ordner) realisiert werden:
psql -d <datenbankname> -f 900913.sql
- Dies sollte mit folgendem quittiert werden:
INSERT 0 1
- Anschließend kann eine binäre OpenStreetMap Datenbank zur PostGIS Datenbank hinzugefügt werden. Download der betreffenden OpenStreetMap Daten im .osm.pbf Format, z.B. bei Geofabrik.de.
osm2pgsql -cGs -d <datenbankname> -S /usr/local/share/osm2pgsql/default.style <.osm.pbf>
- Dies sollte mit folgendem quittiert werden:
Nun sind die Daten von OpenStreetMaps in eine lokale Postgres Datenbank (PostGIS) kopiert und können von gängigen Programmen genutzt werden.
Kartografie mit TileMill
TileMill ist ein Programm zur Gestaltung von Karten. Das ist eine Wissenschaft für sich, nicht umsonst gibt es Studiengänge dazu. Eine Karte ist eine verkleinerte, verebnete, vereinfachte, generalisierte Darstellung der Wirklichkeit. Auf ihr müssen immer Dinge weg gelassen werden und je nach Zoomstufe in Teilen dann wieder dargestellt werden. TileMill bietet nun die Möglichkeit, sich mit der PostGIS Datenbank zu verbinden und alle Inhalte wie gewünscht darzustellen.
In TileMill wird ein Layer mit Daten aus der Postgres Datenbank angelegt. Dabei ist die Connection:
dbname=<dbname> host=localhost port=5432 user=<user>
und das Query in der Datenbank ist für OpenStreetMaps Linien z.B.:
planet_osm_line
Mit den verbundenen Datenbank kann nun in CartoCSS die Darstellung der Inhalte definiert werden. Beispielhaft für Zoom Stufe 14 die Hotels samt Namen:
[zoom=14]{ #planetosmpolygon[tourism = 'hotel'], #planetosmpoint[tourism = 'hotel']{ building-fill: red; building-fill-opacity: 0.8; point-file:url(hotel.svg); point-transform:"scale(0.03)"; ::hotellabel{ text-name: [name]; text-size: 12; text-face-name: 'DejaVu Sans Book'; text-halo-radius: 2; text-halo-fill: @darkgreen; text-fill: white; text-placement-type: simple; text-allow-overlap: true; text-horizontal-alignment: right; text-dx: 15; } } }
Dies weist TileMill dazu an, aus der Datenbank planetosmpolygon alle Linien (also Gebäudeumrisse) sowie aus der Datenbank planetosmpoint (also alle Punkte) mit der Kodierung Hotel zu suchen und entsprechend zu rendern. So wird Schritt für Schritt die Karte hergestellt.
Bei der Farbgebung sollte man sich an die Tipps von Designern halten. Das Auge schaut ja schließlich mit.
ÖPNV Fahrzeit Heatmap aus Fahrplandaten
Hat ein Verkehrsverbund die Fahrplandaten frei gegeben, kann man sich diese als maschinenlesbare Datei runter laden. Vielen Dank liebe Verkehrsverbünde!
Anschließend müssen die betreffenden Fahrzeit aus dem Datensatz ausgelesen, interpoliert und gerendert werden. Dies geschieht z.B. mit Matlab (Tutorial: 3D Kennfeld visualisieren) oder Python.
Das entstandene Bild muss nun noch georeferenziert werden, damit es in der Kartenanwendung an der richtigen Stelle angezeigt wird. Hier hilft QGIS weiter.
Georeferenzieren mit QGIS
Das OpenSource GIS System QGIS bietet neben unzähligen anderen Funktionen auch die Möglichkeit der Georeferenzierung. Das Einpassen über 4 Passpunkte mit anschließender Transformation ermöglicht das Georeferenzieren des Layers.

Georeferenzierungs-Plugin von QGIS
Das resultierende GeoTIFF kann dann in TileMill eingelesen werden.
GeoTIFF in TileMill

Einlesen des georeferenzierten Layers in TileMill
Tutorial: Georeferenzieren in TileMill
Anschließend kann alles gerendert und auf dem eigenen oder z.B. Mapbox TileServer veröffentlicht werden.
Resultat: ÖPNV Fahrzeit Heatmap 2.0
ÖPNV Heatmap individuell erstellen
Wenn Sie ebenfalls eine ÖPNV Heatmap für Ihre Webseite, Baugebiet, Hotel, Projekt, o.ä. benötigen, erstellen wir Ihnen diese gern.
Leave A Comment