最近,在处理SST以及OLR数据时,需要将两组不同的分辨率的数据插值统一分辨率。
其中,SST的水平网格分辨率为1°×1°,OLR的水平网格分辨率为2.5°×2.5°。
我需要将SST的数据插值为2.5°×2.5°分辨率。
这里主要使用xarray进行处理。因为xarray中对scipy的插值函数已经进行了封装,所以只需要对DataArray,DataSet使用interp()函数就可以实现插值了,非常方便、简单。
代码如下:
import xarray as xr path1='F://olr.nc' olr=xr.open_dataset(path1)#读取数据 path2='F://sst.nc' da = xr.open_dataset(path2)#读取数据 sst = da['sst']#读取sst数据,读完后也是一个DataSet #以下这一步就是插值的过程 sst= sst.interp(lat=olr.lat.values, lon=olr.lon.values)
在处理之前,我已经查看了sst以及olr的三个维度属性:
sst的经纬度:180360
olr的经纬度:73144
所以,我只需要按照目标分辨率的经纬度(既olr的经纬度)对sst数据进行插值即可。
打开插值后的sst,发现分辨率已经与OLR一致啦~
是不是非常方面快捷呢!感兴趣的小伙伴赶快试试吧!
另外,可以将插值好的数据导出为一个新的nc文件,以便下次快速读取哦~~
sst.to_netcdf('D:\\desktopppp\\sst_interp.nc')
一个努力学习python的海洋小白 水平有限,欢迎指正!!! 欢迎评论、收藏。