当前位置 博文首页 > 简朴的博客:python 实现不同分辨率的海洋气象数据,线性插值成

    简朴的博客:python 实现不同分辨率的海洋气象数据,线性插值成

    作者:[db:作者] 时间:2021-08-17 09:41

    最近,在处理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的经纬度:73
    144
    在这里插入图片描述所以,我只需要按照目标分辨率的经纬度(既olr的经纬度)对sst数据进行插值即可。
    打开插值后的sst,发现分辨率已经与OLR一致啦~
    在这里插入图片描述
    在这里插入图片描述
    是不是非常方面快捷呢!感兴趣的小伙伴赶快试试吧!
    另外,可以将插值好的数据导出为一个新的nc文件,以便下次快速读取哦~~

    sst.to_netcdf('D:\\desktopppp\\sst_interp.nc')
    
        				一个努力学习python的海洋小白
                        水平有限,欢迎指正!!!
                        欢迎评论、收藏。
    
    
    
    cs