【发布时间】:2021-01-31 13:31:19
【问题描述】:
我想使用 欧洲中期天气预报中心 的 netcdf 文件渲染整个地图和北美部分地区,但只显示了一半的地图。
import netCDF4 as nc
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
fn = '_grib2netcdf-webmars-public-svc-green-007-6fe5cac1a363ec1525f54343b6cc9fd8-b5oXS9.nc'
ds = nc.Dataset(fn)
#variables
#longitude, latitude, time, pm1
lons = ds.variables['longitude'][:]
lats = ds.variables['latitude'][:]
time = ds.variables['time'][:]
pm = ds.variables['pm1'][:]
mp = Basemap(projection='merc',llcrnrlat=-80,urcrnrlat=80,\
llcrnrlon=-180,urcrnrlon=180,lat_ts=20,resolution='c')
lon, lat = np.meshgrid(lons, lats)
x, y = mp(lon, lat)
cscheme = mp.pcolor(x, y, np.squeeze(pm[0,:,:]), cmap = 'plasma', shading='auto')
mp.drawcoastlines()
mp.drawstates()
mp.drawcountries()
cbar = mp.colorbar(cscheme, location = 'right')
plt.title('Particulate matter d < 1 um')
plt.show()
这是图片 https://i.imgur.com/EaU4Gqx.png
我用Panoply检查了netcdf文件,看起来不错。
【问题讨论】:
-
是的,但只显示地图的一半:i.imgur.com/jFnzGXx.png
-
这是“是,但不是”吗?您似乎已经对自己的问题进行了回答,说它确实解决了您的问题。
-
我想要美国数据,并通过该解决方案得到它,是的,谢谢
标签: python matplotlib matplotlib-basemap