Skip to main content

Regridding tools using xarray and flox.

Project description

xarray-regrid: Regridding utilities for xarray.

Logo

With xarray-regrid it is possible to regrid between two rectilinear grids. The following methods are supported:

  • Linear
  • Nearest-neighbor
  • Conservative
  • Cubic
  • "Most common value", as well as other zonal statistics (e.g., variance or median).

All regridding methods can operate lazily on Dask arrays.

Note that "Most common value" is designed to regrid categorical data to a coarse resolution. For regridding categorical data to a finer resolution, please use "nearest-neighbor" regridder.

PyPI conda-forge DOI Docs

Why xarray-regrid?

Regridding is a common operation in earth science and other fields. While xarray does have some interpolation methods available, these are not always straightforward to use. Additionally, methods such as conservative regridding, or taking the most common value, are not available in xarray.

Installation

For a minimal install:

pip install xarray-regrid

Note: xarray-regrid is also available on conda-forge.

To improve performance in certain cases:

pip install xarray-regrid[accel]

which includes optional extras such as:

  • dask: parallelization over chunked data
  • sparse: for performing conservative regridding using sparse weight matrices
  • opt-einsum: optimized einsum routines used in conservative regridding

Benchmarking varies across different hardware specifications, but the inclusion of these extras can often provide significant speedups.

Usage

The xarray-regrid routines are accessed using the "regrid" accessor on an xarray Dataset:

import xarray_regrid

ds = xr.open_dataset("input_data.nc")
ds_grid = xr.open_dataset("target_grid.nc")

ds.regrid.linear(ds_grid)

For examples, see the benchmark notebooks and the demo notebooks.

Benchmarks

The benchmark notebooks contain comparisons to more standard methods (CDO, xESMF).

To be able to run the notebooks, a conda environment is required (due to ESMF and CDO). You can install this environment using the environment.yml file in this repository. Micromamba is a lightweight version of the much faster "mamba" conda alternative.

micromamba create -n environment_name -f environment.yml

Acknowledgements

This package was developed under Netherlands eScience Center grant NLESC.OEC.2022.017.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xarray_regrid-0.4.2.tar.gz (67.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xarray_regrid-0.4.2-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

Details for the file xarray_regrid-0.4.2.tar.gz.

File metadata

  • Download URL: xarray_regrid-0.4.2.tar.gz
  • Upload date:
  • Size: 67.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for xarray_regrid-0.4.2.tar.gz
Algorithm Hash digest
SHA256 96525d39b0290efa59e0255cebd35be028052f1b347bfb10fd259b4380289673
MD5 2293476369fea1210b96b72385a140c6
BLAKE2b-256 989ef3b0a63917a6bd4b7e2b290cebc447c8db8e6ff63b4125e30fdcd1e378e1

See more details on using hashes here.

File details

Details for the file xarray_regrid-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: xarray_regrid-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 22.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for xarray_regrid-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 85c575fd5683b296b18a333038f743617d06c1994cd52562e7cfae4a5b8d862f
MD5 0f65e5ec50ed9f8eef1453802a6a02f9
BLAKE2b-256 4a94e7f02068c654a1d94e0d01dd0f6a35730a7284dd0dc3277c45b1ec3a48a6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page