All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Fixed:
- Attributes are now properly preserved when updating coordinates during pre-formatting for regridding (#54).
- Handle datasets with inconsistent chunksizes during pre-formatting (#57).
Changed:
- the "most common" routine has been overhauled, thanks to @dcherian. It is now much more efficient, and can operate fully lazily on dask arrays. Users do need to provide the expected groups (i.e., unique labels in the data), and the regridder is only available for
xr.DataArray
currently (#46). - you can now use
None
as input to thetime_dim
kwarg in the regridding methods to force regridding over the time dimension (as long as it's numeric) (#46). - Performance of the conservative method has been improved by simultaneously aggregating over all regridding dimensions. Conservative regridding now also produces outputs with the same grid chunks as the inputs, unless explicit chunksizes are passed via the
output_chunks
argument. (#51).
Added:
.regrid.stat
for reducing datasets using statistical methods such as the variance or median (#46).- a "least common" routine (i.e. anti-mode), which is the inverse of the most common value (#46).
- If latitude/longitude coordinates are detected and the domain is global, apply automatic padding at the boundaries, which gives behavior more consistent with common tools like ESMF and CDO (#45).
- Conservative regridding weights are converted to sparse matrices if the optional sparse package is installed, which improves compute and memory performance in most cases (#49).
New contributors:
Fixed:
- conservative regridding now can be constructed fully lazily #39.
Added:
- documentation for the package, including readthedocs integration (#40).
- better handling of NaNs to the conservative regridding routine, with a
nan_threshold
keyword argument. For more information see the notebooks on the documentation #39 & #41. create_regridding_dataset
as a method of thexarray_regrid.Grid
dataclass #41.
New contributors:
Fixed:
- Ensure all attributes are kept upon regridding (dataset, variable and coordinate attrs) (#27).
- The target grid can now have coordinates sorted in decending order, instead of the regridding failing (#29).
- Regridding to larger grid now result in NaNs at locations outside of starting data grid (#33).
Changed:
- Moved to the Ruff formatter, instead of black (#27).
Added:
- CITATION.cff file for Zenodo integration.
Fixed:
- Datasets containing NaN values can now be regridded using the conservative method. This previously produced only NaN values.
Added:
- xarray DataArrays are now supported
- Conservative regridding method, along with a benchmark notebook.
- A "most common value" regridding method, along with a demo notebook.
Changed:
- The API has changed. Regridding is now done with
xr.Dataset.regrid.method()
.- E.g.
xr.Dataset.regrid.linear()
- E.g.
First release of xarray-regrid
, containing:
- the implementation of linear, nearest-neighbor and cubic regridding.
- benchmarks against CDO and xESMF for linear and nearest-neighbor.