функция сжатия в numpy исчерпывает память - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь сделать климатическую карту на 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

Любая помощь, почему я получилэтот.Моя гипотеза заключается в том, что размеры xi и yi несовместимы с tmean, поэтому я получил ошибку.Функция np.sqeeze работает с данными tmean вне функции m.contour Но я не мог решить это некоторое время.

...