xcdat.regridder.accessor.RegridderAccessor#

class xcdat.regridder.accessor.RegridderAccessor(dataset)[source]#

An accessor class that provides regridding attributes and methods for xarray Datasets through the .regridder attribute.

Examples

Import xCDAT:

>>> import xcdat

Use RegridderAccessor class:

>>> ds = xcdat.open_dataset("...")
>>>
>>> ds.regridder.<attribute>
>>> ds.regridder.<method>
>>> ds.regridder.<property>
Parameters:

dataset (xr.Dataset) – The Dataset to attach this accessor.

__init__(dataset)[source]#

Methods

__init__(dataset)

horizontal(data_var, output_grid[, tool])

Transform data_var to output_grid.

vertical(data_var, output_grid[, tool])

Transform data_var to output_grid.

Attributes

grid

Extract the X, Y, and Z axes from the Dataset and return a new xr.Dataset.

_ds#
property grid#

Extract the X, Y, and Z axes from the Dataset and return a new xr.Dataset.

Returns:

xr.Dataset – Containing grid axes.

Raises:
  • ValueError – If axis dimension coordinate variable is not correctly identified.

  • ValueError – If axis has multiple dimensions (only one is expected).

Examples

Import xCDAT:

>>> import xcdat

Open a dataset:

>>> ds = xcdat.open_dataset("...")

Extract grid from dataset:

>>> grid = ds.regridder.grid
_get_axis_data(name)[source]#
horizontal(data_var, output_grid, tool='xesmf', **options)[source]#

Transform data_var to output_grid.

When might Regrid2 be preferred over xESMF?

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 while xESMF assumes the cells are connected by Great Circles [1].

Supported tools, methods and grids:

Parameters:
  • data_var (str) – Name of the variable to transform.

  • output_grid (xr.Dataset) – Grid to transform data_var to.

  • tool (str) – Name of the tool to use.

  • **options (Any) – These options are passed directly to the tool. See specific regridder for available options.

Returns:

xr.Dataset – With the data_var transformed to the output_grid.

Raises:

ValueError – If tool is not supported.

References

Examples

Import xCDAT:

>>> import xcdat

Open a dataset:

>>> ds = xcdat.open_dataset("...")

Create output grid:

>>> output_grid = xcdat.create_uniform_grid(-90, 90, 4.0, -180, 180, 5.0)

Regrid variable using “xesmf”:

>>> output_data = ds.regridder.horizontal("ts", output_grid, tool="xesmf", method="bilinear")

Regrid variable using “regrid2”:

>>> output_data = ds.regridder.horizontal("ts", output_grid, tool="regrid2")
vertical(data_var, output_grid, tool='xgcm', **options)[source]#

Transform data_var to output_grid.

Supported tools:

Parameters:
  • data_var (str) – Name of the variable to transform.

  • output_grid (xr.Dataset) – Grid to transform data_var to.

  • tool (str) – Name of the tool to use.

  • **options (Any) – These options are passed directly to the tool. See specific regridder for available options.

Returns:

xr.Dataset – With the data_var transformed to the output_grid.

Raises:

ValueError – If tool is not supported.

Examples

Import xCDAT:

>>> import xcdat

Open a dataset:

>>> ds = xcdat.open_dataset("...")

Create output grid:

>>> output_grid = xcdat.create_grid(lev=np.linspace(1000, 1, 20))

Regrid variable using “xgcm”:

>>> output_data = ds.regridder.vertical("so", output_grid, method="linear")