% vim: set textwidth=78 autoindent:
% !TeX root = user_guide.tex

\chapter{GRASS GIS Integration}\label{sec:grass}\index{GRASS GIS}

% when the revision of a chapter has been finalized, 
% comment out the following line:
%\updatedisclaimer

Das GRASS~\cite{GRASSweb} Plugin ermöglicht es, auf GRASS Datenbanken und
Module von QGIS aus zuzugreifen. Dies umfasst das Visualisieren, Editieren
und Erstellen von GRASS Raster- und Vektorlayern sowie die Analyse von GRASS
Daten mit den in GRASS vorhandenen Modulen.

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 Kapitel~\ref{sec:starting_grass} beschrieben laden:

\begin{itemize}
\item \toolbtntwo{grass_open_mapset}{Mapset öffnen}
\item \toolbtntwo{grass_new_mapset}{Neues Mapset}
\item \toolbtntwo{grass_close_mapset}{Schliesse Mapset}
\item \toolbtntwo{grass_add_vector}{GRASS-Vektorlayer hinzufügen}
\item \toolbtntwo{grass_add_raster}{GRASS-Rasterlayer hinzufügen}
\item \toolbtntwo{grass_new_vector_layer}{Neuen GRASS-Vektorlayer anlegen}
\item \toolbtntwo{grass_edit}{GRASS-Vektorlayer bearbeiten}
\item \toolbtntwo{grass_tools}{GRASS-Werkzeugkiste öffnen}
\item \toolbtntwo{grass_region}{Aktuelle GRASS-Region darstellen} 
\item \toolbtntwo{grass_region_edit}{Aktuelle GRASS-Region bearbeiten}
\end{itemize}

\section{GRASS Plugin starten}\label{sec:starting_grass}
\index{GRASS GIS!QGIS starten}

Um GRASS-Funktionen in QGIS zu benutzen oder GRASS Raster- und Vektorlayer zu
visualisieren, muss das GRASS-Plugin im Plugin-Manager geladen werden.
Wechseln Sie dazu in das Menü \mainmenuopt{Plugins} \arrow \mainmenuopt{Plugins
verwalten}, wählen Sie \dropmenuopt{GRASS} aus und drücken dann auf
\button{OK}. Nach dem Laden erscheint eine neue Werkzeugleiste mit den oben
dargestellten Icons.

Sie können wie in Kapitel~\ref{sec:load_grassdata} beschrieben, direkt
Raster- und Vektorlayer aus einer existierenden GRASS-Datenbank
\filename{Location} laden, oder Sie können eine neue GRASS
\filename{Location} erstellten (siehe Kapitel~\ref{sec:create_loc}), Daten in
diese neue Location importieren (siehe Kapitel~\ref{sec:import_loc_data}) und
über die GRASS-Werkzeugkiste mit den mehr als 300 GRASS Modulen analysieren
(siehe Kapitel~\ref{subsec:grass_toolbox}).

\section{GRASS Layer visualisieren}\label{sec:load_grassdata}\index{GRASS
GIS!Layer laden}

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
\ref{label_sampledata}). Dieser enthält eine kleine GRASS \filename{Location}
mit 3 Vektor- und einem Rasterlayer mit Höheninformationen.

\begin{enumerate}
  \item Erstellen Sie einen neuen Ordner \filename{grassdata} und laden Sie
  den QGIS Alaska Beispieldatensatz \filename{qgis\_sample\_data.zip} unter
  \url{http://download.osgeo.org/qgis/data/} herunter und entpacken Sie
  diesen in den gerade erstellen Ordner \filename{grassdata}. 
  \item Starten Sie QGIS.
  \item Falls noch nicht geschehen, laden Sie das GRASS Plugin. Dazu 
  wechseln Sie in das Menü \mainmenuopt{Plugins} \arrow \mainmenuopt{Plugins
  verwalten} und wählen \dropmenuopt{GRASS} aus. Die GRASS-Werkzeuge
  erscheinen nun in der Werkzeugleiste.
  \item Klicken Sie nun auf das Icon \toolbtntwo{grass_open_mapset}{Mapset
  öffnen}, um eine Session in einer GRASS Location zu starten.
  \item Als \filename{Gisdbase} suchen und wählen Sie bitte den Pfad zum
  Ordner \filename{grassdata}.
  \item Sie sollten nun als Location \filename{alaska} und als Mapset
  \filename{demo} auswählen können. 
  \item Klicken Sie auf \button{OK}. Einige weitere, zuvor grau hinterlegte
  GRASS-Werkzeuge sind nun aktiv.
  \item Klicken Sie auf \toolbtntwo{grass_add_raster}{GRASS-Rasterlayer
  hinzufügen}, wählen Sie den Layer \filename{gtopo30} und drücken Sie auf
  \button{OK}. Die Höhendaten wird nun dargestellt.
  \item Klicken Sie auf \toolbtntwo{grass_add_vector}{GRASS-Vektorlayer
  hinzufügen}, wählen Sie den Layer \filename{alaska} und drücken Sie auf
  \button{OK}. Der Layer mit der Landesgrenze von Alaska wird nun
  über dem Rasterlayer dargestellt. Sie können nun die Layereigenschaften
  einstellen, wie in Kapitel~\ref{sec:vectorprops} beschrieben. Z.B.: die
  Transparenz verändern oder andere Farben auswählen.
  \item Laden Sie auch noch die weiteren Vektorlayer \filename{rivers} und
  \filename{airports} hinzu und passen Sie deren Layereigenschaften an.
\end{enumerate}

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: \url{http://grass.osgeo.org/download/data.php}.

\begin{Tip}\caption{\textsc{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 \ref{sec:starting_grass}).
\end{Tip}

\section{Information zur GRASS-Datenbank}\label{sec:about_loc}

GRASS Daten werden in einem Ordner gespeichert, der als GISDBASE bezeichnet
wird. Standardmäßig wird der Ordner \filename{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.
\filename{LOCATIONs}) in Unterordnern organisiert. Jede \filename{LOCATION}
ist durch ein Koordinatenbezugssystem und eine räumliche Grenze (sog.
\filename{region}) definiert und kann darüberhinaus weitere Unterordner
\filename{MAPSETs} besitzen, um die Layer der \filename{LOCATION} weiter z.B.
thematisch oder räumlich zu unterteilen (Neteler \& Mitasova 2008
\cite{neteler_mitasova08}). Um Raster- und Vektorlayer mit den GRASS Modulen
zu analysieren, müssen diese zuerst in eine passende GRASS
\filename{LOCATION} importiert werden. \footnote{Dies ist nicht ganz korrekt.
Mit den GRASS Modulen \filename{r.external} und \filename{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.}    

\begin{figure}[ht]
\begin{center}
\caption{GRASS Daten der alaska Location (verändert nach Neteler \& Mitasova 2008) \nixcaption}\label{fig:grass_location}\smallskip
\includegraphics[clip=true]{grass_location}
\end{center}  
\end{figure}

\subsection{Eine neue GRASS Location erstellen}\label{sec:create_loc}

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
\filename{alaska} wird für alle GRASS GIS Beispiele verwendet. Es ist also
sinnvoll, sich diesen Datensatz zu installieren (Siehe
Kapitel~\ref{label_sampledata}) 

\begin{figure}[ht]
\begin{center}
\caption{Eine GRASS Location erstellen \nixcaption}
\label{fig:create_grass_location}\smallskip
\includegraphics[clip=true, width=10cm]{create_grass_location}
\end{center}  
\end{figure}


\begin{enumerate}
  \item Starten Sie QGIS
  \item Laden Sie das GRASS Plugin, falls dies noch nicht geschehen ist
  \item Visualisieren Sie das Shape \filename{alaska.shp} (vgl. Kapitel
  \ref{sec:load_shapefile}) aus dem QGIS Beispieldatensatz.
  \item Klicken Sie auf das Icon \toolbtntwo{grass_new_mapset}{Neues Mapset}
in der GRASS-Werkzeugleiste, um den Mapset Dialog zu starten
  \item Alle GRASS locations sind in einem Ordner, der GRASS Datenbank
abgelegt (meist grassdata). Wählen Sie einen existierenden Ordner mit bereits
vorhandenen Locations oder erstellen Sie einen neuen Ordner
\filename{grassdata} für die zu erstellende Location.
  \item Klicken Sie auf \button{Weiter}
  \item Mit dem Dialog kann eine bereits vorhandene \filename{Location} durch
eine weitere \filename{Mapset} ergänzt werden, oder eine neue
\filename{Location} mit neuen \filename{Mapsets} erstellt werden (siehe
Kapitel~\ref{sec:add_mapset}). Klicken Sie nun auf den Knopf
\radiobuttonon{Erstelle neue Location} wie in
Abbildung~\ref{fig:create_grass_location}.
  \item Geben Sie einen Namen für die neue \filename{Location} ein - wir
haben den Namen alaska gewählt.
  \item Klicken Sie auf \button{Weiter}
  \item Definieren Sie das Koordinatenbezugssystem, in dem Sie auf den
Knopf \radiobuttonon{Projektion} klicken, um aus einer Liste auswählbare
Koordinatensysteme angezeigt zu bekommen.
  \item Wir verwenden die Albers Equal Area Alaska (feet) Projektion. Da wir
wissen, dass es sich hierbei um den EPSG Code 2964 handelt, geben wir die
Zahl in das Suchfenster ein. (Wenn Sie dies für einen anderen Layer
wiederholen wollen, aber nicht den EPSG Code kennen, klicken Sie einfach auf
das Icon \toolbtntwo{mIconProjectionEnabled}{KBS-Status} unten rechts in der
Statusleiste (vgl. Kapitel~\ref{label_projstart}).)
  \item Klicken Sie auf \button{Finden}, um das Koordinatensystem auszuwählen
  \item Klicken Sie auf \button{Weiter}
  \item Um die Standardausdehnung der Location zu definieren, müssen wir die
Eckkoordinaten der Umrandung angeben. Da wir einen Layer geladen haben,
klicken wir einfach auf den Knopf \button{Setze aktuelle QGIS Ausdehung}, um
die Ausdehnung der Karte als Standardausdehnung für die \filename{Location} zu
verwenden.
  \item Klicken Sie auf \button{Weiter}
  \item Wir müssen nun noch eine Mapset für die Location definieren. Wir
haben uns für \filename{demo} entschieden.\footnote{Beim Erstellen einer
neuen \filename{Location}, wird automatisch eine spezielle \filename{Mapset}
mit dem Namen \filename{PERMANENT} eingerichtet, um Kerninformationen wie
etwa die räumliche Ausdehung und das Koordinatenbezugssystem der Location zu
sichern. Diese wird zusätzlich zu der von Ihneg gewählten Mapset erstellt (Neteler \& Mitasova 2008 \cite{neteler_mitasova08}).}
  \item Prüfen Sie alles, damit alles wie gewünscht ist
  \item Klicken Sie auf \button{Abschliessen}
  \item Die neue Location \filename{alaska} mit den beiden Mapsets
\filename{PERMANENT} und \filename{demo} sind nun erstellt
worden. Ihre aktuelle Arbeitsumgebung ist die von Ihnen definierte Mapset
\filename{demo}.
  \item Beachten Sie, dass einige Werkzeuge des GRASS Plugins grau hinterlegt
waren und nun auch zur Verfügung stehen.
\end{enumerate}

Auch wenn es recht kompliziert aussieht, ist dies doch ein sehr einfacher
Weg, eine neue GRASS Location zu erstellen. Unsere Location \filename{alaska}
ist nun bereit für den Import von Daten (siehe
Kapitel~\ref{sec:import_loc_data}). Sie können an dieser Stelle aber auch die
vorhandene \filename{alaska} Location des QGIS Beispieldatensatzes verwenden
und direkt zu Kapitel~\ref{label_vectmodel} weitergehen.

\subsection{Eine neue GRASS Mapset erstellen}\label{sec:add_mapset}

Ein Benutzer hat nur Schreibrechte in einer \filename{Mapset}, die er selbst
erstellt hat. Darüberhinaus kann er die Daten der Mapsets anderer Benutzer in
der aktuellen \filename{Location} einsehen und für seine Analysen verwenden.
Veränderungen finden aber lediglich in seiner eigenen \filename{Mapset}
statt. Alle \filename{Mapsets} enthalten eine Datei \filename{WIND}, in der
die aktuelle Ausdehnung und die Pixelauflösung der \filename{Mapset}
gespeichert ist (Neteler \& Mitasova 2008 \cite{neteler_mitasova08}, siehe
Kapitel~\ref{sec:grass_region}). 

\begin{enumerate}
  \item Starten Sie QGIS und laden Sie das GRASS Plugin, falls dies nicht
bereits geschehen ist.
  \item Klicken Sie auf das Icon \toolbtntwo{grass_new_mapset}{Neues Mapset}
in der GRASS Werkzeugleiste, um den \dialog{MAPSET} Dialog zu starten.
  \item Wählen Sie als GRASS Datenbank (GISDBASE) den Ordner
\filename{grassdata}, in der sich auch die Location \filename{alaska}
befindet.
  \item Klicken Sie auf \button{Weiter}. 
  \item In diesem Dialog können Sie ein neues \filename{MAPSET} innerhalb
der bereits vorhandenen \filename{LOCATION} alaska, oder eine ganz neue
\filename{LOCATION} erstellen. Klicken Sie auf den Knopf \radiobuttonon{Wähle
Location} (siehe Abbildung~\ref{fig:create_grass_location}) und dann auf
\button{Weiter}.
  \item Geben Sie den Namen \filename{test} im Fenster \filename{Neues
Mapset} ein. Im unteren Bereich sehen Sie eine Liste bereits vorhandener
\filename{Mapsets} und ihre Besitzer.
  \item Klicken Sie auf \button{Weiter}, prüfen Sie die Einstellungen und
drücken Sie dann auf \button{Abschließen} 
\end{enumerate}

\section{Daten in eine GRASS Location importieren}\label{sec:import_loc_data}

In diesem Abschnitt soll an einem Beispiel gezeigt werden, wie man Raster-
und Vektorlayer aus dem QGIS Beispieldatensatz in die Location
\filename{alaska} importieren kann. Zu diesem Zweck verwenden wir den
Rasterlayer \filename{landcover.img} und die Vektor GML-Datei
\filename{lakes.shp} aus dem Beispieldatensatz \ref{label_sampledata}. 

\begin{enumerate}
  \item Starten Sie QGIS und laden Sie das GRASS Plugin, falls dies nicht
bereits geschehen ist.
  \item Klicken Sie auf das Icon \toolbtntwo{grass_open_mapset}{Mapset
öffnen} in der GRASS Werkzeugleiste, um den \filename{MAPSET} Dialog zu
starten.
  \item Wählen Sie als Gisdbase den Ordner \filename{grassdata} mit der QGIS 
  \filename{./qgis\_sample\_data/grassdata/alaska} Location, als Location
\filename{alaska}, als Kartenset \filename{demo} und klicken Sie dann auf
\button{OK}.
  \item Nun klicken Sie auf das Icon
\toolbtntwo{grass_tools}{GRASS-Werkzeugkiste öffnen}, damit die GRASS Werkzeuge
(siehe Abbildung~\ref{subsec:grass_toolbox}) zur Verfügung stehen.
  \item Um den Rasterlayer \filename{landcover.img} zu importieren, drücken
Sie auf das Modul \filename{r.in.gdal} im \tab{Modulbaum} Reiter. Diese GRASS
Module ermöglicht es, GDAL-unterstützte Rasterlayer in eine GRASS
\filename{Location} zu importieren. Der Moduldialog für \filename{r.in.gdal}
erscheint als neuer Reiter.
  \item Wählen Sie als zu importierende Rasterdatei den Layer
\filename{./qgis\_sample\_data/raster/landcover.img} aus dem
Beispieldatensatz.
  \item Als Name der Ausgabe wählen Sie \filename{landcover\_grass} und
drücken Sie dann auf \button{Starten}. Im Reiter \tab{Ergebnis} sehen Sie das
gerade gestartete GRASS Kommando \filename{r.in.gdal -o
input=/path/to/landcover.img output=landcover\_grass}.
  \item Wenn Sie den Text \textbf{Erfolgreich beendet} sehen, klicken Sie auf
den Knopf \button{Ergebnis visualisieren}. Der Layer
\filename{landcover\_grass} ist nun in die aktuelle GRASS Location importiert
und wird im Kartenfenster angezeigt.
  \item Um den Vektor GML-Layer \filename{lakes.gml} zu importieren, klicken
Sie in der GRASS Werkzeugkiste auf das Modul \filename{v.in.ogr} im
\tab{Modulbaum} Reiter. Dieses GRASS Modul ermöglicht es, OGR-unterstützte
Vektorlayer in eine GRASS \filename{Location} zu importieren. Der Moduldialog
für \filename{v.in.ogr} erscheint als neuer Reiter.
  \item Wählen Sie als zu importierende Vektordatei den Layer
\filename{./qgis\_sample\_data/gml/lakes.gml} aus dem Beispieldatensatz.
  \item Als Name der Ausgabe wählen Sie \filename{lakes\_grass} und
drücken Sie dann auf \button{Starten}. Im Reiter \tab{Ergebnis} sehen Sie das
gerade gestartete GRASS Kommando \filename{v.in.ogr -o dsn=/path/to/lakes.shp
output=lakes\_grass}.
  \item Wenn Sie den Text \textbf{Erfolgreich beendet} sehen, klicken Sie auf
den Knopf \button{Ergebnis visualisieren}. Der Layer \filename{lakes\_grass}
ist nun in die aktuelle GRASS Location importiert und wird im Kartenfenster
angezeigt.
\end{enumerate}


\section{GRASS Vektormodell}\label{label_vectmodel}\index{GRASS
GIS!Vektormodell}

Für das Arbeiten mit GRASS-Vektordaten ist es wichtig, das Datenmodell von
GRASS-Vektoren zu kennen\index{GRASS GIS!Digitalisieren}. GRASS nutzt ein
topologisches Datenmodell.\index{GRASS GIS!Topology}
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. \footnote{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.\index{GRASS
GIS!Attributdaten speichern}

Die Attribute in den Tabellen werden über ein sog. 'Kategoriefeld' an die
Geometrien des Datensatzes gehängt.\index{GRASS GIS!Attributdaten verlinken}
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.

\begin{Tip}\caption{\textsc{Das GRASS Vektormodell verstehen}}
Der beste Weg, etwas über das GRASS Vektordatenmodell zu erfahren, ist das
Studieren eines der vielen verfügbaren GRASS-Tutorien, wo dieses Thema
vertieft behandelt wird.
Unter \url{http://grass.osgeo.org/gdp/manuals.php} sind eine Vielzahl
weiterer Informationsquellen in unterschiedlichen Sprachen vorhanden.
\end{Tip}

\section{Einen neuen GRASS Vektorlayer
erstellen}\label{sec:creating_new_grass_vectors}\index{GRASS GIS!Vektorlayer
erstellen}

Einen neuen GRASS Vektorlayer können Sie erstellen, indem Sie auf das Icon
\toolbtntwo{grass_new_vector_layer}{Neuen GRASS-Vektorlayer anlegen} in der
GRASS Werkzeugleiste klicken. Vergessen Sie dabei nicht, vorher eine GRASS
Mapset als GRASS Arbeitsumgebung zu definieren. Geben Sie einen Namen für den
neuen GRASS Vektorlayer an und klicken Sie auf \button{OK}. Daraufhin öffnet
sich der Dialog \dialog{GRASS Digitalisieren}, und Sie können in dem Layer
neue Geometrien erzeugen, wie in Kapitel~\ref{grass_digitising} beschrieben. 

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 Kapitel~\ref{sec:create shape}).

\begin{Tip}\caption{\textsc{Erstellen einer neuen Attributtabelle für einen 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 Abbildung~\ref{fig:grass_digitizing_table}).
\end{Tip} 

\section{Digitalisier- und Editierwerkzeuge}\index{GRASS
GIS!Digitalisierwerkzeuge}\index{GRASS GIS!Editierwerkzeuge}
\label{grass_digitising}

Die Digitalisierwerkzeuge für GRASS-Vektorlayer werden über den Knopf
\toolbtntwo{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
\ref{fig:grass_digitizing_category} zeigt den Dialog für die GRASS
Digitalisierung. Die einzelnen Werkzeuge werden im folgenden Kapitel
beschrieben.

\begin{Tip}\caption{\textsc{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 \usertext{Keine Kategorie}. Danach fügen Sie einen Zentroid
(Labelpunkt) mit der Moduseinstellung \usertext{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. 
\end{Tip} 

\minisec{Werkzeugleiste}\label{label_grasstoolbar}

Abbildung~\ref{fig:grass_digitizing_toolbar} zeigt die GRASS
Digitalisierwerkzeuge. Tabelle~\ref{tab:grass_tools} bechreibt die damit zur
Verfügung stehenden Funktionalitäten.

\begin{figure}[h]
   \begin{center}
   \caption{GRASS Digitalisierwerkzeuge \nixcaption}\label{fig:grass_digitizing_toolbar} 
   \includegraphics[clip=true,width=12cm]{grass_digitizing_toolbar}
\end{center}  
\end{figure}

{renewcommand{\arraystretch}{2}
\begin{table}[h]\index{GRASS GIS!Digitalisierwerkzeuge}
\centering
\caption{GRASS Digitalisierwerkzeuge}\label{tab:grass_tools}\medskip
 \begin{tabular}{|m{1cm}|m{4cm}|m{8.5cm}|}
 \hline \textbf{Icon} & \textbf{Werkzeug} & \textbf{Zweck} \\
\hline \includegraphics[width=0.7cm]{grass_new_point} & Neuer Punkt&
Digitalisiert neuen Punkt \\
\hline \includegraphics[width=0.7cm]{grass_new_line} & Neue Linie &
Digitalisiert neue Linie (zum Beenden ein anderes Werkzeug wählen) \\
\hline \includegraphics[width=0.7cm]{grass_new_boundary} & Neue Grenze &
Digitalisiert eine neue Grenzlinie (Boundary) (zum Beenden ein anderes
Werkzeug wählen)\\
\hline \includegraphics[width=0.7cm]{grass_new_centroid} & Neues Zentroid &
Digitalisiert einen neuen Zentroid (Labelpunkt für eine existierende
Fläche)\\
\hline \includegraphics[width=0.7cm]{grass_move_vertex} & Verschiebe Vertex &
Wählt einen Stützpunkt einer existierenden Linie oder Umrandung und setzt
diesen
an eine neue Position \\
\hline \includegraphics[width=0.7cm]{grass_add_vertex} & Vertex hinzufügen &
Fügt einen Stützpunkt zu einer existierenden Linie hinzu\\
\hline \includegraphics[width=0.7cm]{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.)\\
\hline \includegraphics[width=0.7cm]{grass_move_line} & Verschiebe Element &
Wählt existierende Linie und verschiebt sie an eine neue Position\\
\hline \includegraphics[width=0.7cm]{grass_split_line} & Unterteile Linie & Teilt
eine existierende Linie in zwei Teile \\
\hline \includegraphics[width=0.7cm]{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.)\\
\hline \includegraphics[width=0.7cm]{grass_edit_attributes} & Editiere
Attribute & Editiert Attribute eines existierenden Objekts (Beachten Sie,
dass ein Objekt mehrere Feature repräsentieren kann, siehe oben)\\
\hline \includegraphics[width=0.7cm]{grass_close_edit} & Schließen & Beendet
die Bearbeitung (und aktualisiert die Topolgie anschließend).\\
\hline
\end{tabular}
\end{table}}

\minisec{Kategorie Reiter}\index{GRASS GIS!Digitalisierwerkzeuge!Kategorie}

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

\begin{figure}[h]
 \begin{center}
  \caption{Kategorie Reiter im GRASS Digitalisiermodul \nixcaption}\label{fig:grass_digitizing_category}
  \includegraphics[clip=true,width=10cm]{grass_digitizing_category}
 \end{center}
\end{figure}

\begin{itemize}
\item Modus: Welcher Kategoriewert soll der Geometrie zugewiesen werden
\begin{itemize}
\item Nächst folgender Kategoriewert - der nächste Kategoriewert, der noch nicht im
Vektordatensatz benutzt wird.
\item Manueller Eintrag  - Manuelles Eintragen der Kategoriewerte im
'Kategorie'-Eingabgefeld vornehmen.
\item Keine Kategorie - digitalisiere Geometrie ohne Angabe eines
Kategoriewertes. Dies wird z.B. beim Digitalisieren einer Grenzlinie eines
Polygons verwendet.
\end{itemize}
\item Kategorie - eine Nummer (ID), die dem digitalisierten Objekt zugewiesen
wird und auf einen Eintrag in der Attributtabelle verweist.
\item Layer - Objektidentifikation über die GRASS-Ebene (layer). Der
Standardlayer in GRASS ist 1.
\end{itemize}

\begin{Tip}\caption{\textsc{Erzeugen von weiteren '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.
\end{Tip}

\minisec{Einstellungen Reiter}\label{label_settingtab}\index{GRASS GIS!Digitalisierwerkzeug!Einstellungen}\index{GRASS GIS!Digitalisierwerkzeug!Fangtoleranz}

Der Reiter \tab{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.

\begin{figure}[h]
 \begin{center}
 \caption{Einstellungen Reiter im GRASS Digitalisiermodul \nixcaption}\label{fig:grass_digitizing_settings}
 \includegraphics[clip=true,width=8cm]{grass_digitizing_settings}
 \end{center}
\end{figure}

\minisec{Darstellung Reiter}\index{GRASS GIS!Digitalisierwerkzeug!Darstellung}

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

\begin{figure}[h]
 \begin{center}
 \caption{Darstellung Reiter im GRASS Digitalisiermodul \nixcaption}\label{fig:grass_digitizing_symbology}
 \includegraphics[clip=true,width=8cm]{grass_digitizing_symbology}
 \end{center}
\end{figure}

\minisec{Tabellenreiter} \index{GRASS GIS!Digitalisierwerkzeug!Attributtabelle}

Der Reiter \tab{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
Kapitel~\ref{sec:creating_new_grass_vectors}).

\begin{figure}[h]
 \begin{center}
 \caption{Tabelle Reiter im GRASS Digitalisiermodul
\nixcaption}\label{fig:grass_digitizing_table}
 \includegraphics[clip=true,width=10cm]{grass_digitizing_table}
 \end{center}
\end{figure}

\begin{Tip}\caption{\textsc{GRASS Schreibberechtigung}}\index{GRASS
GIS!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.
\end{Tip}

\section{Einstellung der GRASS Region}\label{sec:grass_region}\index{GRASS
GIS!Region}

Die aktuelle Region (Projektausdehnung und Pixelauflösung) ist in GRASS sehr
wichtig für alle Rastermodule. Alle neu erzeugten Rasterdaten haben nämlich
die Ausdehnung und Auflösung der aktuellen Region, egal wie groß die
Standard-Region definiert
ist. Die Region ist in der Datei \filename{\$LOCATION\_NAME/\$MAPSET/WIND}
gespeichert, und definiert Nord-, Süd-, Ost- und Westausdehnung sowie Anzahl
der Spalten, Anzahl der Reihen und die horizontale und vertikale räumliche
Pixelauflösung.

Es ist auch möglich, die Region mit dem Knopf
\toolbtntwo{grass_region}{Aktuelle GRASS-Region darstellen} aus- bzw.
einzusschalten.\index{GRASS GIS!Region!Darstellung}

Um die aktuelle GRASS-Region zu ändern, benutzen Sie den Knopf
\toolbtntwo{grass_region_edit}{Aktuelle 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 \button{OK} schließen.\index{GRASS
GIS!Region!Einstellung}
Das GRASS Modul \filename{g.region} bietet viele weitere Optionen zur
Einstellung der passenden Ausdehnung und Auflösung der Region für die
Rasteranalyse. Das Modul \filename{g.region} können Sie über die GRASS
Werkzeugkiste nutzen, wie in Kapitel~\ref{subsec:grass_toolbox} beschrieben.

\section{GRASS-Werkzeugkiste}\label{subsec:grass_toolbox}\index{GRASS
GIS!Werkzeugkiste}

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

\subsection{Arbeiten mit GRASS Modulen}\label{grass_modules}\index{GRASS GIS!Module}

\begin{figure}[h]
\centering
\caption{Moduldarstellung in der GRASS-Werkzeugkiste \nixcaption}\label{fig:grass_modules}
   \subfloat[Modulbaum] {\label{subfig:grass_module_tree}\includegraphics[clip=true, width=0.4\textwidth]{grass_toolbox_moduletree}}\hspace{0.5cm}
   \subfloat[Modulliste] {\label{subfig:grass_module_list}\includegraphics[clip=true, width=0.4\textwidth]{grass_toolbox_modulelist}}
\end{figure}

Das GRASS Shell Modul in der Werkzeugkiste bietet Zugriff auf fast alle in
GRASS GIS vorhandenen Module (mehr als 300). 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. 

Eine vollständige Liste vorhandener GRASS Module, die man über das QGIS GRASS 
Plugin ansprechen kann finden Sie im GRASS Wiki unter der URL : 
\url{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 Kapitel \ref{sec:toolbox-customizing} 
beschrieben.

Wie in Abbildung~\ref{fig:grass_modules} zu sehen, können Sie nach dem
passenden GRASS Modul in dem Reiter \tab{Modulbaum} nachschauen oder im
Reiter \tab{Modulliste} suchen. Wenn Sie auf das grafische Icon eines Modules
klicken, öffnet sich ein neuer Moduldialog mit drei Reitern \tab{Optionen},
\tab{Ergebnis} und \tab{Handbuch}. In Abbildung~\ref{fig:grass_module_dialog}
sehen Sie als Beispiel den Moduldialog von \filename{v.buffer}.

\begin{figure}[h]
\centering
\caption{Moduldialog der GRASS-Werkzeugkiste \nixcaption}\label{fig:grass_module_dialog}
   \subfloat[Optionen eines Moduls] {\label{subfig:grass_module_option}\includegraphics[clip=true, width=0.3\textwidth]{grass_module_option}}\hspace{1cm}
   \subfloat[Ergebnisfenster eines Moduls ] {\label{subfig:grass_module_output}\includegraphics[clip=true, width=0.3\textwidth]{grass_module_output}}\hspace{1cm}
   \subfloat[Handbuch zu einem Modul] {\label{subfig:grass_module_manual}\includegraphics[clip=true, width=0.3\textwidth]{grass_module_manual}}
\end{figure}

\FloatBarrier

\minisec{Optionen}

Der Reiter \tab{Optionen} stellt Ihnen in vereinfachter Form die unbedingt
notwendigen Eingabeparameter zur Verfügung, die das Modul zum Laufen benötigt.
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.

Eine neue Funktion seit der QGIS Version \CURRENT ist der Knopf 
\button{show advanced options >>} unterhalb der vereinfachten Moduldialoge 
im Reiter \tab{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. 

\minisec{Ergebnis}

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

\minisec{Handbuch}

Der Reiter \tab{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 \tab{Optionen} zu sehen sind. Das ist gewollt.
Um die GUI möglichst einfach zu halten, sind nur die nötigsten Optionen in
ü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 \filename{Main Help
index}, dem \filename{Thematic index} und dem \filename{Full index}. Diese
enthalten alle Informationen, die Sie ansonsten über das Modul
\filename{g.manual} finden.

\begin{Tip}\caption{\textsc{Ergebnisse direkt anzeigen}}\index{GRASS
GIS!Ergebnisse direkt anzeigen}
Wollen Sie Ihre Ergenisse direkt in der Kartenansicht ansehen,
nutzen Sie den Knopf \button{Ergebnis visualisieren} im unteren Bereich des
jeweiligen Modulreiters.
\end{Tip}

\subsection{GRASS Beispielanwendung}\index{GRASS GIS!Werkzeugkiste}

Die folgenden Beispiele sollen die Anwendung verschiedener GRASS Module
demonstrieren.

\minisec{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
\filename{Alaska} LOCATION auf dem Rechner installiert ist, wie in Kapitel
\ref{sec:import_loc_data} beschrieben. 

\begin{itemize}
\item Als erstes öffnen Sie die Location, indem Sie auf das
\toolbtntwo{grass_open_mapset}{Mapset öffnen} Icon klicken und dann die
Alaska Location auswählen. 
\item Nun laden Sie den \usertext{gtopo30} Rasterlayer, indem Sie auf das
Icon \toolbtntwo{grass_add_raster}{GRASS-Rasterlayer hinzufügen} klicken und
den Layer \usertext{gtopo30} aus der Alaska Location auswählen und laden.
\item Als nächstes drücken Sie auf das Icon
\toolbtntwo{grass_tools}{GRASS-Werkzeugkiste öffnen}. 
\item Im Reiter \tab{Modulbaum} wechseln Sie mit der Maus in den Bereich
Raster \arrow Surface Management \arrow Generate vector contour lines. 
\item Mit einem einfachen Klick auf \classname{r.contour} öffnet sich das
Modul in einem neuen Reiter, wie unter \ref{grass_modules} beschrieben. Der
\usertext{gtopo30} Rasterlayer sollte nun automatisch im Feld \inputtext{Name
der Eingaberasterkarte}{gtopo30} erscheinen. 
\item Geben Sie im Feld \inputtext{Abstand zwischen den
Kontourintervallen}{100} den Wert 100 an. (Dadurch werden Höhenlinien in
einem Abstand von 100m erstellt.)
\item In das Feld \inputtext{Name der Vektorausgabekarte}{hoehen\_100} geben
Sie den Namen \usertext{hoehen\_100} an. 
\item Drücken Sie nun auf den Knopf \button{Starten}. Nach einiger Zeit
sollte im Ergebnisreiter die Meldung \usertext{Erfolgreich beendet}
erscheinen. Drücken Sie nun auf den Knopf \button{Ergebnis visualisieren} und
dann auf \button{Schließen}. 
\end{itemize}

\begin{figure}[h]
\centering
\caption{GRASS-Werkzeugkiste mit r.contour Modul
\nixcaption}\label{fig:grass_toolbox_rcontour}
   \subfloat[r.contour Optionen]
{\label{subfig:grass_toolbox_rcontour}\includegraphics[clip=true,
width=0.4\textwidth]{grass_toolbox_rcontour}}\hspace{0.33cm}
   \subfloat[r.contour Ergebnis]
{\label{subfig:grass_toolbox_rcontour2}\includegraphics[clip=true,
width=0.4\textwidth]{grass_toolbox_rcontour2}}
\end{figure}

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 \ref{sec:vectorprops}. 

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 \classname{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.

\begin{Tip}\caption{\textsc{Geometrien in QGIS vereinfachen}}
QGIS stellt mit den fTools auch ein Werkzeug \dropmenuopt{Geometrien
vereinfachen} zur Verfügung. Es funktioniert genau wie der Douglas-Peuker
Algorithmus im GRASS Modul \classname{v.generalize}. 
\end{Tip}  

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
\classname{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 \textbf{hinzugefügt}
werden können. Dadurch kann der Layer wieder langsamer geladen werden.

\begin{itemize}
\item Öffnen Sie die GRASS-Werkzeugkiste, wechseln Sie in den Bereich Vector \arrow
Develop map \arrow Generalization, und klicken dann auf das \classname{v.generalize}
Modul. 
\item Stellen Sie sicher, dass \usertext{hoehen\_100} als Vektorlayer in Feld
\inputtext{Name der Vektoreingabekarte}{hoehen\_100} erscheint. 
\item 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 \inputtext{Name der Vektorausgabekarte}{hoehen\_100\_smooth}
angeben. Drücken Sie nun auf \button{Starten}.
\item Der Prozess dauert eine Weile. Sobald \usertext{Erfolgreich beendet} im
Reiter \tab{Ergebnis} erscheint, drücken Sie wieder auf \button{Ergebnis
visualisieren} und dann auf \button{Schließen}. 
\item Ä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. 
\end{itemize}

\begin{figure}[h]
 \begin{center}
 \caption{Vektorlinien glätten mit dem GRASS Modul v.generalize
\nixcaption}\label{fig:grass_toolbox_vgeneralize}
 \includegraphics[clip=true, width=10cm]{grass_toolbox_vgeneralize}
 \end{center}
\end{figure}

\begin{Tip}\caption{\textsc{Andere Anwendungen von r.contour}}
\index{GRASS GIS!Werkzeugkiste}
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 Osohyetallayer erstellen.  
\end{Tip}  

\minisec{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.

\begin{itemize}
\item Laden Sie zuerst den Rastelayer \usertext{gtopo30}. Öffnen Sie die
GRASS-Werkzeugkiste, wechseln Sie in den Bereich Spatial analysis \arrow Terrain analysis. 
\item Nun klicken Sie auf \classname{r.shaded.relief}, um den Modulreiter zu
öffnen. 
\item Ändern Sie den Wert im Feld \inputtext{Winkel der Sonne in Grad östlich von der
Nordrichtung}{270} auf 315 und geben Sie als \inputtext{Name der
Schummerungskarte}{gtopo30\_shade} den Namen \usertext{gtopo30\_shade} an. 
Klicken Sie nun auf \button{Starten}. 
\item Nachdem die Karte berechnet wurde, visualisieren Sie sie und setzen Sie
die Farbe des Rasterlayers auf Graustufen. 
\item Um die Schummerung und das Höhenmodell \usertext{gtopo30} zu sehen,
ziehen Sie die Schummerungskarte in der Legende unter das Höhenmodell. Öffnen
Sie dann den Dialog Layereigenschaften der Karte \usertext{gtopo30}, und
ändern Sie die Transparenz im Reiter \tab{Transparenz} auf den Wert 25\%. 
\end{itemize}

Die Höhenkarte \usertext{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.

\minisec{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 \classname{r.shaded.relief} angesprochen werden, die nur über die
Kommandozeile genutzt werden kann. 

\begin{figure}[ht]
 \begin{center}
 \caption{Die GRASS Shell mit dem Modul r.shaded.relief
\nixcaption}\label{fig:grass_toolbox_shell}
 \includegraphics[clip=true, width=8cm]{grass_toolbox_shell}
 \end{center}
\end{figure}

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

\begin{itemize}
\item Laden Sie das Höhenmodell \usertext{gtopo30} wie im vorherigen
Beispiel, öffnen Sie dann die GRASS-Werkzeugkiste und klicken auf die GRASS
Shell. In das Kommandozeilenfenster tippen Sie nun folgenden Befehl:\linebreak
\usertext{r.shaded.relief map=gtopo30 shade=gtopo30\_shade2 azimuth=315
zmult=3} \linebreak und drücken dann die Taste \keystroke{Enter}.
\end{itemize}

\begin{itemize}
\item Wenn die Berechnung abgeschlossen ist, wechseln Sie den Reiter
\tab{Browser} und Doppelklicken Sie auf die neu erstellte Karte
\usertext{gtopo30\_shade2}, um Sie in QGIS anzuzeigen. 
\item 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.
\end{itemize}

\begin{figure}[ht]
 \begin{center}
 \caption{Anzeigen einer GRASS Schummerungskarte
\nixcaption}\label{fig:grass_toolbox_shadedrelief}
 \includegraphics[clip=true, width=9cm]{grass_toolbox_shadedrelief}
 \end{center}
\end{figure}

\minisec{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.

\begin{itemize}
\item Verwenden Sie wieder die Alaska Location (siehe Kapitel
\ref{sec:import_loc_data}, und importieren Sie das Shapefile \usertext{trees}
aus dem Ordner \usertext{vmap0\_shapefiles} nach GRASS. 
\item 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. 
\item Wählen Sie aus der GRASS-Werkzeugkiste Vector \arrow Manage features, und
öffnen Sie das Modul \classname{v.centroids}. 
\item Geben Sie als \inputtext{Name für die Ausgabevektorkarte}{\usertext{forest\_areas}}
an und starten Sie das Modul. 
\item Nun laden Sie den neuen Layer \usertext{forest\_areas} und
visualisieren Sie die verschiedenen Waldtypen in verschiedenen Farben -
deciduous, evergreen und mixed. Dazu öffnen Sie den Dialog
\dropmenuopt{Vektorlayereigenschaften} des Layers, wechseln zum Reiter
\tab{Darstellung}, wählen \selectstring{Legendentyp}{Eindeutiger Wert} und
setzen das \inputtext{Klassifikationsfeld}{VEGDESC} auf VEGDESC (siehe auch
Kapitel \ref{sec:symbology}).
\item Als nächstes öffnen Sie wieder die GRASS-Werkzeugkiste und wechseln
nach Vector \arrow Vector update by other maps.
\item Klicken Sie auf das \classname{v.rast.stats} Modul. Geben Sie als
\inputtext{Name der Rasterkarte}{\usertext{gtopo30}} und als
\inputtext{Name der Vektorkarte}{\usertext{forest\_areas}} an. 
\item Nun fehlt nur noch ein Parameter: Geben Sie als
\inputtext{Spaltenpräfix}{\usertext{elev}} an, und klicken Sie dann auf
\button{Starten}. Die Berechnung wird ziemlich lange dauern (bis zu mehreren
Stunden).
\item Wenn es erfolgreich beendet wurden. öffnen Sie den Layer
\usertext{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.: \usertext{elev\_min}, \usertext{elev\_max}, \usertext{elev\_mean}.
\end{itemize}

\subsection{GRASS Datei-Browser} \index{GRASS GIS!Werkzeugkiste!Browser}

Eine weitere interessante Funktion ist der GRASS Datei-Browser. 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, und bei Vektordaten die Attributtabelle,
In Abbildung~\ref{fig:grass_mapset_browser} sehen Sie ein Beispiel.

\begin{figure}[h]
 \begin{center}
 \caption{GRASS Datei-Browser \nixcaption}\label{fig:grass_mapset_browser}
 \includegraphics[clip=true,width=8cm]{grass_mapset_browser}
 \end{center}
\end{figure}

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

\begin{itemize}
\item \toolboxtwo{grass_add_map}{Ausgewählten Layer dem Kartenfenster
hinzufügen}
\item \toolboxtwo{grass_copy_map}{Gewählte Karte kopieren}
\item \toolboxtwo{grass_rename_map}{Gewählte Karte umbenennen}
\item \toolboxtwo{grass_delete_map}{Gewählte Karte löschen}
\item \toolboxtwo{grass_set_region}{Setze die Region auf die gewählte Karte}
\item \toolboxtwo{grass_refresh}{Neu zeichnen}
\end{itemize}

Die Knöpfe \toolboxtwo{grass_rename_map}{Gewählte Karte umbenennen} und
\toolboxtwo{grass_delete_map}{Gewählte Karte löschen} stehen nur für die
aktuelle \filename{Mapset} zur Verfügung. Die anderen Werkzeuge funktinionieren auch in den anderen Mapsets.

\subsection{Anpassen der Module} \index{GRASS GIS!Werkzeugkiste!Anpassen}
\label{sec:toolbox-customizing}

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 \usertext{v.buffer} (v.buffer.qgm)
dargestellt:

\begin{verbatim}
<?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>
\end{verbatim}

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: \\
\url{http://wiki.qgis.org/qgiswiki/Adding\_New\_Tools\_to\_the\_GRASS\_Toolbox}.

\FloatBarrier

