.
Das GRASS Plugin bietet den Zugriff zu GRASS GIS Datenbanken und Funktionalitäten (siehe GRASS-PRJECT in Literatur und Internetreferenzen). Dies beinhaltet das Visualisieren von GRASS Raster- und Vektorlayern, das Bearbeiten von Vektorattributen, das Erstellen von neuen Vektorlayern und das Analysieren von 2-D und 3-D Daten mit mehr als 400 GRASS Modulen.
In diesem Kapitel bekommen Sie eine Einführung in die Plugin Funktionalitäten und zeigen Ihnen einige Beispiele wie man mit GRASS Daten arbeitet und diese verwaltet. Folgende Funktionen stehen über das GRASS Plugin zur Verfügung, wenn Sie es wie in Abschnitt GRASS Plugin starten beschrieben laden:
Um GRASS Funktionalitäten zu benutzen und/oder GRASS Vektor- und Rasterlayer in QGIS zu visualisieren müssen Sie das GRASS Plugin mit dem Pluginmanager auswählen und laden. Gehen Sie deswegen zum Menü Erweiterungen ‣ Erweiterungen verwalten und installieren ..., wählen Sie
GRASS und klicken Sie [OK].
Sie können wie in Abschnitt GRASS Layer visualisieren beschrieben, direkt Raster- und Vektorlayer aus einer existierenden GRASS-Datenbank LOCATION
laden (siehe Abschnitt sec_load_grassdata), oder Sie können eine neue GRASS LOCATION
mit QGIS erstellten (siehe Abschnitt Eine neue GRASS LOCATION erstellen), einige Raster- und Vektordaten in diese neue Location importieren (siehe Abschnitt import_loc_data) und über die GRASS-Werkzeuge weitere Analysen durchführen (siehe Abschnitt Die GRASS Werkzeugkiste).
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 QGIS Alaska Beispieldatensatz (siehe Kapitel Beispieldaten). Dieser enthält eine kleine GRASS LOCATION
mit 3 Vektor- und einem Rasterlayer mit Höheninformationen.
Erstellen Sie einen neuen Ordner grassdata
, laden Sie den QGIS ‘Alaska’ Datensatz qgis_sample_data.zip
von http://download.osgeo.org/qgis/data/ herunter und entpacken Sie die Datei nach grassdata
.
Starten Sie QGIS.
Falls noch nicht in einer vorhergehenden QGIS Sitzung geschehen, laden Sie das GRASS Plugin indem Sie Erweiterungen ‣ Erweiterungen verwalten und installieren ... klicken und
GRASS aktivieren. Die GRASS Werkzeugleiste erscheint im QGIS Hauptfenster.
Klicken Sie in der GRASS Werkzeugleiste das Mapset öffnen Icon um den Wählen Sie ein GRASS Mapset Assistenten zu öffnen.
Als Gisdbase
suchen und wählen Sie bitte den Pfad zum Ordner grassdata
.
Sie sollten nun als LOCATION
alaska
und als MAPSET
demo
auswählen können.
Klicken Sie auf [OK]. Einige weitere, zuvor grau hinterlegte GRASS-Werkzeuge sind nun aktiv.
Klicken Sie auf GRASS-Rasterlayer hinzufügen, wählen Sie den Layer
gtopo30
und drücken Sie auf [OK]. Die Höhendaten werden nun dargestellt.
Klicken Sie auf GRASS-Vektorlayer hinzufügen, wählen Sie den Kartennamen
alaska
aus und klicken Sie [OK]. Der Alaska Grenzvektorlayer wird über die gtopo30
Karte gelegt. Sie können jetzt die Layereigenschaften wie in Kapitel Vektorlayereigenschaften beschrieben anpassen (z.B. Ändern der Deckkraft, Füll- und Umrandungsfarbe).
Laden Sie auch noch die weiteren Vektorlayer rivers
und airports
hinzu und passen Sie deren Layereigenschaften an.
Wie man sehen kann, ist es sehr einfach sich Raster- und Vektordaten aus einer existierenden GRASS-Datenbank in QGIS anzeigen zu lassen. Lesen Sie die folgenden Kapitel, um zu lernen, wie man GRASS Daten editiert und eine neue Location erstellt. Weitere Beispiel GRASS-Datenbanken finden Sie auf der GRASS Homepage unter: http://grass.osgeo.org/download/sample-data/.
Tipp
Probleme beim Laden von GRASS-Layern
Sollten Sie Probleme beim Laden von GRASS-Layern haben oder sich QGIS unvorhergesehen beendet, dann überprüfen Sie bitte, ob das GRASS-Plugin korrekt geladen ist wie in Abschnitt GRASS Plugin starten beschrieben.
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 in Unterordnern genannt LOCATION`s organisiert. Jede :file:`LOCATION
ist durch ein Koordinatenbezugssystem, Kartenprojektion und eine geographische Grenze 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:
GRASS Daten in der Alaska LOCATION
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).
Starten Sie QGIS und stellen Sie sicher dass das GRASS Plugin geladen ist.
Visualisieren Sie die alaska.shp
Shapedatei (siehe Abschnitt Shape Layer laden) aus dem Alaska Datensatz (siehe Beispieldaten).
Klicken Sie in der GRASS Werkzeugleiste auf das Neues Mapset Icon um den Neues Mapset Assistenten zu öffnen.
Wählen Sie einen bestehende GRASS Datenbankordner (GISDBASE) grassdata
oder erstellen Sie einen für die neue LOCATION
anhand des Dateimanagers auf Ihrem Computer. Klicken Sie dann [Weiter].
Wir können diesen Assistenten verwenden um eine neue MAPSET
innerhalb einer bestehenden LOCATION
zu erstellen (siehe Abschnitt Eine neue GRASS MAPSET erstellen) oder um dabei auch eine neue LOCATION
zu erstellen. Wählen Sie Erstelle neue Location (see figure_grass_location_2).
Geben Sie einen Namen für die LOCATION
- wir haben ‘alaska’ verwendet - und klicken Sie [Weiter].
Definieren Sie die Projektion indem Sie den Radiobutton Projektion zum Aktivieren der Projektionsliste klicken.
Wir benutzen Albers Equal Area Alaska (Fuß) Projektion. Da wir zufällig wissen dass es durch den EPSG ID 2964 repräsentiert wird geben wir dies in das Suchfenster ein. (Bemerkung: Wenn Sie diesen Ablauf für eine andere LOCATION
und Projektion wiederholen wollen und Sie die EPSG ID nicht gespeichert haben, klicken Sie auf das KBS-Status Icon in der unteren rechten Ecke der Statusleiste (siehe Abschnitt Arbeiten mit Projektionen)).
Geben Sie bei Filter 2964 ein um die Projektion auszuwählen.
Klicken Sie auf [Weiter].
Um die Standardregion zu definieren müssen wir die LOCATION
Ausdehnung in Nord-, Süd-, Ost- und Westrichtung eingeben. Hier klicken wir einfach auf den Knopf [Setze aktuelle QGIS-Ausdehung] um die Ausdehnung des geladenen Layers alaska.shp
als voreingestellte GRASS Region Ausmaße geltend zu machen.
Klicken Sie auf [Weiter].
Wir müssen auch eine MAPSET
innerhalb unserer neuen LOCATION
definieren (dies ist nötig wenn Sie eine neue LOCATION
erstellen). Sie können Sie wie Sie wollen nennen - wir haben ‘demo’ verwendet. GRASS erstellt automatisch eine spezielle MAPSET
genannt PERMANENT
die dazu erstellt wird um Kerndaten für das Projekt, seine Standardausmaße und Koordinatensystemdefinitionen zu speichern (siehe Neteler & Mitasova 2008 in Literatur und Internetreferenzen).
Prüfen Sie alles, damit alles wie gewünscht ist. Klicken Sie auf [Abschliessen].
Die neue LOCATION
, ‘alaska’, und zwei MAPSETs
, ‘demo’ und ‘PERMANENT’ werden erstellt. Die gerade geöffnete Arbeitsumgebung ist ‘demo’, wie Sie es definiert haben.
Beachten Sie, dass einige Werkzeuge des GRASS Plugins grau hinterlegt waren und nun auch zur Verfügung stehen.
Figure GRASS location 2:
Erstellen einer neuen GRASS LOCATION oder einer neuen MAPSET in QGIS
Wenn das wie eine Menge von Schritten schien ist es doch nicht so schlimm und ein schneller Weg eine LOCATION
zu erstellen. Die LOCATION
‘alaska’ is jetzt bereit für den Datenimport (siehe Abschnitt Daten in eine GRASS LOCATION importieren). Sie können auch die bereits bestehenden Vektor- und Rasterdaten in der Beispiel GRASS LOCATION
‘alaska’ verwenden, die im QGIS ‘Alaska’ Datensatz Beispieldaten enthalten ist und weiter zu Abschnitt Das GRASS Vektormodell gehen.
Ein Benutzer hat nur Schreibzugriff auf eine MAPSET
die er oder sie erstellt hat. Das heißt dass Sie neben dem Zugriff zu Ihrer eigenen MAPSET
Sie Karten in MAPSETs
anderer Benutzer lesen können (und Sie können Ihre lesen) aber Sie nur die Karten in Ihrer eigenen MAPSET
verändern und löschen können.
Alle MAPSETs
beinhalten eine WIND
Datei die die aktuellen Grenzkoordinatenwerte und die aktuell ausgewählte Rasterauflösung speichert (siehe Neteler & Mitasova 2008 in Literatur und Internetreferenzen, und Abschnitt Einstellung der GRASS Region).
Starten Sie QGIS und stellen Sie sicher dass das GRASS Plugin geladen ist.
Klicken Sie in der GRASS Werkzeugleiste auf das Neues Mapset Icon um den Neues Mapset Assistenten zu öffnen.
Wählen Sie den GRASS Datenbankordner (GISDBASE) grassdata
mit der LOCATION
‘alaska’ aus wo Sie eine weitere MAPSET
genannt ‘test’ hinzufügen wollen.
Klicken Sie auf [Weiter].
Wir können diesen Assistenten verwenden um eine neue MAPSET
innerhalb einer bestehenden LOCATION
zu erstellen oder um dabei auch eine neue LOCATION
zu erstellen. Wählen Sie Erstelle neue Location (see figure_grass_location_2) und klicken Sie [Weiter].
Geben Sie den Namen test' für die neue :file:`MAPSET
ein. Unter dem Assistenten sehen Sie eine List bestehender MAPSETs
und die entsprechenden Besitzer.
Klicken Sie auf [Weiter], prüfen Sie die Einstellungen und drücken Sie dann auf [Abschließen].
Dieser Abschnitt zeigt ein Beispiel wie man Raster- und Vektordaten in die ‘alaska’ GRASS LOCATION
aus dem QGIS ‘Alaska’ Datensatz importiert. Daher verwenden wir die Landcover Rasterkarte landcover.img
und die GML Vektorkarte lakes.gml
aus dem QGIS ‘Alaska’ Datensatz (siehe Beispieldaten).
Starten Sie QGIS und stellen Sie sicher dass das GRASS Plugin geladen ist.
Klicken Sie in der GRASS Werkzeugleiste das Mapset öffnen Icon um den Wählen Sie ein GRASS Mapset Assistenten zu starten.
Wählen Sie als GRASS Datenbank den Ordner grassdata
aus dem QGIS Alaskadatensatz, als LOCATION
‘alaska’, als MAPSET
‘demo’ aus und klicken Sie [OK].
Nun klicken Sie auf das Icon GRASS-Werkzeugkiste öffnen, damit die GRASS Werkzeuge (siehe Abschnitt Die GRASS Werkzeugkiste) zur Verfügung stehen.
Um die Rasterkarte 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 Rasterdateien in eine GRASS LOCATION
zu importieren.
Browsen Sie zum Ordner raster
im QGIS ‘Alaska’ Datensatz und wählen Sie die Datei landcover.img
.
Definieren Sie als Rasterausgabename landcover_grass
und klicken Sie [Starten]. Im Reiter Ergebnis können Sie den gerade laufenden GRASS Befehl r.in.gdal -o input=/path/to/landcover.img output=landcover_grass
sehen.
Wenn Erfolgreich beendet erscheint klicken Sie [Ergebnis visualisieren]. Der landcover_grass
Rasterlayer ist jetzt in GRASS importiert und wird in der QGIS Kartenansicht visualisiert.
Um die GML Vektordatei lakes.gml
zu importieren klicken Sie das Modul v.in.ogr
im Modulbaum Reiter. Dieses GRASS Modul ermöglicht den Import con OGR-unterstützen Vektordateien in eine GRASS LOCATION
. Der Moduldialog für v.in.ogr
erscheint.
Browsen Sie zum Ordner gml im |qg| 'Alaska' Datensatz und wählen Sie die Datei :file:`lakes.gml
als OGR Datei aus.
Definieren Sie lakes_grass
als Vektorausgabenamen und klicken Sie [Starten]. Sie brauchen sich in diesem Beispiel nicht um andere Optionen kümmern. Im Reiter Ergebnis sehen Sie den aktuell laufenden GRASS Befehl v.in.ogr -o dsn=/path/to/lakes.gml output=lakes\_grass
.
Wenn Erfolgreich beendet erscheint klicken Sie [Ergebnis visualisieren]. Der lakes_grass
Vektorlayer ist jetzt in GRASS importiert und wird in der QGIS Kartenansicht visualisiert.
Es ist wichtig das GRASS Vektordatenmodell vor dem Digitalisieren zu verstehen.
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. ‘Layer’ ist die Nummer die definiert ob es mehr als einen Layer innerhalb des Datensatzes gibt (z.B. ob die Geometrie Wald oder See ist). Vorerst kann dies nur eine Nummer sein. In Zukunft wird GRASS auch Namen als Felder in der Benutzeroberfläche unterstützen.
Attribute können innerhalb der GRASS LOCATION
als dBase oder SQLite3 oder in externen Datenbanktabellen abgelegt werden, z.B. 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
Der beste Weg, etwas über das GRASS Vektordatenmodell und seine Fähigkeiten zu erfahren, ist das Studieren eines der vielen verfügbaren GRASS-Tutorien, wo dieses Thema vertieft behandelt wird. Unter http://grass.osgeo.org/documentation/manuals/ sind eine Vielzahl weiterer Informationsquellen, Bücher und Tutorien in unterschiedlichen Sprachen vorhanden.
Um einen neuen GRASS Vektorlayer mit dem GRASS plugin zu erstellen klicken Sie das Neuen GRASS-Vektorlayer anlegen Werkzeugleistenicon. Geben Sie einen Namen in das Textfenster ein und Sie können mit dem Digitalisieren von Punkt-, Linien- oder Polygongeometrien beginnen indem Sie wie in Abschnitt Digitalisieren und Editieren eines GRASS Vektorlayers verfahren.
GRASS GIS erlaubt es aufgrund des topologischen Datenmodells, die verschiedenen Geometrietypen (Punkt, Linie und Fläche) in einem Vektorlayer abzuspeichern. Aus diesem Grund ist es nicht notwendig im Vorfeld einen Geometrietyp festzulegen. Dies unterscheidet sich von der Erstellung eines neuen Shapefile in QGIS, denn Shapefiles verwenden das Simple Feature Vektormodell (siehe Abschnitt Neue Vektorlayer erstellen).
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).
Die Digitalisierwerkzeuge für GRASS-Vektorlayer werden über den Knopf 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 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
In figure_grass_digitizing_1 sehen Sie die GRASS Digitalisieren Werkzeugleisten Icons, die vom GRASS Plugin zur Verfügung gestellt werden. Tabelle table_grass_digitizing_1 erklärt die verfügbaren Funktionalitäten.
Figure GRASS digitizing 1:
GRASS Digitalisieren Werkzeugleiste
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:
GRASS Digitalisieren Kategorie Reiter
Modus: Der Kategoriewert der auf neuen Geometrieelemente angewendet wird.
Nächst folgender Kategoriewert - Der nächste noch nicht verwendete Kategoriewert wird auf das Geometrieelement angewendet
Manueller Eintrag - Definieren Sie den Kategoriewert für das Geometrieelement manuell im ‘Kategorie’ Eingabefeld.
Keine Kategorie - Wendet keinen Kategoriewert auf das Geometrieelement an. Dies wird z.B. für Flächengrenzen verwendet, da die Kategoriewerte über den Zentroiden angebunden werden.
Kategorie - Die Nummer (ID) die an jedes digitalisierte Geometrieelement angehängt wird. Sie wird verwendet um jedes Geometrieelement mit seinen Attributen zu verbinden.
Feld (Layer) - Jedes Geometrieelement kann mit mehreren Attributtabellen, die verschiedene GRASS Geometrielayer verwenden, verknüpft werden. Die voreingestellte Layernummer ist 1.
Tipp
Einen zusätzlichen GRASS ‘layer’ mit |qg| erstellen
Wenn Sie gerne mehr Layer zu Ihrem Datensatz hinzufügen wollen tragen Sie einfach eine neue Nummer im ‘Feld (Layer)’ Eingabefeld ein und drücken Sie Eingabe. Im Reiter Tabelle können Sie Ihre neue Tabelle, die dann an den neuen Layer angebunden ist, erstellen.
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:
GRASS Digitalisieren Einstellungen Reiter
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:
GRASS Digitallisieren Darstellung Reiter
Reiter Tabelle
Der Reiter Tabelle stellt Informationen über die Datenbanktabelle für einen gegebenen ‘layer’ bereit. Hier können Sie neue Spalten in eine bestehende Attributtabelle einfügen oder eine neue Datenbanktabelle für einen neuen GRASS Vektorlayer erstellen (siehe Abschnitt Einen neuen GRASS Vektorlayer erstellen).
Figure GRASS digitizing 5:
GRASS Digitalisiern Tabelle Reiter
Tipp
GRASS Schreibberechtigung
Sie müssen der Besitzer der GRASS MAPSET
, die Sie bearbeiten wollen, sein. Es ist unmöglich Datenlayer in einer MAPSET
die Ihnen nicht gehört zu bearbeiten, auch wenn Sie Schreibrechte darauf haben.
Die Region Einstellung (Einstellung eines räumlichen Arbeitsfensters) in GRASS ist wichtig für das Arbeiten mit Rasterlayern. Vektoranalysen sind standardmäßig nicht auf eine definierte Region Definition begrenzt. Aber alle neu erstellten Raster werden die räumliche Ausdehnung und Auflösung der gerade definierten GRASS Region haben, unabhängig von Ihrer ursprünglichen Ausdehnung und Auflösung. Die aktuelle GRASS Region ist in der $LOCATION/$MAPSET/WIND
Datei gespeichert und Sie definiert die Nord-, Süd-. Ost- und Westgrenze, die Anzahl von Spalten und Reihen sowie die horizontale und vertikale räumliche Auflösung.
Es ist möglich die Visualisierung der GRASS Region in der QGIS Kartenansicht ein- und auszuschalten indem Sie den Aktuelle GRASS-Region darstellen Knopf verwenden.
Mit dem Aktuelle GRASS-Region bearbeiten Icon können Sie einen Dialog zum Ändern der aktuellen Region und der Darstellung des GRASS-Region Rechtecks im QGIS Kartenfenster öffnen. Geben Sie die neuen Region Ausmaße und Auflösung eine und klicken Sie [OK]. Der Dialog ermöglicht Ihnen auch aktiv eine neue Region mit Ihrer Maus im QGIS Kartenfenster auszuwählen. Klicken Sie zu diesem Zweck mit der linken Maustaste in das QGIS Kartenfenster, öffnen Sie ein Rechteck, schließen Sie es mit Hilfe der linken Maustaste und klicken Sie [OK].
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 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 LOCATION und :file:`MAPSET
gespeichert werden können.
Figure GRASS Toolbox 1:
Die GRASS Shell der Werkzeugkiste bietet Zugriff auf fast alle (mehr als 300) GRASS Module über die Kommandozeile. Um eine benutzfreundlichere Umgebung zu bieten, sind davon etwa 200 Module graphisch auswählbar und bieten einen Dialog in Form eines zusätzlichen Reiters in der Werkzeugkiste.
Eine vollständige Liste von GRASS Modulen die in der grafischen Werkzeugkiste der QGIS Version 2.6 verfügbar sind können Sie im GRASS Wiki unter http://grass.osgeo.org/wiki/GRASS-QGIS_relevant_module_list finden.
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 einen Moduldialog in vereinfachter Form, in dem sie gewöhnlicherweise einen Raster- oder Vektorlayer, der in der QGIS Kartenansicht visualisiert ist, auswählen können und weitere modulspezifische Parameter, um die Module zum Laufen zu bringen, eingeben können.
Figure GRASS module 1:
Die zur Verfügung gestellten Modulparameter sind oftmals nicht vollständig um den Dialog einfach zu halten. Wenn Sie weitergehende Modulparamter und -flags verwenden wollen müssen Sie die GRASS Shell starten und das Programm in der Kommandozeile benutzen.
Eine neue Funktion seit der QGIS Version 1.8.0 ist der Knopf Fortgeschrittene Optionen einblenden unterhalb der vereinfachten Moduldialoge im Reiter Optionen. Momentan ist diese Funktion nur für das Modul v.in.ascii umgesetzt. Es ist aber zukünftig für weitere Module vorgesehen und wird so die kompletten Funktionen der GRASS Module grafisch bereitstellen, ohne die GRASS Shell und somit die Kommandozeile benutzen zu müssen.
Ergebnis
Figure GRASS module 2:
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:
Der Reiter Handbuch zeigt die HTML Hilfeseite der GRASS Module. Sie können es zum Überprüfen weitergehender Modulparameter oder -flags oder um vertieftere Kenntnisse über den Anwendungszweck der Module zu erwerben benutzen. Am Ende jeder Modul Handbuchseite sehen Sie weiterführende Links zum Main Help index
, dem Thematic index
und dem Full index
. Diese Links stellen die gleiche Information wie das Modul g.manual
zur Verfügung.
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
Die folgenden Beispiele sollen die Anwendung verschiedener GRASS Module demonstrieren.
Im ersten Beispiel wird eine Höhenlinienkarte aus einem Höhenraster (DEM) erstellt. Hier wird angenommen dass Sie die Alaska LOCATION
wie in Abschnitt Daten in eine GRASS LOCATION importieren eingerichtet haben.
Als erstes öffnen Sie die Location, indem Sie auf das Mapset öffnen Icon klicken und dann die Alaska Location auswählen.
Nun laden Sie den gtopo30
Rasterlayer, indem Sie auf das Icon GRASS-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-Werkzeugkiste öffnen.
In der Liste von Werkzeugkategorien doppelklicken Sie auf Raster ‣ Oberflächenverwaltung ‣ Vektorkonturlinien erzeugen.
Jetzt wird ein einfacher Klick auf das Werkzeug r.contour einen Werkzeugdialog wie oben beschrieben öffnen (siehe Arbeiten mit GRASS Modulen). Die gtopo30
Rasterdatei sollte als Name der Eingabe-Rasterkarte erscheinen.
Geben Sie im Feld Abstand zwischen den Kontourintervallen 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.
Klicken Sie [Starten] um den Prozess zu starten. Warten Sie mehrere Momente bis die Nachricht Erfolgreiche beendet
im Ergebnisfenster auftaucht. Klicken Sie dann [Ergebnis visualisieren] und [Schließen].
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
Beachten Sie dass das QGIS fTools Plugin über ein Geometrien vereinfachen ‣ Werkzeug verfügt das genauso wie der GRASS v.generalize Douglas-Peuker Algorithmus funktioniert.
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 (auch Hermite Splines). 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 und doppelklicken Sie die Kategorien Vektor ‣ Karte entwickeln ‣ Generalisierung und klicken Sie dann auf das v.generalize Modul um sein Optionsfenster zu öffnen.
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:
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 (konstanter Niederschlag) erstellen.
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.
Fangen Sie mit diesem Beispiel an indem Sie zuerst den Rasterlayer gtopo30
laden. Öffnen Sie die GRASS-Werkzeugkiste und unter der Raster Kategorie 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 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
zusammen 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 einfache 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:
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 in den Reiter Browser und Doppelklicken Sie auf die neu erstellte Karte gtopo30_shade2
, um Sie in QGIS anzuzeigen.
Wie oben erklärt verschieben Sie die Schummerungskarte unter das gtopo30
Raster in der Legende, überprüfen Sie dann die Transparenz des farbigen gtopo30
Layers. Sie sollten dabei erkennen, dass der Schummerungseffekt stärker verglichen mit der ersten Schummerungskarte ist.
Figure GRASS module 6:
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.
Jetzt ist ein Zwischenschritt nötig: es müssen Zentroiden zu der importierten Baumkarte hinzugefügt werden um es zu einem kompletten GRASS Flächenvektor (der sowohl Umrandungen als auch Zentroide enthält) zu machen.
Wählen Sie aus der 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 ‘Eindeutiger Wert’ und setzen das Klassifikationsfeld auf ‘VEGDESC’ (siehe auch die Beschreibung des Reiters Darstellung in Abschnitt Menü Stil des Vektordatenabschnitts).
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 gtopo30
und forest_areas
ein.
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 (wahrscheinlich bis zu zwei Stunden).
Schließlich öffnen Sie den Layer forest_areas
erneut und lassen Sie sich die Attributtabelle anzeigen. Dort gibt es nun weitere Spalten einschließlich elev_min
, elev_max
, elev_mean
usw. für jedes Waldpolygon.
Eine weitere interessante Funktion in den GRASS-Werkzeugen ist der GRASS LOCATION Browser. In figure_grass_module_7_ können Sie die aktuelle :file:`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 (beispielsweise Auflösung, BoundingBox, Datenquelle, bei Vektordaten die Attributtabelle und die COMMAND Geschichte).
Figure GRASS module 7:
Die Werkzeugleiste im Browser Reiter stellt folgende Werkzeuge für die ausgewählte LOCATION
zur Verfügung:
Die Knöpfe Gewählte Karte umbenennen und
Gewählte Karte löschen stehen nur für die aktuelle
MAPSET
zur Verfügung. Die anderen Werkzeuge funktionieren auch in den anderen MAPSETs
.
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 Auswerter liest diese Definition und erstellt einen neuen Reiter in der Werkzeugkiste, wenn Sie das Modul auswählen. Ein detailierte Beschreibung, um neue Module in die GRASS Werkzeugkiste zu integrieren, die Gruppe des Moduls zu ändern etc. finden Sie auf dem QGIS Wiki unter http://hub.qgis.org/projects/quantum-gis/wiki/Adding_New_Tools_to_the_GRASS_Toolbox.