Prinzipiell ist GRASS ein ganz normales Anwendungsprogramm. Es weist seit der Version 4.2.1 eine graphische Benutzeroberfläche auf, die seine Bedienung mit der Maus ermöglicht. Daneben können, wie aus vorherigen GRASS-Versionen gewohnt, die GIS-Kommandos auch in dem GRASS-Terminal"-fen"-ster eingegeben werden. Die Programmstruktur ist allerdings etwas anders als bei üblichen Anwendungsprogrammen: Die GRASS-Kommandos (typischerweise als GRASS-Module bezeichnet) sind den übrigen UNIX-Kom"-man"-dos nach dem Start von GRASS gleichgestellt. Das bedeutet, dass im selben Fenster, in dem GRASS gestartet wurde, auch alle UNIX-Befehle zur Verfügung stehen. Der Sinn liegt darin, so auf die gesamte UNIX-Kapazität bei der Arbeit mit GRASS zugreifen und leistungsfähige Programmabläufe erstellen zu können. GRASS-"`Neulinge"' müssen sich vielleicht zunächst an diese Struktur gewöhnen, sie werden aber schnell die Vorteile des Konzepts erkennen.
Die Benutzeroberfläche "`TclTkGRASS"', die mit der Maus bedient wird,
ist eine Erweiterung ohne eigene GIS-Funktionali"-tät. Vielmehr steuert "`TclTk"-GRASS"'
einen Teil der vorhandenen GRASS-Module und soll der Arbeitserleichterung dienen
(vgl. Abbildung 10).
Die GIS-Daten werden bei GRASS in einer Verzeichnisstruktur gespeichert. Bevor mit der
Arbeit in GRASS begonnen werden kann, ist dafür ein "`Standardunterverzeichnis"' (als
GRASS-Database bezeichnet) nutzerseitig zu erzeugen und später in GRASS
anzugeben. Darin organisiert GRASS dann selbsttätig seine Daten in Form von weiteren
Unterverzeichnissen. Jedes Projekt bekommt bei der Definition des Projektgebiets
automatisch einen Unterverzeichnisbaum innerhalb dieses Standardverzeichnisses. Die
Datenorganisation sollte GRASS überlassen werden. Auch alle Dateioperationen wie das
Umbenennen oder Kopieren von Karten müssen mit GRASS-Befehlen erfolgen, da intern immer
mehrere Dateien betroffen sind. Manuelle Änderungen sind nur in Ausnahmefällen sinnvoll.
Die Grafikausgabe, also das Kartendarstellungsfenster, ist in GRASS kein "`normales"'
Fenster, sondern stellt geographische Daten mit Koordinaten dar. Es sollte,
anders als üblich, mit Vorsicht behandelt werden. Diese Grafikausgabe-Fenster (sogenannte
GRASS-Moni"-tore) dürfen keinesfalls zur Beendigung der Arbeit per Mausklick
geschlossen werden, sondern ausschließlich mit dem GRASS-Befehl d.mon. Die
Benutzeroberfläche ermöglicht ebenfalls die Konfiguration und Bedienung dieser
Fenster.
Die Module und damit die GIS-Funktionalität sind in GRASS bereits durch ihre Namen sehr
klar gegliedert. Es gibt verschiedene Funktionsklassen: Module zur Datenvisualisierung,
zur Vektor-,
Raster- und Punktdatenverarbeitung, allgemeine Dateiverarbeitungs-,
Kartenerstellungsbefehle usw. Dabei gibt der erste Buchstabe die Funktionsklasse an,
anschließend folgt ein Punkt und nun ein oder zwei weitere Worte, letztere durch einen
weiteren Punkt getrennt. Diese Worte sind der englischen Sprache entnommen und leicht
verständlich. Tabelle 4.1 listet die wesentlichen Funktionsklassen
auf.
Einige Beispiele für GRASS-Befehle: v.in.shape ist ein
Vektorbefehl zum Import einer ESRI/- SHAPE-Datei, r.buffer
berechnet eine Pufferzone um Rasterlinien und -flächen, d.measure erlaubt
Strecken- und Flächenmessungen per Maus in der Grafikausgabe (im GRASS-Monitor),
i.ortho.photo erzeugt ein Orthofoto aus einem gescannten Luftbild. Eine
Kurzübersicht zu rund 250 GRASS-Befehlen finden Sie in Abschnitt A.2. Fast
alle Module können sowohl kommandozeilenorientiert (Modulaufruf und Parameterangabe in
einer Zeile) benutzt werden als auch interaktiv. Sie können jedes Modul ohne
Parameter aufrufen und werden durch Menüs abgefragt.
Nun noch einige Worte zur weiteren GRASS-Terminologie: Ein Projektgebiet wird in GRASS als
location bezeichnet. Sie wird über ihre geographischen Ränder mit
Koordinatenangaben und zusätzliche Projektionsangaben definiert. Innerhalb dieser
location können Arbeitsgebiete, sogenannte mapsets,
festgelegt werden. Häufig erzeugt man aber nur eine mapset, die so groß wie die
location ist. Mehrere mapsets bieten sich bei Teamarbeit an. Bei der
Definition der location sollte man bedenken, dass sie sich nachträglich nicht
erweitern lässt (bzw. mit Fachwissen nur durch Modifikation in der Datenbank). Sie sollte
also lieber zu groß gewählt werden, um später Probleme
zu vermeiden. Gebiete, in denen keine Daten vorliegen, sehen einfach "`schwarz"' aus und
beinhalten keine Daten. Die Datenbank in GRASS wird als database bezeichnet.
Die Planung der Datenbank benötigt generell in einem Geographischen Informationssystem ein wenig Vorbereitungszeit. Da mit der gewählten Struktur die GIS-Arbeit steht und fällt, sollte hier sehr sorgfältig vorgegangen werden. Besondere Aufmerksamkeit kommt der Auflösung zu - eine sehr gute Auflösung erfordert große Rechen- und Speicherkapazitäten, eine geringe Auflösung führt dagegen selten zu den gewünschten Ergebnissen. Das Optimum liegt also dazwischen und hängt von den Anforderungen, aber auch sehr stark von den zur Verfügung stehenden Daten ab.
Bevor Sie nun mit GRASS erstmals arbeiten, legen Sie ein Unterverzeichnis (die oben angesprochene GRASS-Database, in der GRASS seine Daten speichert) in Ihrem home-Verzeichnis an (vgl. auch Abb. 3). Ein Beispiel:
$ cd $HOME
$ mkdir grassdata
Anschließend kann GRASS gestartet werden (Aufrufname versionsabhängig):
$ grass4.3 oder $ grass5
Der prinzipielle Ablauf sieht folgendermaßen aus: Als Erstes erscheint der "`Begrüßungsbildschirm"' von GRASS. Es werden einige Angaben verlangt, die die zu bearbeitende Region und den Pfad zur verwendeten GRASS-Database betreffen. Der Name für die location (also das gesamte Projektgebiet), die mapset und der Pfad zur database sind anzugeben (z.B. /home/emil/grassdata).
Wenn Sie "`list"' in einer Formularzeile und anschließend "`ESC"'-"`RETURN"' zum Verlassen der Eingabemaske eingeben, listet GRASS alle in dieser Rubrik vorhandenen Daten auf. Sind location, mapset und GRASS-Database angegeben, geht es mit "`ESC"'-"`RETURN"' weiter.
Die location braucht nun geographische Informationsangaben wie das zu verwendende
Koordinatensystem samt Bezugs"-ellipsoid, die Randkoordinaten des Projektgebiets und die
Standardauflösung für Rasterdaten. Im Allgemeinen wird in Deutschland und einigen anderen
europäischen Ländern mit dem Gauß-Krüger-Koordinatensystem gearbeitet (vgl.
Abschnitt 3.3). Deshalb wird es in diesem Handbuch schwerpunktmäßig
benutzt. Eine prinzipielle Darstellung, wie locations definiert werden, finden
Sie in Abbildung 11. Im Unterschied zu anderer GIS-Software ist
bei GRASS zuerst das Projektgebiet zu definieren, bevor man die Benutzeroberfläche sieht.
Effektiv ergibt sich aber kein Unterschied, in ESRI-Software muss beispielsweise das
Projektgebiet nach dem Aufruf des Programms auch sofort
definiert werden. Es ist also nur die Reihenfolge anders.
Nun soll ein Beispiel folgen, wie eine location eingerichtet wird. Nach dem Start von GRASS erscheint der besagte "`Begrüßungsbildschirm"'. Hier werden nun Namen für location und mapset gewählt sowie der Pfad auf die GRASS-Datenbank angegeben:
GRASS 5.0
LOCATION:
This is the name of an available geographic location. -spearfish-
is the sample data base for which all tutorials are written.
MAPSET:
Every GRASS session runs under the name of a MAPSET. Associated
with each MAPSET is a rectangular COORDINATE REGION and a list
of any new maps created.
DATABASE:
This is the unix directory containing the geographic databases
The REGION defaults to the entire area of the chosen LOCATION.
You may change it later with the command: g.region
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LOCATION: celle_________ (enter list for a list of locations)
MAPSET: flussaue______ (or mapsets within a location)
DATABASE: /home/emil/grassdata______________________________
AFTER COMPLETING ALL ANSWERS, HIT <ESC><ENTER> TO CONTINUE
(OR <Ctrl-C> TO CANCEL)
Nach dem Drücken von "`ESC"'-"`RETURN"' geht es mit den Definitionen für dieses Projektgebiet weiter, GRASS fragt die Parameter ab (die Reihenfolge der Abfrage weicht in GRASS 4.x leicht ab). Als erstes ist aus einem Menü die Projektion auszuwählen; da das Gauß-Krüger-System nicht in der Auswahlliste vorkommt, muss es unter "`other"' selbst definiert werden.
Bei Projektgebieten im Längen-/Breitengradsystem können die Gebietsrandkoordinaten entweder im Sexagesimalsystem (Grad) getrennt mit "`:"' angegeben werden (z.B. 10:30:00) oder im Dezimalsystem (10.5).
Nun folgt die Beschreibung der Randkoordinaten des Projektgebiets und die Definition der Standard-Rasterauflösung. Ein Beispiel für die Definition einer location in Gauß-Krüger-Koordinaten:
================= DEFAULT REGION ================
| Default North:........... |
| |
| ===== YOUR REGION ===== |
| | NORTH EDGE:5844000.. | |
| | | |
Def. West| WEST EDGE | | EAST EDGE | Def. East
........ | 3538000.. | | 3566000.. | ........
| | SOUTH EDGE:5834000.. | |
| ========================= |
| |
| Default South:......... |
=================================================
GRID RESOLUTION: East-West: 2
North-South: 2
Die anzugebende Standard-Rasterdatenauflösung (GRID RESOLUTION) wird den Anforderungen entsprechend gewählt. In obigem Beispiel entspricht die Länge einer Rasterzelle zwei Metern in der Natur. Prinzipiell ist anzuraten, bei der Auflösung in Schritten von 0.25 zu arbeiten (0.25, 0.5, 1.75, 2.00, 12.25 usw.). Für Vektor- und Punktdaten spielt diese Auflösungsangabe keine Rolle, da sie koordinatenscharf gespeichert werden. Jede Rasterkarte kann aber ihre eigene Auflösung haben.
Mit "`ESC"'-"`RETURN"' verlässt man diese Eingabe und akzeptiert die nun erscheinende Auflistung der Parameter, wenn alles richtig ist.
Nun gelangt man wieder zur Begrüßungsseite. Mit einem weiteren "`ESC"'-"`RETURN"' wird
diese Seite endgültig verlassen, ein Name für die mapset war ja bereits
angegeben. Die Erzeugung der innerhalb der location liegenden mapset
wird mit "`yes"' durchgeführt. Alle benötigten Werte wie die
Projektionsart etc. gelten natürlich auch für die mapset.
Nun ist also das Projektgebiet, nämlich die location mit einer mapset eingerichtet. Sie sind im GRASS-System "`angekommen"'. Sofern installiert, können Sie nun die graphische Benutzeroberfläche "`TclTkGRASS"' aufrufen. Das geschieht folgendermaßen:
Das kaufmännische Und-Zeichen (&) ermöglicht, dass Sie das Terminalfenster weiterbenutzen können (vgl. Abschnitt 2.2.6). Es handelt sich ja schließlich um das GRASS-Kommando"-fenster. Alle wesentlichen GRASS-Module sind bei TclTkGRASS per Maus bedienbar. Nun sollte die Grafikausgabe aufgerufen werden, damit Sie später auch Karten betrachten können. Diese Grafikausgabe wird als "`GRASS-Monitor"' bezeichnet. Es gibt maximal sieben Grafikausgaben, die mit x0 bis x6 bezeichnet sind. Sie können diese GRASS-Monitore in TclTkGRASS über "`DISPLAY"'"`MONI"-TORS"'"`START"' aufrufen bzw. mit "`STOP"' wieder beenden. Alternativ können Sie das entsprechende GRASS-Kommando auch in das Kommandofenster eingeben. So wird beispielsweise der erste Monitor x0 mit
$ d.mon start=x0 oder vereinfacht mit
Wenn Sie nur d.mon gefolgt von "`return"' eingeben, können Sie das Modul auch menügeführt bedienen. Diese Art der Menüführung ist prinzipiell in (fast) allen GRASS-Modulen integriert.
Die Grafikausgabe wird standardmäßig mit 32768 Farben gestartet. Sie können mit der "`nlev"'-Option (number of color levels) auch mehr Farben bis zu 16,7 Millionen (24bit) bekommen:
Die Farbtiefe errechnet sich nach ncolors = nlev. Bei voller Farbtiefe kann der Start
des GRASS-Monitors je nach Rechnerleistung einige Sekunden dauern, da intern entsprechend
temporärer Speicherplatz belegt werden muss.
Wie die Grafikmonitore in ihrer Größe über das Setzen von UNIX-Umgebungsvariablen (z.B.
für /etc/profile) eingestellt werden, steht in Abschnitt A.1. Wenn Sie
TclTkGRASS benutzen, können Sie in den Menüs "`CONFIG"'"`OPTIONS"'"`DISPLAY
DIMENSIONS"' die Größe angeben. Diese Änderungen sind allerdings erst beim nächsten Öffnen
eines Monitors wirksam. Beim Verlassen von TclTkGRASS ist dann "`SAVE CONFIG"' mit "`YES"'
zu beantworten, um diese Konfigurationsinformationen für weitere Sitzungen zu speichern. Allgemein gilt,
dass ein Grafikmonitor nicht mit der Maus in seiner Größe verändert werden
sollte. Dann kann es nämlich zum Verbindungsverlust zwischen GRASS und dem Fenster
kommen, so dass der GRASS-Monitor keine Daten mehr ausgibt. Die Größe sollte also nur über
die entsprechenden Environment-Variablen oder TclTkGRASS eingestellt werden. Diese
Sensibilität liegt darin begründet, dass es sich beim Monitorfenster um ein besonderes
Fenster mit interner Koordinatenverwaltung handelt.
Bevor die Arbeit mit GRASS weiter besprochen wird, soll zunächst das Beenden des Gesamtprogramms beschrieben werden. Das ordnungsgemäße Verlassen von GRASS ist sehr wichtig, damit keine Daten verloren gehen. Benutzen Sie TclTkGRASS, so ist dieses zuerst zu beenden. TclTkGRASS fragt Sie, ob Sie die geöffneten GRASS-Monitore schließen wollen. Ist letzlich noch ein GRASS-Monitor geöffnet, wird er mit
$ d.mon stop=x0
abgeschaltet (weitere Monitore entsprechend) oder einfach mit der Maus das Monitorfenster geschlossen. GRASS selbst wird anschließend mit
$ exit
verlassen. Geodaten sind bereits direkt nach ihrer Erzeugung automatisch gespeichert worden. Die Reihenfolge beim Beenden sieht also folgendermaßen aus: