Räumliche Verbindungen erstellen (QGIS3)¶
Die räumliche Verbindung 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.
Aufgabenübersicht¶
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 Verbindung mit Aufsummierung 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-vielen Verbindung 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 freie Daten zu New York city.
Mit Hilfe der Export Option des Portals laden wir folgende Daten herunter: Borough Boundaries.

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

Der Einfachheit halber können wir eine Kopie der Datensätze unter folgenden links herunterladen:
Datenquelle [CITYOFNY]
Arbeitsablauf¶
Gehe im QGIS Browser zur Datei
nybb_19a.zip
und erweitere sie. Wähle den Layernybb_19a/nybb.shp
und ziehe ihn in den Arbeitsbereich. Es handelt sich um einen Polygonlayer mit den Grenzen der Stadtbezirke New York city’s.
Finde als nächstes im QGIS Browser die Datei
V_SSS_SEGMENTRATING_1.zip
und erweitere sie. Wähle den Layerdot_V_SSS_SEGMENTRATING_1_20190129.shp
und füge ihn zum Arbeitsbereich hinzu. Dieser Linienlayer enthält alle Straßen der Stadt.
Wir untersuchen die verfügbaren Attribute der im Layer
dot_V_SSS_SEGMENTRATING_1_20190129
enthaltenen Features. Klicke mit der rechten Maustaste auf den Layer und wähle Attributtabelle öffnen.
Wir sehen ein Attribut mit der Bezeichnung
Rating_B
. Dieses Attribut mit Werten zwischen 0-10 enthält die Bewertung des Zustandes dieses Straßenabschnittes. Das AttributRatingWord
enthält eine beschreibende Bewertung. Wir können das FeldRating_B
nutzen, um die mittlere Bewertung zu bestimmen.
Wir merken, dass für einige Features die Bewertung von
NR
vergeben ist. Diese Abschnitte sind nicht bewertet. Sie in die Analyse mit einzubeziehen, wäre nicht korrekt. Bevor wir die räumliche Verbindung herstellen, erstellen wir einen Filter, um diese Datensätze auszuschließen. Klicke mit der rechten Maustaste auf den Layerdot_V_SSS_SEGMENTRATING_1_20190129
und wähle Filter….
Im Fenster Abfrageerstellung geben wir folgenden Ausdruck ein, um alle Datensätze mit dem Wert
NR
zu selektieren. Man kann den Ausdruck auch interaktiv durch Drücken auf Felder, Operatoren und der Auswahl der passenden Werte erzeugen. Klicke auf OK.
"RatingWord" != 'NR'![]()
Wir merken, dass der Layer
dot_V_SSS_SEGMENTRATING_1_20190129
nun ein Filtersymbol hat, dass einen aktiven Filter für diesen Layer anzeigt. Jetzt können wir eine räumliche Verbindung zum Layer herstellen. Gehe zu .
Suche den Algorithmus
. Klicke doppelt darauf, um ihn zu starten.
Wir wählen Im Dialogfenster Attribute nach Position verknüpfen (Zusammenfassung) den Layer
nybb
als Eingabelayer. Den Layer mit den Straßendot_V_SSS_SEGMENTRATING_1_20190129
tragen wir unter Layer verknüpfen ein. Die Einstellungen unter Geometrisches Prädikat können wir unverändert beischneidet sich mit
belassen. Klicke auf den Knopf … neben Zusammenzufassende Felder.
Bemerkung
Ein Tip, um den korrekten Eingabelayer festzulegen: der Eingabelayer ist derjenige, der durch die räumliche Verbindung durch neue Attribute erweitert wird. Da wir die mittlere Bewertung zum Layer der Stadtbezirke hinzufügen wollen, ist dieser Layer der Eingabelayer.
Wähle
Rating_B
und klicke auf OK.
Klicke analog auf den Knopf … neben Zu berechnende Zusammenfassungen.
Wähle
Durchschnitt
als Operation für die Zusammenfassung und klicke auf OK. Jetzt können wir die Berechnung starten. Klicke auf Starte.
Der Algorithmus verarbeit die Features und erstellt die räumliche Verbindung. Wir vergewissern uns, dass die Verabeitung erfolgreich abgeschlossen wurde und klicken auf Schließen.
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 SpalteRating_B_mean
, die die mittlere Bewertung aller Straßen enthält, die einen Stadtbezirk überschneiden.
Jetzt wenden wir ein umgekehrtes Verfahren an. Manchmal benötigen wir Attribute eines anderen Layers basierend auf dessen räumlicher Beziehung ohne das 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 Features im Straßenlayer den zugehörigen Stadtbezirk zu ermitteln. Bevor wir die Berechnung beginnen, entfernen wir den Filter vom Layerdot_V_SSS_SEGMENTRATING_1_20190129
. Klicke auf das Filtersymbol und drücke im Fenster Abfrageerstellung auf Löschen. Klicke auf OK.
Schalte den Layer
Zusammengefasster Layer
im Layer Bereich ab. Gehe zu in den Verarbeitungswerkzeugen und klicke doppelt darauf, um die Berechnung zu starten.
Wähle
dot_V_SSS_SEGMENTRATING_1_20190129
als Eingabelayer undnybb
als Layer verknüpfen. Wir können die Einstellung Geometrische Prädikat auf der VoreinstellungSchneidet sich mit
belassen. Klicke auf den Knopf … neben Hinzuzufügende Felder und wähleBoroName
. Klicke auf OK.
Ein Linienabschnitt kann u.U. in mehreren Stadtbezirken liegen. Wir wählen daher für Verknüpfungstyp
Separates Objekt für jedes lokalisiertes Objekt erzeugen (eins-zu-vielen)
. Klicke auf Starte.
Nachdem die Berechnung abgeschlossen wurde, öffenen wir die Attributtabelle des neu hinzugefügten Layers
Zusammengefasster Layer
. Wir sehen, dass das neue AttributBoroName
zu jedem Straßenfeature hinzugefügt wurde.