1. 首先将所有数据裁剪到[28,62]N,[78,132]E:(sde_prepro.py)
gfdl = xr.open_dataset(r"F:\SD\All models\snd_LImon_BCC-CSM2-MR_ssp585_r1i1p1f1_gn_201501-210012.nc")
gfdl_sde = gfdl.snd
gfdl_sde = gfdl_sde.sel(lon=slice(78,132),lat=slice(28,62))
gfdl_sde.to_netcdf(r"D:\Data2022\ERA5\LICL\data_processed\snd_BCC-CSM2-MR_ssp585_menggugaoyuan_201501-210012.nc")
2. 历史数据(historical)时间范围裁剪到1981-2014年---->用来做偏差校正:
gfdl_sde = gfdl_sde.sel(time=slice("1981-01-01","2014-12-31"))
3. 将所有模式数据重采样到0.1°:(通过linux系统的python cdo完成)
# 生成网格
!cdo griddes era5_sde_menggugaoyuan.nc > grid
# 查看网格
!cdo griddes snd_BCC-CSM2-MR_ssp126_menggugaoyuan_201501-210012.nc
#重采样网格从0.25 到0.05(cmip数据到era5数据)
!cdo remapbil,grid snd_NorESM2-MM_historical_menggugaoyuan_1981_2014.nc snd_NorESM2-MM_historical_menggugaoyuan_1981_2014_resample.nc
# 批量重采样
!for ifile in `ls snd_LImon_NorESM2-MM_*.nc`;do cdo remapbil,grid $ifile resample_$ifile; done
4. 进行偏差校正降尺度:
# 计算多年月平均降水
# obs_sde_monthlymean = obs_sde.resample(time="1M").mean()
# bcc_sde_monthlymean = bcc_sde.resample(time="1M").mean()
obs_sde_multimonthlymean = obs_sde.groupby(obs_sde.time.dt.month).mean()
bcc_sde_multimonthlymean = bcc_sde.groupby(bcc_sde.time.dt.month).mean()
# 计算偏差
delta_sde &#