interpolate
irisではregridができる(xarrayではできない).
たとえば,0.5 x 0.5 グリッドのデータをJRA55のTL319のgridに,線形補間(Linear)でできるところは線形補間で,それ以外はNearestでのregridを次のようにして行った.
import numpy as np
import iris
import copy
jra_TL319_fn='/data/REANALYSES/JRA55-derived/sav.nc/fcst_surf/tmp2m_ENSOYR_1959-2018.nc'
jra_cube=iris.load_cube(jra_TL319_fn)
lats1d=jra_cube.coord('latitude')
lons1d=jra_cube.coord('longitude')
sample_points=[('latitude',lats1d.points),('longitude', lons1d.points)]
airtemp_land_fn='/data/IN-SITU_GRD/GHCN_CAMS_land_airtemp_0.5x0.5_1948-present/org/air.mon.mean.nc'
airtemp_land_cube=iris.load_cube(airtemp_land_fn)
airtemp_regrid_Linear=airtemp_land_cube.interpolate(sample_points, iris.analysis.Linear())
airtemp_regrid_Nearest=airtemp_land_cube.interpolate(sample_points, iris.analysis.Nearest())
airtemp_regrid=airtemp_regrid_Linear.copy()
fill_position=np.where(airtemp_regrid_Linear.data.mask==True)
airtemp_regrid.data[fill_position]=airtemp_regrid_Nearest.data[fill_position]
iris.save(airtemp_regrid,'air.TL319.mon.mean.nc')
# iris.save(airtemp_regrid_Linear,'air.Linear.TL319.mon.mean.nc') # for check
# iris.save(airtemp_regrid_Nearest,'air.Nearest.TL319.mon.mean.nc') # for check