Beschreibung:
Häufig sind die Fragen, die an Geoinformationen gestellt werden, nicht lagebezogen, sondern inhaltlicher Natur. Um diese Fragen zu beantworten, benötigen wir Werkzeuge und Algorithmen, die sich nicht auf die Lage der Geometrien zueinander beziehen, sondern auf die Attribute (= Sachdaten).
Im Ersten Teil des Klicktutorials werden wir zwei Auswahl- bzw. Abfragewerkzeuge kennenlernen, im zweiten Teil werden wir uns mit den unterschiedlichen Verbindungsmöglichkeiten auseinandersetzen.
Lernziele:
Attributive Abfrage/ Auswahl
Methode 1: „Objekte nach Ausdruck wählen…” (SELECT FEATURE USING AN EXPRESSION)
Ähnlich wie bei der lagebezogenen Auswahl gibt es zur attributiven Abfrage (TABLE QUERY) ein Werkzeug in der Auswahlwerkzeugleiste, dass für die Auswahl einzelner Sachdaten genutzt werden kann: **„**Objekte nach Ausdruck wählen…” . Du findest es, wenn du den schwarzen Pfeil neben dem zweiten Symbol in der Leiste drückst.
Diese Auswahlmöglichkeit werden wir jetzt anhand von drei Aufgaben testen:
Frage 1: Wie viele WEA mit einer Leistung über 2000kW/h gibt es in Thüringen?
Frage 2: Wie viele WEA mit einer Leistung unter 800kW/h wurden nach Baujahr 2000 errichtet?
Frage 3: Wie viele WEA des Typs VESTAS V 90 wurden nach Baujahr 2010 errichtet?
Zunächst brauchst du jedoch die Daten, die sich im Ordner „5_tabellen_auswahl_und_verbindungen” befinden. Lade den „lverm_wka”-Layer aus der Thüringen-Geopackage in dein Projekt. Die drei Abfragen beziehen sich alle auf diesen Layer.
Los geht’s:
Erste Frage: Wie viele WEA mit einer Leistung über 2000kW/h gibt es in Thüringen?
"LEISTUNG" > 2000
Zweite Frage: Wie viele WKA mit einer Leistung unter 800kW/h wurden nach Baujahr 2000 errichtet?
"LEISTUNG" < 800 AND "BAUJAHR" > 2000
Dritte Frage: Wie viele WEA des Typs VESTAS V 90 wurden nach Baujahr 2010 errichtet?
"TYP" = 'VESTAS V 90' AND "BAUJAHR" > 2010
Methode 2: „Objekte nach Wert wählen…” (SELECT FEATURES BY VALUE…)
Ein zweiter Weg, eine Auswahl der Sachdaten durchzuführen, ist ein Tool, das sich ebenfalls in der Auswahlwerkzeugleiste befindet und mit dem man oben beschriebene Ausdrücke mithilfe diverser Dropdownmenüs zusammenstellen kann.
Los geht’s:
Aufgabe: Wähle alle WKA aus, deren Rotordurchmesser größer oder gleich 150 Meter ist.
Links daneben befinden sich noch zwei weitere Buttons. Der eine lässt deine Auswahl kurz mehrfach aufleuchten, der andere zoomt das Kartenfenster an die Stelle deiner Auswahl.
Attributive Verbindung
Während wir bisher nur die attributive Auswahl kennengelernt haben, wenden wir uns jetzt der attributiven Verbindung (TABLE JOIN) zu. Mithilfe einer attributiven Verbindung lassen sich Sachdaten aus Tabellen (.csv/ .txt/ .ods…) mit Vektorlayern verknüpfen. Hierfür ist eine gemeinsame Kennung in den zu verbindenden Datensätzen nötig. Zudem müssen beide Datensatze im QGIS-Projekt geladen sein.
Methode 1 - Verknüpfung im Eigenschaftenmenü
Die einfachste Methode, Sachdaten (aus Tabellen) mit Vektorlayern zu verbinden ist die Verknüpfungs-Funktion im Eigenschaften-Menü.
Anders als die feste Verbindung, die wir später als zweite Methode kennenlernen werden, ist diese Verbindung nicht statisch, die Daten innerhalb des QGIS-Projekts passen sich bei Veränderung des verknüpften Datensatzes mit an.
Diese Art der Verbindung ist außerdem nicht permanent. Die Verknüpfungen können über das Einstellungsmenü gelöscht, angepasst oder neu erstellt werden.
Los geht’s:
Aufgabe: Komplettiere die Gemeindegeometrien mit den Informationen zur Einwohnerdichte.
ACHTUNG: Öffne die csv-Datei über die Datenquellverwaltung, wie du es bereits im Basic-Tutorial für die Flughafen-csv gelernt hast. Wenn wir die Datei nur per Drag & Drop in das Projekt laden, dann wird ggf. Der Feldtyp deines Referenzfeldes nicht korrekt erkannt.
Diesmal haben wir es allerdings nur mit einer Tabelle, nicht auch mit Punktkoordinaten zu tun.
Hinweis gemeinsame Kennung:
Bei der Wahl der Referenz, über die die Datensätze zu verknüpfen sind, ist es wichtig darauf zu achten, dass es sich nicht um sich ändernde Daten handelt.
Eine automatisch vergebene ID oder die Einwohnerzahl einer Gemeinde bieten sich hier also nicht als gemeinsamer Marker an. In unserem Beispiel haben die zu verknüpfenden Dateien beide die Spalte „DEBKG_ID”, über die die Layer miteinander verknüpft werden. Dabei handelt es sich um eine fest vergebene Kennung des BKG.
Außerdem müssen nicht nur Feldname und -inhalt, sondern auch die Feldtypen übereinstimmen, um eine Verknüpfung zu gewährleisten.
Dass es sich in unserem Beispiel jeweils um ein Textfeld handelt (STRING), erkennst du an dem kleinen „abc” vor dem Layernamen.
Wunderbar, du hast die Aufgabe gelöst! 😊
Hinweis Änderbarkeit von Tabellendaten:
Die Möglichkeit eine verknüpfte Datei bereits beim Arbeiten mit einem Vektorlayer in QGIS zu editieren spart viel Zeit, da so Sachdaten nicht nachträglich angepasst werden müssen.
Während eine .csv- oder .txt-Datei nicht in QGIS änderbar ist, gibt es einige andere Tabellenformate, die man auch in QGIS bearbeiten kann.
Die einfachste Variante:
Speichert man eine in QGIS geladene .csv-Datei als gpkg-Tabelle ab (beim Exportieren „ohne Geometrie” wählen), erhält man eine veränderbare Tabelle, die nach Fertigstellung der Arbeiten problemlos wieder in das csv-Format umgewandelt werden kann.
Alternative:
Speichere dir deine CSV zunächst als OpenOffice-Tabelle ab (.ods). Diese ist nun via Drag & Drop in dein Projekt ladbar. Die Feldtypen werden dabei automatisch erkannt.
(Du kannst du die Umwandlung von .csv in .ods auch über die Exportoption in QGIS vornehmen.)
Wenn du auch einen Haken bei „Dynamische Form” setzt, werden die Felder automatisch neu geladen, nachdem das Zielfeld geändert wurde.
Herzlichen Glückwunsch, du hast Felder aus einer Tabelle verknüpft und diese sogar editierbar gemacht!
Hinweis: Mit dieser Art der Verknüpfung lassen sich nicht nur Tabellen, sondern auch die Sachdaten von Vektorlayern temporär miteinander verbinden.
Methode 2 - Verknüpfung mit Algorithmus
Während die Verknüpfungs-Option in den Layereigenschaften eines Vektorlayers lediglich eine vorübergehende Verbindung zwischen einem Vektorlayer und beliebig vielen weiteren Vektor- oder Tabellenlayern kreiert, erstellt das „Attribute nach Feldwert verknüpfen”-Werkzeug (JOIN ATTRIBUTES BY FIELD VALUE) einen komplett neuen Layer, der nun auch Sachdaten aus der Tabelle enthält.
Diese Verknüpfungen basieren ebenfalls auf einer gemeinsamen Kennung.
Wir benutzen wieder den „gemeinden”-Layer aus der thueringen-gpkg und die csv-Tabelle um die gleiche Aufgabe wie bei Methode 1 zu lösen.
Los geht’s:
Wenn du am Ende der Zeile „Layer 2 zu kopierende Felder…****” auf die drei Punkte am Ende klickst, öffnet sich ein neues Fenster, in dem die zu kopierenden Felder via Häkchen anwählbar sind.
Setze ein Häkchen bei dem Feld mit der Einwohnerzahl „EWZ”.
Sehr schön, nun hast du auch die zweite Methode zum Verbinden von Sachdaten kennengelernt! :)
Vektorlayer zusammenführen (JOIN) - Verbindung zweier Layer mit gleicher Geometrie, bei der alle Daten übernommen werden
Attribute nach Position zusammenführen = Räumliche Verbindungen (SPATIAL JOIN) - Verbindung zweier Layer mit Hilfe ihrer Lage zueinander
Attribute nach Feldwert verknüpfen (TABLE JOIN/ JOIN ATTRIBUTES BY FIELD VALUE) - erstellt einen Layer mit zusätzlichen Attributen aus einer Tabelle/ einem anderen Layer; hierfür wird ein gemeinsamer Marker benötigt
Attribute nach nächstem Verknüpfen (JOIN ATTRIBUTES BY NEAREST) - Verbindet die Attribute zweier Geometrien, die sich räumlich am nächsten sind in einem neuem Layer; die Distanz wird ebenfalls mit ausgegeben
Zusatzaufgaben:
Hier noch einige Übungsaufgaben zur Vertiefung.
Antworten mit Skizzierung des Lösungsweges:
"STATUS" = 'bestätigte Planung' AND "TYP" LIKE 'VESTAS%'
Tipp: Du kannst dir dafür das mittlere Fenster des Ausdrucksmenüs zur Hilfe nehmen und dir einen Ausdruck mit den Untergruppen „Felder und Werte” sowie „Operatoren” zusammenklicken.
b. Ergebnis: 36 WKA der Firma Vestas sind in Planung.
Hinweis SQL:
Während das AND hier zwei Ausdrücke miteinander verbindet, sorgt das LIKE in Kombination mit dem % dafür, dass alle Objekte mit dem Teilbegriff ‘VESTAS’ im Namen gefunden werden.
LIKE ist ein Operator, der Zeichen für Zeichen vergleicht und den Gebrauch von Platzhaltern (z.B.: %) erlaubt.
= ist ein Operator, der prüft, ob zwei Zeichen gleich sind. Beim Vergleich von Zeichenketten vergleicht er die gesamte Zeichenabfolge; der Einsatz von Platzhaltern ist nicht möglich.
"csv_EWD" > 500
e. Schaue dir die Attributtabelle des Gemeinde-Layers an und bewege mit Hilfe des „Auswahl nach oben”- Buttons deine gewählten Objekte in die obersten Zeilen der Tabelle.
Achte nun auf Einträge im Feld „BEZ”.
f. Ergebnis: Während 10 Objekte ausgewählt werden, handelt es sich nur bei einem um eine Gemeinde (Seebach).