Python-Grundkarte: Fehler bei der Verwendung von Shadedrelief, Bluemarble oder Etopo (falsches Längenformat?)

Ich möchte eine Karte der südlichen Hemisphäre zeichnen, die auf dem Pazifik zentriert ist und auf der mit der Python Matplotlib-Basiskarte einiges gezeichnet ist.

Alles funktioniert einwandfrei, es sei denn, ich versuche, ein Hintergrundbild mit den Grundkartenroutinen shadedrelief, bluemarble oder etopo zu zeichnen. Der Code (ohne das Zeug, das ich auf die Karte zeichnen möchte) sieht folgendermaßen aus:

import numpy as np
from mpl_toolkits.basemap import Basemap
from matplotlib.backends.backend_pdf import PdfPages

latmin = -72.5
latmax = 40.
lonmin = 60.
lonmax = 370.

pp = PdfPages('datamap.pdf')

m = Basemap(projection='merc', llcrnrlat=latmin, urcrnrlat=latmax, llcrnrlon=lonmin, urcrnrlon=lonmax, resolution="c")

m.drawcoastlines(linewidth=0.25)
#m.shadedrelief()

pp.savefig()
pp.close()

Wenn ich das m.shadedrelief () auskommentiere, erhalte ich Folgendes:

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
/xyz/datamap.py in <module>()
     32
---> 33 m.shadedrelief()
     34 

/usr/local/lib/python2.7/site-packages/mpl_toolkits/basemap/__init__.pyc in shadedrelief(self, ax, scale, **kwargs)
   3997             return self.warpimage(image='shadedrelief',ax=ax,scale=scale,**kwargs)
   3998         else:
-> 3999             return self.warpimage(image='shadedrelief',scale=scale,**kwargs)
   4000 
   4001     def etopo(self,ax=None,scale=None,**kwargs):

/usr/local/lib/python2.7/site-packages/mpl_toolkits/basemap/__init__.pyc in warpimage(self, image, scale, **kwargs)
   4115                 # any range of longitudes may be plotted on a world map.
   4116                 self._bm_lons = \
-> 4117                 np.concatenate((self._bm_lons,self._bm_lons+360),1)
   4118                 self._bm_rgba = \
   4119                 np.concatenate((self._bm_rgba,self._bm_rgba),1)
IndexError: axis 1 out of bounds [0, 1)

Wenn ich (zu Testzwecken) wähle, wie kleinere Karten, die auch keine Länge größer als 180 Grad haben, funktionieren alle (einschließlich Schattenrelief) einwandfrei. Dies führt mich zu der Annahme, dass hier etwas mit dem Format der Länge nicht funktioniert. Ich habe einige Dinge ausprobiert, aber ich kann keinen Weg finden, wie ich das lösen kann, während ich immer noch den gleichen Kartenausschnitt plotte

Hast du eine Idee, wie ich ein Schattenrelief im Hintergrund meiner Karte zeichnen könnte?

Beste

xilian

Antworten auf die Frage(2)

Ihre Antwort auf die Frage