<< GRASS-Kurs Display-Module und Shellskripte >>

Mit den Display-Modulen (d.*) soll eine Geologische Karte mit Flüssen, Strassen, Legende, Titel, Massstab, und einem Histogramm aufgebaut werden. Dazu verwenden wir:

d.frame, d.rast, d.legend, d.text, d.title, d.histogram, d.vect

Die Kartenelemente werden in verschiedene Frames des Monitors gezeichnet. Die Liste der notwendigen Befehle erscheint lang und die Vorgehensweise umständlich. Mit dem Einsatz von Shell-Skripten können Grass-Projekte aber sehr leicht verwaltet werden. Nachdem die Befehle eingegeben sind, können sie mit d.save in einem Skript gespeichert werden.


Geologische Karte der Spearfish-Region

Frame 1 für die Karte:

    d.frame -c frame=1 at=28,96,41,96
    d.rast map=geology
    d.vect map=roads color=black
    d.vect map=streams color=aqua
Frame 2 für die Überschrift:
    d.frame -c frame=2 at=85,96,2,40
    d.text size=80 color=gray line=1 << eot
    Geology
    eot

Frame 3 für die Legende:

    d.frame -c frame=3 at=44,83,2,40
    d.legend map=geology color=black

Frame 4 für das Histogramm:

    d.frame -c frame=4 at=3,42,2,40
    d.histogram map=geology color=black style=pie

Frame 5 für die Beschriftung:

    d.frame -c frame=5 at=3,27,41,96
    d.title -f map=geology color=black size=8 | d.text

Ausgabe aller Befehle mit:

    d.save -a

Speichern aller Befehle in die Datei: geo.sh:

    d.save -a > geo.sh

Ansehen und Editieren der Datei mit einem Editor:

    xedit geo.sh &

Aufgabe 3:

Testen Sie das Skript

Zuerst alle Frames löschen...

    d.frame -e

...dann mit dem Shellskript geo.sh wieder herstellen:

    geo.sh

Aufgabe 4: Kopieren Sie das Skript.
Ändern Sie in der Kopie die Anordnung der Frames in der Art und Weise der folgenden Abbildung:

Aufgabe 5: Ist Ihnen aufgefallen, dass jeweils ein Frame einen stärker sichtbaren Rahmen hat (um anzuzeigen, dass dieses Frame ausgewählt ist)?
Durch welchen "Trick" können Sie dies verhindern (so dass alle Rahmen gleich aussehen)? Lesen Sie die Manualseiten zu d.frame aufmerksam durch, dort finden Sie die Lösung. Erweitern Sie ihr Skript entsprechend und erstellen Sie eine Ansicht, in der alle Frames den gleichen Rahmen haben.

Tipp: Fügen Sie Kommentare in ihr Skript ein (so dass Sie auch "später" noch verstehen, was passiert).

Aufgabe 6: Fügen Sie Variablen in das Shellskript ein, damit das Skript bei jedem Aufruf eine beliebige Karte darstellen kann.
Ersetzen Sie in "geo.sh" überall den Namen der Karte (geology) durch die Zeichenfolge "$1".
"$1" enthält das erste Argument, das beim Ausführen des Befehls übergeben wird.
Der Aufruf sieht dann zum Beispiel so aus:
geo.sh vegcover

Für die Anpassung der Textausgaben von d.text müssen Sie zunächst den gewünschten Text
(abhängig von der jeweiligen Variable $1) in eine Textdatei leiten (mit echo Variable > textdatei)
und dann den Inhalt dieser Textdatei an d.text leiten (mit < textdatei).

Wenn ihr Skript soweit funktioniert, gehen Sie weiter zur nächsten Seite (sie benötigen das Skript in Aufgabe 9 wieder).

<< GRASS-Kurs Display-Module und Shellskripte >>