python 实现不同分辨率的海洋气象数据,线性插值成统一的分辨率(以nc文件为例)

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

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


你可能感兴趣的:(python-海洋数据处理,python)