Skip to content

What's New

v0.9.0 (unreleased)

New Features

  • Methods for autoparsing of dataset metadata to construct a xgcm.Grid class have been added. Currently these include restructred functionality for the COMODO conventions (already in xgcm) and the addition of SGRID conventions (#109, #559). By Jack Atkinson.

  • Vertical coordinate transformations are now also supported for multi-dimensional targets, for example a terrain-following (spatially varying) vertical coordinate. This feature currently only works with the linear interpolation method (#614, #642). By Nora Loose.

Breaking Changes

  • All computation methods on the xgcm.Axis class have been removed, in favour of using the corresponding methods on the xgcm.Grid object. The xgcm.Axis class has also been removed from public API. (#405, #557). By Thomas Nicholas.

  • All functionality for generating c-grid dimensions on incomplete datasets via Grid.autogenerate, was removed (#557). By Julius Busecke.

Internal Changes

Documentation

Bugfixes

  • Fix diff_2d_vector/interp_2d_vector (and the equivalent vector-component Grid.diff/Grid.interp) on grids with face connections when a vector component is a dask array chunked into more than one chunk along its core dimension. The map_overlap path now derives the output chunk spec from the padded, rechunked array, so face-connection padding that rechunks non-core dimensions no longer raises ValueError: Dimension 0 has 2 blocks, adjust_chunks specified with 1 blocks (#708). By Henri Drake.

  • Fix bug in xgcm.transform.transform that violated tracer conservation when using conservative interpolation in the presence of nans. (#635) By Julius Busecke.

  • Fix bug in xgcm.padding._maybe_rename_grid_positions where dimensions were assumed to have coordinate values leading to errors with ECCO data. (#531, #595, #597). By Julius Busecke.

  • Remove remaining mentions of extrapolate as boundary option (#602). By Julius Busecke.

  • Fix broken docs build due to broken backwards compatibility in sphinx extensions (#631) By Julius Busecke.

  • Fix bug that did not allow to create grids with faceconnections if the face dimension was coordinate-less. (#616, #616). By Julius Busecke.

  • Fix bug in xgcm.padding._maybe_rename_grid_positions where dimensions were assumed to have coordinate values leading to errors with ECCO data. (#531, #595, #597). By Julius Busecke.

v0.8.1 (2022/11/22)

New Features

Breaking Changes

Internal Changes

  • Rewrote cumsum to use a different code path from apply_as_grid_ufunc internally, which makes it less susceptible to subtle bugs like the one reported in #507. (#558). By Thomas Nicholas.

Documentation

  • Improved error message to suggest rechunking to a single chunk when trying to perform disallowed operations along chunked core dims. By Thomas Nicholas.

Bugfixes

v0.8.0 (2022/06/14)

New Features

Breaking Changes

Internal Changes

Documentation

Bugfixes

v0.7.0 (2022/4/20)

New Features

  • Turn numpy-style ufuncs into grid-aware "grid-ufuncs" via new functions apply_as_grid_ufunc and as_grid_ufunc. (#362, #344) By Thomas Nicholas.

  • Padding of vector fields for complex topologies via a dictionary-like syntax has been added (#459). By Julius Busecke.

Breaking Changes

Internal Changes

  • All computation methods on the Grid object are now re-routed through apply_as_grid_ufunc. By Thomas Nicholas.

Documentation

v0.6.1 (2022/02/15)

Documentation

  • Switch RTD build to use mamba for increased speed and reduced memory useage (#401). By Julius Busecke.

Internal Changes

v0.6.0 (2021/11/03)

New Features

  • Grid.set_metrics now enables adding metrics to a grid object (#336, #199). By Dianne Deauna under the SIParCS internship.

  • Grid.get_metric refactored, and now incorporates Grid.interp_like to allow for automatic interpolation of missing metrics from available values on surrounding positions (#345, #354). By Dianne Deauna.[^siparcs]

  • Grid.set_metrics enables overwriting of previously assigned metrics to a grid object, and allows for multiple metrics on the same axes (must be different dimensions) (#351, #199). By Dianne Deauna.[^siparcs]

  • Grid.interp_like enables users to interpolate arrays onto the grid positions of another array, and can specify boundary conditions and fill values (#234 , #343, #350). By Dianne Deauna.[^siparcs]

  • Better input checking when creating a grid object avoids creating grid positions on dataset coordinates which are not 1D (#208, #358). By Julius Busecke.

[^siparcs]: under the SIParCS internship

Breaking Changes

Documentation

Internal Changes

  • Fixed metrics tests so some tests that previously did not run now do run, and refactored the metrics tests. By Tom Nicholas.[^siparcs]
  • Enabled type checking on the repository with mypy. By Tom Nicholas.[^siparcs]

  • Removed dependency on docrep, which as docrep 2.7 used a GPL licence, implicitly changed the license of xGCM. Therefore xGCM now has a valid MIT license, instead of accidentally being a GPL licence as it was before. (#308, #384) By Tom Nicholas.[^siparcs]

Deprecations

  • The keep_coords kwarg is now deprecated, and will be removed in the next version. (#382) By Tom Nicholas.[^siparcs]

v0.5.2 (2021/5/27)

Bug fixes

  • Raise more useful errors when datasets are provided as arguments to grid.transform (#329, #328). By Julius Busecke.

Documentation

v0.5.1 (2020/10/16)

Bug fixes

v0.5.0 (2020/9/28)

New Features

Bug fixes

v0.4.0 (2020/9/2)

New Features

  • Support for keeping compatible coordinates in most Grid operations (#186). By AurĂ©lien Ponte.

  • Support for specifying default boundary and fill_value in the xgcm.Grid constructor. Default values can be overridden in individual method calls (e.g. Grid.interp) as usual. By Deepak Cherian.

Bug fixes

Internal Changes

v0.3.0 (31 January 2020)

This release adds support for model grid metrics , bug fixes and extended documentation.

Breaking changes

New Features

  • Support for 'grid-aware' average and cumsum using Grid.average and Grid.cumsum (#162). By Julius Busecke.

  • Support for 'grid-aware' integration using Grid.integrate (#130). By Julius Busecke.

Bug fixes

Documentation

Internal Changes

v0.2.0 (21 March 2019)

Changes not documented for this release

v0.1.0 (13 July 2014)

Changes not documented for this release

Initial release.