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')