Manueller OSM-Datenabgleich mit dem QGIS-Plugin Go2NextFeaturePlus

OpenSchoolMaps.ch — Freie Lernmaterialien zu freien Geodaten und Karten


Ein Arbeitsblatt für Selbstlernende und Studierende

Einleitung

Jedes Jahr werden unzählige neue Datensätze veröffentlicht. Besonders die öffentliche Verwaltung publiziert unter dem Prinzip “Open Government Data” (OGD) immer wieder neue Daten (zum Beispiel die Stadt Zürich). Leider sind sie in ihrem Rohzustand oft nicht anschaulich oder leicht zu verwenden. Gerade mit ortsbezogenen Daten lässt sich das leicht lösen: durch die Einbindung in OpenStreetMap (OSM). Damit werden die Daten auf sinnvolle Art und Weise zum allgemeinen Wohl aufbereitet – jeder und jede kann sie nutzen.

In diesem Arbeitsblatt zeigen wir, wie solch ein Datenabgleich mithilfe von QGIS und dessen Plugin “Go2NextFeaturePlus” funktioniert. Es gibt zwei Beispiele: ein einfaches, in welchem wir OGD-Daten zu Hydranten mit OSM abgleichen, und ein etwas fortgeschritteneres, in welchem wir OSM-Einträge zu Baustellen à jour halten.

Unter “abgleichen” fallen mehrere Tätigkeiten: Neue Einträge hinzufügen, bestehende anpassen oder ergänzen und nicht mehr vorhandene löschen.

Selbstverständlich können mit dieser Methode nicht nur bereits öffentliche Daten in OSM integriert werden! Auch private Daten dürfen, sofern ihre Lizenz dies zulässt (!), mit OSM abgeglichen werden.

Übersicht

Lernziele

Nach Abschluss dieses Arbeitsblatts können die Lernenden:

  1. OSM-Daten mit Overpass extrahieren und in QGIS verwenden,

  2. externe Geodaten mit OSM vergleichen und Abweichungen erkennen,

  3. neue Objekte korrekt in OpenStreetMap erfassen,

  4. einen Abgleichprozess in QGIS systematisch durchführen und den Fortschritt festhalten,

  5. (fortgeschritten) aktuelle WFS-Daten in QGIS importieren und aufbereiten, inklusive das Erstellen einer lokalen Kopie der WFS-Daten.

Organisation

  • Zeitaufwand: ca. 120 bis 150 Minuten

  • Voraussetzungen: Grundkenntnisse in QGIS 3 sowie im Umgang mit dem Betriebssystem (Windows, macOS oder Linux)

  • Software: QGIS 3 (getestet mit Version 3.42)

  • Benötigtes Plugin: Go2NextFeaturePlus

    Es gibt mehrere Plugins mit ähnlichem Namen. Bitte zwingend das verlinkte installieren.
  • Daten: Werden direkt bei der jeweiligen Aufgabenstellung verlinkt.

Vorbereitung

QGIS muss installiert sein, ebenso die Plugins.

Bevor wir uns an die Aufgaben machen, zuerst ein paar Vorbereitungsschritte:

  1. QGIS starten

  2. Ein neues Projekt erstellen (Menü Project  New)

  3. Hintergrundlayer setzen (OSM-Karte zur Orientierung) (ausser für Aufgabe 3)

Den Hintergrundlayer findet man im Browser (in der Seitenleiste) unter XYZ Tiles  OpenStreetMap. Einfach einmal auf den Eintrag doppelklicken.

Standort OSM-Hintergrundlayer
Abbildung 1. OSM-Hintergrundlayer: Position in der Seitenleiste
Den OSM-Hintergrundlayer kann unter Umständen auch zum Datenabgleich verwendet werden, wenn die Art von Eintrag normalerweise darauf erscheint. Beispielsweise erkennt man auf der OSM-Karte Restaurants – man könnte also einen Restaurant-Datenabgleich nur mit der OSM-Karte machen.

Aufgaben

Die Aufgaben in diesem Arbeitsblatt werden Daten aus verschiedenen Quellen mit OSM abgleichen. Aufgaben 1 & 2 beschäftigen sich mit Hydranten aus einer GeoPackage-Datei der Gebäudeversicherung des Kantons Zürich (GVZ), die dem Arbeitsblatt beiliegt (attachment$manueller_osm_datenabgleich_mit_go2nextfeatureplus/Hydranten_Kt_ZH_GVZ_Export_2023-09-13_original.gpkg[Geopackage Datei]). Die verwendeten Geodaten (Datenstand: 03. Oktober 2023) wurden von der Gebäudeversicherung des Kantons Zürich (GVZ) exklusiv für den Abgleich und die Einpflege in OpenStreetMap (OSM) zur Verfügung gestellt. Wir danken der GVZ für die Erlaubnis zur Nutzung dieser Daten.

