我正在尝试使用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
我找到了一些线程(here和here)处理mpl_toolkits / basemap / init .py中的类似错误,这些错误据说已经修复但没有解决这个问题。
任何帮助将不胜感激!
答案 0 :(得分:0)
通过升级到64位python解决了这个问题。似乎即使Basemap发布了32位python的版本,并不是所有的map函数都能以32位工作,即使是标准的例子。