【问题标题】:Matplotlib Basemap example code fails due to MemoryErrorMatplotlib 底图示例代码因 MemoryError 而失败
【发布时间】:2016-07-29 19:10:26
【问题描述】:

我正在尝试使用 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 中的类似错误,据说这些错误已经得到修复,但没有一个可以解决这个问题。

任何帮助将不胜感激!

【问题讨论】:

  • 您的代码在我的笔记本电脑上运行良好 --- 我有 8GB 内存...

标签: python matplotlib matplotlib-basemap


【解决方案1】:

通过升级到 64 位 python 解决了这个问题。似乎即使 Basemap 发布了 32 位 python 版本,但并非所有地图函数都可以在 32 位中工作,即使是标准示例也是如此。

【讨论】:

    猜你喜欢
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多