由于MemoryError,Matplotlib Basemap示例代码失败

时间:2016-07-29 19:10:26

标签: python matplotlib matplotlib-basemap

我正在尝试使用matplotlib的Basemap工具包在地图上绘制数据。当我尝试运行以下代码时

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
# setup Lambert Conformal basemap.
# set resolution=None to skip processing of boundary datasets.
m = Basemap(width=12000000,height=9000000,projection='lcc',
            resolution=None,lat_1=45.,lat_2=55,lat_0=50,lon_0=-107.)
m.shadedrelief()
plt.show()

直接从example #4 on the basemap tutorial

复制并粘贴

代码因此错误而失败:

Traceback (most recent call last):
  File "basemap_test.py", line 11, in <module>
    m.shadedrelief()
  File "C:\Python35-32\lib\site-packages\mpl_toolkits\basemap\__init__.py", line 4043, in shadedrelief
    return self.warpimage(image='shadedrelief',scale=scale,**kwargs)
  File "C:\Python35-32\lib\site-packages\mpl_toolkits\basemap\__init__.py", line 4171, in warpimage
    self._bm_rgba = self._bm_rgba.astype(np.float32)/255.
MemoryError

我使用matplotlib 1.5.1版和Basemap 1.0.8版运行Python 3.5.1

我找到了一些线程(herehere)处理mpl_toolkits / basemap / init .py中的类似错误,这些错误据说已经修复但没有解决这个问题。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

通过升级到64位python解决了这个问题。似乎即使Basemap发布了32位python的版本,并不是所有的map函数都能以32位工作,即使是标准的例子。