Suche und Download von OpenStreetMap Daten (QGIS3)

Hochwertige Quelldaten sind essentiell für alle GIS-Anwendungen. Eine großartige Quelle für freie Daten mit offener Lizenz ist OpenStreetMap(OSM) . Die OSM Datenbasis enthält ganz verschiedene Arten kartographischer Daten - Straßen, lokale Daten, Gebäudepolygone, administrative Grenzen usw. Der Zugriff auf OSM-Daten in einem GIS-Format ist in QGIS mit der QuickOSM* Erweiterung möglich. Diese Anleitung beschreibt die Suche, den Download und die Benutzung der Erweiterung.

Überblick über die Aufgabe

Wir werden den Standort aller Bars und Pubs in London aus der OpenStreetMap Datenbasis extrahieren und ihn in einem Vektorlayer abspeichern.

Weitere Fähigkeiten, die wir erlernen

  • Wie man verschiedene Vektorlayer verschneidet

Arbeitsablauf

  1. Wir suchen und installieren die Erweiterung QuickOSM aus dem offiziellen QGIS-Erweiterungsrepositorium. Unter Verwenden von Erweiterungen findet man Hinweise zum Herunterladen von Erweiterungen. Beachte, dass zum Zeitpunkt des Verfassens dieser Anleitung, die Erweiterung als Experimental eingestuft ist. Man muss daher darauf achten, den Haken bei Auch experimentelle Erweiterungen anzeigen unter Einstellungen im Erweiterungen Fenster zu setzen, damit die Erweiterung installiert werden kann.

../../_images/149.png
  1. Wir starten die Erweiterung nach der Installation unter Vektor ‣ QuickOSM -> QuickOSM….

../../_images/228.png
  1. Im Bereich Schnelle Abfrage können wir einen Filter setzen, um eine Teilmenge auszuwählen. Die Attribute der Kartenfeatures in der OSM Datenbank sind als Tags gespeichert. Tags werden durch einen Schlüssel und einen Wert repräsentiert. Der Schlüssel ist ein Themengebiet und der Wert hat eine bestimmte Ausgestaltung. Unter this page findet man eine umfassende Liste an Tags für verschiedene Featuretypen. Bars nutzen den Tag amenity:bar und Pubs nutzen den Tag amenity:pub. Wir werden als Erstes die Bars extrahieren. Wähle amenity als Schlüssel aus dem drop-down Menü.

../../_images/320.png
  1. Wähle bar aus dem Wert drop-down Menü.

../../_images/410.png
  1. Gebe London im Feld In ein, um die Suche auf die Stadtgrenze zu beschränken.

../../_images/511.png
  1. Klappe den Bereich Advanced auf. Im OSM Datenmodell werden Features durch nodes, ways and relations repräsentiert. Da uns nur die Punktfeatures interessieren, wählen wir Node und Points . Klicke auf Ausführen.

../../_images/611.png
  1. Die Erweiterung fragt die OpenStreetMap Datenbank mit Hilfe der Overpass API ab und konvertiert die Daten in einen QGIS Vektorlayer.

../../_images/711.png
  1. Wir gehen nach Beendigung der Abfrage zum QGIS Hauptfenster. Dort sehen wir einen neuen Layer mit dem Namen amenity_bar_london im Layer Bereich. Der Arbeitsbereich zeigt die Lage der Bars, die extrahiert wurden.

../../_images/811.png
  1. Gehe zurück zum QuickOSM Fenster und ändere die Auswahl zu pub als Wert. Klicke auf Ausführen.

../../_images/911.png
  1. Dieses Mal ruft die Erweiterung alle Punkte mit dem Tag amenity:pub aus der OSM Datenbank ab.

../../_images/1011.png
  1. Nachdem die Abfrage abgeschlossen ist, wird der neue Layer amenity_pub_london zum Layer Bereich hinzugefügt. Wir haben jetzt 2 Vektorlayer. Dabei handelt es sich um temporäre Layer im Arbeitsspeicher, die beim Schließen von QGIS verloren gehen. Wir fassen sie nun zu einem Vektorlayer zusammen und speichern ihn auf der Festplatte. Gehe zu Verarbeitung ‣ Werkzeugkiste.

