Räumliche Verknüpfungen erstellen (QGIS3)

Die räumliche Verknüpfung ist eine klassische GIS-Problemstellung: der Transfer von Attributwerten eines Layers auf einen anderen basierend auf der räumlichen Beziehung der Layer zueinander. In QGIS steht diese Funktionalität durch den Algorithmus Attribute nach Position verknüpfen zur Verfügung.

Überblick über die Aufgabe

Wir werden 2 Layer verwenden: eine Shapedatei der Stadtbezirksgrenzen von New York City und eine Shapedatei mit der Bewertung des Straßenbelages aller Straßen in New York City. Die erste Aufgabe besteht in der Bestimmung des mittleren Zustands der Straßen je Stadtbezirk. Dabei wird der Algorithmus räumliche Verknüpfung mit Zusammenfassung verwendet. Die zweite Aufgabe besteht darin, zu jeder Straße den Namen des Stadtbezirkes hinzuzufügen. Dies wird mit Hilfe einer räumlichen Eins-zu-viele-Verknüpfung erreicht.

Weitere Fähigkeiten, die wir erlernen

  • Erstellung von Filtern, um bestimmte Features zeitweise von der Berechnung auszuschließen

Beschaffung der Daten

NYC Open Data Portal ist eine exzellente Datenquelle für frei verfügbare Daten zu New York City.

Mit Hilfe der Exportoption des Portals laden wir folgende Daten herunter: Borough Boundaries.

../../_images/data19.png

Mit Hilfe der Export Option des Portals laden wir auch noch diese Daten herunter: Street Pavement Rating.

../../_images/data23.png

Der Einfachheit halber können wir eine Kopie der Datensätze unter folgenden Links herunterladen:

nybb_19a.zip

V_SSS_SEGMENTRATING_1.zip

Datenquelle [CITYOFNY]

Arbeitsablauf

  1. Im QGIS Browser suchen wir die Datei nybb_19a.zip und erweitern sie. Wir wählen den Layer nybb_19a/nybb.shp und ziehen ihn in den Arbeitsbereich. Es handelt sich um einen Polygonlayer mit den Grenzen der Stadtbezirke von New York City.

../../_images/1106.png
  1. Als nächstes erweitern wir die Datei V_SSS_SEGMENTRATING_1.zip und wählen den Layer dot_V_SSS_SEGMENTRATING_1_20190129.shp; auch diesen fügen wir zum Arbeitsbereich hinzu. Dieser Linienlayer enthält alle Straßen der Stadt.

../../_images/2101.png
  1. Wir untersuchen die verfügbaren Attribute der im Layer dot_V_SSS_SEGMENTRATING_1_20190129 enthaltenen Objekte. Per Rechtsklick öffnen wir dasKontextmenü und wählen Attributtabelle öffnen.

../../_images/347.png
  1. Wir sehen ein Attribut mit der Bezeichnung Rating_B. Dieses Attribut mit Werten zwischen 0 und 10 enthält die Bewertung des Zustandes dieses Straßenabschnittes. Das Attribut RatingWord enthält eine beschreibende Bewertung. Wir können das Feld Rating_B nutzen, um die mittlere Bewertung zu bestimmen.

../../_images/420.png
  1. Für einige Objekte ist die Bewertung NR vergeben worden. Diese Abschnitte sind nicht bewertet. Sie in die Analyse mit einzubeziehen, wäre nicht korrekt. Bevor wir die räumliche Verknüpfung herstellen, erstellen wir einen Filter, um diese Datensätze auszuschließen. Dazu öffnen wir per Rechtsklick das Kontextmenü des Layers dot_V_SSS_SEGMENTRATING_1_20190129 und wählen Filter….

../../_images/520.png
  1. Im Fenster Abfrageerstellung geben wir folgenden Ausdruck ein, um alle Datensätze mit dem Wert NR zu selektieren. Man kann den Ausdruck auch interaktiv mithilfe der einträge bzw. Schaltflächen Felder, Operatoren und der Auswahl der passenden Werte erzeugen. Wir betätigen die Schaltfläche OK.

"RatingWord" != 'NR'
../../_images/620.png
  1. Wir merken, dass der Layer dot_V_SSS_SEGMENTRATING_1_20190129 nun ein Filtersymbol hat, welches einen aktiven Filter für diesen Layer anzeigt. Jetzt können wir eine räumliche Verknüpfung zum Layer herstellen und wählen dazu Verarbeitung ‣ Werkzeugkiste.

