osm2pgsql

Dieses Befehlszeilenwerkzeug öffnet eine .osm-Datei, in die Daten von OpenStreetMap exportiert wurden, und fügt die Objekte daraus in die PostGIS-Datenbank ein.

Die Homepage beschreibt unter anderem den Speicherbedarf beim Import. Nach meiner Erfahrung lohnt es sich nicht, auf einem Rechner unter 8 GB RAM (und 64-Bit-Betriebssystem, um sie auch nutzen zu können), damit zu beginnen.

Ich empfehle, den Import (also den osm2pgsql-Aufruf) auf dem größten verfügbaren Rechner zu starten. Dieser muß nicht mit dem Datenbankserver identisch sein. Die PostgreSQL-Datenbank wird nach dem Import jedenfalls um mindestens 1,5 GB anwachsen.

Die Firma Geofabrik publiziert unter http://download.geofabrik.de länderweise täglich aktualisierte OSM-Exporte. Die Datei für Österreich ist http://download.geofabrik.de/europe/austria-latest.osm.bz2; sie ist komprimiert schon mehr als 450 MB groß. Wir wollen sie also gleichzeitig herunterladen und verarbeiten.

Hier ist ein entsprechendes Unix-Shellskript. Die Konstanten darin müssen an die eigene Konfiguration angepaßt werden:

PGPASS, PGUSER, PGDB sind schon so eingestellt, wie sie in PostGIS konfiguriert wurden. HOST muß nur ändern, wer den Import auf einem anderen Computer als dem Datenbankserver laufen läßt.

PREFIX setze ich auf “osm_austria”, damit klar ist, woher die Daten kommen und was sie enthalten. Die von osm2pgsql angelegten Tabellen heißen dann osm_austria_line, osm_austria_point usw.

PROJECTION ist 3416 (die EPSG-Nummer von ETRS89 / Austria Lambert), eine gute Projektion für Österreich-Daten. (Es ist am besten, sich so weit wie möglich auf eine Projektion zu beschränken und nach Möglichkeit alle Daten in diese Projektion zu konvertieren.)

Nach ca. 15 Minuten auf einem aktuellen 4-CPU-Rechner meldet osm2pgsql den erfolgreichen Import, und die Datenbank ist mit den Daten des Geofabrik-Österreich-Dumps gefüllt.

Jetzt kommt also der interessante Teil, die Arbeit mit den Daten.

Weiter: OSM-Daten in PostGIS