Open Source im professionellen Einsatz

©Wikimedia Commons

Shellskripte projizieren Daten auf Landkarten

Auf Mercators Spuren

Wer seine Quartalszahlen mit einer schicken Karte unterlegen will oder für eine gedruckte Publikation eine hochauflösende Karte von Hinterindien benötigt, dem bieten die Generic Mapping Tools eine alte, aber mächtige Lösung für die Shell, inklusive umfangreichen Kartenmaterials.

Gerhard Mercator gilt als der Urvater der modernen Kartografie, auch weil der geniale Mathematiker Mitte des 16. Jahrhunderts die erste winkeltreue Weltkarte entwarf. Deren Geometrie, die Mercatorprojektion, findet heute in fast allen Karten Verwendung, auch in Openstreetmap und Google Maps.

Trotz der Vielfalt an modernen Diensten gestalten sich manche Karten aber auch heute noch schwierig. Vor allem für schematische Darstellungen, die nur Küstenlinien und Grenzen anzeigen, sind die freien Daten eben nicht geeignet. Der Export der von den proprietären Diensten generierten Karten ist auf Bitmap-Formate beschränkt, die sich für den professionellen Druck als zu klein oder zu schlecht aufgelöst erweisen. Das freie Openstreetmap-Projekt [1] dagegen bietet immerhin eine Exportfunktion in SVG, PDF oder Postscript an, doch sind auch hier schematische Karten ohne Orte und Straßen nicht drin.

Hawaii 1988

Dafür gibt es aber die Generic Mapping Tools (GMT, [2]). Beheimatet bei der School of Ocean and Earth Science and Technology auf Hawaii sind die Werkzeuge nach Open-Source-Standard beileibe kein junges Projekt mehr: Die erste Version entstand 1988, zehn Jahre später folgte die Lizenzierung unter der GPL, die aktuelle Version ist 4.5.2.

Die GMT verstehen sich auch keineswegs als geografisches Informationssystem (GIS) und verzichten auf ein GUI. Geowissenschaftler haben die Programme ursprünglich für den Eigenbedarf entwickelt, um Daten auf Karten oder in Graphen zu visualisieren. Diesem Ziel ist das Softwarepaket bis heute treu geblieben.

Die Stärke der Generic Mapping Tools liegt in der Möglichkeit, automatisiert professionell anmutende Karten zu erzeugen und mit Daten anzureichern. Da ihre Zielgruppe vor allem aus Wissenschaftlern wie Geologen und Ozeanologen besteht, bieten die GMT umfangreiche Möglichkeiten bei Kartenprojektion, Koordinatensystemen, Höhen- und Tiefendaten sowie dem Hinzufügen von Punkten, Linien und Polygonen.

Der
GMT-Werkzeugkasten

Gut 60 Werkzeuge findet der Anwender in diesem Projekt, alle folgen dem Unix-Motto "Ein Programm, eine Aufgabe" (One Job, one Tool). Die wichtigsten Kommandos für die Kartenerstellung heißen:

  • »pscoast« zeichnet Umrisse und Flächen von
    Wasser- und Landflächen sowie Flüsse und
    Landesgrenzen
  • »psxy« ist für die Erstellung von Symbolen,
    Linien und Polygonen zuständig
  • »pstext« reichert Karten um Zeichenketten an
  • »psbasemap« erstellt Rahmen um Kartenmaterial und
    zeichnet Gradlinien
  • »ps2raster« wandelt das Kartenmaterial in andere
    Formate um, zum Beispiel in PDF, PNG oder Jpg

Wer topografische Karten erstellen muss, verwendet die Befehle »grdcut«, »grdgradient« und »grdimage«.

Die GMT sind, wie der Name vermuten lässt, eine klassische Unix-Sammlung von kleineren Einzelprogrammen. Der Kasten "Der GMT-Werkzeugkasten" listet die für die Kartenerstellung wesentlichen Befehle auf. Wie alle Unix-Urgesteine lassen sie sich sehr gut skripten und einfach mit anderen Linux-Tools und Pipes verbinden. Das erweist sich vor allem dann als vorteilhaft, wenn Daten aus anderen Programmen für die GMT aufzubereiten und darzustellen sind. Ein guter Einstiegspunkt für alle, die sich einen Eindruck von den Möglichkeiten verschaffen wollen, ist die Webseite mit zahlreichen Beispielen.

