next up previous contents index
Next: Planung und Aufbau einer Up: grass Previous: Unterstützte GIS-Datenformate   Contents   Index


Der erste Einstieg in GRASS

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.

Figure 10: Benutzung von GRASS mit der graphischen Benutzeroberfläche "`TclTkGRASS"'

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.


Table 4.1: Struktur der GRASS-Modulnamen
Präfix Funktionsklasse Bedeutung der Befehle
d.$\ast$ display für Grafikausgabe und visuelle Abfragen
g.$\ast$ general allgemeine Dateioperationsbefehle
i.$\ast$ imagery für Bildverarbeitung
m.$\ast$ misc verschiedene Befehle
p.$\ast$ paint Kartenerstellungsbefehle
ps.$\ast$ postscript Kartenerstellungsbefehle für Postscriptformat
r.$\ast$ raster für Rasterdatenverarbeitung
s.$\ast$ sites für Punktdatenverarbeitung
v.$\ast$ vector für Vektordatenverarbeitung


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.

Figure 11: Prinzipielle Definition einer xy-location bzw. einer Gauß-Krüger-location

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.

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:

$ tcltkgrass &

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

$ d.mon x0 gestartet.

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:

$ d.mon start=x0 nlev=256

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:

  1. TclTkGRASS beenden (Quit, Monitore schließen per Menüfenster)
  2. Sind noch Monitore offen, mit $ d.mon oder der Maus schließen
  3. GRASS mit $ exit verlassen.


next up previous contents index
Next: Planung und Aufbau einer Up: grass Previous: Unterstützte GIS-Datenformate   Contents   Index
Markus Neteler 2005-04-14