![]() |
Grundkurs GMTSommersemester 2002, Freie Universität Berlin |
![]() |
Inhalt:
|
Beispiel für einen Konturplot mit GMT: Sedimentmächtigkeit um einen angeströmten Zylinder |
GMT steht für Generic Mapping Tools, eine von Paul Wessel and Walter H. F. Smith erdachte und programmierte Sammlung von Programmen, mit denen man (unter anderem) alle möglichen Sorten von geologischen Daten in Kartenentwürfe eintragen kann. Man kann z.B.:
GMT läuft unter der GNU General Public License, soll heißen ist umsonst und wird als frei verfügbarer und veränderbarer Programmcode verteilt. Das hat unmittelbare Vorteile, natürlich wegen der Kosten, die man für andere software aufbringen müsste, weil man eigene Dinge einprogrammieren kann, aber auch deshalb, weil man die Programme für jede Sorte von Rechnerarchitektur passend kompilieren kann. - allerdings auch muss, denn es wird keine fertige Software geliefert.
Der Kurs beschränkt sich auf genau diese Funktionen von GMT, es geht im wesentlichen um das rasche Erstellen von bathymetrischen Karten und bietet so nur einen Ausschnitt der verfügbaren Möglichkeiten. Für eine detaillierte und vollständige Anleitung bietet sich das "GMT-Cookbook" von Wessel & Smith selbst an. Es kann von der GMT-Homepage zusammen mit dem eigentlichen Programm als Postscript-Datei heruntergeladen werden.
Auf diesen Seiten wird außerdem unterstellt, daß GMT auf einem Rechner funktionierend installiert ist und der Benutzer alle erforderlichen Rechte besitzt. Die folgenden Erklärungen beziehen sich auf eine UNIX-Umgebung. Die Installationsbeschreibung ist auf der GMT-Homepage nachzulesen. Dort gibt es auch die Angaben, wo der Quellcode zu beziehen ist, was für die Kompilation erforderlich ist etc.