In Aufgabe 3 gleicht man aktuelle Baustellendaten des Kantons Zürich mit OSM ab, die man via WFS in QGIS einlesen kann.

Aufgaben 1 & 2 sind eine Einführung ins Abgleichen und in die Nutzung des Plugins. In 1 setzt man das Projekt auf und lernt das Plugin kennen. In Aufgabe 2 richtet man QGIS optimal für den Abgleich ein, führt den Abgleich durch und führt Buch darüber, welche Punkte man bereits abgeglichen hat.

Aufgabe 3 setzt voraus, dass man mit dem Plugin bereits weitestgehend vertraut ist, und baut auf dieses Wissen auf. Die Aufgabe ist aber ansonsten unabhängig.

1. Daten extrahieren & Plugin kennenlernen

In dieser Aufgabe extrahieren wir Daten zu Hydranten aus OSM, importieren diese in QGIS und lernen, wie wir das Plugin “Go2NextFeaturePlus” bedienen können, um durch alle Datenpunkte einzeln durchgehen zu können.

Dieser Schritt dient als Vorbereitung mit der verbundenen Aufgabe 2. In Aufgabe 2 werden die Daten dann mit OSM abgeglichen.

Wir arbeiten in dieser Aufgabe mit dem angehängten Datensatz, welcher die Standorte von Hydranten beinhaltet. Diesen wollen wir mit OSM abgleichen.

Zunächst müssen wir QGIS starten und ein neues Projekt erstellen. Siehe auch Abschnitt “Vorbereitung”.

1.1 Bestehende Hydranten aus OSM extrahieren

Hydranten sind nicht direkt in der OSM-Karte sichtbar. Daher müssen wir den aktuellen Datenstand aus OSM auf eine andere Art extrahieren, damit wir später sinnvoll vergleichen können.

Das machen wir mit Overpass. Mit diesem Tool können Daten aus OSM extrahiert werden.

Interessierte können sich in das Thema im OpenSchoolMaps-Arbeitsblatt OpenStreetMap-Daten beziehen und mit QGIS 3 nutzen etwas vertiefen.

Unsere Abfrage gestalten wir wie folgt:

[out:json][timeout:300];

// Definiere Gebiet für die Gemeinde Rafz
area
  ["boundary"="administrative"]
//  ["admin_level"="8"]
  ["name"="Rafz"]
  ->.rafz;

// Alle Hydranten in diesem Gebiet (Nodes + Ways + Relations)
(
  node["emergency"="fire_hydrant"](area.rafz);
  way["emergency"="fire_hydrant"](area.rafz);
  relation["emergency"="fire_hydrant"](area.rafz);
);

// Alles als Punkte zurückgeben (Nodes + Mittelpunkte)
out center;
Nicht immer sind Gemeindenamen eindeutig. Sucht man also nach Einträgen in “Zürich”, kriegt man alle im Kanton Zürich. Will man aber nur die Hydranten der Stadt Zürich, muss man den admin_level setzen.

// ["admin_level"="8"] steht in der obigen Abfrage bereits – die Zeile ist aber “auskommentiert” (// am Anfang der Zeile) und wird von Overpass nicht beachtet. Um die Zeile zu aktivieren, entfernt man die //.

Man kann aber auch umgekehrt spezifisch den Kanton anwählen (Level 4 statt 8). Genauere Informationen findet man im OSM-Wiki-Artikel “Grenze”.

Hiermit wählen wir alle bereits erfassten Hydranten in der Gemeinde Rafz an.

Es ist auch möglich, die Daten für den ganzen Kanton Zürich auszulesen. Wir empfehlen aber, den Abgleich gemeindeweise vorzunehmen. Der Abgleich wird damit einfacher portionierbar und man kann ihn somit besser unter mehreren Personen aufteilen.

Um die Daten herunterzuladen, müssen wir:

  1. Diese Abfrage in Overpass einfügen

  2. Die Abfrage ausführen (grüner Knopf Ausführen bzwl. engl. Run)

  3. Die Daten herunterladen (Knopf Export) – für QGIS geeignet ist das Format “GeoJSON”.

Overpass-Suchresultate + Bedienungsübersicht
Abbildung 2. Overpass-Suchresultate und Bedienungsübersicht

1.2 Daten Importieren und Plugin kennenlernen

Jetzt, wo wir die OSM-Daten haben, kommen wir einen Schritt weiter: Wir können nun die Daten in QGIS importieren. Hierzu können wir einfach die Dateien ins QGIS-Fenster ziehen (Drag-and-drop).

