Benutzer:Lilleskut/Afrikakarte

aus Wikipedia, der freien Enzyklopädie

Topographische Karte Afrika

Endergebnis: Afrika

Die folgenden Befehlszeilen erzeugen eine topographische Karte von Afrika. Der code ist für Debian linux (bash shell) entwickelt, sollte sich aber leicht folgendermaßen für andere Systeme abändern lassen:

  1. Ersezte ${Variablenname} durch den Teil rechts von export Variablenname= in den export... Zeilen
  2. Entferne GMT in den Befehlszeilen

Definiere einige Variablen:

export jcoord=C17.25/-1.5/27c
export rcoord=-32/-28/66.5/31r
export flussfarbe=99/118/150
export dresol=i
export minarea=50
export gridf=africa.grd
export outf=africa.ps
export schattenf=africaschatten.grd
export landcpt=frenchwikicont.cpt
export meercpt=frenchwikimeer.cpt

Die eigentlichen Befehle:

GMT grdcut /usr/share/gmt/ETOPO2v2c_flt.grd -R-34/-42/69/45r -G${gridf} -fg
GMT grdgradient ${gridf} -A45 -Ne0.5 -V -G${schattenf}
GMT grdimage ${gridfetopo} -C${meercpt} -J${jcoord} -R${rcoord} -V -P -K --PAPER_MEDIA=A3 >${outf}
GMT pscoast -Gc -J${jcoord} -R${rcoord} -A${minarea} -D${dresol} -V -P -K -O --PAPER_MEDIA=A3 >>${outf}
GMT grdimage ${gridf} -I${schattenf} -C${landcpt} -J${jcoord} -R${rcoord} -V -P -K -O --PAPER_MEDIA=A3 >>${outf}
GMT pscoast -J${jcoord} -R${rcoord} -A${minarea} -V -Q -O -K >>${outf}
GMT pscoast -J${jcoord} -R${rcoord} -A${minarea} -I1/1/${flussfarbe} -W0.4/${flussfarbe} -D${dresol} -V -P -K -O --PAPER_MEDIA=A3 >>${outf}
GMT pscoast -J${jcoord} -R${rcoord} -A${minarea}/2/4 -S170/200/255 -W0.4/${flussfarbe} -D${dresol} -V -P -O --PAPER_MEDIA=A3 >>${outf}
GMT ps2raster -A -Te ${outf}

cpt-Dateien:

#frenchwikicont.cpt
0       172     208     165     50      168     198     143
50      168     198     143     500     209     215     171
500     209     215     171     1500    239     235     192
1500    239     235     192     2000    222     214     163
2000    222     214     163     3000    202     185     130
3000    202     185     130     4000    192     154     83
4000    192     154     83      5500    236     236     236
5500    236     236     236     6000    236     236     236
B       148     191     139
F       255     255     255
N       255     255     255
#frenchwikimeer.cpt
-11000 127    168    203    -5500  146    181    213
-5500  146    181    213    -3000  160    194    222
-3000  160    194    222    -2000  173    203    230
-2000  173    203    230    -750   185    213    237
-750   185    213    237    -70    196    223    244
-70    196    223    244    -20    206    231    253
-20    206    231    249      0      218    240    253
B 36  38 175
F 218 240 253
N 218 240 253

Dieser code liefert eine encapsulated postscript Datei africa.eps, die mit Gimp weiterverarbeitet und als png gespeichert wurde:

  1. Import from postscript
    1. Resolution: 250
    2. Width: 2065
    3. Height: 2925
    4. Colouring: Colour
    5. Text antialiasing: none
    6. Graphic antialiasing: none
  2. Indexed Colour Conversion (Image->Mode->Indexed...)
    1. Generate optimum palette, Maximum number of colours: 256
    2. Dithering: none
  3. Einzeichnen fehlender Flußverläufe und Korrektur des veralteten Tschadsees
  4. Save Image...: africa.png

Topographische Karte mit Grenzen

Endergebnis: Afrika mit Grenzen

Die obige topographische Karte (africa.png) wurde mit einem transparenten png (africaborders.png) in inkscape kombiniert. africaborders.png enthält lediglich die Grenzverläufe. Da die Grenzdaten in GMT teilweise veraltet sind, waren einige manuelle Anpassungen nötig. Die Vorgehensweise, war dabei wie folgt:

  1. falsche Grenzverläufe mit psclip ausschneiden
  2. restliche Grenzen (jene die in GMT korrekt gespeichert sind) mit pscoast zeichnen
  3. Ende des psclip
  4. fehlende Grenzen mit psxy eintragen

Fehler

Insgesamt wurden die folgenden GMT-Daten-Fehler beseitigt:

  • Grenzverläufe zwischen Äthiopien/Eritrea, Walfischbucht, Irak/Jordanien, Irak/Saudi Arabien, Vereinigte Arabische Emirate, Westjordanland/Jordanien, Israel/Syrien -> Grenzen korrigiert beziehungsweise entfernt
  • Umstrittene Gebiete Ilemi-Dreieck und Hala'ib-Dreieck -> durch gestrichelte Linien gekennzeichnet
  • Grenzen im Meer (GMT speichert diese zum Teil als Grenzen über Land) -> korrigiert und mit Strich-Punkt-Linie versehen

Code

Definition einiger Variablen:

export jcoord=C17.25/-1.5/27c
export rcoord=-32/-28/66.5/31r
export dresol=f
export bordercol=120
export outf=africaborderst.ps

Schneide die Gebiete aus, deren (Land)grenzen falsch in GMT gespeichert sind. Zeichne die übrigen (Land)grenzen, also jene die korrekt in GMT sind, ein.

GMT psclip borderclip seegrenzenclip halaibclip -J${jcoord} -R${rcoord} -N -M -P -K --PAPER_MEDIA=A3 >${outf}
GMT pscoast -J${jcoord} -R${rcoord} -D${dresol} -N1/1/${bordercol} -P -K -O --PAPER_MEDIA=A3 >>${outf}
GMT psclip -C -O -K >> ${outf}

Zeichne alle (Meer)grenzen sowie jene Grenzen im Meer die in GMT als "Landgrenzen" gespeichert sind.

GMT pscoast -J${jcoord} -R${rcoord} -D${dresol} -N3/1,${bordercol},-. -P -K -O --PAPER_MEDIA=A3 >>${outf}
GMT psclip seegrenzenclip2 -J${jcoord} -R${rcoord} -M -P -K -O --PAPER_MEDIA=A3 >>${outf}
GMT pscoast -J${jcoord} -R${rcoord} -D${dresol} -N1/1,${bordercol},-. -P -K -O --PAPER_MEDIA=A3 >>${outf}
GMT psclip -C -O -K >> ${outf}

Zeichne die (in den GMT-Daten vorhandene) Grenze im Hala'ib-Dreieck gestrichelt (war durchgezogene Linie).

GMT psclip halaibclip -J${jcoord} -R${rcoord} -M -P -K -O --PAPER_MEDIA=A3 >>${outf}
GMT pscoast -J${jcoord} -R${rcoord} -D${dresol} -N1/1,${bordercol},- -P -K -O --PAPER_MEDIA=A3 >>${outf}
GMT psclip -C -O -K >> ${outf}

Zeichne die fehlenden Grenzen, also solche die in den GMT-Daten fehlen und jene die in den GMT-Daten falsch waren und daher anfangs (s.o.) ausgelassen wurden.

GMT psxy grirak -J${jcoord} -R${rcoord} -: -W1/$bordercol} -P -O -K --PAPER_MEDIA=A3 >> ${outf}
GMT psxy grwestbank -J${jcoord} -R${rcoord} -: -W1/$bordercol} -P -O -K --PAPER_MEDIA=A3 >> ${outf}
GMT psxy grisraelsyria -J${jcoord} -R${rcoord} -: -W1/$bordercol} -P -O -K --PAPER_MEDIA=A3 >> ${outf}
GMT psxy grilemi -J${jcoord} -R${rcoord} -: -W1/,${bordercol},- -P -O -K --PAPER_MEDIA=A3 >> ${outf}
GMT psxy grhalaib -J${jcoord} -R${rcoord} -: -W1/,${bordercol},- -P -O -K --PAPER_MEDIA=A3 >> ${outf}
GMT psxy greritrea -J${jcoord} -R${rcoord} -: -W1/$bordercol} -P -O -K --PAPER_MEDIA=A3 >> ${outf}
GMT psxy grvae -J${jcoord} -R${rcoord} -: -W1/$bordercol} -P -O --PAPER_MEDIA=A3 >> ${outf}

Erzeuge png-Datei aus ps-Datei.

GMT ps2raster -A -E250 -Tg ${outf}

Erzeuge transparentes png.

convert africaborderst.png -transparent white africaborders.png

Das Ergebnis ist africaborders.png, ein transparentes png mit allen Grenzen.