Mit GMT lassen sich -kurz gesagt- Karten der Erdoberfläche oder des Meeresbodens in einer erschlagenden Vielfalt von Projektionen und beliebiger Skalierung erstellen. Anstelle von topografischen Daten können auch beliebige andere Daten konturiert werden, z.B. Schweredaten, Sedimentmächtigkeiten, Konzentrationen etc, aber das soll nicht Schwerpunkt dieses Kurses sein. Durch berechnete Schattenwürfe kann eine optische Tiefe simuliert werden, es lassen sich aber auch 3D-Blockbildern erzeugen. In die Karten kann man an geografischen Koordinaten Symbole, Linien, Flächen und Texte eintragen. Die Ausgabedateien sind Postscript-files, die entweder direkt gedruckt oder in andere Grafikprogramme (z.B. CorelDraw) eingelesen werden können.
Bislang ist es nicht möglich halbtransparente "layers" übereinander zu stapeln, also z.B. die geologische Karte durchscheinend über die Topografie zu legen.
Zunächst einmal für alle Windows-gewöhnten Benutzer: Es gibt von Haus aus keine Benutzeroberfläche, die Programme stammen aus der UNIX-Welt, wo so etwas nicht unbedingt gefragt ist. Inzwischen wurden von verschiedenen Leuten unterschiedliche Arten von Benutzeroberflächen dazugeflickt, aber damit kenne ich mich nicht aus.
Das heißt, daß die Programme der GMT-Sammlung in bester UNIX-Tradition als Befehle funktionieren, die in einem Eingabeterminal (command-shell) eingetippt werden. Die Befehle werden mit Daten (z.B. einer Eingabedatei) gefüttert, manipulieren diese Daten in einer Art und Weise, die durch Befehlsoptionen bestimmt wird und das Ergebnis in eine Ausgabedatei schreiben, nach folgendem Schema:
GMT-BEFEHL EINGABEDATEI -Option1 -Option2 -Option3 > AUSGABEDATEI
Die Ausgabedatei ist in der Regel eine Postscript-Datei, die ohne irgendwelche Druckertreiber von Postscript-fähigen Drucker interpretiert, oder von anderen Grafikprogrammen importiert werden kann.
In der Regel wird eine komplexere Karte einen Rahmen, Tiefenlinien, eine Küstenlinie etc. enthalten. Für jeden dieser Schritte wird ein anderer GMT-Befehl verwendet. Die Gesamtdarstellung wird dadurch erzeugt, daß die Ausgabe der verschiedenen Befehle wie in Ebenen übereinander gelegt wird. Technisch wird dabei die Ausgabe eines Befehls an die schon bestehende Ausgabedatei angehängt:
GMT-BEFEHL1 EINGABEDATEI -Option1 -Option2 -Option3 -K > AUSGABEDATEI
GMT-BEFEHL2 EINGABEDATEI -Option1 -Option2 -Option3 -K >> AUSGABEDATEI
GMT-BEFEHL3 EINGABEDATEI -Option1 -Option2 -Option3 >> AUSGABEDATEI
Die Option -K bedeutet, daß die Datei noch nicht abgeschlossen wird, der Doppelpfeil >> bedeutet in einer UNIX-Umgebung, daß an die bestehende Datei noch etwas drangehängt wird.
Praktischerweise wird man diese Befehlsfolgen nicht immer wieder neue eingeben, sondern in eine Stapeldatei oder Script-Datei (eine einfache Textdatei, in Folgenden einfach GMT-Datei genannt) schreiben, die dann aufgerufen werden kann und die Befehlsabfolge in Gang setzt. So kann man eine Datei immer weiter editieren, z.B. um den Kartenausschnitt zu verändern. Unter UNIX muss man dafür die Datei dafür noch ausführbar (executable, x) machen. Das geht mit dem Befehl chmod (change mode):
chmod +x GMT-DATEI
Wenn wir die Befehle schon in eine Datei eingeben, können wir uns die Sache durch Variablen erleichtern, die wir am Anfang der Datei mit einem = definieren. Diese Variablen werden dann im folgenden Code (in den üblichen UNIX-shells) durch ein $-Zeichen als solche gekennzeichnet und durch den eigentlichen Wert ersetzt. Ein #-Zeichen kennzeichnet einen Kommentar.
Wenn wir schon dabei sind können wir am Ende das Resultat, die Postscript-Ausgabedatei (in diesem Fall mittelmeer.ps) gleich in einen Postscript-viewer lenken, also ein kleines Programm, die uns das Ergebnis auf den Bildschirm zaubert. Weit verbreitet ist z.B. das Programm GhostView oder gv:
![]()
#Variablen
PS=mittelmeer.ps
PSVIEWER=gv
#GMT-Befehle
GMT-BEFEHL1 EINGABEDATEI -Option1 -Option2 -Option3 -K > $PS
GMT-BEFEHL2 EINGABEDATEI -Option1 -Option2 -Option3 -K >> $PS
GMT-BEFEHL3 EINGABEDATEI -Option1 -Option2 -Option3 >> $PS
$PSVIEWER $PS

