Outdated version of the documentation. Find the latest one here.

GRASS GIS Integration

The GRASS plugin provides access to GRASS GIS (see GRASS-PROJECT Literatur und Internetreferenzen) databases and functionalities. This includes visualization of GRASS raster and vector layers, digitizing vector layers, editing vector attributes, creating new vector layers and analysing GRASS 2D and 3D data with more than 400 GRASS modules.

In diesem Kapitel bekommen Sie eine Einführung in das Plugin und dessen Verwendung. Folgende Funktionen stehen über das GRASS Plugin zur Verfügung, wenn Sie es wie in Abschnitt sec_starting_grass beschrieben laden:

  • grass_open_mapset Mapset öffnen

  • grass_new_mapset Neues Mapset

  • grass_close_mapset Schliesse Mapset

  • grass_add_vector GRASS-Vektorlayer hinzufügen

  • grass_add_raster GRASS-Rasterlayer hinzufügen

  • grass_new_vector_layer Neuen GRASS-Vektorlayer anlegen

  • grass_edit GRASS-Vektorlayer bearbeiten

  • grass_tools GRASS-Werkzeugkiste öffnen

  • grass_region Aktuelle GRASS-Region darstelllen

  • grass_region_edit Aktuelle GRASS-Region bearbeiten

GRASS Plugin starten

To use GRASS functionalities and/or visualize GRASS vector and raster layers in QGIS, you must select and load the GRASS plugin with the Plugin Manager. Therefore go to the menu Plugins ‣ mActionShowPluginManager Manage Plugins, select checkbox GRASS and click [OK].

Sie können wie in Abschnitt sec_load_grassdata beschrieben, direkt Raster- und Vektorlayer aus einer existierenden GRASS-Datenbank Location laden, oder Sie können eine neue GRASS Location erstellten (siehe Abschnitt Eine neue GRASS LOCATION erstellen), Daten in diese neue Location importieren (siehe Abschnitt import_loc_data) und über die GRASS-Werkzeugkiste mit den mehr als 300 GRASS Modulen analysieren (siehe Abschnitt Die GRASS-Werkzeugkiste).

GRASS Layer visualisieren

Wenn das GRASS-Plugin geladen ist, können Sie GRASS Vektor- und Rasterlayer mit den entsprechenden Knöpfen in der Werkzeugleiste laden. Als Beispiel benutzen wir den Alaska Beispieldatensatz (siehe Kapitel Beispieldaten). Dieser enthält eine kleine GRASS LOCATION mit 3 Vektor- und einem Rasterlayer mit Höheninformationen.

  1. Create a new folder grassdata, download the QGIS ‘Alaska’ dataset qgis_sample_data.zip from http://download.osgeo.org/qgis/data/ and unzip the file into grassdata.
  2. Starten Sie QGIS.

  3. Falls noch nicht geschehen, laden Sie das GRASS Plugin. Dazu wechseln Sie in das Menü Erweiterungen ‣ mActionShowPluginManager Erweiterungen verwalten und wählen checkbox GRASS aus. Die GRASS-Werkzeuge erscheinen nun in der Werkzeugleiste.

  4. In the GRASS toolbar, click the grass_open_mapset Open mapset icon to bring up the MAPSET wizard.
  5. Als Gisdbase suchen und wählen Sie bitte den Pfad zum Ordner grassdata.

  6. Sie sollten nun als LOCATION selectstring alaska und als MAPSET selectstring demo auswählen können.

  7. Klicken Sie auf [OK]. Einige weitere, zuvor grau hinterlegte GRASS-Werkzeuge sind nun aktiv.

  8. Klicken Sie auf grass_add_raster GRASS-Rasterlayer hinzufügen, wählen Sie den Layer gtopo30 und drücken Sie auf [OK]. Die Höhendaten werden nun dargestellt.

  9. Click on grass_add_vector Add GRASS vector layer, choose the map name alaska and click [OK]. The Alaska boundary vector layer will be overlayed on top of the gtopo30 map. You can now adapt the layer properties as described in chapter Vektorlayereigenschaften, e.g. change opacity, fill and outline color.
  10. Laden Sie auch noch die weiteren Vektorlayer rivers und airports hinzu und passen Sie deren Layereigenschaften an.

As you see, it is very simple to load GRASS raster and vector layers in QGIS. See following sections for editing GRASS data and creating a new LOCATION. More sample GRASS LOCATIONs are available at the GRASS website at http://grass.osgeo.org/download/sample-data/.

Tipp

Probleme beim Laden von GRASS-Layern

Sollten Sie Probleme beim Laden von GRASS-Layern haben (z.B. beendet sich QGIS unvorhergesehen), dann überprüfen Sie bitte, ob das GRASS-Plugin korrekt geladen ist (siehe Abschnitt sec_starting_grass).

Information zur GRASS-Datenbank

GRASS Daten werden in einem Ordner gespeichert, der als GISDBASE bezeichnet wird. Standardmäßig wird der Ordner grassdata genannt und er muss erstellt worden sein, bevor man beginnt, mit dem GRASS Plugin in QGIS zu arbeiten. Innerhalb dieses Ordners sind die GRASS Daten als Projekte (sog. LOCATION) in Unterordnern organisiert. Jede LOCATION ist durch ein Koordinatenbezugssystem und eine räumliche Grenze (sog. region) definiert und kann darüberhinaus weitere Unterordner MAPSETs besitzen, um die Layer der LOCATION weiter z.B. thematisch oder räumlich zu unterteilen (Neteler & Mitasova 2008 literature_and _web). Um Raster- und Vektorlayer mit den GRASS Modulen zu analysieren, müssen diese zuerst in eine passende GRASS LOCATION importiert werden. (Dies ist nicht ganz korrekt. Mit den GRASS Modulen r.external und v.external können Sie eine ‘read-only’ Verknüpfung zu externen durch GDAL/OGR-unterstützte Layer erstellen, ohne die Daten importieren zu müssen. Da dies aber nicht der normale Weg für GRASS Anfänger ist, wird auf diese Möglichkeit nicht näher eingegangen.).

Figure GRASS location 1:

../../../_images/grass_location1.png

GRASS data in the alaska LOCATION

Eine neue GRASS LOCATION erstellen

Als ein Beispiel möchten wir Ihnen zeigen, wie die GRASS Location des Alaska Beispieldatensatzes erstellt wurde. Das Koordinatenbezugssystem ist Albers Equal Area mit der Einheit ‘feet’. Diese GRASS Location alaska wird für alle GRASS GIS Beispiele verwendet. Es ist also sinnvoll, sich diesen Datensatz zu installieren (siehe Abschnitt Beispieldaten).

  1. Starten Sie QGIS und laden Sie das GRASS Plugin, falls dies noch nicht geschehen ist.

  2. Visualize the alaska.shp shapefile (see Section vector_load_shapefile) from the QGIS alaska dataset Beispieldaten.
  3. In the GRASS toolbar, click on the grass_new_mapset New mapset icon to bring up the MAPSET wizard.
  4. Wählen Sie einen existierenden Ordner mit bereits vorhandenen Locations oder erstellen Sie einen neuen Ordner grassdata für die zu erstellende Location. Klicken Sie auf [Weiter].

  5. We can use this wizard to create a new MAPSET within an existing LOCATION (see section Eine neue GRASS MAPSET erstellen) or to create a new LOCATION altogether. Select radiobuttonon Create new location (see figure_grass_location_2).
  6. Enter a name for the LOCATION - we used ‘alaska’ and click [Next].
  7. Define the projection by clicking on the radio button radiobuttonon Projection to enable the projection list.
  8. We are using Albers Equal Area Alaska (feet) projection. Since we happen to know that it is represented by the EPSG ID 2964, we enter it in the search box. (Note: If you want to repeat this process for another LOCATION and projection and haven’t memorized the EPSG ID, click on the mIconProjectionEnabled CRS Status icon in the lower right-hand corner of the status bar (see Section Arbeiten mit Projektionen)).
  9. Geben Sie unter Filter 2964 ein um die Projektion auszuwählen.

  10. Klicken Sie auf [Weiter].

  11. To define the default region, we have to enter the LOCATION bounds in north, south, east, and west direction. Here we simply click on the button [Set current QGIS extent], to apply the extend of the loaded layer alaska.shp as the GRASS default region extend.
  12. Klicken Sie auf [Weiter].

  13. We also need to define a MAPSET within our new LOCATION. You can name it whatever you like - we used ‘demo’ (when creating a new LOCATION). GRASS automatically creates a special MAPSET called PERMANENT designed to store the core data for the project, its default spatial extend and coordinate system definitions (Neteler & Mitasova 2008 Literatur und Internetreferenzen).
  14. Prüfen Sie alles, damit alles wie gewünscht ist. Klicken Sie auf [Abschliessen].

  15. The new LOCATION ‘alaska’ and two MAPSETs ‘demo’ and ‘PERMANENT’ are created. The currently opened working set is ‘demo’, as you defined.
  16. Beachten Sie, dass einige Werkzeuge des GRASS Plugins grau hinterlegt waren und nun auch zur Verfügung stehen.

Figure GRASS location 2:

../../../_images/create_grass_location.png

Creating a new GRASS LOCATION or a new MAPSET in QGIS