../../_images/1115.png
  1. Suche das Werkzeug Vektoren allgemein ‣ Vektorlayer zusammenführen. Klicke doppelt darauf, um es zu starten.

../../_images/1212.png
  1. Klicke im Fenster Vektorlayer zusammenführen auf den Knopf neben Eingabelayer. Wähle die beiden Layer amenity_bar_london und amenity_pub_london aus. Klicke auf OK.

../../_images/1311.png
  1. Klicke auf den Knopf neben Zusammengeführt und wähle Speichere in GeoPackage.

../../_images/1410.png
  1. Gehe zum Verzeichnis in dem die Daten gespeichert werden sollen und benenne die Ausgabedatei mit longon.gpkg.

../../_images/159.png
  1. Gebe bars_and_pubs als Layername ein.

../../_images/168.png
  1. Klicke auf Starte, um die Verarbeitung zu starten.

../../_images/179.png
  1. Nachdem die Verarbeitung abgeschlossen ist, sehen wir einen neuen Layer bars_and_pubs im Layer Bereich. Dieser Layer ist die Vereinigung aller Features aus den beiden vorhergehenden Layern. Klicke mit der rechten Maustaste auf den bars_and_pubs Layer und wähle Attributtabelle öffnen.

../../_images/187.png
  1. In der Attributtabelle sehen wir, dass beide Typen, Pub und Bar, zusammen mit den Namen der Einrichtung und anderer Attribute enthalten sind.

../../_images/197.png
  1. Wir haben die Zielsetzung erreicht, den Standort der Bars und Pubs in London zu extrahieren. Wir mussten 2 unterschiedliche Abfragen erstellen, um die relevanten Daten zu erhalten und zusammenzufassen. Das ist für unsere Aufgabenstellung in Ordnung. Es gibt aber auch Situationen, die eine komplexe Abfrage erfordern, um die für das Projekt erforderlichen Daten zu erhalten. Erfreulicherweise stellt die QuickOSM Erweiterung eine Möglichkeit bereit, angepasste Abfragen zu schreiben und auszuführen. Wir werden sehen, wie man eine einzelne Abfrage für unsere Aufgabenstellung erstellen kann. Gehe zum Fenster QuickOSM und klicke auf Zeige Abfrage.

../../_images/206.png
  1. Die Erweiterung wechselt in den Abschnitt Abfrage. Der Bereich Overpass-Abfrage zeigt die Abfrage, die auf Basis der Nutzereingabe erstellt wurde. Das Feld kann bearbeitet werden und man kann eine Abfrage eingeben. Das Format der Abfrage ist die Overpass Query Language (QL). Wähle für unseren Zweck den Abschnitt zwischen den XML-Tags <query> … </query> und kopiere ihn.

../../_images/2112.png
  1. Füge den Text unter den kopierten Text ein und ändere den Wert von pub zu bar. Unten steht die vollständige Abfrage, die die Werte beider Tags in einer Abfrage abruft. Klicke auf Ausführen.

<osm-script output="xml" timeout="25">
<id-query {{geocodeArea:London}} into="area_0"/>
<union>
    <query type="node">
        <has-kv k="amenity" v="pub"/>
        <area-query from="area_0"/>
    </query>
    <query type="node">
        <has-kv k="amenity" v="bar"/>
        <area-query from="area_0"/>
    </query>
</union>
<union>
    <item/>
    <recurse type="down"/>
</union>
<print mode="body"/>
</osm-script>
../../_images/229.png
  1. Nachdem die Abfrage abgeschlossen wurde, sehen wir einen neuen Layer OsmQuery, der dem Bereich Layer hinzugefügt wurde. Dieser Layer enthält die Punkte für die Bars und Pubs in London.

../../_images/235.png
comments powered by Disqus