GMT steht für alle größeren Distributionen in den gängigen Repositories, unter Debian und Ubuntu genügt zum Beispiel ein »apt-get install gmt gmt-coast-low«. Damit landen die Tools und die Küstenlinien in niedriger Auflösung auf der Platte, was für erste Beispielanwendungen durchaus reicht. Wer GMT von den Quellen installiert, verwendet am besten das Formular auf der Website des Projekts [3]. Das bietet eine detaillierte Anleitung zu den Abhängigkeiten und baut das Makefile automatisch.

Mollweide und Weltkugeln

Neuere Versionen von GMT verwenden ein Wrapper-Skript, das die eigentlichen Tools aufruft. Ob dies auf einem System installiert ist, stellt sich mit »which GMT« heraus. Ist es vorhanden, sollte der Benutzer allen Befehlen den Aufruf »GMT« voranstellen. Listing 1 zeigt in Zeile 4 mit »gmt=$(which GMT)« eine einfache, aber effektive Möglichkeit, um ein Skript auf Systemen sowohl mit als auch ohne Wrapper-Skript auszuführen.

Listing 1:
»pscoast«

01 #!/bin/sh
02 
03 #GMT-Wrapper?
04 gmt=$(which GMT)
05 
06 #Mollweide-Karte
07 $gmt pscoast -JW16c -Rd -Dc -Bp -A5000 -W0.3pt -G230 -P > mollweide.ps
08 
09 #Mercator-Karte von Europa
10 $gmt pscoast -JM16c -R-12/40/30/70 -Dl -B10g10 -A200 -W0.3pt -G230 -P > europa.ps
11 
12 #3D-Weltkugel über München
13 $gmt pscoast -JG11.566667/48.133333/16c -Rg -Dc -B15g15 -A5000 -W0.3pt -G230 -P > kugel.ps

Das Listing enthält drei Beispiele einfacher Karten. Alle drei verwenden den Befehl »pscoast«, der Karten mit Küstenlinien, Ländergrenzen, Flüssen und Seen zeichnet. Dem Befehl übergibt das Skript Parameterwerte, die etwa die Art der Karte bestimmen. Der erste Aufruf im Listing erzeugt eine Mollweide-Projektion der Welt (Abbildung 1), der zweite eine Mercatorprojektion von Europa (Abbildung 2) und der dritte eine 3D-Darstellung der Welt über den Koordinaten von München (Abbildung 3).

Abbildung 1: Die Mollweide-Projektion ist flächentreu und stellt die Erde als Ellipse dar.

Abbildung 1: Die Mollweide-Projektion ist flächentreu und stellt die Erde als Ellipse dar.

Abbildung 2: GMT kann beliebige Kartenausschnitte erzeugen, hier verzerrt jedoch die Mercatorprojektion die Flächen der nördlichen Breiten stark.

Abbildung 2: GMT kann beliebige Kartenausschnitte erzeugen, hier verzerrt jedoch die Mercatorprojektion die Flächen der nördlichen Breiten stark.

Abbildung 3: Die 3D-Kugeldarstellung erlaubt einen Blick aus dem Weltraum – in diesem Fall auf München.

Abbildung 3: Die 3D-Kugeldarstellung erlaubt einen Blick aus dem Weltraum – in diesem Fall auf München.

Die drei wichtigsten Parameter von »pscoast« sind: »-J« definiert die Art der Karte. Die GMT beherrschen mehr als zwei Dutzend verschiedene Kartenprojektionen, »-JM« steht für jene nach Mercator. Im Beispiel sollen alle Karten 16 Zentimeter breit werden, gerade genug für ein gut gefülltes DIN-A4-Blatt. Das legt in allen Aufrufen der Parameter »16c« (direkt im Anschluss an die Projektion) fest, zum Beispiel in »-JM16c«.

Diesen Artikel als PDF kaufen

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook