numpy中的挤压函数内存不足

2024-09-22 16:33:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用python制作一个我不习惯使用的气候图,但是我想试试它是否比用R绘图更方便 http://joehamman.com/2013/10/12/plotting-netCDF-data-with-Python/与我的数据。你知道吗

from netCDF4 import Dataset
import numpy as np

myfil = "xxxxx"
fh = Dataset(myfil, mode='r')
lons = fh.variables['lon'][:]
lats = fh.variables['lat'][:]
tmean = fh.variables['Tmean_ANN'][:1]

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
# Get some parameters for the Stereographic Projection

lon0 = lons.mean()
lats0 = lats.mean()



m = Basemap(width=5000000,height=3500000,
            resolution='l',projection='stere',
            lat_ts=60,lat_0=lats0,lon_0=lon0)

lon, lat = np.meshgrid(lons, lats, sparse=True)
xi, yi = m(lon, lat)

# Plot Data

print(xi.shape)
print(yi.shape)
print(tmean.shape)

结果

(1, 1142761)
(1142761, 1)
(1, 1069, 1069)

试着跑这条线

cs = m.contour(xi,yi, np.squeeze(tmean))

我搞错了

cs = m.contour(xi,yi, np.squeeze(tmean))
Traceback (most recent call last):

  File "<ipython-input-37-8be9f03a0e45>", line 1, in <module>
    cs = m.contour(xi,yi, np.squeeze(tmean))

  File "C:\ProgramData\Anaconda3\lib\site-packages\mpl_toolkits\basemap\__init__.py", line 546, in with_transform
    return plotfunc(self,x,y,data,*args,**kwargs)

  File "C:\ProgramData\Anaconda3\lib\site-packages\mpl_toolkits\basemap\__init__.py", line 3566, in contour
    np.logical_or(np.greater(x,self.xmax+epsx),np.greater(y,self.ymax+epsy))

MemoryError

有什么帮助吗?为什么我会得到这个。我的假设是xiyi的维数与tmean不相容,因此我得到了错误。np.sqeeze函数处理tmean函数之外的m.contour数据,但我暂时无法解决这个问题。你知道吗


Tags: importnpvariablesmplcontourlonbasemaplat