如何绘制集成模型的意思?
How to plot ensemble models mean?
#read data
dset = xr.open_mfdataset('/home/users/ruoou/projects/data/cmip6/scenaromip/ssp126/tas/*'+ mod+ '*.nc', parallel=True)
#define timescale
time = dset.time
clim_set_t = dset.sel(time=slice("2015-01-16", "2100-12-16"))
clim_ta = clim_set_t['tas'].groupby('time.month').mean('time', keep_attrs=True)
clim_ta_c = (clim_ta - 273.15)
# define areas
lat = dset.lat
lon = dset.lon
lon_range = lon[(lon>60) & (lon<150)]
lat_range = lat[(lat>10) & (lat<60)]
clim_ta_c.sel(lon=lon_range, lat=lat_range, month = 1).plot.contourf(ax=ax,
levels=np.arange(-30, 30 + 1, 1),
transform=ccrs.PlateCarree(),
cmap='Spectral_r',
cbar_kwargs={'orientation': 'vertical', #colorbar
'label': 'temperature (℃)',
'ticks': np.arange(-30, 30 + 5, 5),
'pad': 0.05,
'shrink': 0.8})
model = dset.attrs['source_id']
title = f'{model} near-surface temperature climatology 2015-2100 (1)'
plt.title(title, fontsize = 13)
这是我的脚本的主要部分,用于在 ssp126 近地表温度气候学中绘制 1 月份的 BCC。 Bcc in ssp126 我应该怎么做才能将所有模型相加并绘制平均值(比如平均 ssp126 中的 BCC 和 ssp126 中的 IPSL)?提前感谢您的帮助。
你标记了问题 cdo-climate
,所以我想你也很高兴有一个基于 cdo
的解决方案,我添加了一个重新映射步骤,但请查看 on Whosebug, or my remapping video guide 了解更多详细信息.
dir=/home/users/ruoou/projects/data/cmip6/scenaromip/ssp126/tas/
# remap all files to a 1x1 deg grid
for file in $dir/*modelname*.nc ; do
cdo remapbil,r360x180 $file ${file%???}_remap.nc
done
# calculate ens mean
cdo ensmean *_remap.nc ensmean.nc
然后你就可以打开ensmean.nc
然后随意绘制了。
#read data
dset = xr.open_mfdataset('/home/users/ruoou/projects/data/cmip6/scenaromip/ssp126/tas/*'+ mod+ '*.nc', parallel=True)
#define timescale
time = dset.time
clim_set_t = dset.sel(time=slice("2015-01-16", "2100-12-16"))
clim_ta = clim_set_t['tas'].groupby('time.month').mean('time', keep_attrs=True)
clim_ta_c = (clim_ta - 273.15)
# define areas
lat = dset.lat
lon = dset.lon
lon_range = lon[(lon>60) & (lon<150)]
lat_range = lat[(lat>10) & (lat<60)]
clim_ta_c.sel(lon=lon_range, lat=lat_range, month = 1).plot.contourf(ax=ax,
levels=np.arange(-30, 30 + 1, 1),
transform=ccrs.PlateCarree(),
cmap='Spectral_r',
cbar_kwargs={'orientation': 'vertical', #colorbar
'label': 'temperature (℃)',
'ticks': np.arange(-30, 30 + 5, 5),
'pad': 0.05,
'shrink': 0.8})
model = dset.attrs['source_id']
title = f'{model} near-surface temperature climatology 2015-2100 (1)'
plt.title(title, fontsize = 13)
这是我的脚本的主要部分,用于在 ssp126 近地表温度气候学中绘制 1 月份的 BCC。 Bcc in ssp126 我应该怎么做才能将所有模型相加并绘制平均值(比如平均 ssp126 中的 BCC 和 ssp126 中的 IPSL)?提前感谢您的帮助。
你标记了问题 cdo-climate
,所以我想你也很高兴有一个基于 cdo
的解决方案,我添加了一个重新映射步骤,但请查看
dir=/home/users/ruoou/projects/data/cmip6/scenaromip/ssp126/tas/
# remap all files to a 1x1 deg grid
for file in $dir/*modelname*.nc ; do
cdo remapbil,r360x180 $file ${file%???}_remap.nc
done
# calculate ens mean
cdo ensmean *_remap.nc ensmean.nc
然后你就可以打开ensmean.nc
然后随意绘制了。