OpenStreetMap – eine Schatzkiste an frei verfügbaren Geodaten

PrintFriendly and PDF

OpenStreetMap (OSM) enthält eine enorme Menge an frei verfügbaren Geodaten – derzeit sind es rund 1,6 Milliarden Koordinaten. Wie lässt sich das dort vorhandene Wissen in eigenen Projekten verwenden?

Nach einem ersten Blick in die Datenbasis stellt man schnell fest, dass die Geodaten nur wenig strukturiert vorliegen. Ähnlich wie bei Wikipedia ist zwar enorm viel Wissen vorhanden, aber nur implizit. Es gibt keine Schnittstellen, mit denen sich die Informationen komfortabel abfragen ließen. Das heißt: Es ist z.B. nicht möglich den längsten Fluss Deutschlands abzufragen. Stattdessen lassen sich nur alle Punkte, Pfade und Polygone ermitteln, die mit dem Tag „water“ versehen sind und sich innerhalb eines vorgegebenen Ausschnitts befinden. Erst durch eine Auswertung dieser Daten lässt sich der längste Fluss ermitteln.

Wenn man aber explizites Wissen benötigt, also beispielsweise eine Liste aller Flüsse in Deutschland mit ihren Läufen, dann muss man sich die Daten selbst aus dem OSM-Datenbestand extrahieren und aufbereiten. Simon Lerch hat diese Aufgabe als Teil einer Bachelorarbeit übernommen. Ein paar der interessantesten Erkenntnisse möchte ich hier zusammenfassen.

Vorbereitungen

Um OSM-Daten sinnvoll auswerten zu können, benötigt man eine Kopie des Datenbestands in einer lokalen Datenbank. OpenStreetMap läuft üblicherweise auf einer PostgreSQL-Datenbank und benötigt neben der Standardinstallation das PostGIS-Modul. Die vollständigen OSM-Daten umfassen derzeit komprimiert 18 GB. Wenn man nur einen Teilausschnitt der Weltkarte benötigt, macht es daher Sinn, nur die Daten einzelner Länder oder Kontinente herunterzuladen und einzuspielen.

Wenn die vorhandenen Ausschnitte jedoch nicht passen bzw. wenn man nur einen Teil der vorhandenen Informationen benötigt (um beim Beispiel mit Flüssen zu bleiben: nur solche Daten, die als „water“ markiert sind), sollte man die Daten reduzieren, bevor man sie in die eigene Datenbank einspielt. Hierzu gibt es mehrere Tools – für die Kommandozeile hat sich Osmosis bewährt.

Datenstruktur

Die kleinste Informationseinheit in der OpenStreetMap-Datenbank ist die einzelne Koordinate. Mehrere geordnet miteinander verbundene Koordinaten ergeben einen Weg. Ein Weg kann ein offener Pfad sein oder ein (geschlossenes) Polygon. Ein Pfad beschreibt beispielsweise den Verlauf eines Flusses, wohingegen ein Polygon die Umrisse eines Sees definiert.

Da ein Weg intern aus nicht mehr als 2000 Koordinaten bestehen darf, gibt es weiterhin so genannte Relationen, die mehrere Wege und weitere Relationen miteinander vereinen. Wenn man die Daten eines zusammenhängenden Gebildes benötigt, muss man rekursiv Relationen auflösen und alle enthaltenen Wege zusammenfassen.

Mit jedem Objekt, also jeder Koordinate, jedem Weg und jeder Relation können Tags verbunden sein. Ein Tag besteht aus einem Schlüssel-/Wert-Paar, wobei für beides beliebige Begriffe vergeben werden dürfen. Eine Reihe von Schlüsselbegriffen werden weit verbreitet genutzt, wie zum Beispiel „name“, um den Namen einer Struktur zu speichern.

Herausforderungen bei der Datenauswertung

Im Detail gibt es eine Reihe von Herausforderungen zu meistern, um aus dem OSM-Datenbestand qualitatitv hochwertige Informationen auszulesen:

  • Es gibt keine zentrale Registratur aller vorkommenden Schlüssel für die Tags. In der Regel sind die Auszeichnungen innerhalb eines Kulturraums einheitlich. Sobald jedoch übergreifende Informationen ausgewertet werden sollen, wird man mit dem Problem konfrontiert, dass die gewünschten Informationen semantisch unterschiedlich ausgezeichnet werden. Dies betrifft zum Beispiel Verwaltungregionen oder Postleitzahlengebiete.
  • Größere geografische Strukturen werden nur selten von einer Person am Stück erfasst. Es kommt immer wieder vor, dass in Flüssen oder Straßen einzelne Koordinaten nicht miteinander verbunden sind und somit zusammenhangslose Fragmente entstehen.
  • Geografische Strukturen, die Sprachgrenzen überschreiten, werden in der Regel jeweils in der Landessprache ausgezeichnet. Die Pfad-Segmente des Rheins heißen beispielsweise nur im deutschen Sprachgebiet „Rhein“. Ab der Grenze in die Niederlande sind die Pfad-Fragmente „Rijn“ benannt. Für eine Suche nach dem vollständigen Verlauf muss man also entweder alle Bezeichnungen kennen oder man muss iterativ für jedes Ende eines Pfad-Fragments das nächste Anschlusstück suchen.
  • Da die Informationen von Privatpersonen zusammengetragen werden, ist nicht garantiert, dass die verwendeten Namen den offiziellen Bezeichungen entsprechen – falls überhaupt Namen vergeben werden.

Fazit

Der Datenbestand der OSM-Datenbank ist gigantisch. Große Teile Deutschlands sind inzwischen äußerst detailiert erfasst. Einen Vergleich mit anderen Kartenportalen wie Google Maps hält OSM stand (zuletzt u.a. bei Spiegel Online und in einem Blog-Artikel).

Um diese Daten auszuwerten, braucht man jedoch viel Zeit: Erst muss man die rekursive Datenstruktur verstehen und dann halbwegs performant abfragen können. Der Lohn der Mühe sind dafür Informationen, die man derzeit nirgendwo sonst erhalten kann. Der detaillierte Verlauf der Donau ist dazu ein schönes Beispiel:

Auch wenn die OSM-Daten frei verfügbar sind, müssen bestimmte Bedingungen eingehalten werden, wenn die Daten verwendet werden. Die Lizenzbedingungen geben darüber genau Aufschluss. Im Wesentlichen darf man die Daten beliebig verwenden, sofern man zwei Bedingungen einhält: Zum einen muss auf die Urheberschaft von OpenStreetMap hingewiesen werden, und zum anderen müssen auf OSM-Daten basierende und öffentlich verwendete eigene Datenbestände zumindest auf Nachfrage der Öffentlichkeit zugänglich gemacht werden. Genauere Informationen sind in der Rechts-FAQ zu finden.

Die Datenqualität ist inzwischen gut. Jedoch trifft man immer wieder auf kleinste Ungenauigkeiten, die die Auswertungen durcheinander bringen. Bei solchen Fehlern darf man nicht vergessen, dass der OSM-Bestand in erster Linie zusammengetragen wurde, um Landkarten zu generieren. An einzelnen Punkten unterbrochene Pfade fallen in der grafischen Darstellung kaum ins Gewicht. Letztlich muss man pragmatisch denken und die gefundenen Fehler gleich im offiziellen Datenbestand korrigieren. Auf diesem Weg gibt man der Community etwas zurück und erleichtert sich den nächsten Durchlauf der eigenen Auswertungen.

Danke an Simon Lerch, der mir sein Material zur Verfügung gestellt hat. Alle Bilder sind © OpenStreetMap-Mitwirkende.