Regridding schemes#
Iris natively supports data regridding with its iris.cube.Cube.regrid()
method and a set of predefined regridding schemes provided in the
analysis
module (further details are given on this
page).
Here, further regridding schemes are provided that are compatible with
iris.cube.Cube.regrid()
.
Example:
from esmvalcore.preprocessor.regrid_schemes import ESMPyAreaWeighted
regridded_cube = cube.regrid(target_grid, ESMPyAreaWeighted())
Regridding schemes.
Classes:
|
ESMPy area-weighted regridding scheme. |
|
ESMPy bilinear regridding scheme. |
|
ESMPy nearest-neighbor regridding scheme. |
|
General ESMPy regridder. |
|
Regridding with a generic function. |
|
Generic function regridder. |
Unstructured bilinear regridding scheme. |
|
|
Unstructured bilinear regridder. |
Unstructured nearest-neighbor regridding scheme. |
|
|
xESMF regridding scheme. |
|
xESMF regridding function. |
- class esmvalcore.preprocessor.regrid_schemes.ESMPyAreaWeighted(mask_threshold: float = 0.99)[source]#
ESMPy area-weighted regridding scheme.
This class can be used in
iris.cube.Cube.regrid()
.Does not support lazy regridding.
Methods:
regridder
(src_cube, tgt_cube)Get regridder.
- Parameters:
mask_threshold (float)
- regridder(src_cube: Cube, tgt_cube: Cube) ESMPyRegridder #
Get regridder.
- Parameters:
- Returns:
Regridder instance.
- Return type:
- class esmvalcore.preprocessor.regrid_schemes.ESMPyLinear(mask_threshold: float = 0.99)[source]#
ESMPy bilinear regridding scheme.
This class can be used in
iris.cube.Cube.regrid()
.Does not support lazy regridding.
Methods:
regridder
(src_cube, tgt_cube)Get regridder.
- Parameters:
mask_threshold (float)
- regridder(src_cube: Cube, tgt_cube: Cube) ESMPyRegridder #
Get regridder.
- Parameters:
- Returns:
Regridder instance.
- Return type:
- class esmvalcore.preprocessor.regrid_schemes.ESMPyNearest(mask_threshold: float = 0.99)[source]#
ESMPy nearest-neighbor regridding scheme.
This class can be used in
iris.cube.Cube.regrid()
.Does not support lazy regridding.
Methods:
regridder
(src_cube, tgt_cube)Get regridder.
- Parameters:
mask_threshold (float)
- regridder(src_cube: Cube, tgt_cube: Cube) ESMPyRegridder #
Get regridder.
- Parameters:
- Returns:
Regridder instance.
- Return type:
- class esmvalcore.preprocessor.regrid_schemes.ESMPyRegridder(src_cube: Cube, tgt_cube: Cube, method: str = 'linear', mask_threshold: float = 0.99)[source]#
General ESMPy regridder.
Does not support lazy regridding nor weights caching.
- class esmvalcore.preprocessor.regrid_schemes.GenericFuncScheme(func: Callable, **kwargs)[source]#
Regridding with a generic function.
This class can be used in
iris.cube.Cube.regrid()
.Does support lazy regridding if func does.
- Parameters:
func (Callable) – Generic regridding function with signature f(src_cube: Cube, grid_cube: Cube, **kwargs) -> Cube.
**kwargs – Keyword arguments for the generic regridding function.
Methods:
regridder
(src_cube, tgt_cube)Get regridder.
- regridder(src_cube: Cube, tgt_cube: Cube) GenericRegridder [source]#
Get regridder.
- Parameters:
- Returns:
Regridder instance.
- Return type:
- class esmvalcore.preprocessor.regrid_schemes.GenericRegridder(src_cube: Cube, tgt_cube: Cube, func: Callable, **kwargs)[source]#
Generic function regridder.
Does support lazy regridding if func does. Does not support weights caching.
- Parameters:
src_cube (Cube) – Cube defining the source grid.
tgt_cube (Cube) – Cube defining the target grid.
func (Callable) – Generic regridding function with signature f(src_cube: Cube, grid_cube: Cube, **kwargs) -> Cube.
**kwargs – Keyword arguments for the generic regridding function.
- class esmvalcore.preprocessor.regrid_schemes.UnstructuredLinear[source]#
Unstructured bilinear regridding scheme.
This class can be used in
iris.cube.Cube.regrid()
.Supports lazy regridding.
Warning
This will drop all cell measures, ancillary variables and aux factories, and any auxiliary coordinate that spans the dimension of the unstrucutred grid.
Methods:
regridder
(src_cube, tgt_cube)Get regridder.
- regridder(src_cube: Cube, tgt_cube: Cube) UnstructuredLinearRegridder [source]#
Get regridder.
- Parameters:
- Returns:
Regridder instance.
- Return type:
- class esmvalcore.preprocessor.regrid_schemes.UnstructuredLinearRegridder(src_cube: Cube, tgt_cube: Cube)[source]#
Unstructured bilinear regridder.
Supports lazy regridding and weights caching.
Warning
This will drop all cell measures, ancillary variables and aux factories, and any auxiliary coordinate that spans the dimension of the unstrucutred grid.
- Parameters:
src_cube (Cube) – Cube defining the source grid.
tgt_cube (Cube) – Cube defining the target grid.
- class esmvalcore.preprocessor.regrid_schemes.UnstructuredNearest[source]#
Unstructured nearest-neighbor regridding scheme.
This class is a wrapper around
iris.analysis.UnstructuredNearest
that removes any additional X or Y coordinates prior to regridding if necessary. It can be used iniris.cube.Cube.regrid()
.Methods:
regridder
(src_cube, tgt_cube)Get regridder.
- class esmvalcore.preprocessor.regrid_schemes.xESMF(**kwargs)[source]#
xESMF regridding scheme.
This is a wrapper around
xesmf.frontend.Regridder
so it can be used iniris.cube.Cube.regrid()
. It uses thencdata
package to convert theiris.cube.Cube
to anxarray.Dataset
before regridding and back after regridding.Supports lazy regridding.
Masks are converted to
numpy.nan
before regridding and converted back to masks after regridding.- Parameters:
**kwargs – Any keyword argument to
xesmf.frontend.Regridder
orxesmf.frontend.Regridder.__call__()
can be provided. By default, the argumentsignore_degenerate=True
,keep_attrs=True
,skipna=True
, andunmapped_to_nan=True
will be used.
- kwargs#
Keyword arguments that will be provided to the regridder.
Methods:
regridder
(src_cube, tgt_cube)Create xESMF regridding function.
- regridder(src_cube: Cube, tgt_cube: Cube) xESMFRegridder [source]#
Create xESMF regridding function.
- Parameters:
- Returns:
xESMF regridding function.
- Return type:
- class esmvalcore.preprocessor.regrid_schemes.xESMFRegridder(src_cube: Cube, tgt_cube: Cube, **kwargs)[source]#
xESMF regridding function.
This is a wrapper around
xesmf.frontend.Regridder
so it can be used iniris.cube.Cube.regrid()
.Supports lazy regridding.
- Parameters:
src_cube (Cube) – Cube describing the source grid.
tgt_cube (Cube) – Cube describing the target grid.
**kwargs – Any keyword argument to
xesmf.frontend.Regridder
orxesmf.frontend.Regridder.__call__()
can be provided.
- kwargs#
Keyword arguments to
xesmf.frontend.Regridder
.
- default_call_kwargs#
Default keyword arguments to
xesmf.frontend.Regridder.__call__()
.