xcdat.regridder.accessor.RegridderAccessor#
- class xcdat.regridder.accessor.RegridderAccessor(dataset)[source]#
An accessor class that provides regridding attributes and methods on xarray Datasets through the
.regridder
attribute.Examples
Import RegridderAccessor class:
>>> import xcdat # or from xcdat import regridder
Use RegridderAccessor class:
>>> ds = xcdat.open_dataset("/path/to/file") >>> >>> ds.regridder.<attribute> >>> ds.regridder.<method> >>> ds.regridder.<property>
- Parameters:
dataset (
xr.Dataset
) – A Dataset object.
Methods
__init__
(dataset)horizontal
(data_var, output_grid[, tool])Apply horizontal regridding to
data_var
of the currentxr.Dataset
tooutput_grid
.horizontal_regrid2
(data_var, output_grid, ...)Pure python implementation of CDAT's regrid2 horizontal regridder.
horizontal_xesmf
(data_var, output_grid, ...)Extends the xESMF library for horizontal regridding between structured rectilinear and curvilinear grids.
Attributes
Returns
xr.Dataset
containing grid information.- _ds#
- property grid#
Returns
xr.Dataset
containing grid information.- Returns:
xr.Dataset
– With data variables describing the grid.- Raises:
ValueError – If axis dimension coordinate variable is not correctly identified.
ValueError – If axis has multiple dimensions (only one is expected).
- horizontal_xesmf(data_var, output_grid, **options)[source]#
Extends the xESMF library for horizontal regridding between structured rectilinear and curvilinear grids.
This method extends
xESMF
by automatically constructing thexe.XESMFRegridder
object, preserving source bounds, and generating missing bounds. It regridsdata_var
in the dataset tooutput_grid
.Option documentation
xcdat.regridder.xesmf.XESMFRegridder()
- Parameters:
data_var (
str
) – Name of the variable in the xr.Dataset to regrid.output_grid (
xr.Dataset
) – Dataset containing output grid.options (
Dict[str
,Any]
) – Dictionary with extra parameters for the regridder.
- Returns:
xr.Dataset
– With thedata_var
variable on the grid defined inoutput_grid
.- Raises:
ValueError – If tool is not supported.
Examples
Generate output grid:
>>> output_grid = xcdat.create_gaussian_grid(32)
Regrid data to output grid using xesmf:
>>> ds.regridder.horizontal_xesmf("ts", output_grid)
- horizontal_regrid2(data_var, output_grid, **options)[source]#
Pure python implementation of CDAT’s regrid2 horizontal regridder.
Regrids
data_var
in dataset tooutput_grid
using regrid2’s algorithm.Options documentation
xcdat.regridder.regrid2.Regrid2Regridder()
- Parameters:
data_var (
str
) – Name of the variable in the xr.Dataset to regrid.output_grid (
xr.Dataset
) – Dataset containing output grid.options (
Dict[str
,Any]
) – Dictionary with extra parameters for the regridder.
- Returns:
xr.Dataset
– With thedata_var
variable on the grid defined inoutput_grid
.- Raises:
ValueError – If tool is not supported.
Examples
Generate output grid:
>>> output_grid = xcdat.create_gaussian_grid(32)
Regrid data to output grid using regrid2:
>>> ds.regridder.horizontal_regrid2("ts", output_grid)
- horizontal(data_var, output_grid, tool='xesmf', **options)[source]#
Apply horizontal regridding to
data_var
of the currentxr.Dataset
tooutput_grid
.When might
Regrid2
be preferred overxESMF
?If performing conservative regridding from a high/medium resolution lat/lon grid to a coarse lat/lon target,
Regrid2
may provide better results as it assumes grid cells with constant latitudes and longitudes whilexESMF
assumes the cells are connected by Great Circles [1].Supported tools, methods and grids:
- xESMF (https://pangeo-xesmf.readthedocs.io/en/latest/)
Methods:
Bilinear
Conservative
Conservative Normed
Patch
Nearest s2d
Nearest d2s
Grids:
Rectilinear
Curvilinear
Find options at
xcdat.regridder.xesmf.XESMFRegridder()
- Regrid2
Methods:
Conservative
Grids:
Rectilinear
Find options at
xcdat.regridder.regrid2.Regrid2Regridder()
- Parameters:
data_var (
str
) – Name of the variable in thexr.Dataset
to regrid.output_grid (
xr.Dataset
) – Dataset containing output grid.tool (
str
) – Name of the regridding tool.**options (
Dict[str
,Any]
) – These options are passed to the tool being used for regridding. See specific regridder documentation for available options.
- Returns:
xr.Dataset
– With thedata_var
variable on the grid defined inoutput_grid
.- Raises:
ValueError – If tool is not supported.
References
Examples
Create destination grid:
>>> output_grid = xcdat.create_uniform_grid(-90, 90, 4.0, -180, 180, 5.0)
Regrid variable using “xesmf”:
>>> ds.regridder.horizontal("ts", output_grid, tool="xesmf", method="bilinear")
Regrid variable using “regrid2”:
>>> ds.regridder.horizontal("ts", output_grid, tool="regrid2")
Use convenience methods:
>>> ds.regridder.horizontal_xesmf("ts", output_grid, method="bilinear")
>>> ds.regridder.horizontal_regrid2("ts", output_grid)