12.1. Lesson: GRASS-Einrichtung

Die Nutzung von GRASS in QGIS erfordert etwas Umdenken in Bezug auf die Benutzerschnittstelle. Man arbeit nicht direkt in QGIS sonder in GRASS über QGIS. Stellen Sie daher sicher, dass QGIS Desktop mit GRASS Unterstützung installiert ist.

win To open a QGIS session with GRASS available on Windows you have to click on the QGIS Desktop with GRASS icon.

Ziel dieser Übung: Erstellung eines GRASS Projektes in QGIS.

12.1.1. basic Follow Along: Start einer neuen GRASS Sitzung

To launch GRASS from within QGIS, you need to activate it as with any other plugin:

  1. Öffne zuerst ein neues QGIS Projekt.

  2. Wir schalten dazu im Plugin Manager die Erweiterung GRASS ein:

    ../../../_images/enable_grass.png

    Die GRASS Werkzeugleiste und das GRASS Bedienfeld werden nun angezeigt:

    ../../../_images/grass_toolbar.png

    Abb. 12.10 GRASS Werkzeugleiste

    ../../../_images/grass_panel.png

    Abb. 12.11 GRASS Bedienfeld

Das GRASS Bedienfeld ist noch nicht aktiv. Vorher muss ein Mapset erstellt werden. GRASS arbeit immer in einer Datenbankumgebung. Das bedeutet, dass die Daten die verwendet werden sollen, in die Datenbank importiert werden müssen.

Die GRASS Datenbank hat eine überschaubare Struktur, selbst wenn sie auf den ersten Blick sehr kompliziert wirkt. Am Wichtigsten ist es zu verstehen, dass die oberste Ebene der Datenbank die Location ist. Jede Location kann mehrere verschiedene Mapset enthalten: in jedem Mapset ist das PERMANENT Mapset enthalten. Es wird standardmäßig von GRASS erstellt. Jedes Mapset enthält die Daten (Raster, Vektor usw.) in einer bestimmten Struktur, aber keine Sorge, darum kümmert sich GRASS.

Just remember: Location contains Mapset that contains the data. For more information visit the GRASS website.

../../../_images/grass_database.png

Abb. 12.12 Die GRASS Datenbankstruktur (aus der GRASS Hilfe)

12.1.2. basic Follow Along: Starten eines neuen GRASS Projektes

  1. Klicke im Menü auf Erweiterungen –> GRASS –> Neues Mapset:

    ../../../_images/grass_menu.png

    Du wirst nun nach dem GRASS Datenbankverzeichnis gefragt.

  2. Wir geben das Verzeichnis ein, das GRASS für die Einrichtung seiner Datenbank verwenden wird.

    ../../../_images/grass_folder.png
  3. Klicke auf Weiter.

GRASS muss eine Location erstellen, die die maximale Ausdehnung des Arbeitsgebietes beschreibt und auch GRASS Region genannt wird.

Bemerkung

Die Region ist extrem wichtig für GRASS, da sie das Gebiet beschreibt in dem alle Layer von GRASS berücksichtigt werden. Alles außerhalb wird nicht berücksichtigt. Keine Sorge, man kann die Ausdehnung der GRASS Region immer auch nach der Erstellung ändern.

  1. Wir nennen die neue location SouthAfrica:

    ../../../_images/new_location.png
  2. Klicke auf Weiter.

  3. Wir werden mit WGS 84 arbeiten, d.h. wir suchen und wählen dieses KBS:

    ../../../_images/wgs_84_selected.png
  4. Klicke auf Weiter.

  5. Wähle nun die Region South Africa aus dem dropdown Menü und klicke auf Setzen:

    ../../../_images/set_south_africa.png
  6. Klicke auf Weiter.

  7. Wir erstellen ein mapset, d.h. die Kartendatei in der wir arbeiten.

    ../../../_images/grass_mapset.png

    Wenn wir fertig sind, wird ein Dialogfenster mit einer Zusammenfassung der eingegebenen Informationen angezeigt.

    ../../../_images/grass_final.png
  8. Klicke auf Abschließen.

  9. Klicke in der Erfolgsmeldung auf OK.

Das GRASS Bedienfeld wird jetzt aktiviert und wir können alle GRASS Werkzeuge nutzen.

12.1.3. basic Follow Along: Vektordaten in GRASS laden

Wir haben jetzt eine leere Karte. Bevor wir die GRASS Werkzeuge nutzen können, müssen wir Daten in die GRASS Datenbank laden, d.h. in das Mapset. Man kann GRASS Werkzeuge nicht mit Layern verwenden, die nicht in einem GRASS Mapset geladen sind.

Es gibt verschiedene Möglichkeiten, Daten in die GRASS Datenbank zu laden. Wir beginnen mit der Ersten.

basic Follow Along: Daten mit Hilfe des QGIS Browsers laden

Im Kapitel The Browser Panel sahen wir, dass das Browser Bedienfeld der einfachste Weg ist, um Daten in QGIS zu laden.

GRASS Daten werden vom QGIS Browser als echte GRASS Daten erkannt. Dies erkennt man am GRASS Icon neben dem GRASS Mapset. Außerdem wird das grassMapsetOpen Icon neben einem geöffneten Mapset angezeigt.

../../../_images/grass_browser.png

Bemerkung

Man sieht eine Kopie der GRASS Location als normalen Ordner: die GRASS Mapset Daten liegen im grassLogo Ordner

Layer aus einem Ordner können mit drag and drop einfach in das GRASS Mapset gezogen werden.

Let’s try to import the roads layer into the grass_mapset Mapset of the SouthAfrica Location.

Go to the Browser, and simply drag the roads layer from the training_data.gpkg GeoPackage file into the grass_mapset Mapset.

../../../_images/grass_browser_import.png

Das wars schon. Wenn man das Mapset erweitert, sieht man den importierten Layer roads. Man den importierten Layer nun wie jeden anderen Layer in QGIS laden.

Tipp

Man kann außerdem Layer direkt aus dem Layerinhaltsverzeichnis in ein Mapset im Browser Bedienfeld ziehen. Damit wird der Workflow stark vereinfacht!

basic Follow Along: Daten mit Hilfe des GRASS Bedienfeldes laden

Wir werden nun die lange Methode zum laden des Layers rivers.shp in das Mapset nutzen.

  1. Wir laden wie gewohnt Daten in QGIS und verwenden den Datensatz rivers.shp (zu finden im Ordner exercise_data/shapefile/).

  2. Sobald die Daten in QGIS geladen sind, klicken wir auf den Filter Kasten im GRASS Bedienfeld und suchen das Vektorimportwerkzeug indem wir v.in.ogr.qgis im Filterkasten eingeben:

    Warnung

    Es werden 2 ähnliche Werkzeuge angezeigt: v.in.ogr.qgis und v.in.ogr.qgis.loc. Wir verwenden das erste Werkzeug.

    ../../../_images/grass_panel_import.png

    Das v steht für Vektor, in steht für die Funktion Daten in die GRASS Datenbank zu importieren, ogr ist die Softwarebibliothek die zum Laden von Vektordaten verwendet wird und qgis bedeutet, dass das Werkzeug nach bereits in QGIS geladenen Layern sucht.

  3. Nachdem wir das Werkzeug gefunden haben, klicken wir darauf, um es zu öffnen. Wählen Sie den Layer rivers aus der Auswahlbox Geladener Layer und vergeben für die Ausgabe den Namen g_rivers, um Verwechslungen vorzubeugen:

    ../../../_images/grass_tool_selected.png

    Bemerkung

    hard Beachten Sie, dass mit dem Knopf Fortgeschrittene Optionen einblenden weitere Optionen verfügbar sind. Hier ist Möglichkeit der Einschränkung des Datenimports mit Hilfe einer WHERE Klausel in der zum Import genutzten SQL Abfrage vorhanden.

  4. Klicken Sie auf Starten um den Import zu beginnen.

  5. Drücken Sie nach Abschluss des Imports auf den Knopf Ergebnis visualisieren, um den in GRASS importierten Layer in der Karte anzuzeigen.

  6. Schließen Sie zuerst das Importwerkzeug (Klick auf den Knopf Schließen im rechten Bereich neben dem Knopf Ergebnis visualisieren) und danach das GRASS Werkzeuge Fenster.

  7. Entfernen Sie das Original des Layers rivers.

In unserer QGIS Karte wird jetzt nur noch der in GRASS importierte Layer angezeigt.

12.1.4. basic Follow Along: Rasterdaten in GRASS laden

Rasterdaten importiert man auf dieselbe Weise wie Vektordaten.

Wir werden in das GRASS Mapset den Layer srtm_41_19_4326.tif importieren.