Die symbolisierten Papierkanten sollen Anfang und Ende der Datei darstellen (sieht zwar eher wie eine Tapete aus...).
Im Folgenden werden einzelne, im oben genannten Zusammenhang wichtige Befehle vorgestellt und illustriert, was sie bewirken. Jeder einzelne Befehl hat eine ganze Reihe von Befehlsoptionen, die hier nicht alle vorgestellt werden können. Zu jedem der Befehle existiert eine detaillierte Beschreibung (manpage) die mit dem Befehl man GMT-BEFEHL abgefragt werden kann. Die Beispiels-skriptdateien (uebung01.gmt bis uebung08.gmt) bauen aufeinander auf, es kommt immer etwas neues dazu. Sie können am Ende der Seite auch heruntergeladen werden, um sie z.B. als Vorlage für eigene Karten zu verwenden.
|
#!/bin/sh # Karte Monterey Canyon, David Völker 10/01 #========================================== #Ausgabedatei PS=uebung01.ps #Koordinaten NORD=38.5 SUED=34.0 WEST=-125 OST=-121 #Skalierung SKALA=2.0 #PS-VIEWER PSVIEWER=gimp #GMT-Befehle psbasemap -R"$WEST"/"$OST"/"$SUED"/"$NORD" -Jm"$SKALA"d -Ba1g0.5/a1g0.5NSEW -V -U >$PS $PSVIEWER $PS
|
![]() |
Was passiert hier? Zunächst einmal werden einige Variablen definiert, die dann später mit dem $-Zeichen wieder aufgegriffen werden, z.B. die geografischen Eckpunkte NORD/SUED/OST/WEST, die Skalierung, der Name der Ausgabedatei etc. Der Befehl selbst erzeugt den Rahmen. Die Option -J eröffnet die Möglichkeit verschiedener Projektionen, hier ist es eine Mercatorprojektion mit dem Maßstab 2.0 cm/Längengrad. Die Option -B ermöglicht die Annotation von geografischen Labeln am Rand, definiert die Dichte von Gitterpunkten. Für weitere Angaben betätige man man psbasemap
|
#!/bin/sh # Karte Monterey Canyon, David Völker 10/01 #========================================== #Ausgabedatei PS=uebung02.ps #Koordinaten NORD=38.5 SUED=34.0 WEST=-125 OST=-121 #Skalierung SKALA=2.0 #PS-VIEWER PSVIEWER=gimp #GMT-Befehle psbasemap -R"$WEST"/"$OST"/"$SUED"/"$NORD" -Jm"$SKALA"d -Ba1g0.5/a1g0.5NSEW -V -U -K > $PS pscoast -R -Jm -B -W1.0p -Dh -Ir -O -V >> $PS $PSVIEWER $PS
|
![]() |
Was ist dazugekommen? Die Variablen sind unverändert. Im Unterschied zum obigen Beispiel wird an die Ausgabe von psbasemap etwas drangehängt. Dazu muss die Option -K gesetzt werden. Die Ausgabe des Befehls pscoast wird als Overlay (-O) darübergelegt. mit -W kann man die Strichstärke bestimmen. Für weitere Angaben betätige man man psbasemap
|
#!/bin/sh # Karte Monterey Canyon, David Völker 10/01 #========================================== #Ausgabedatei PS=uebung03.ps #Koordinaten NORD=38.5 SUED=34.0 WEST=-125 OST=-121 #Skalierung SKALA=2.0 #PS-VIEWER PSVIEWER=gimp #GMT-Befehle psbasemap -R"$WEST"/"$OST"/"$SUED"/"$NORD" -Jm"$SKALA"d -Ba1g0.5/a1g0.5NSEW -V -U -K > $PS pscoast -R -Jm -B -W1.0p -Dh -Ir -O -V -K >> $PS psxy -R -Jm -: -Sc0.3 -G255/0/0 -B -O -V -K «END»$PS 36.59 -123.20 37.72 -124.10 END pstext -R -Jm -: -G0/0/255 -W250 -D0.2/0.2 -O -V «END»$PS 36.59 -123.20 12 0 1 1 P1 37.72 -124.10 12 0 1 1 P2 END $PSVIEWER $PS
|
![]() |
Auf das obige Beispiel wird eine Layer mit Symbolen und Text gelegt, die an geografischen Positionen festgelegt sind. psxy liefert verschiedene Symbole (-Sc bedeutet einen Kreis), die in Größe und Farbe angepasst werden können (-G definiert die Farbe als RGB-Wert). Dazu gehört eigentlich eine getrennte Eingabedatei, in der die Koordinaten als Wertepaare eingetragen sind. In diesem Fall habe ich die Koordinaten aber gleich über das Wort END eingespeist. pstext plaziert Textfolgen an die angegebenen Koordinaten mit einem kleinen Versatz. Die Eingabedatei enthält außerdem Angaben über Größe und Position des Texts. Da die Koordinaten hier als latitude:longitude eingegeben wurden (also als y:x - Wertepaare und nicht als x:y) muss die Option -: gesetzt sein.
|
#!/bin/sh # Karte Monterey Canyon, David Völker 10/01 #========================================== #Ausgabedatei PS=uebung04.ps #topo: predicted seafloor topography (global_topo_2min), #W H F Smith and D T Sandwell, Science, v 277, pp 1956--62, Sep 26 1997. TOPOPATH=/opt/data/sandwell TOPO2MINFILE="$TOPOPATH"/topo_8.2.img #Koordinaten NORD=38.5 SUED=34.0 WEST=-125 OST=-121 #Skalierung SKALA=2.0 #PS-VIEWER PSVIEWER=gimp #GMT-Befehle psbasemap -R"$WEST"/"$OST"/"$SUED"/"$NORD" -Jm"$SKALA"d -Ba1g0.5/a1g0.5NSEW -V -U -K > $PS img2mercgrd $TOPO2MINFILE -T1 -S1.0 -R -Guebung04.grd grdcontour uebung04.grd -Jx"$SKALA" -C200 -W1/0/0/0 -O -V -K >>$PS pscoast -R -Jm -B -W1.0p -Dh -Ir -O -V -K >> $PS psxy -R -Jm -: -Sc0.3 -G255/0/0 -B -O -V -K «END»$PS 36.59 -123.20 37.72 -124.10 END pstext -R -Jm -: -G0/0/255 -W250 -D0.2/0.2 -O -V «END»$PS 36.59 -123.20 12 0 1 1 P1 37.72 -124.10 12 0 1 1 P2 END $PSVIEWER $PS #Aufräumen rm uebung04.grd
|
![]() |
Jetzt wird es langsam kompliziert: um Daten zu konturieren, müsen wir sie erstmal haben. Es könnten Koordinaten und Werte von Datenpunkten als x:y:z Paare in einer Datei sein oder binär codierte Werte. Ich verwende hier den bathymetrischen Datensatz GLOBALTOPO2MIN von Smith & Sandwell (siehe hierzu auch Kapitel zu bathymetrischen Datensätzen). Er besteht aus einer Datei (topo_8.2.img), auf die durch TOPOPATH und TOPO2MINFILE verwiesen wird. Um aus diesem Datensatz einen begrenzten Grid zu extrahieren wird zunächst das Programm img2mercgrd benötigt. Es produziert einen auf die Mercatorprojektion angepassten Datensatz (hier die Datei uebung04.grd), der dann, allerdings mit der Option -Jx (einfache x-y-Projektion) als Layer verwendet werden kann. Das Programm grdcontour gridded die Daten und zeichnet Konturlinien. Der Abstand der Linien kann mit -C gewählt werden, die Farbe & Stärke mit der Option -W. Da der durch img2mercgrd erzeugte gridfile uebung04.grd relativ groß sein kann, lohnt es sich hinterher gleich aufzuräumen: der Unix-Befehl rm (remove file) löscht ihn kurz und schmerzlos nach der Operation
|
#!/bin/sh # Karte Monterey Canyon, David Völker 10/01 #========================================== #Ausgabedatei PS=uebung05.ps #topo: predicted seafloor topography (global_topo_2min), #W H F Smith and D T Sandwell, Science, v 277, pp 1956--62, Sep 26 1997. TOPOPATH=/opt/data/sandwell TOPO2MINFILE="$TOPOPATH"/topo_8.2.img #Koordinaten NORD=38.5 SUED=34.0 WEST=-125 OST=-121 #Skalierung SKALA=2.0 #Schatten-Intensitaet SHADE=10000. #Schattenrichtung SHADEDIR=300 #PS-VIEWER PSVIEWER=gimp #GMT-Befehle psbasemap -R"$WEST"/"$OST"/"$SUED"/"$NORD" -Jm"$SKALA"d -Ba1g0.5/a1g0.5NSEW -V -U -K > $PS img2mercgrd $TOPO2MINFILE -T1 -S1.0 -R -Guebung05.grd grdgradient uebung05.grd -V -A"$SHADEDIR" -Gtemp.grd grdmath temp.grd $SHADE / = uebung05_grad.grd makecpt -Csealand > topo.cpt grdimage uebung05.grd -Ctopo.cpt -Jx"$SKALA"d -Iuebung05_grad.grd -O -K -V >>$PS grdcontour uebung05.grd -Jx"$SKALA" -C200 -W1/0/0/0 -O -V -K >>$PS pscoast -R -Jm -B -W1.0p -Dh -Ir -O -V -K >> $PS psxy -R -Jm -: -Sc0.3 -G255/0/0 -B -O -V -K «END»$PS 36.59 -123.20 37.72 -124.10 END pstext -R -Jm -: -G0/0/255 -W250 -D0.2/0.2 -O -V «END»$PS 36.59 -123.20 12 0 1 1 P1 37.72 -124.10 12 0 1 1 P2 END $PSVIEWER $PS #Aufräumen rm uebung05.grd uebung05_grad.grd temp.grd
|
![]() |
Wir gehen noch einen Schritt weiter. Der mit img2mercgrd extrahierte gridfile, der unsere Tiefendarstellung enthält soll mit grdimage als Farbverteilung dargestellt werden. Zu diesem Zweck benötigen wir eine Datei, die Wertebereichen (Tiefenstufen) eine bestimmte Farbe zuweist (cpt-Datei). Solch eine Datei können wir per Hand editieren, wir können uns aber auch helfen lassen von dem Programm makecpt. Dieses Programm erzeugt eine Farbtabelle, entweder in Intervallen, die wir bestimmen, oder nach bewährten Vorgaben, wie in diesem Fall (siehe : man makecpt). Die Farbtabelle (topo.cpt) geht als Eingabedatei in grdimage ein, ebenso die grid-Datei (uebung05.grd). Als zusätzliches Schmankerl habe ich noch einen sanften "Schattenwurf" auf die Topografie gelegt, die dadurch plastischer wirkt. Zum Erzeugen des Schattens wird zunächst mit dem Befehl grdgradient der räumliche Gradient des Gridfiles aus einem bestimmten Winkel (hier: NW, 300°, Option -A) berechnet und in eine dritte Datei geschrieben (uebung05_grad.grd). Diese Datei wird mit einem Faktor multipliziert (grdmath), dadurch verstärkt oder abgeschwächt und ebenfalls in grdimage eingespeist. Voila !
|
#!/bin/sh # Karte Monterey Canyon, David Völker 10/01 #========================================== #Ausgabedatei PS=uebung06.ps #topo: predicted seafloor topography (global_topo_2min), #W H F Smith and D T Sandwell, Science, v 277, pp 1956--62, Sep 26 1997. TOPOPATH=/opt/data/sandwell TOPO2MINFILE="$TOPOPATH"/topo_8.2.img #Koordinaten NORD=38.5 SUED=34.0 WEST=-125 OST=-121 #korrigierte Koordinaten (grdinfo uebung06.grd) NORD_K=38.5200537664 SUED_K=33.9795387952 WEST_K=-125 OST_K=-121 #Skalierung SKALA=2.0 #Schatten-Intensitaet SHADE=20000. #Schattenrichtung SHADEDIR=45 #PS-VIEWER PSVIEWER=gimp #GMT-Befehle psbasemap -R"$WEST_K"/"$OST_K"/"$SUED_K"/"$NORD_K" -Jm"$SKALA"d -Ba1g0.5/a1g0.5NSEW -V -U -K > $PS img2mercgrd $TOPO2MINFILE -T1 -S1.0 -R"$WEST"/"$OST"/"$SUED"/"$NORD" -Guebung06.grd grdgradient uebung06.grd -V -A"$SHADEDIR" -Gtemp.grd grdmath temp.grd $SHADE / = uebung06_grad.grd makecpt -Csealand > topo.cpt grdimage uebung06.grd -Ctopo.cpt -Jx"$SKALA"d -Iuebung06_grad.grd -O -K -V >>$PS grdcontour uebung06.grd -Jx"$SKALA" -C200 -W1/0/0/0 -O -V -K >>$PS psscale -Ctopo.cpt -D8.5/5.0/10/0.5 -L -B:[m]: -N300 -O -V -K >>$PS pscoast -R -Jm -B -W1.0p -Dh -Ir -O -V -K >> $PS psxy -R -Jm -: -Sc0.3 -G255/0/0 -B -O -V -K «END»$PS 36.59 -123.20 37.72 -124.10 END pstext -R -Jm -: -G0/0/255 -W250 -D0.2/0.2 -O -V «END»$PS 36.59 -123.20 12 0 1 1 P1 37.72 -124.10 12 0 1 1 P2 END $PSVIEWER $PS # Aufraeumen rm uebung06.grd uebung06_grad.grd temp.grd
|
![]() |
Was passiert hier? Drei Dinge: einerseits habe ich mal die Beleuchtungsrichtung und die Stärke des Schattens variiert (SHADE und SHADEDIR) um zu demonstrieren, wie verschieden doch die selbe Region wirken kann. Zweitens habe ich eine kleine Anpassung vorgenommen: img2mercgrd produziert eine grid-Datei, deren Kanten nicht ganz exakt mit den vorgegeben Koordinaten übereinstimmen. Um Karte und Grid exakt übereinanderzulegen, muss man die Karte (psbasemap) mit den korrigierten Koordinaten zeichnen (vergleiche mit der Abbildung oben). Die korrigierten Koordinaten erhält man durch den Befehl grdinfo uebung06.grd. Drittens habe ich den Befehl psscale verwendet um eine Legende zu zeichnen. Der Befehl benötigt Angaben zur Position der Skala und seiner Höhe und Breite, sowie die Farbtabelle (hier: topo.cpt), um eine Legende mit Beschriftung zu erzeugen.
|
#!/bin/sh # Karte Kapbecken, David Völker 10/01 #========================================== #Ausgabedatei PS=uebung07.ps #topo: predicted seafloor topography (global_topo_2min), #W H F Smith and D T Sandwell, Science, v 277, pp 1956--62, Sep 26 1997. TOPOPATH=/opt/data/sandwell TOPO2MINFILE="$TOPOPATH"/topo_8.2.img #Koordinaten NORD=-18 SUED=-43 WEST=0 OST=22 #korrigierte Koordinaten (grdinfo uebung07.grd) NORD_K=-17.9965666536 SUED_K=-43.0110266131 WEST_K=0 OST_K=22.0333333333 #Skalierung SKALA=0.68 #PS-VIEWER PSVIEWER=gimp #Colortable handgestrickt echo -10000 255 255 255 -2000 255 255 255 >topo.cpt echo -2000 140 102 255 -1900 140 102 255 >>topo.cpt echo -1900 102 132 255 -1800 102 132 255 >>topo.cpt echo -1800 102 202 255 -1700 102 202 255 >>topo.cpt echo -1700 102 255 240 -1600 102 255 240 >>topo.cpt echo -1600 102 255 171 -1500 102 255 171 >>topo.cpt echo -1500 102 255 102 -1400 102 255 102 >>topo.cpt echo -1400 171 255 102 -1300 171 255 102 >>topo.cpt echo -1300 255 238 166 -1200 255 238 166 >>topo.cpt echo -1200 255 184 166 -1100 255 184 166 >>topo.cpt echo -1100 255 181 203 -1000 255 181 203 >>topo.cpt #GMT-Befehle psbasemap -R"$WEST_K"/"$OST_K"/"$SUED_K"/"$NORD_K" -Jm"$SKALA"d -Ba2g1/a2g1NSeW -V -U -K -P > $PS img2mercgrd $TOPO2MINFILE -T1 -S1.0 -R"$WEST"/"$OST"/"$SUED"/"$NORD" -Guebung07.grd grdimage uebung07.grd -Ctopo.cpt -Jx"$SKALA"d -O -K -V >>$PS grdcontour uebung07.grd -Jx"$SKALA" -C1000 -W1/0/0/0 -O -V -K >>$PS psscale -Ctopo.cpt -D15.5/8.0/10/0.5 -L -B:[m]: -N300 -O -V -K >>$PS pscoast -R -Jm -B -W1.0p -G010/010/010 -Dh -Ir -O -V >> $PS $PSVIEWER $PS # Aufraeumen rm uebung07.grd
|
![]() |
Wir können uns eine Farbtabelle auch per Hand auf unsere Bedürfnisse zuschneidern, beispielsweise wenn wir - wie in diesem Fall - nur die Tiefenwerte von -1000 bis -2000 m interessant finden. Die Datei, welche die Farbtabelle enthält (topo.cpt) besteht aus mehreren Zeilen die je für einen Tiefenintervall und den zugeordneten Farbwert stehen. Die Farbwerte werden in rot/grün/blau (rgb), jeweils von 0-255 (der Zahlenbereich, die mit einem Byte dargestellt werden kann 28), d.h. 0/0/0 = schwarz, 255/255/255 = weiß, 255/0/0 = 100%rot etc...
Genauso wurde im Befehl pscoast auch der schwarze Kontinent mit -G010/010/010 ziemlich schwarz gehalten.
|
#! /bin/sh # 3D-darstellung von bathymetrischem Datensatz # ============================================ #Rohdaten grdclip uebung09.grd -Guebung09_clipped.grd -Sa-3800/NaN -Sb-5100/NaN -V GRDFILE=uebung09_clipped.grd #Ausgabedatei PS=uebung09.ps #Koordinaten NORD=12.2 SUED=12.05 WEST=-49.28 OST=-49.13 #Skalierung SKALA=80. ZSKALA=0.0015 AZIMUTH=240 ELEVATION=30 #PS-VIEWER PSVIEWER=gimp # Definition einer Farbtabelle echo -5250 37 57 175 -5100 40 127 251 > topo.cpt echo -5100 40 127 251 -4950 50 190 255 >> topo.cpt echo -4950 50 190 255 -4800 106 235 255 >> topo.cpt echo -4800 106 235 255 -4650 138 236 174 >> topo.cpt echo -4650 138 236 174 -4500 205 255 162 >> topo.cpt echo -4500 205 255 162 -4350 240 236 121 >> topo.cpt echo -4350 240 236 121 -4200 255 189 87 >> topo.cpt echo -4200 255 189 87 -4050 255 161 68 >> topo.cpt echo -4050 255 161 68 -3900 255 186 133 >> topo.cpt echo -3900 255 186 133 -3750 255 255 255 >> topo.cpt grdgradient "$GRDFILE" -A90 -G"$GRDFILE".drvx -M grdgradient "$GRDFILE" -A0 -G"$GRDFILE".drvy -M grdmath "$GRDFILE".drvx 90 MUL 10 MUL = "$GRDFILE".magx grdmath "$GRDFILE".drvy 90 MUL 10 MUL = "$GRDFILE".magy grdmath "$GRDFILE".magx 2.0 POW "$GRDFILE".magy 2.0 POW ADD 1.0 ADD SQRT = "$GRDFILE".denom grdmath "$GRDFILE".magx "$GRDFILE".denom DIV = "$GRDFILE".normx grdmath "$GRDFILE".magy "$GRDFILE".denom DIV = "$GRDFILE".normy grdmath 1.0 "$GRDFILE".denom DIV = "$GRDFILE".normz grdmath "$GRDFILE".normx 0 MUL "$GRDFILE".normy 0.866025408250255 MUL ADD "$GRDFILE".normz 0.49999999226498 MUL ADD -0.5 ADD = "$GRDFILE".int grdview $GRDFILE -Jm$SKALA -Jz$ZSKALA -E"$AZIMUTH"/"$ELEVATION" -R"$WEST"/"$OST"/"$SUED"/"$NORD" -Ctopo.cpt -I"$GRDFILE".int -Qi -K -V -Y3 -P > $PS psscale -Ctopo.cpt -D8/-1/14/0.4h -B":Tiefe in m:" -K -O -V -P>> $PS psbasemap -Jm$SKALA -Jz$ZSKALA -E"$AZIMUTH"/"$ELEVATION" -R -B2m/2mWSZ -O -V -P >> $PS $PSVIEWER $PS
|
![]() |
Das Beispiel zeigt ziemlich viel neues, soll aber hier nur zwei weitere Eigenschaften von GMT demonstrieren. (1) es gibt mehrere Routinen um Rohdaten zu prozessieren: hier werden mit dem Befehl grdclip Datenausreisser aus einem bathymetrischen Ddatensatz (uebung09.grd) herausgesäubert: alle Werte > -3800 m und alle Werte < -5100 sind völlig unwahrscheinlich und werden in der Ausgabedatei (uebung09_clipped.grd) durch ein spezielle Kennzeichnung (NaN - Not a Number) ersetzt. (2) bestimmte Befehle erlauben eine 3D-Darstellung. Dazu muß eine Skalierung entlang der z-Achse und Betrachtungsrichtung und -höhe (Azimuth & Elevation) angegeben werden (hier im Befehl grdview).
Eine ganze Reihe von Definitionen, die sich auf die Textgröße, Stiftdicke, Hintergrundfarbe ... beziehen werden "ab Werk" geliefert und stehen in einer versteckten Datei namens .gmtdefaults im Stammverzeichnis des Programms. Wir können siese Werte individuell anpassen, z.B. um A0-Drucke zu erzeugen, indem wir eine Kopie der Datei in unser Arbeitsverzeichnis ablegen mit dem Befehl
gmtdefaults > ./.gmtdefaults
und an der Datei herumeditieren (z.B. a4 durch a0 ersetzen. Unten ist ein kleiner Ausschnitt aus der .gmtdefaults- Datei
# GMT-SYSTEM 3.3.2 Defaults file # ANOT_FONT = Helvetica ANOT_FONT_SIZE = 12p BASEMAP_AXES = WESN BASEMAP_FRAME_RGB = 0/0/0 COLOR_BACKGROUND = 0/0/0 COLOR_FOREGROUND = 255/255/255 COLOR_NAN = 128/128/128 COLOR_MODEL = RGB D_FORMAT = %lg DEGREE_FORMAT = 2 MEASURE_UNIT = cm PAGE_COLOR = 255/255/255 PAGE_ORIENTATION = landscape PAPER_MEDIA = a4 WANT_EURO_FONT = TRUE X_ORIGIN = 2.5c Y_ORIGIN = 2.5c
Einfach auf den Link klicken. Es handelt sich um eine gezippte Datei, die alle oben beschriebenen gmt-skripte und ein paar dafür nötige Datensätze enthält. Das Skript ist ebenfalls hier als Word-Dokument herunterladbar. Viel Spaß ! D. Völker