Я пытаюсь сделать климатическую карту на 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
Но я не мог решить это некоторое время.