Skip to content

Accessors

XRegrid provides xarray accessors for both DataArray and Dataset objects, allowing you to perform regridding using a convenient .regrid.to() syntax.

DataArray Accessor

to

xregrid.accessors.RegridDataArrayAccessor.to(target_grid, **kwargs)

Regrid the DataArray to a target grid or using a pre-computed Regridder.

Parameters:

Name Type Description Default
target_grid Dataset or Regridder

The target grid dataset or an existing Regridder instance.

required
**kwargs Any

Arguments passed to the Regridder constructor if target_grid is a Dataset.

{}

Returns:

Type Description
DataArray

The regridded DataArray.

Source code in src/xregrid/accessors.py
def to(
    self, target_grid: Union[xr.Dataset, Regridder], **kwargs: Any
) -> xr.DataArray:
    """
    Regrid the DataArray to a target grid or using a pre-computed Regridder.

    Parameters
    ----------
    target_grid : xr.Dataset or Regridder
        The target grid dataset or an existing Regridder instance.
    **kwargs : Any
        Arguments passed to the Regridder constructor if target_grid is a Dataset.

    Returns
    -------
    xr.DataArray
        The regridded DataArray.
    """
    if isinstance(target_grid, Regridder):
        return target_grid(self._obj)

    # Convert DataArray to Dataset to ensure compatibility with Regridder
    # if the Regridder needs to inspect the source grid.
    source_ds = self._obj.to_dataset(name="_tmp_data")
    regridder = Regridder(source_ds, target_grid, **kwargs)
    return regridder(self._obj)

Regrid the DataArray to a target grid.

import xarray as xr
from xregrid import create_global_grid

# Load some data
da = xr.tutorial.open_dataset("air_temperature").air

# Define target grid
target_grid = create_global_grid(res_lat=1.0, res_lon=1.0)

# Regrid using the accessor
regridded_da = da.regrid.to(target_grid, method='bilinear')

Dataset Accessor

to

xregrid.accessors.RegridDatasetAccessor.to(target_grid, **kwargs)

Regrid the Dataset to a target grid or using a pre-computed Regridder.

Parameters:

Name Type Description Default
target_grid Dataset or Regridder

The target grid dataset or an existing Regridder instance.

required
**kwargs Any

Arguments passed to the Regridder constructor if target_grid is a Dataset.

{}

Returns:

Type Description
Dataset

The regridded Dataset.

Source code in src/xregrid/accessors.py
def to(
    self, target_grid: Union[xr.Dataset, Regridder], **kwargs: Any
) -> xr.Dataset:
    """
    Regrid the Dataset to a target grid or using a pre-computed Regridder.

    Parameters
    ----------
    target_grid : xr.Dataset or Regridder
        The target grid dataset or an existing Regridder instance.
    **kwargs : Any
        Arguments passed to the Regridder constructor if target_grid is a Dataset.

    Returns
    -------
    xr.Dataset
        The regridded Dataset.
    """
    if isinstance(target_grid, Regridder):
        return target_grid(self._obj)

    regridder = Regridder(self._obj, target_grid, **kwargs)
    return regridder(self._obj)

Regrid the Dataset to a target grid.

import xarray as xr
from xregrid import create_global_grid

# Load some data
ds = xr.tutorial.open_dataset("air_temperature")

# Define target grid
target_grid = create_global_grid(res_lat=1.0, res_lon=1.0)

# Regrid using the accessor
regridded_ds = ds.regrid.to(target_grid, method='bilinear')