上一次讲了如何安装以及使用ClimPACT2这个软件来计算降雨指标。可以参考以下的链接哦。
(32条消息) 用气象软件ClimPACT2计算netCDF格式的极端降雨气温(安装与使用)_weixin_41566229的博客-CSDN博客https://blog.csdn.net/weixin_41566229/article/details/124562334这一次,讲讲什么样的netCDF数据格式可以直接输入到ClimPACT2软件中!!!
(一)输入CMIP6 的GCM降雨数据不能直接输入到ClimPACT2软件中,怎么办?
按照了ClimPACT2修改了①降雨单位,②删除了lon,lat中的bounds属性(①②两步的nco操作代码在上面链接的文章中)。仍然有问题!
所以有没有人知道这个要怎么解决呢??????如果会的话,希望能分享方法在评论区哦!
本人用了CMIP6中的15个模式,其中中国的模式BCC-CSM2,BCC-ESM1,FGOALS-f3-L,FGOALS-g3在处理中都不会出现这样的问题。而其他国外的模式EC-Earth3,CanESM5等等都出现以上问题,所以最后都是用下面的“通用的格式处理”来解决的。
(二)通用的格式处理
第一步:直接上代码,把原来的模式数据input.nc格式转换一下,转换成output.nc
import xarray as xr
file_in = xr.open_dataset('C:/input.nc')
pr_attr = dict(long_name='Precipitation',units='kg m-2 d-1')
lat_attr=dict(long_name='Latitude',units='degrees_north')
lon_attr=dict(long_name='Longitude',units='degrees_east')
ds = xr.Dataset({'pr':(['time','lat','lon'],file_in['pr'][:],pr_attr)},
coords={'time':(['time'],file_in['time'][:]),
'lat':(['lat'],file_in['lat'][:],lat_attr),
'lon':(['lon'],file_in['lon'][:],lon_attr)
})
######## 保存新建的文件 ########
ds.to_netcdf('C:/output.nc')
##############################
第二步:用上面的output.nc直接输入到ClimPACT2还不行。还要注意一下变量pr,lon,lat中的属性_FillValue。利用nco工具更改属性操作如下:
ncatted -a _FillValue,pr,o,f,1.0e20 XXX.nc # 1.0e20这个数值按照自己所用的模式原来的数据来修改
ncatted -a _FillValue,lon,d,, XXX.nc #删除变量lon中的_FillValue属性
ncatted -a _FillValue,lat,d,, XXX.nc
以上两步处理完成之后,就完成了!!!!
---------------------------------------------------------------------------------------------------------------------------------
希望可以帮助到你哦,有问题敬请联系本人1131062932@qq.com,一起交流!!!!
---------------------------------------------------------------------------------------------------------------------------------