Wir sind nun soweit, das Plugin kennenzulernen. Man kann es unter Plugin  Go2NextFeature3+ öffnen (1). Es öffnet sich dann in der linken Seitenleiste das Plugin-Fenster (2). Wir müssen sicherstellen, dass wir den Layer mit unseren Daten angewählt haben (3).

Das Fenster sollte nun in etwa so aussehen:

Übersicht Projektfenster mit Plugin
Abbildung 3. Übersicht über das Projektfenster mit aktiviertem Plugin.

Mit den Tasten < und > (4) lassen sich der vorherige bzw. der nächste Datenpunkt anzeigen. Eine der beiden Tasten müssen gedrückt werden, um den ersten Punkt anzuwählen.

Man kann nun etwas mit dem Plugin herumspielen. Der Zoomlevel kann nach Belieben angepasst werden. Er wird beibehalten, wenn man zwischen den Datenpunkten springt.

Für “Update State” braucht es noch weitere Vorbereitungen, welche in Aufgabe 2.4 angeschaut werden.

2 Hydranten mit OSM abgleichen

Diese Aufgabe baut auf Aufgabe 1 auf. Wir nehmen nun den Datensatz von OSM und gleichen ihn mit den Daten der Gebäudeversicherung ab. Dazu stellen wir die Darstellung in QGIS so ein, dass uns der Abgleich möglichst leicht fällt.

Wir importieren zunächst den mit diesem Arbeitsblatt mitgelieferten Datensatz der GVZ: Wir ziehen ihn ins QGIS-Fenster.

Das Zwischenresultat sollte etwa so aussehen:

QGIS-Fenster nach Datenimport
Abbildung 4. QGIS nach Datenimport
Die Reihenfolge im Layers-Panel ist relevant: Elemente bei “Layers” in der linken Seitenleiste können andere Elemente verdecken. Es gilt: Elemente, die höher angeordnet sind, überdecken Elemente, die tiefer eingereiht sind. Daher immer auf die korrekte Reihenfolge achten. Wenn zuerst Aufgabe 1 und dann erst 2 gemacht wird, sind die Daten bereits in der richtigen Reihenfolge angeordnet.

2.1 Datenpunkte besser sichtbar machen

Um die Punkte beim Datenabgleich einfacher erkennbar zu machen, können wir das Symbol für den OSM-Datensatz verändern: Mit Rechtsklick auf OSM-Hydranten-Layer in der linken Seitenleiste  Styles  Edit Symbol…​ erhalten wir die Option, die Darstellung der Punkte anzupassen. Wir verdoppeln die Grösse und setzen die Farbe auf Blau (oder alternativ eine andere Farbe, falls die Daten der GVZ bereits blau dargestellt werden).

die Farbe Gelb sollte nicht gewählt werden, da ausgewählte Punkte ebenfalls gelb markiert werden (s. nächster Schritt)
Beispiel für Symboldarstellung
Abbildung 5. Beispiel für modifizierte Darstellung der Marker für OSM-Hydranten

Wir müssen die Layer in die richtige Reihenfolge bringen, ansonsten kann es sein, dass die OSM-Einträge die der GVZ überlagern und wir sie nicht sehen können.

In der Seitenleiste sollten die Layer in dieser Reihenfolge auftreten (von oben nach unten):

  1. Datensatz der Gebäudeversicherung (“Hydranten_Kt_ZH_GVZ…​”)

  2. OSM-Hydranten (“osm_rafzer_hydranten”)

  3. eventuell Gemeindegrenzen (“boundary_rafz”)

  4. Hintergrundlayer von OSM (“OpenStreetMap”)

Siehe auch Abbildung 6.

Reihenfolge von QGIS-Layer
Abbildung 6. Benötigte Reihenfolge der Layer in QGIS

2.2 Punkte anwählen

Um Go2NextFeaturePlus besser verwenden zu können, wollen wir nur diejenigen Datenpunkte der GVZ anwählen, die in der Gemeinde Rafz sind.

Hier gibt es zwei Varianten:

  1. Manuell: Wir wählen manuell die Punkte an, die etwa innerhalb der Gemeinde sind. Das geht schnell, ist aber ungenauer.

  2. Anhand der Gemeindegrenze: Wir nehmen die genauen Grenzen der Gemeinde. Das ist präziser, erfordert aber mehr Schritte.

2.2.1 Manuell

Die manuelle Variante kann man ganz einfach mittels des Select Features (by Freehand)-Tools umsetzen.

die Option "`Select Features by Freehand`"
Abbildung 7. Position der Option “Select Features by Freehand”
2.2.2 Anhand der Gemeindegrenze

Die Variante mit der Gemeindegrenze benötigt einige zusätzliche Schritte.

Zunächst müssen wir die Gemeindegrenzen kennen. Diese können wir wieder mit Overpass aus OSM extrahieren.

Der Ablauf ist wie zuvor, allerdings mit dieser angepassten Abfrage:

[out:json][timeout:300];

// Wähle Gebiet der Gemeinde Rafz
relation
  ["boundary"="administrative"]
//  ["admin_level"="8"]
  ["name"="Rafz"];

// exportiere gesamte Fläche
out geom;
Es kann sein, dass Overpass zwei Elemente exportiert: 1. Die Fläche der Gemeinde und 2. die Position des Namens der Gemeinde auf der Karte. In diesem Fall müssen wir beim Import nur das Polygon anwählen; es enthält die Fläche der Gemeinde.
Wahldialog bei Import der Gemeindefläche
Abbildung 8. Importdialog bei mehreren Elementen im Overpass-Export der Gemeindefläche

Mithilfe dieses Polygons können wir alle passenden Hydranten in Rafz anwählen. Zunächst passen wir aber die Darstellung etwas an.

Wir bewegen den Layer mit der Gemeindefläche in der Seitenleiste im Bereich “Layers” unter die Hydranten.

Siehe auch Abbildung 6.

Gemeindefläche Position nach Verschieben
Abbildung 9. Position der Gemeindefläche in der Layerhierarchie nach dem Verschieben

Danach verändern wir die Transparenz: Rechtsklick auf den soeben verschobenen Layer, dann Styles  Edit Symbol…​ wählen. Im Dialogfenster reduzieren wir die Deckkraft (Opacity) mithilfe des Schiebereglers (beispielsweise auf 50 %) und wenden die Änderung an (OK).

Anpassung Transparenz Fenster QGIS
Abbildung 10. Symbol Selector in QGIS zur Anpassung der Transparenz

Nun wählen wir die Elemente an. Dazu verwenden wir die Funktion “Select by Location” unter Vector  Research Tools  Select by Location…​ (1).

Im geöffneten Fenster definieren wir, welche Art von Elementen wir auswählen wollen. Wir wollen die Hydranten der GVZ, also wählen wir den entsprechenden Layer aus (2).

Danach legen wir fest, wie diese Elemente gewählt werden. Wir haben die Fläche der Gemeinde Rafz, also reicht es, wenn wir alle Punkte anwählen, die sich darin befinden (3).

Zuletzt müssen wir noch die zu verwendende Fläche auswählen (4) und bestätigen dann mit Run.

Hydranten anhand Gemeindefläche anwählen
Abbildung 11. Übersicht der Funktion “Select by Location” zum Anwählen aller Rafzer Hydranten

Wir können nun optional die Fläche der Gemeinde ausblenden, falls sie stört. Bitte nicht löschen, ansonsten müssen wir bei erneutem Anwählen die Gemeindefläche wieder importieren.

2.3 Daten abgleichen

Falls Aufgaben übersprungen wurden, bitte die Layer-Reihenfolge gemäss Abbildung 6 überprüfen.

Wir sind soweit, dass wir die Daten abgleichen können. Wir benötigen nun das Plugin Go2NextFeaturePlus. Das finden wir in der Menüleiste unter Plugins  Go2NextFeature3+ (1).

Es öffnet sich in der linken Seitenleiste, unterhalb der Layerliste (2). Wir setzen einige Einstellungen, damit es so funktioniert, wie wir wollen: Zunächst wählen wir den Layer, durch dessen Punkte uns das Plugin führen soll (3). Danach setzen wir einen Haken bei “Go to selected features” (4), damit es nur die Hydranten in der Gemeinde Rafz durchgeht – die, die wir zuvor markiert haben. Zu guter Letzt gehen wir zum ersten Hydranten durch Drücken von > (5).

Durch Drücken von << oder >> kommt man zum ersten bzw. zum letzten anwählbaren Punkt.
Das angewählte Element befindet sich jeweils im Zentrum der aktuellen Kartenansicht (im Bild wäre das der Hydrant am südlichen Trottoir der Brüelgass). Das Plugin behält den Zoomlevel bei. Wir können also etwas hineinzoomen, falls es nicht klar ist, welchen Hydranten wir gerade anschauen.
Go2NextFeaturePlus-Übersicht
Abbildung 12. Ansicht QGIS mit Plugin & empfohlene Einstellungen des Plugins für diese Aufgabe

Wir können nun mit dem Abgleichen beginnen.

Wie erkennen wir, dass ein Hydrant noch nicht in OSM eingetragen ist?

Da wir zuvor die Darstellung der Datenpunkte angepasst haben, geht das einfach! Es gibt drei Fälle:

  1. Der Hydrant ist noch nicht in OSM eingetragen

  2. Der Hydrant ist bereits in OSM eingetragen

  3. Der Hydrant ist bereits in OSM eingetragen, aber nicht ganz an der gleichen Stelle

