Базовая карта Python: ошибка при использовании затененного рельефа, bluemarble или etopo (формат ложной долготы?)

Я хочу построить карту южного полушария, центрированную на Тихом океане, с некоторыми элементами, нарисованными на нем, с помощью базовой карты python matplotlib.

Все работает нормально, если я не пытаюсь нарисовать фоновое изображение с подпрограммами базовой карты shadedrelief, bluemarble или etopo. Код (без того, что я хочу нарисовать на карте) выглядит так:

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()

Когда я раскомментирую m.shadedrelief (), я получаю следующее:

---------------------------------------------------------------------------
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)

Когда я выбираю (для целей тестирования) способ, чтобы карты меньшего размера, которые также не имели долготы больше 180 градусов, все (включая затененный рельеф) работало нормально. Это приводит меня к предположению, что что-то с форматом долготы здесь не работает. Я пытался кое-что, но я не могу найти способ, как решить эту проблему, все еще рисуя тот же участок карты

Ты хоть представляешь, как я могу нарисовать рельеф на фоне своей карты?

Лучший,

xilian

Ответы на вопрос(1)

Ваш ответ на вопрос