Bemerkung

Der Rasterlayer liegt schon im richtigen KBS WGS 84 vor. Layer mit abweichendem KBS müssen vorher in das KBS des GRASS Mapsets reprojiziert weden.

  1. Laden Sie den Layer srtm_41_19_4326.tif in QGIS

  2. Öffnen Sie erneut das Fenster GRASS Werkzeuge.

  3. Klicken Sie auf den Reiter Module.

  4. Suchen Sie nach r.in.gdal.qgis und klicken doppelt auf das Werkzeug, um sein Dialogfenster zu öffnen.

  5. Geben Sie für den Eingabelayer srtm_41_19_4326.tif und für den Ausgabelayer g_dem vor.

    ../../../_images/g_dem_settings.png
  6. Klicken Sie auf Starten.

  7. Klicken Sie nach dem Abschluss des Prozesses auf Ergebnis visualisieren.

  8. Schließen Sie den Reiter und nocheinmal mit Schließen den gesamten Dialog.

    ../../../_images/g_dem_result.png
  9. Wir können den originalen Layer srtm_41_19_4326.tif nun entfernen.

12.1.5. basic Try Yourself Layer zum Mapset hinzufügen

Versuchen Sie die Vektorlayer water.shp und places.shp aus dem Ordner exercise_data/shapefile/ in das GRASS Mapset zu importieren. Benennen Sie die Layer wie beim vorherigen Import mit g_water und g_places um einer Verwechselung vorzubeugen.

12.1.6. basic Öffnen eines vorhandenen Mapsets

Wenn bereits ein GRASS Mapset vorliegt, können Sie es einfach in einer anderen QGIS-Sitzung öffnen.

Es gibt verschiedene Methoden, ein GRASS Mapset zu öffnen. Wir werden nun einige untersuchen.

Wir shcließen zuerst das Mapset durch Klick auf die Schaltfläche Schließe Mapset im Fenster GRASS-Werkzeuge.

basic Follow Along: Benutzung des GRASS Plugins

  1. Klicken Sie im Menü auf Erweiterungen –> GRASS –> Mapset öffnen über dem Menüeintrag Plugins –> GRASS –> Neues Mapset den wir in der vorherigen Übung verwendet haben.

  2. Gehen Sie zum Ordner mitt der GRASS Datenbank: Seien Sie vorsichtig! Man muss den übergeordneten Ordner auswählen, nicht den Ordner mit dem GRASS Mapset. GRASS liest alle Locations der Datenbank und alle Mapsets einer Location ein:

    ../../../_images/grass_open_mapset1.png
  3. Wählen Sie die Location SouthAfrica und das Mapset grass_mapset das wir vorher erstellt haben.

Das war’s. Das GRASS Bedienfeld wird aktiv, was bedeutet, dass das Mapset korrekt geladen wurde.

basic Follow Along: Verwendung des QGIS Browsers

Noch einfacher kann ein Mapset mit Hilfe des QGIS Browsers geöffnet werden:

  1. Schließen Sie das Mapset (wenn es noch geöffnet ist) durch Klick auf die Schaltfläche Schließe Mapset im GRASS-Werkzeuge Fenster.

  2. Gehen Sie im QGIS Browser zum Ordner der GRASS Datenbank.

  3. Klicken Sie mit der rechten Maustaste auf das Mapset (das Mapset hat das grassLogo GRASS Icon neben dem Namen). Es werden einige Optionen angezeigt.

  4. Klicke Sie auf Mapset öffnen:

    ../../../_images/grass_open_mapset_browser.png

Das Mapset ist nun geöffent und kann verwendet werden!

Tipp

Nach Klick mit rechten Maustaste auf ein Mapset werden viele verschiedene Optionen abgeboten. Untersuchen Sie auch die anderen Optionen.

12.1.7. In Conclusion

Der Arbeitslauf zum Hinzufügen von Daten in GRASS ist etwas abweichend von der QGIS Methode, weil GRASS seine Daten in eine räumliche Datenbank lädt. Trotzdem kann QGIS als Frontend die Verwaltung eines GRASS Mapsets durch die Verwendung von QGIS Layern als Datenquellen für QGIS vereinfachen.

12.1.8. What’s Next?

Jetzt wo die Daten in GRASS importiert sind, können wir uns die erweiterten Analysemöglichkeiten ansehen, die GRASS bietet.