Bei Fall 3 ist es wichtig, genügend hineinzuzoomen. Wenn die Punkte im hineingezoomten Zustand nicht ganz am selben Ort sind, können wir davon ausgehen, dass sie auf denselben Hydranten verweisen; der Abstand zwischen den Punkten beträgt wenige Meter. Zoomen wir leicht hinaus, werden wir feststellen, dass sie wie Fall 2 aussehen. Passiert das nicht, sind es eventuell verschiedene Hydranten.

Bei Hydranten, die in OSM eingetragen sind, aber nicht im GVZ-Datensatz: Da der GVZ-Datensatz aus 2023 stammt, kann es sein, dass die OSM-Daten aktueller sind. Deshalb sollten wir keine Hydranten aus OSM entfernen, nur weil sie im GVZ-Datensatz fehlen.
Verschiedene Abgleichszenarien
Abbildung 13. Verschiedene Möglichkeiten, wie die Punkte beim Abgleichen erscheinen können

Wir unterscheiden im Vorgehen zwischen den Fällen 2 & 3 einerseits und Fall 1 andererseits.

Bei Fällen 2 & 3 sind die Hydranten bereits in OSM erfasst.

Warum passen wir bei Fall 3 die Position nicht an?

Vielleicht fragst du dich, warum wir den OSM-Punkt nicht auf die Position des GVZ-Datensatzes schieben. Ohne weitere Prüfung (Luftbild oder vor Ort) sollten wir die OSM-Position beibehalten, denn:

  • Die Verortung in OSM ist häufig genauer als in Datensätzen Dritter.

  • OSM-Objekte sind oft relativ zu anderen Objekten (z. B. Strassenrand, Hausecke) positioniert. Ein Verschieben auf die "absoluten" Koordinaten des GVZ könnte diese relative Richtigkeit zerstören.

Im Zweifelsfall hilft ein Blick auf ein aktuelles Luftbild oder eine Kontrolle vor Ort.

Der Datensatz der GVZ enthält ausser dem Standort keine weiteren Informationen; wir müssen bei diesen Fällen also nichts mehr machen und können mit > zum nächsten Punkt fortschreiten.

Wenn im Datensatz zusätzliche Informationen zu den Einträgen stehen (zum Beispiel der Betreiber eines Geschäfts oder die Öffnungszeiten), kann man wie in Fall 1 zu OSM gehen und diese Angaben beim bestehenden Eintrag ergänzen.

Bei Fall 1 sind wir auf einen neuen Hydranten gestossen! Diesen wollen wir nun zu OSM hinzufügen. Dazu klicken wir auf Show on OSM im Plugin.

Go2NextFeature "`Show on OSM`" Knopf
Abbildung 14. Knopf “Show on OSM” im Plugin Go2NextFeaturePlus

Damit öffnet sich ein Browserfenster auf osm.org. Achtung, der Punkt ist nur markiert, aber noch nicht eingetragen.

Das Plugin Lat Lon Tools kann so konfiguriert werden, dass es einen direkt in den Editiermodus auf der OSM-Webseite bringt. Man könnte damit also jedes Mal ein paar Klicks sparen.

Um den Punkt einzutragen, müssen wir nun in den Editor wechseln (grüner Knopf Edit oben links). Dafür benötigen wir ein OSM-Konto und müssen angemeldet sein.

OSM-Seite mit markiertem Hydranten
Abbildung 15. OSM-Webseite mit markiertem Hydranten

Im Editor klicken wir dann auf Point und suchen links bei “Select feature type” nach “Hydrant”.

Hydrant hinzufügen im iD-Editor
Abbildung 16. iD-Editor, Übersicht über Hinzufügen eines Hydrantens

Wenn man den Hydrant oder gegebenenfalls mehrere Hydranten eingetragen hat, kann man oben rechts auf Save drücken. In der Seitenleiste (1) muss man dann noch ein paar Angaben machen. Mindestens braucht es einen Kommentar zur Änderung. Wir empfehlen für Einträge in dieser Aufgabe die folgenden Angaben:

Changeset Comment

Hydrant(en) aus GVZ-Daten kontrolliert eingefügt. Daten aus 2023.

Sources

Gebäudeversicherung Kanton Zürich (GVZ)

Hashtags

#OpenSchoolMaps

Das Feld Hashtags muss man erst noch hinzufügen. Man findet die Option im “Add Field”-Abschnitt (siehe Abbildung 17).

Hashtag-Feld hinzufügen
Abbildung 17. Hashtag-Feld hinzufügen via “Add Field”

Wenn man alles eingegeben hat, sollte es etwa wie folgt aussehen:

Hydrant hinzufügen changeset notes
Abbildung 18. Ansicht kurz vor Speicherung des neuen Hydranten