../../_images/719.png
  1. Wir suchen den Algorithmus Vektoren allgemein ‣ Attribute nach Position verknüpfen (Zusammenfassung) und starten ihn per Doppelklick.

../../_images/819.png
  1. Im Dialogfenster Attribute nach Position verknüpfen (Zusammenfassung) wählen wir den Layer nybb als Eingabelayer. Den Layer mit den Straßen dot_V_SSS_SEGMENTRATING_1_20190129 tragen wir unter Durch Vergleich mit ein. Die Einstellungen unter Ort der Objekte können wir unverändert bei schneidet belassen. Wir betätigen die schaltfläche neben Zusammenzufassende Felder.

../../_images/919.png

Bemerkung

Ein Tipp, um den korrekten Eingabelayer festzulegen: Der Eingabelayer ist derjenige, der durch die räumliche Verknüpfung durch neue Attribute erweitert wird. Da wir die mittlere Bewertung zum Layer der Stadtbezirke hinzufügen wollen, ist dieser Layer der Eingabelayer.

  1. Wir wählen Rating_B und bestätigen mit OK.

../../_images/1026.png
  1. Analog betätigen wir die Schaltfläche neben Zu berechnende Zusammenfassungen.

../../_images/1129.png
  1. Wir wählen Durchschnitt als Operation für die Zusammenfassung und bestätigen mit OK. Jetzt können wir die Berechnung starten und betätigen dazu die Schaltfläche Starte.

../../_images/1227.png
  1. Der Algorithmus verarbeit die Objekte und erstellt die räumliche Verknüpfung. Wir vergewissern uns, dass die Verabeitung erfolgreich abgeschlossen wurde und betätigen die Schaltfläche Schließen.

../../_images/1325.png
  1. Zurück im QGIS-Fenster sehen wir einen neuen Layer Zusammengefasster Layer, der dem Arbeitsbereich hinzugefügt wurde. Wir öffnen die Attributtabelle dieses Layers und bemerken eine neue Spalte Rating_B_mean, die die mittlere Bewertung aller Straßen enthält, die einen Stadtbezirk überschneiden.

../../_images/1423.png
  1. Jetzt wenden wir ein umgekehrtes Verfahren an. Manchmal benötigen wir Attribute eines anderen Layers basierend auf dessen räumlicher Beziehung, ohne dass eine Summenbildung erfolgen muss. Wir können in diesem Fall den Algorithmus Attribute nach Position zusammenführen verwenden. Die Aufgabe besteht darin, für alle Objekte im Straßenlayer den zugehörigen Stadtbezirk zu ermitteln. Bevor wir die Berechnung beginnen, entfernen wir den Filter vom Layer dot_V_SSS_SEGMENTRATING_1_20190129. Dazu klicken wir auf das Filtersymbol und betätigen im Fenster Abfrageerstellung die Schaltfläche Löschen. Wir bestätigen das mit OK.

../../_images/1520.png
  1. Wir schalten die Sichtbarkeit des Layers Zusammengefasster Layer im Layer-Panel ab und wählen in den Verarbeitungswerkzeugen Vektoren allgemein ‣ Attribute nach Position verknüpfen. Den Algorithmus starten wir durch Doppelklick.

../../_images/1619.png
  1. Wir wählen dot_V_SSS_SEGMENTRATING_1_20190129 unter Mit Objekten verknüpfen in und nybb unter Durch Vegleich mit. Wir können die Einstellung Ort der Objekte auf der Voreinstellung schneidet belassen. wir betätigen die Schaltfläche neben Hinzuzufügende Felder, wählen BoroName und bestätigen mit OK.

../../_images/1720.png
  1. Ein Linienabschnitt kann u. U. in mehreren Stadtbezirken liegen. Wir wählen daher für Verknüpfungstyp Separates Objekt für jedes passende Objekt erzeugen (eins-zu-vielen) und betätigen die Schaltfläche Starte.

../../_images/1818.png
  1. Nachdem die Berechnung abgeschlossen wurde, öffenen wir die Attributtabelle des neu hinzugefügten Layers Zusammengefasster Layer. Wir sehen, dass das neue Attribut BoroName zu jedem Straßenobjekt hinzugefügt wurde.

../../_images/1915.png

If you want to give feedback or share your experience with this tutorial, please comment below. (requires GitHub account)