If that seemed like a lot of steps, it’s really not all that bad and a very quick way to create a LOCATION. The LOCATION ‘alaska` is now ready for data import (see section Daten in eine GRASS LOCATION importieren). You can also use the already existing vector and raster data in the sample GRASS LOCATION ‘alaska’ included in the QGIS ‘Alaska’ dataset Beispieldaten and move on to Section Das GRASS Vektormodell.

Eine neue GRASS MAPSET erstellen

Ein Benutzer hat nur Schreibrechte in einer MAPSET, die er selbst erstellt hat. Darüberhinaus kann er die Daten der MAPSETs anderer Benutzer in der aktuellen LOCATION einsehen und für seine Analysen verwenden. Veränderungen finden aber lediglich in seiner eigenen MAPSET statt.

Alle MAPSETs enthalten eine Datei WIND, in der die aktuelle Ausdehnung und die Pixelauflösung der MAPSET gespeichert ist (Neteler & Mitasova 2008 Literatur und Internetreferenzen, siehe Abschnitt Einstellung der GRASS Region).

  1. Starten Sie QGIS und laden Sie das GRASS Plugin, falls dies noch nicht geschehen ist.

  2. In the GRASS toolbar, click on the grass_new_mapset New mapset icon to bring up the MAPSET wizard.
  3. Select the GRASS database (GISDBASE) folder grassdata with the LOCATION ‘alaska’, where we want to add a further MAPSET, called ‘test’.
  4. Klicken Sie auf [Weiter].

  5. We can use this wizard to create a new MAPSET within an existing LOCATION or to create a new LOCATION altogether. Click on the radio button radiobuttonon Select location (see figure_grass_location_2) and click [Next].
  6. Geben Sie den Namen test für die neue MAPSET ein. Im unteren Bereich sehen Sie eine Liste bereits vorhandener MAPSETs und ihre Besitzer.

  7. Klicken Sie auf [Weiter], prüfen Sie die Einstellungen und drücken Sie dann auf [Abschließen].

Daten in eine GRASS LOCATION importieren

This Section gives an example how to import raster and vector data into the ‘alaska’ GRASS LOCATION provided by the QGIS ‘Alaska’ dataset. Therefore we use a landcover raster map landcover.img and a vector GML file lakes.gml from the QGIS ‘Alaska’ dataset Beispieldaten.

  1. Starten Sie QGIS und laden Sie das GRASS Plugin, falls dies noch nicht geschehen ist.

  2. In the GRASS toolbar, click the grass_open_mapset Open MAPSET icon to bring up the MAPSET wizard.
  3. Select as GRASS database the folder grassdata in the QGIS alaska dataset, as LOCATION ‘alaska’, as MAPSET ‘demo’ and click [OK].
  4. Nun klicken Sie auf das Icon grass_toolsGRASS-Werkzeugkiste öffnen, damit die GRASS Werkzeuge (siehe Abschnitt Die GRASS-Werkzeugkiste) zur Verfügung stehen.

  5. Um den Rasterlayer landcover.img zu importieren, drücken Sie auf das Modul r.in.gdal im Modulbaum Reiter. Diese GRASS Module ermöglicht es, GDAL-unterstützte Rasterlayer in eine GRASS LOCATION zu importieren.

  6. Browse to the folder raster in the QGIS ‘Alaska’ dataset and select the file landcover.img.
  7. As raster output name define landcover_grass and click [Run]. In the Output tab you see the currently running GRASS command r.in.gdal -o input=/path/to/landcover.img output=landcover_grass.
  8. Wenn Sie den Text Erfolgreich beendet sehen, klicken Sie auf den Knopf [Ergebnis visualisieren]. Der Layer landcover_grass ist nun in die aktuelle GRASS Location importiert und wird im Kartenfenster angezeigt.

  9. Um den Vektor GML-Layer lakes.gml zu importieren, klicken Sie in der GRASS Werkzeugkiste auf das Modul v.in.ogr im Modulbaum Reiter. Dieses GRASS Modul ermöglicht es, OGR-unterstützte Vektorlayer in eine GRASS LOCATION zu importieren. Der Moduldialog für v.in.ogr erscheint als neuer Reiter.

  10. Browse to the folder gml in the QGIS ‘Alaska’ dataset and select the file lakes.gml as OGR file.
  11. As vector output name define lakes_grass and click [Run]. You don’t have to care about the other options in this example. In the Output tab you see the currently running GRASS command v.in.ogr -o dsn=/path/to/lakes.gml output=lakes\_grass.
  12. When it says Succesfully finished click [View output]. The lakes_grass vector layer is now imported into GRASS and will be visualized in the QGIS canvas.

Das GRASS Vektormodell

It is important to understand the GRASS vector data model prior to digitizing.

GRASS nutzt ein topologisches Datenmodell.

Das bedeutet, dass Flächen nicht als geschlossene Polygone vorhanden sind, sondern als ein oder mehrere Umrandungen (Boundaries). Eine Umrandung (Boundary) zwischen zwei aneinander grenzenden Flächen ist nur einmal digitalisiert worden; beide Flächen teilen sich diese Umrandung. Umrandungen dürfen keine Lücken haben. Eine Fläche besteht also aus einer Umrandung und einem Zentroid, der diese Fläche als ein sog. Labelpunkt mit einer Attributtabelle verknüpft.

Neben den Umrandungen und Zentroiden kann eine Vektorkarte selbstverständlich auch Punkte und Linien enthalten. Alle diese Geometrieelemente können innerhalb ein und dem selben Datensatz enthalten sein. Sie werden in unterschiedlichen ‘Ebenen’ innerhalb von QGIS dargestellt. Auch wenn es möglich ist, Geometrieelemente zu mischen, so ist es eigentlich unüblich und wird normalerweise auch in GRASS GIS nur selten verwendet. Etwa bei Netzwerkanalysen. Im Normalfall sollten Sie versuchen, unterschiedliche Geometrietypen in unterschiedlichen Datensätzen (Layern) zu speichern.

Es ist auch möglich, unterschiedliche Inhalte des gleichen Geometrietyps in verschiendenen Ebenen eines Vektorlayers zu speichern. Beispielsweise können Felder, Wälder und Seen in einem Vektordatensatz gespeichert werden. Angrenzende Seen, Felder und Wälder teilen sich dann die gleiche Umrandung, jedoch haben sie separate Attributtabellen, die über ihre Ebene angesprochen wird. Darüber hinaus können Sie auch Attribute für die Umrandungen vergeben, falls eine Umrandung gleichzeitg einen Weg darstellt. In diesem Fall könnte auch die Umrandung eine separate Attributtabelle haben.

Die ‘Ebene’ eines jeden Objektes wird in GRASS intern als ‘layer’ bezeichnet. Verwechseln Sie dies bitte nicht mit dem Begriff Layer im Sinne einer Karte. Der GRASS Layer (Ebene) wird durch Zahl repräsentiert. Wenn mehr als ein Layer im Datensatz enthalten ist; beim obigen Beispiel wären es 3 Layer (Felder, Wälder und Seen), gäbe es drei Layer (1,2 und 3). Derzeit werden nur Nummern als Layername unterstützt, in kommenden GRASS-Versionen werden auch Namen möglich sein.

Attribute können in externen Datenbanktabellen abgelegt werden, beispielsweise DBase, PostgreSQL, MySQL, SQLITE3, etc.

Die Attribute in den Tabellen werden über ein sog. ‘Kategoriefeld’ an die Geometrien des Datensatzes gehängt.

Die ‘Kategorie’ (oder key, ID, etc) ist eine Ganzzahl, über die eine Verknüpfung zwischen den Geometrien und den Spalten in der Datenbanktabelle hergestellt wird.

Tipp

Das GRASS Vektormodell verstehen

The best way to learn the GRASS vector model and its capabilities is to download one of the many GRASS tutorials where the vector model is described more deeply. See http://grass.osgeo.org/documentation/manuals/ for more information, books and tutorials in several languages.

Einen neuen GRASS Vektorlayer erstellen

Einen neuen GRASS Vektorlayer können Sie erstellen, indem Sie auf das Icon grass_new_vector_layer Neuen GRASS-Vektorlayer anlegen in der GRASS Werkzeugleiste klicken. Geben Sie einen Namen in der Textbox für den neuen GRASS Vektorlayer an und Sie können in dem Layer neue Geometrien erzeugen, wie in Abschnitt Digitalisieren und Editieren eines GRASS Vektorlayers beschrieben.

In GRASS it is possible to organize all sort of geometry types (point, line and area) in one layer, because GRASS uses a topological vector model, so you don’t need to select the geometry type when creating a new GRASS vector. This is different from Shapefile creation with QGIS, because Shapefiles use the Simple Feature vector model (see Section Creating new Vector layers).

Tipp

Erstellen einer Attributtabelle für einen neuen GRASS Vektorlayer

Wenn Sie für ihre digitalisierten Geometrien auch eine Attributtabelle erstellen wollen, müssen Sie nach dem Anlegen des GRASS-Vektorlayers eine Attributtabelle mit entsprechenden Spalten erstellen, bevor Sie mit dem Digitalisieren beginnen (siehe figure_grass_digitizing_5).

Digitalisieren und Editieren eines GRASS Vektorlayers

Die Digitalisierwerkzeuge für GRASS-Vektorlayer werden über den Knopf grass_edit GRASS-Vektorlayer bearbeiten in der GRASS-Werkzeugleiste gestartet. Dazu müssen Sie den zu bearbeitenden Layer in der Legende auswählen, bevor Sie auf den Editier-Knopf drücken. Abbildung figure_grass_digitizing_2 zeigt den Dialog für die GRASS Digitalisierung. Die einzelnen Werkzeuge werden im folgenden Kapitel beschrieben.

Tipp

Polygone in GRASS digitalisieren

Wenn Sie ein Polygon innerhalb eines GRASS Vektorlayers erstellen wollen, digitalisieren Sie zuerst die Grenze (Boundary) der Fläche mit der Moduseinstellung ‘Keine Kategorie’. Danach fügen Sie einen Zentroid (Labelpunkt) mit der Moduseinstellung ‘Nächst folgender Kategoriewert’ hinzu. Der Grund ist, dass in topologischen Layern die Attributinformationen einer Fläche immer mit dem Zentroiden und nicht mit der Grenze verknüpft werden.

Werkzeugleiste

Abbildung figure_grass_digitizing_1 zeigt die GRASS Digitalisierwerkzeuge. Tabelle table_grass_digitizing_1 beschreibt die damit zur Verfügung stehenden Funktionalitäten.

Figure GRASS digitizing 1:

../../../_images/grass_digitizing_toolbar.png

GRASS Digitizing Toolbar

Icon

Werkzeug

Zweck

grass_new_point

Neuer Punkt

Digitalisiert neuen Punkt

grass_new_line

Neue Linie

Digitalisiert neue Linie

grass_new_boundary

Neue Grenze

Digitalisiert neue Grenze (zum Beenden ein neues Werkzeug wählen)

grass_new_centroid

Neuer Zentroid

Digitalisiert neuen Zentroiden (Labelpunkt für eine existierende Fläche)

grass_move_vertex

Verschiebe Vertex

Wählt einen Stützpunkt einer existierenden Linie oder Umrandung und setzt diesen an eine neue Position

grass_add_vertex

Vertex hinzufügen

Fügt einen Stützpunkt zu einer existierenden Linie hinzu

grass_delete_vertex

Lösche Vertex

Löscht einen Stützpunkt von einer existierenden Linie (Bestätigung der Auswahl durch einen weiteren Klick nötig)

grass_move_line

Verschiebe Element

Wählt existierende Grenze, Linie oder Zentroiden und verschiebt sie an eine neue Position

grass_split_line

Unterteile Linie

Teilt eine existierende Linie in zwei Teile

grass_delete_line

Element löschen

Löscht eine existierende Geometrie inklusive des Eintrags in der Attributtabelle (Bestätigung der Auswahl durch einen weiteren Klick nötig).

grass_edit_attributes

Editiere Attribute

Editiert Attribute eines existierenden Objekts (Beachten Sie, dass ein Objekt mehrere Feature repräsentieren kann, siehe oben)

grass_close_edit

Schließen

Beendet die Bearbeitung (und aktualisiert die Topolgie anschließend)

Tabelle GRASS Digitizing 1: GRASS Digitalisierwerkzeuge

Reiter Kategorie

In dem Reiter Kategorie können Sie einstellen, in welcher Weise Kategoriewerte neuen Objekten oder neue Kategoriewerte vorhandenen Objekten zugewiesen werden sollen.

Figure GRASS digitizing 2:

../../../_images/grass_digitizing_category.png

GRASS Digitizing Category Tab

  • Modus: Welcher Kategoriewert soll der Geometrie zugewiesen werden.

    • Nächst folgender Kategoriewert - der nächste Kategoriewert, der noch nicht im Vektordatensatz benutzt wird.

    • Manueller Eintrag - Manuelles Eintragen der Kategoriewerte im ‘Kategorie’-Eingabgefeld vornehmen.

    • Keine Kategorie - digitalisiere Geometrie ohne Angabe eines Kategoriewertes. Dies wird z.B. beim Digitalisieren einer Grenzlinie eines Polygons verwendet.

  • Kategorie - eine Nummer (ID), die dem digitalisierten Objekt zugewiesen wird und auf einen Eintrag in der Attributtabelle verweist.

  • Layer - Objektidentifikation über die GRASS-Ebene (layer). Der Standardlayer in GRASS ist 1.

Tipp

Erzeugen von weiteren GRASS ‘Layern’ mit QGIS

Wenn Sie weitere Ebenen (Layer) ihrem Datensatz hinzufügen wollen, so können Sie einfach eine neue Zahl in das ‘Layer’-Feld eintippen und im Anschluss Return drücken. Im Reiter ‘Tabelle’ können Sie nun eine neue Attributtabelle erstellen und diese mit dem neuen ‘Layer’ verbinden.

Reiter Einstellungen

Der Reiter Einstellungen erlaubt das Setzen der Fangtoleranz in Bildschirmpixeln. Dies ist der Schwellenwert in Pixeln, innerhalb dessen neu digitalisierte Knotenpunkte an vorhandene Knoten gesnappt werden. Dies hilft, Lücken oder Überlagerungen zwischen Objekten zu vermeiden. Der Standardwert ist auf 10 Pixel eingestellt.

Figure GRASS digitizing 3:

../../../_images/grass_digitizing_settings.png

GRASS Digitizing Settings Tab

Darstellung Reiter

Der Reiter Darstellung erlaubt die Farbeinstellungen für die verschiedenen Geometrietypen und ihren Topologiestatus (z.B. offene/geschlossene Fläche).

Figure GRASS digitizing 4:

../../../_images/grass_digitizing_symbology.png

GRASS Digitizing Symbolog Tab

Reiter Tabelle

Der Reiter Tabelle gibt Informationen über die Attributtabelle des aktuellen Layers. In diesem Reiter können Sie eine Attributtabelle hinzufügen, modifizieren oder eine neue Tabelle erstellen (siehe Abschnitt Einen neuen GRASS Vektorlayer erstellen).

Figure GRASS digitizing 5:

../../../_images/grass_digitizing_table.png

GRASS Digitizing Table Tab

Tipp

GRASS Schreibberechtigung

Um einen Datensatz zu editieren, müssen Sie der Besitzer des aktuellen GRASS-Mapsets sein. Es ist nicht möglich, Karten aus einem Mapset zu editieren, das Ihnen nicht ‘gehört’, auch wenn Sie auf Dateisystemebene die Schreibrechte haben.

Einstellung der GRASS Region

The region definition (setting a spatial working window) in GRASS is important for working with raster layers. Vector analysis is by default not limited to any defined region definitions. But all newly-created rasters will have the spatial extension and resolution of the currently defined GRASS region, regardless of their original extension and resolution. The current GRASS region is stored in the $LOCATION/$MAPSET/WIND file, and it defines north, south, east and west bounds, number of columns and rows, horizontal and vertical spatial resolution.

Es ist auch möglich, die Region mit dem Knopf grass_region Aktuelle GRASS-Region darstellen aus- bzw. einzusschalten.

Um die aktuelle GRASS-Region zu ändern, benutzen Sie den Knopf grass_region_editAktuelle GRASS-Region editieren. Dort haben Sie die Möglichkeit, die Region zu verändern sowie das Aussehen der Regionsdarstellung. Wenn der Dialog sichtbar ist, können Sie die Region neben der einfachen Koordinateneingabe auch interaktiv mit der Maus im Kartenbild verändern. Die Koordinaten werden dann automatisch angepasst, sobald Sie den Dialog mit dem Knopf [OK] schließen.

Das GRASS Modul g.region bietet viele weitere Optionen zur Einstellung der passenden Ausdehnung und Auflösung der Region für die Rasteranalyse. Das Modul g.region können Sie über die GRASS Werkzeugkiste nutzen, wie in Kapitel Die GRASS-Werkzeugkiste beschrieben.

Die GRASS-Werkzeugkiste

Die grass_tools GRASS-Werkzeugkiste ermöglicht es, GRASS Module auf Daten innerhalb einer ausgewählten GRASS LOCATION und MAPSET anzuwenden. Dazu muss im Vorfeld eine GRASS LOCATION und MAPSET geöffnet werden, in der Sie Schreibrechte besitzen. Dies ist normalerweise garantiert, wenn Sie die MAPSET selbst erstellt haben und notwendig, damit die Ergebniskarten der Raster- und Vektoranalysen in der ausgewählten MAPSET gespeichert werden können.

Figure GRASS toolbox 1:

../../../_images/grass_toolbox_moduletree.png

GRASS Toolbox and Module Tree nix

Die GRASS Shell der Werkzeugkiste bietet Zugriff auf fast alle (mehr als 330) GRASS Module über die Kommandozeile. Um eine benutzfreundliche Umgebung zu bieten, sind davon etwa 200 Module graphisch auswählbar und bieten einen Dialog in Form eines zusätzlichen Reiters in der Werkzeugkiste.

Arbeiten mit GRASS Modulen

Das GRASS Shell Modul in der Werkzeugkiste bietet Zugriff auf fast alle in GRASS GIS vorhandenen Module (mehr als 330). Um die Verwendung benutzerfreundlicher zu gestalten, sind etwa 200 Module über grafische Dialoge in die Werkzeugkiste integriert. Diese Module sind thematisch untergliedert, können aber auch durchsucht werden.

A complete list of GRASS modules available in the graphical Toolbox in QGIS version 2.0 is available in the GRASS wiki (http://grass.osgeo.org/wiki/GRASS-QGIS_relevant_module_list).

Es ist außerdem möglich, die GRASS Werkzeugkiste anzupassen und weitere Module zu integrieren. Die Herangehensweise ist in Abschnitt Anpassen der Module beschrieben.

Wie in Abbildung figure_grass_toolbox_1 zu sehen, können Sie nach dem passenden GRASS Modul in dem Reiter Modulbaum nachschauen oder im Reiter Modulliste suchen.

Wenn Sie auf das grafische Icon eines Modules klicken, öffnet sich ein neuer Moduldialog mit drei Reitern Optionen, Ergebnis und Handbuch.

Optionen

Der Reiter Optionen stellt Ihnen in vereinfachter Form die unbedingt notwendigen Eingabeparameter zur Verfügung, die das Modul zum Laufen benötigt.

Figure GRASS module 1:

../../../_images/grass_module_option.png

GRASS Toolbox Module Options nix

Bitte beachten Sie, dass diese Eingabefelder extra so einfach wie möglich gehalten wurden, um die Struktur klar zu halten. Falls Sie alle vom Modul unterstützten Parameter benötigen, nutzen Sie die GRASS-Eingabeshell, in der Sie das Modul ebenfalls aufrufen können.

A new feature since QGIS 1.8 is the support for a show advanced options button below the simplified module dialog in the Options tab. At the moment it is only added to the module v.in.ascii as an example use, but will probably be part of more / all modules in the GRASS toolbox in future versions of QGIS. This allows to use the complete GRASS module options without the need to switch to the GRASS Shell.

Ergebnis

Figure GRASS module 2:

../../../_images/grass_module_output.png

GRASS Toolbox Module Output nix

Der Reiter Ergebnis stellt die Ausgabe des Moduls zur Laufzeit dar. Nachdem Sie den Knopf [Los] gedrückt haben, wird auf diesen Reiter gewechselt und Sie sehen die Statusausgaben des Moduls. Wenn alles funktioniert hat, sehen Sie den Ausgabetext Erfolgreich beendet.

Handbuch

Figure GRASS module 3:

../../../_images/grass_module_manual.png

GRASS Toolbox Module Manual nix

Der Reiter Handbuch enthält die Hilfeseite zu jedem GRASS-Modul. Falls Sie weitergehende Informationen zum gewählten Modul benötigen, schauen Sie in diese Hilfeseite. Dabei werden Sie feststellen, dass viele Module mehr Parameter haben, als im Reiter Optionen zu sehen sind. Das ist gewollt. Um die GUI möglichst einfach zu halten, sind nur die nötigsten Optionen übernommen worden. Natürlich stehen Ihnen alle Optionen des Moduls direkt in der GRASS-Eingabeshell zur Verfügung. Am Ende jeder Hilfeseite finden Sie weitere Links zum Main Help index, dem Thematic index und dem Full index. Diese enthalten alle Informationen, die Sie ansonsten über das Modul g.manual finden.

Tipp

Ergebnisse direkt anzeigen

Wollen Sie Ihre Ergenisse direkt in der Kartenansicht ansehen, nutzen Sie den Knopf ‘Ergebnis visualisieren’ im unteren Bereich des jeweiligen Modulreiters

GRASS Beispielanwendung

Die folgenden Beispiele sollen die Anwendung verschiedener GRASS Module demonstrieren.

Höhenlinien aus einem DGM erstellen

Im ersten Beispiel sollen automatisiert Höhenlinien auf Basis eines Höhenmodells (DGM) erstellt werden. Dabei gehen wir davon aus, dass Sie die Alaska LOCATION auf dem Rechner installiert ist, wie in Abschnitt Daten in eine GRASS LOCATION importieren beschrieben.

  • Als erstes öffnen Sie die Location, indem Sie auf das grass_open_mapsetMapset öffnen Icon klicken und dann die Alaska Location auswählen.

  • Nun laden Sie den gtopo30 Rasterlayer, indem Sie auf das Icon grass_add_rasterGRASS-Rasterlayer hinzufügen klicken und den Layer gtopo30 aus der Alaska Location auswählen und laden.

  • Als nächstes drücken Sie auf das Icon grass_tools GRASS-Werkzeugkiste öffnen.

  • Im Reiter Modulbaum wechseln Sie mit der Maus in den Bereich Raster ‣ Oberflächenverwaltung ‣ Vektorkonturlinien erzeugen.

  • Mit einem einfachen Klick auf r.contour öffnet sich das Modul in einem neuen Reiter, wie unter Arbeiten mit GRASS Modulen beschrieben. Der gtopo30 Rasterlayer sollte nun automatisch im Feld Name der Eingaberasterkarte erscheinen.

  • Geben Sie im Feld Abstand zwischen den Kontourintervallen selectnumber den Wert 100 an. (Dadurch werden Höhenlinien in einem Abstand von 100m erstellt.)

  • In das Feld Name der Vektorausgabekarte geben Sie den Namen hoehen_100 an.

  • Click [Run] to start the process. Wait for several moments until the message Successfully finished appears in the output window. Then click [View Output] and [Close].

Da die aktuelle GRASS Region ziemlich groß ist, kann es eine Weile dauern, bis der Layer vollständig dargestellt wird. Danach können Sie noch die Layereigenschaften verändern und eine Farbe für die Linien auswählen, die sich deutlich vom Höhenmodell unterscheidet, siehe Vektorlayereigenschaften.

Als nächstes zoomen Sie in einen bergigen Bereich im Zentrum Alaskas. Wenn Sie weit genug in die Karte hineingezoomt sind, werden Sie erkennen, dass die Höhenlinien teilweise sehr eckig erscheinen. Um das Erscheinungsbild zu optimieren, bietet GRASS ein Modul mit dem Namen v.generalize. Dabei wird mit Hilfe des Douglas Peuker Algorithmus und der einer Reduktion der Stützpunkte eine Glättung der Linien erreicht, ohne die Geometrien zu zerstören. Da der Ergebnislayer weniger Stützpunkte hat, ist er auch kleiner und kann schneller geladen werden. Die Analyse wird z.B. angewendet, wenn man sehr detailierte Daten nur in einem kleinen Maßstab anzeigen möchte.

Tipp

Geometrien in QGIS vereinfachen

QGIS stellt mit den fTools auch ein Werkzeug Geometrien vereinfachen zur Verfügung. Es funktioniert genau wie der Douglas-Peuker Algorithmus im GRASS Modul v.generalize.

In diesem Beispiel wollen wir nun aber etwas anderes erreichen. Die Höhenlinien, die wir mit r.contour erstellt haben, zeigen teilweise sehr scharfe Winkel, die wir glätten möchten. Unter den Algorithmen des Moduls v.generalize befindet sich auch der Chaikens-Algorithmus (), der exakt das macht, was wir möchten. Achten Sie aber darauf, dass es passieren kann, dass Stützpunkte nicht nur eliminiert sondern auch hinzugefügt werden können. Dadurch kann der Layer wieder langsamer geladen werden.

  • Öffnen Sie die GRASS-Werkzeugkiste, wechseln Sie in den Bereich Vektor ‣ Karte entwickeln ‣ Generalisierung, und klicken dann auf das v.generalize Modul.

  • Stellen Sie sicher, dass ‘hoehen_100’ als Vektorlayer in Feld Name der Vektoreingabekarte erscheint.

  • Aus der Liste möglicher Algorithmen wählen Sie nun Chaiken’s. Belassen Sie alle weiteren Optionen wie sie sind und gehen Sie zum Ende des Dialogs, wo Sie als Name der Vektorausgabekarte ‘hoehen_100_smooth’ angeben. Drücken Sie nun auf [Starten].

  • Der Prozess dauert eine Weile. Sobald Erfolgreich beendet im Reiter Ergebnis erscheint, drücken Sie wieder auf [Ergebnis visualisieren] und dann auf [Schließen].

  • Ändern Sie nun auch die Farbe des neuen Layers, damit er sich deutlich von dem Höhenmodell und den zuvor berechneten Höhenlinien abhebt. Sie werden erkennen, dass die Kanten der neuen Höhenlinien wesentlich weicher gezeichnet sind.

Figure GRASS module 4:

../../../_images/grass_toolbox_vgeneralize.png

GRASS module v.generalize to smooth a vector map nix

Tipp

Vektorlinien glätten mit dem GRASS Modul v.generalize

Die oben beschriebene Anwendung kann auch in anderen Situationen verwendet werden. Wenn Sie z.B. eine Rasterkarte mit Niederschlagswerten haben, können Sie mit r.contour einen Isohyetallayer erstellen.

Erstellen eines 3D Schummerungseffekts

Es gibt verschiedene Methoden, um Höhenlayer anzuzeigen und ihnen einen 3D Schummerungseffekt zu verleihen. Der Gebrauch von Höhenlinien ist eine populäre Methode, die häufig angewendet wird, um topographische Karten zu erstellen. Eine andere Möglichkeit, um einen 3D Effekt zu erzeugen ist, bietet das Hillshading. Der Effekt basiert dabei auf einem Höhenmodell. Dabei wird zuerst die Hangneigung- und richtung der Zellen bestimmt und dann durch die Simulation des Sonnenstandes eine Reflexionswert erzeugt. Dadurch werden der Sonne zugewandte Bereiche aufgehellt und der Sonne abgewandte Bereiche (im Schatten) dunkler dargestellt.

  • Laden Sie zuerst den Rasterlayer gtopo30. Öffnen Sie die GRASS-Werkzeugkiste, wechseln Sie in den Bereich Räumliche Analysen ‣Geländeanalyse.

  • Nun klicken Sie auf r.shaded.relief, um den Modulreiter zu öffnen.

  • Ändern Sie den Wert im Feld Winkel der Sonne in Grad östlich von der Nordrichtung selectnumber 270 auf 315.

  • Geben Sie als Name der Schummerungskarte den Namen gtopo30_shade an und klicken Sie auf [Starten].

  • Nachdem die Karte berechnet wurde, visualisieren Sie sie und setzen Sie die Farbe des Rasterlayers auf Graustufen.

  • Um die Schummerung und das Höhenmodell gtopo30 zu sehen, ziehen Sie die Schummerungskarte in der Legende unter das Höhenmodell. Öffnen Sie dann den Dialog Layereigenschaften der Karte gtopo30, und ändern Sie die Transparenz im Reiter Transparenz auf den Wert 25%.

Die Höhenkarte gtopo30 wird nun als Farbkarte leicht transparent über der Schummerungskarte angezeigt. Dadurch entsteht ein visueller 3D Effekt. Um den Unterschied besser zu erkennen, wechseln Sie über das Kontrollkästchen den Anzeigemodus der Schummerungskarte in der Legende und wieder zurück.

Die GRASS Kommandozeile verwenden

Das GRASS Plugin in QGIS stellt die GRASS Module oftmals in vereinfachter Form und auch nicht vollständig bereit. Es ist also grundsätzlich für Anwender gestaltet, die sich nicht so gut mit GRASS und all seinen Fähigkeiten auskennen oder nur einfacher Analysen durchführen wollen. Daher werden in den grafischen Moduldialogen oftmals nicht alle Optionen und Parameter, die das GRASS Modul bieten bereitgestellt, um den Umgang einfacher und intuitiver zu gestalten. Wer tiefer in GRASS einsteigen möchte, er hat die Möglichkeit, sämtliche Funktionalitäten und Module über die GRASS Kommandozeile (GRASS Shell) anzusprechen. In dem folgenden Beispiel soll eine zusätzliche Option des Moduls r.shaded.relief angesprochen werden, die nur über die Kommandozeile genutzt werden kann.

Figure GRASS module 5:

../../../_images/grass_toolbox_shell.png

The GRASS shell, r.shaded.relief module nix

Das Modul r.shaded.relief stellt einen zusätzliche Parameter zmult bereit, über den der Höhenwert relativ zu den X-Y Werten multipliziert werden kann. Dadurch wird der Schummerungseffekt noch prägnanter.

  • Laden Sie das Höhenmodell gtopo30 wie im vorherigen Beispiel. Öffnen Sie die GRASS-Werkzeugkiste und klicken auf die GRASS Shell. In das Kommandozeilenfenster tippen Sie folgenden Befehl r.shaded.relief map=gtopo30 shade=gtopo30_shade2 azimuth=315 zmult=3 und drücken dann die Taste Enter.

  • Wenn die Berechnung abgeschlossen ist, wechseln Sie den Reiter Browser und Doppelklicken Sie auf die neu erstellte Karte gtopo30_shade2, um Sie in QGIS anzuzeigen.

  • Visualisieren Sie die Karten wie in dem obigen Beispiel beschrieben. Sie sollten dabei erkennen, dass der Schummerungseffekt stärker ist, wenn der zmult Parameter verwendet wird.

Figure GRASS module 6:

../../../_images/grass_toolbox_shadedrelief.png

Displaying shaded relief created with the GRASS module r.shaded.relief nix

Rasterstatistik auf Basis eines Vektorlayer berechnen

Das folgende Beispiel zeigt, wie man univariate Statistik für Rasterwerte innerhalb von Vektorpolygonen berechnen kann und die Werte in neue Attributspalten des Vektorlayers hinzufügt.

  • Verwenden Sie wieder die Alaska Location (siehe Abschnitt Daten in eine GRASS LOCATION importieren), und importieren Sie das Shapefile trees aus dem Ordner shapefiles nach GRASS.

  • Als erstes müssen dem Layer trees Zentroide (Labelpunkte) hinzugefügt werden. Dadurch wird es ein korrekter topologischer Datensatz, bei dem an die Labelpunkte die Attribute aus der statistischen Analyse angehängt werden können.

  • Wählen Sie aus der GRASS-Werkzeugkiste Vektor ‣ Karte entwickeln ‣Objekte verwalten, und öffnen Sie das Modul v.centroids.

  • Geben Sie als Name für die Ausgabe-Vektorkarte ‘forest_areas’ an und starten Sie das Modul.

  • Nun laden Sie den neuen Layer forest_areas und visualisieren Sie die verschiedenen Waldtypen in verschiedenen Farben - deciduous, evergreen und mixed. Dazu öffnen Sie den Dialog Eigenschaften des Layers, wechseln zum Reiter Darstellung, wählen selectstring ‘Eindeutiger Wert’ und setzen das Klassifikationsfeld auf ‘VEGDESC’ (siehe auch Abschnitt sec_symbology).

  • Als nächstes öffnen Sie wieder die GRASS-Werkzeugkiste und wechseln nach Vektor ‣ Vektor mit anderen Karten aktualisieren.

  • Klicken Sie auf das v.rast.stats Modul. Geben Sie als Name der Rasterkarte für die Statistiken berechnet werden sollen gtopo30 und als Name der Vektorkarte (Polygone) forest_areas an.

  • Nun fehlt nur noch ein Parameter: Geben Sie als Spaltenpräfix elev an, und klicken Sie dann auf [Starten]. Die Berechnung wird ziemlich lange dauern (bis zu mehreren Stunden).

  • Wenn es erfolgreich beendet wurden. öffnen Sie den Layer forest_areas erneut und lassen Sie sich die Attributtabelle anzeigen. Dort gibt es nun weitere Spalten, in denen die Ergebnisse der univariate Statistik für Rasterwerte innerhalb der Vektorpolygone angezeigt werden, z.B.: elev_min, elev_max, elev_mean.

Der GRASS Datei-Browser

Eine weitere interessante Funktion in den GRASS-Werkzeugen ist der Browser. In figure_grass_module_7 können Sie die aktuelle LOCATION mit den dazu gehörigen MAPSETs sehen.

In der linken Hälfte des Datei-Browsers können Sie sich alle in der aktuellen Location enthaltenen Mapsets anschauen. In der rechten Hälfte des Fensters sehen Sie weitere Metainformationen zum ausgewählten Datensatz wie beispielsweise Auflösung, BoundingBox, Datenquelle, bei Vektordaten die Attributtabelle und die COMMAND Geschichte.

Figure GRASS module 7:

../../../_images/grass_mapset_browser.png

GRASS LOCATION browser nix

Die Werkzeugleiste im GRASS Datei-Browser stellt folgende Werkzeuge für die ausgewählte LOCATION zur Verfügung:

  • grass_add_map Ausgewählten Layer dem Kartenfenster hinzufügen

  • grass_copy_map Gewählte Karte kopieren

  • grass_rename_map Gewählte Karte umbenennen

  • grass_delete_map Gewählte Karte löschen

  • grass_set_region Setze die Region auf die gewählte Karte

  • grass_refresh Neu zeichnen

Die Knöpfe grass_rename_map Gewählte Karte umbenennen und grass_delete_map Gewählte Karte löschen stehen nur für die aktuelle MAPSET zur Verfügung. Die anderen Werkzeuge funktionieren auch in den anderen MAPSETs.

Anpassen der Module

Nahezu alle GRASS-Module können in die GRASS-Werkzeugkiste integriert werden. Eine XML-Schnittstelle wertet die sehr einfachen XML-Dateien, die die Module beschreiben, aus und übernimmt die Oberflächendarstellung.

Beispielhaft ist hier die XML-Datei zum Modul v.buffer (v.buffer.qgm) dargestellt:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE qgisgrassmodule SYSTEM "http://mrcc.com/qgisgrassmodule.dtd">

<qgisgrassmodule label="Vector buffer" module="v.buffer">
        <option key="input" typeoption="type" layeroption="layer" />
        <option key="buffer"/>
        <option key="output" />
</qgisgrassmodule>

Der XML-Auswerter liest diese Definition und erstellt einen neuen Reiter im Werkzeugkiste, wenn Sie das Modul auswählen. Ein detailierte Beschreibung, um neue Module in die GRASS Werkzeugkiste zu integrieren finden Sie unter: http://wiki.qgis.org/qgiswiki/Adding_New_Tools_to_the_GRASS_Toolbox