Wenn alles stimmt, drücken wir auf Upload (2). Der Hydrant wurde hinzugefügt. Wir können nun zurück zu QGIS und dort zum nächsten Punkt springen und ihn überprüfen.

Das machen wir so lange, bis wir alle Punkte durchgegangen sind und wir zu keinem neuen Punkt mehr springen können. Der Button > im Plugin wird dann grau.

2.4 Abgeglichene Einträge markieren

Mit der Menge an Hydranten, die im GVZ-Datensatz enthalten sind, wird es schwierig, den Überblick über bereits abgeglichene Einträge zu behalten.

Das Plugin erlaubt uns, den einzelnen Punkten einen Status zu geben. Es verwendet die folgenden Status:

  1. fixed

  2. already fixed

  3. no issue

  4. unknown

  5. undefined (Standardwert)

So könnten wir beispielsweise “fixed” für abgeglichene Hydranten verwenden und “no issue” für solche, die in OSM bereits existieren. Alle, die wir noch nicht besucht haben, haben den Standardwert “undefined”.

Diese Status werden in einem eigenen Feld in den Daten des Layers gespeichert. Dieses Feld müssen wir zuerst selbst erstellen.

Das setzt voraus, dass der Layer editierbar ist: GeoJSON beispielsweise ist es nicht, GPKG schon. Mit Rechtsklick auf den Layer  Export  Save Features As…​ kann man es als GPKG speichern. Mehr dazu in Aufgabe 3.
2.4.1 Feld hinzufügen

Mit Rechtsklick auf den Layer mit den GVZ-Hydranten  Open Attribute Table öffnen wir die Attribute Table. Dort müssen wir den Edit Mode aktivieren (1). Dann fügen wir ein neues Feld hinzu (2).

Übersicht Attribute Table
Abbildung 19. Übersicht der Attribute Table der GVZ-Daten

Im nächsten Fenster Add Field geben wir dem Feld einen Namen (zum Beispiel “Status”) und setzen den Typ auf “Text (string)”. Length belassen wir bei 0. Wir bestätigen mit OK und sollten das neue Feld nun sehen.

Status-Feld hinzufügen
Abbildung 20. Fenster zum Hinzufügen eines Status-Feldes

Wenn alles geklappt hat, können wir die Attribute Table schliessen. Den Edit Mode lassen wir aktiviert; das Plugin muss Daten schreiben können.

Falls wir dazu aufgefordert werden zu speichern, bestätigen wir.

2.4.2 Konfiguration und Nutzung

Das Plugin benötigt noch ein, zwei Klicks, bevor es bereit ist. Der Haken bei Update state muss gesetzt sein und wir müssen unser eben erstelltes Feld auswählen (“Status”) (1).

Möglicherweise muss man der Layer kurz ab- und wieder anwählen, damit man das erstellte Feld bei Update state sieht und anwählen kann.
Unbedingt das richtige Feld anwählen. Wenn wir das falsche Feld auswählen und einen Status setzen, werden die dort enthaltenen Daten überschrieben.

Damit sind wir bereit, die Funktion zu nutzen. Bei jedem Feld können wir nun unten im Plugin den Status setzen (2).

Übersicht Plugin für Status
Abbildung 21. Übersicht des Plugins zur Nutzung der Status-Funktion

Wenn wir fertig bearbeitet haben (das heisst, wenn wir den Edit Mode verlassen oder das Projekt schliessen), müssen wir die Änderungen in das GPKG des Layers speichern. Ansonsten verlieren wir die Status.

Bravo! Wir wissen nun, wie wir Datensätze abgleichen können und wissen, wie wir Daten in OSM eintragen können.

3 Baustellendaten abgleichen (fortgeschritten)

In dieser Aufgabe gleichen wir tagesaktuelle Baustellendaten des Kantons Zürich mit OSM ab. Sie erfordert das Wissen aus den ersten beiden Aufgaben und baut etwas darauf auf.

Nicht nur der Kanton Zürich veröffentlicht Geodaten (zu Baustellen oder auch weitere). Mit dem GeoHarvester kann man nach weiteren Geodaten suchen und die Resultate – wenn gewünscht – auf WFS einschränken.

3.1 Hintergrundlayer anpassen

Da wir in dieser Aufgabe mit einem neuen Datensatz arbeiten, starten wir mit einem neuen Projekt. Dazu klicken wir auf Project  New (oder drücken Ctrl+N).

Die Daten nutzen das Schweizer Koordinatensystem (CH1903+). Beim Import kann es sein, dass die Koordinaten falsch umgewandelt werden und so die Baustellen am falschen Ort dargestellt werden. Das kann unübersichtlich sein und für Verwirrung sorgen. Das umgehen wir, indem wir einen Hintergrundlayer verwenden, welcher bereits das Schweizer Koordinatensystem verwendet. Hierfür benötigen wir einen Hintergrundlayer, welcher darauf Rücksicht nimmt.

