History#

v0.4.0 (9 November 2022)#

This minor release includes a feature update to support datasets that have N dimensions mapped to N coordinates to represent an axis. This means xcdat APIs are able to intelligently select which axis’s coordinates and bounds to work with if multiple are present within the dataset. Decoding time is now a lazy operation, leading to significant upfront runtime improvements when opening datasets with decode_times=True.

A new notebook called “A Gentle Introduction to xCDAT” was added to the documentation gallery to help guide new xarray/xcdat users. xCDAT is now hosted on Zenodo with a DOI for citations.

There are various bug fixes for bounds, naming of spatial weights, and a missing flag for xesmf that broke curvilinear regridding.

Features#

Bug Fixes#

Documentation#

DevOps#

Full Changelog: https://github.com/xCDAT/xcdat/compare/v0.3.3…v0.4.0

v0.3.3 (12 October 2022)#

This patch release fixes a bug where calculating daily climatologies/departures for specific CF calendar types that have leap days breaks when using cftime. It also includes documentation updates.

Bug Fixes#

  • Drop leap days based on CF calendar type to calculate daily climatologies and departures by Tom Vo and Jiwoo Lee in https://github.com/xCDAT/xcdat/pull/350

    • Affected CF calendar types include gregorian, proleptic_gregorian, and standard

    • Since a solution implementation for handling leap days is generally opinionated, we decided to go with the route of least complexity and overhead (drop the leap days before performing calculations). We may revisit adding more options for the user to determine how they want to handle leap days (based on how valuable/desired it is).

Documentation#

Full Changelog: https://github.com/xCDAT/xcdat/compare/v0.3.2…v0.3.3

v0.3.2 (16 September 2022)#

This patch release focuses on bug fixes related to temporal averaging, spatial averaging, and regridding. xesmf is now an optional dependency because it is not supported on osx-arm64 and windows at this time. There is a new documentation page for HPC/Jupyter guidance.

Bug Fixes#

Temporal Average#

Spatial Average#

Horizontal Regridding#

Documentation#

Dependencies#

  • Make xesmf an optional dependency by Paul Durack in https://github.com/xCDAT/xcdat/pull/334

    • This is required because xesmf (and esmpy which is a dependency) are not supported on osx-arm64 and windows at this time.

    • Once these platforms are supported, xesmf can become a direct dependency of xcdat.

Full Changelog: https://github.com/xCDAT/xcdat/compare/v0.3.1…v0.3.2

v0.3.1 (18 August 2022)#

This patch release focuses on bug fixes including handling bounds generation with singleton coordinates and the use of cftime to represent temporal averaging outputs and non-CF compliant time coordinates (to avoid the pandas Timestamp limitations).

Bug Fixes#

Bounds#

Time Axis and Coordinates#

Internal Changes#

Documentation#

DevOps#

New Contributors#

Full Changelog: https://github.com/xCDAT/xcdat/compare/v0.3.0…v0.3.1

v0.3.0 (27 June 2022)#

New Features#

Bug Fixes#

Breaking Changes#

Documentation#

Internal Changes#

Full Changelog: https://github.com/xCDAT/xcdat/compare/v0.2.0…v0.3.0

v0.2.0 (24 March 2022)#

New Features#

Bug Fixes#

Breaking Changes#

Documentation#

Deprecations#

Internal Changes#

DevOps#

New Contributors#

Full Changelog: https://github.com/xCDAT/xcdat/compare/v0.1.0…v0.2.0

v0.1.0 (7 October 2021)#

New Features#

  • Add geospatial averaging API through DatasetSpatialAverageAccessor class by Stephen Po-Chedley and Tom Vo in #87

    • Does not support parallelism with Dask yet

  • Add wrappers for xarray’s open_dataset and open_mfdataset to apply common operations such as:

    • If the dataset has a time dimension, decode both CF and non-CF time units

    • Generate bounds for supported coordinates if they don’t exist

    • Option to limit the Dataset to a single regular (non-bounds) data variable while retaining any bounds data variables

  • Add DatasetBoundsAccessor class for filling missing bounds, returning mapping of bounds, returning names of bounds keys

  • Add BoundsAccessor class for accessing xcdat public methods from other accessor classes

    • This will be probably be the API endpoint for most users, unless they prefer importing the individual accessor classes

  • Add ability to infer data variables in xcdat APIs based on the “xcdat_infer” Dataset attr

    • This attr is set in xcdat.open_dataset(), xcdat_mfdataset(), or manually

  • Utilizes cf_xarray package (https://github.com/xarray-contrib/cf-xarray)

Documentation#

DevOps#

Full Changelog: https://github.com/xCDAT/xcdat/commits/v0.1.0