regrid
irisではregriddingができる(xarrayではできない).irisではinterpolationとregriddingの両方をサポートしており,regriddingにはlinear, nearest-neighbour, area-weightedのschemeが利用可能である.linearとnearest-neighbourはinterpolationのschemeにもあり,この二つのschemeの場合はinterpolationとregriddingが同じなのか違うのかは未確認である.
regridはコマンドライン・ツールであるCDOではremapと呼ばれる操作である.
以下にarea-weightedでregriddingした例を示す.
import iris
# This script uses regridding function of iris.
# The information of regridding of iris is found
# https://scitools.org.uk/iris/docs/latest/userguide/interpolation_and_regridding.html
# mslp_trg: mslp with target grid for interpolation
# mslp_org: mslp original data to be regridded
# mslp_reg: mslp regridded data
mslp_trg_fn='../MSLP_c3s_hindcast_1x1.org/SLP_cmcc_janLT3_nov_1993_2016.nc'
mslp_trg_cube=iris.load_cube(mslp_trg_fn)
mslp_trg_cube.coord('latitude').guess_bounds()
mslp_trg_cube.coord('longitude').guess_bounds()
lats1d=mslp_trg_cube.coord('latitude')
lons1d=mslp_trg_cube.coord('longitude')
sample_points=[('latitude',lats1d.points),('longitude', lons1d.points)]
mslp_org_fn='../MSLP_era5_0.25x0.25.org/SLP_ERA5_1979_2020.nc'
mslp_org_cube=iris.load_cube(mslp_org_fn)
mslp_org_cube.coord('latitude').guess_bounds()
mslp_org_cube.coord('longitude').guess_bounds()
scheme = iris.analysis.AreaWeighted(mdtol=0.5)
mslp_reg_cube = mslp_org_cube.regrid(mslp_trg_cube, scheme)
iris.save(mslp_reg_cube,'./SLP_ERA5_1979_2020_1x1.nc')