Wir verwenden hierzu einen modifizierten OSM-Hintergrundlayer von SOSM. Die URL dazu lautet wie folgt: https://tile.osm.ch/1.0.0/WMTSCapabilities.xml

Um diesen Hintergrundlayer hinzuzufügen, klicken wir mit der rechten Maustaste in der Seitenleiste auf “WMS/WMTS” und wählen New Connection…​.

Im nun geöffneten Fenster benennen wir die Verbindung und fügen den obigen Link ein. Nach Bestätigen mit OK sind die Layer geladen und wir können sie jetzt in der Seitenleiste mit Doppelklicken in unser Projekt einfügen. Wir benötigen mit diesen Daten den Layer “SOSM CH1995”.

Wir sind nun für den Datenimport bereit.

3.2 WFS-Daten importieren

Die Baustellendaten werden vom Kanton unter folgender URL zur Verfügung gestellt: https://maps.zh.ch/wfs/TbaBaustellenZHWFS?service=WFS&version=2.0.0&request=GetFeature&typeName=baustellen-detailansicht

Die Daten erhalten wir im WFS-Format. Glücklicherweise bietet QGIS eine Funktion, diese Daten an der URL abzurufen und zu importieren. Wir müssen nichts manuell herunterladen.

WFS steht für “Web Feature Service”

Diese Funktion finden wir im Data Source Manager (im Menü unter Layer  Data Source Manager).

Dort müssen wir eine neue Verbindung zum Server einrichten (Server Connection). Wir drücken auf New bei Server Connections (Abbildung 23, 1). In der Eingabemaske geben wir der Datenquelle einen Namen und tragen ihre URL ein (Abbildung 22, 1).

Unter WFS-Options empfiehlt es sich, nach der Angabe der URL auf Detect neben Version zu drücken (Abbildung 22, 2). Wir vermeiden damit allfällige Importfehler.

Dann bestätigen wir mit OK (Abbildung 22, 3). Die Verbindung sollte nun erstellt und angewählt sein.

WFS-Verbindung hinzufügen Dialog
Abbildung 22. Dialogfenster zum Hinzufügen einer WFS-Verbindung

Wir verbinden uns damit (drücke auf Connect bei Server Connections) (Abbildung 23, 2).

Die Liste enthält nun einige Einträge für Datensätze. Der Haken bei “Only request features overlapping the view extent” sollte nicht gesetzt sein; wir wollen alle Daten importieren (Abbildung 23, 3). Wir wählen die Detailansicht an und importieren sie durch Drücken auf Add (Abbildung 23, 4).

Data Source Manager – Übersicht
Abbildung 23. Übersicht des Data Source Managers

Im nächsten Fenster wählen wir den einzigen Eintrag an und drücken auf Add Layers, um den Prozess abzuschliessen. Wenn der Datensatz mehrere Layer enthält, könnten wir hier bereits vorsortieren und nur benötigte Layer importieren.

Wir können nun den Data Source Manager schliessen.

3.3 Lokale Kopie der WFS-Daten erstellen (im GPKG-Format)

WFS-Daten werden vom Server abgerufen und aktuell gehalten. Für Statusaktualisierungen (zusätzliches Feld), sonstige Änderungen am Datensatz oder auch einfach für einen lokalen Snapshot (Momentaufnahme) benötigen wir eine entkoppelte Kopie.

Um die Kopie zu erstellen, gehen wir zu unserem WFS-Layer in der Seitenleiste und machen Rechtsklick  Export  Save Features As…​.

Im geöffneten Dialogfenster passen wir im markierten Bereich folgende Werte an (1):

Format

Bei GeoPackage lassen

File name

Dateiname eingeben

Das Feld benötigt einen vollständigen Pfad. Am besten mit …​ den Dateimanager des Systems öffnen und dort den Speicherort anwählen.
Layer name

Gewünschten Namen für den Layer beim Import angeben

CRS

so belassen

Wir möchten mit dieser Kopie arbeiten. Daher stellen wir sicher, dass der Haken bei “Add saved file to map” gesetzt ist (2).

Nun können wir mit OK bestätigen und die Datei speichern.

Feature Export Dialog
Abbildung 24. Übersicht des Export-Dialogs

Den WFS-Layer können wir nun ausblenden oder entfernen (Rechtsklick).

Bei grossen GeoJSON-Dateien kann es sich lohnen, diese in ein GeoPackage (gpkg) umzuwandeln, da dies die Leistung von QGIS erhöht. Gpkg-Dateien enthalten einen Index, der es QGIS bei grossen Datenmengen erleichtert, die sichtbaren Elemente zu laden.

3.4 Tipps zum Abgleichen

Von diesem Punkt an können wir zum Abgleichen die Schritte aus den ersten beiden Aufgaben anwenden (inklusive Overpass). Du bist nun bereit, auch diese Aufgabe selbstständig zu meistern!

Zur Aufgabe noch ein paar hilfreiche Tipps:

  • Unbedingt Quellenangabe (Link) bei Einträgen in OSM angeben.

  • Diese Daten enthalten auch Attribute (zum Beispiel wann der Bau startete und wann er enden wird). Auch bei bereits eingetragenen Baustellen kann man überprüfen, ob in OSM die Daten bereits vollständig sind und sie gegebenenfalls ergänzen.

    Um die Attribute nicht für jedes Objekt einzeln anklicken zu müssen, empfiehlt sich folgender Trick: Wir öffnen die Attributtabelle des Layers (Klick auf das Tabellen-Icon oder F6). Unten links im Tabellenfenster stellen wir den Filter von “Show All Features” (Alle Objekte anzeigen) um auf “Show Selected Features” (Ausgewählte Objekte anzeigen). Da das Plugin den aktuellen Punkt jeweils automatisch auswählt, sehen wir in der Tabelle nun immer direkt die Daten zum gerade bearbeiteten Objekt.

  • Go2NextFeaturePlus:

    • Empfehlung: auf “pan and zoom” stellen, so sieht man das ganze Polygon im Fenster

    • Geeignetes Attribut für “Order by” wählen (zum Beispiel “id”)

  • Baustellen sind temporär: Anders als bei Hydranten verschwinden Baustellen wieder. Handelt es sich um eine Baustelle, die in OSM eingetragen ist, aber in unserem aktuellen Datensatz fehlt? Dann wurde sie vermutlich beendet. Bevor wir den Eintrag in OSM löschen, prüfen wir aber zur Sicherheit die dort hinterlegten Daten (z. B. opening_date oder check_date):

    • Enddatum überschritten: Wir können die Baustelle aus OSM löschen.

    • Enddatum in der Zukunft: Wir lassen den Eintrag bestehen (eventuell ist der Kantons-Datensatz unvollständig oder die Baustelle pausiert).

    • Kein Enddatum vorhanden: Im Zweifelsfall lassen wir den Eintrag bestehen, fügen aber ein fixme-Tag hinzu (z. B. fixme=Baustelle vor Ort prüfen), oder prüfen es selbst vor Ort.

Resultat & Ausblick

Wer dieses Arbeitsblatt durchgearbeitet hat, hat die quelloffene OSM-Karte um wertvolle Daten ergänzt. Vielen Dank! Nur dank der Mithilfe Freiwilliger ist OpenStreetMap so detailliert wie es ist.

Man hat aber auch selber etwas gelernt, insbesondere:

  • das Extrahieren bestehender OSM-Daten mittels Overpass

  • der Umgang mit QGIS und dem Plugin “Go2NextFeaturePlus”, um einen Abgleichprozess mit externen Daten (beispielsweise in Form eines GPKG oder WFS) systematisch durchzuführen,

  • das Erfassen und Eintragen neuer sowie die Ergänzung bestehender Datenpunkte in OSM, samt korrektem Changeset-Kommentar und Quellenangabe.

Die gelernte Vorgehensweise lässt sich für beliebig viele weitere Datensätze verwenden. So könnte man beispielsweise:

  • Hydranten weiterer Gemeinden mit OSM abgleichen

  • Andere Datenthemen prüfen: Das Vorgehen eignet sich auch für viele weitere Punkt- und Flächendatensätze (zum Beispiel Spielplätze, Sitzbänke, Recycling-Standorte oder weitere öffentliche Infrastrukturen)

  • Informationen vervollständigen: Zusätzliche Attribute eines Datensatzes in bestehende OSM-Einträge einfügen (zum Beispiel Betreiber, Öffnungszeiten oder Bau-Enddatum)

Weitere geeignete Daten findet man auf eigens dafür eingerichteten Seiten des Bundes, der Kantone oder der Gemeinden (Stichwort OGD), oder auch im GeoHarvester. Auch staatliche Stellen anderer Länder stellen oftmals OGD-Daten zur Verfügung.

Um bestehende OSM-Daten zu extrahieren, muss man die relevanten Tags kennen. Eine Auflistung vieler Tags findet man im OSM-Wiki im Artikel Map features. Um spezifische Tags zu finden, eignen sich zudem die Suchfunktion im Wiki oder der Tagfinder.

An alle, die mithelfen, OpenStreetMap zu verbessern, an dieser Stelle noch einmal ein grosses Dankeschön – und viel Spass und Erfolg beim Mappen!


Noch Fragen? Wende dich an uns oder an die QGIS-Community!

CC0 (Public Domain) logo Frei verwendbar unter CC0 1.0