A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Recent Releases of xCDAT

xCDAT - v0.8.0

v0.8.0 (14 February 2025)

This minor release introduces a new feature for temporal averaging with custom seasons spanning the calendar year. It also includes the ability to detect and drop incomplete seasons using the drop_incomplete_season config, which will eventually replace drop_incomplete_djf (previously limited to DJF seasons). Additionally, a bug in the regrid2 regridder has been fixed, ensuring coordinates are now preserved correctly.

Enhancements

Bug Fixes

Documentation

DevOps

Full Changelog: https://github.com/xCDAT/xcdat/compare/v0.7.3...v0.8.0

Climate Change - Climate Data Processing and Analysis - Python
Published by github-actions[bot] 2 months ago

xCDAT - v0.7.3

v0.7.3 (06 November 2024)

This patch release updates the NumPy constraint to numpy >=2.0.0,<3.0.0 to ensure compatibility with NumPy 2.0 (which introduces breaking changes). It also fixes a bug in the get_bounds() method where bounds could not be found on supported non-CF axes (e.g., "latitude", "longitude", etc.) even with the "bounds" attribute set on the axes.

Bug Fixes

Documentation

DevOps

Full Changelog: https://github.com/xCDAT/xcdat/compare/v0.7.2...v0.7.3

Climate Change - Climate Data Processing and Analysis - Python
Published by github-actions[bot] 6 months ago

xCDAT - v0.7.2

v0.7.2 (02 October 2024)

This patch release introduces significant performance improvements to the temporal grouping averaging APIs (group_average, climatology, and departures) and adds support for piControl and other simulations that have time coordinates starting at year 1 (e.g., "0001-01-01") when dropping incomplete seasons.

Enhancements

Bug Fixes

Documentation

DevOps

Full Changelog: https://github.com/xCDAT/xcdat/compare/v0.7.1...v0.7.2

Climate Change - Climate Data Processing and Analysis - Python
Published by github-actions[bot] 7 months ago

xCDAT - v0.7.1

v0.7.1 (24 June 2024)

This patch release fixes a bug in the Regrid2 API where a static order of dimensions are incorrectly expected. It updates add_missing_bounds() to convert np.timedelta64 values to pandas.Timedelta objects to support Xarray's datetime component accessor.

This release also includes numerous updates to the documentation, including adding a general guide to parallel computing with Dask notebook. It also ensures all existing notebooks and documentation are up to date with the latest and relevant information.

Bug Fixes

Documentation

Full Changelog: https://github.com/xCDAT/xcdat/compare/v0.7.0...v0.7.1

Climate Change - Climate Data Processing and Analysis - Python
Published by github-actions[bot] 10 months ago

xCDAT - v0.7.0

v0.7.0 (10 April 2024)

This minor release includes enhancements to the performance of the Regrid2 API and fixes Regrid2 to align the behavior of how missing values are handled with CDAT. There are various other bug fixes and documentation updates listed below.

Enhancements

Bug Fixes

Documentation

Deprecations

  • Remove deprecated features and APIs by @tomvothecoder in https://github.com/xCDAT/xcdat/pull/628, including:
    • horizontal_xesmf() and horizontal_regrid2()
    • **kwargs from create_grid()
    • add_bounds accepting boolean arg in open_dataset() and open_mfdataset()
    • Remove CDML/XML support from open_dataset() and open_mfdataset() since CDAT is EOL since Dec/2023

Full Changelog: https://github.com/xCDAT/xcdat/compare/v0.6.1...0.7.0

Climate Change - Climate Data Processing and Analysis - Python
Published by github-actions[bot] about 1 year ago

xCDAT - v0.6.1

v0.6.1 (29 November 2023)

This patch version adds a default value to the axes argument in ds.bounds.add_missing_bounds() (axes=["X", "Y", "T"]). The axes argument was added in v0.6.0 and did not have a default value, which inadvertently introduced a breaking change to the API.

xesmf is now a required dependency because its core library, ESMF, supports Windows as of Feb/2023. More information can be found here.

Bug Fixes

DevOps

Documentation

Full Changelog:

https://github.com/xCDAT/xcdat/compare/v0.6.0...v0.6.1

Climate Change - Climate Data Processing and Analysis - Python
Published by github-actions[bot] over 1 year ago

xCDAT - v0.6.0

v0.6.0 (10 October 2023)

This minor version update consists of new features including vertical regridding (extension of xgcm), functions for producing accurate time bounds, and improving the usability of the create_grid API. It also includes bug fixes to preserve attributes when using regrid2 horizontal regridder and fixing multi-file datasets spatial average orientation and weights when lon bounds span prime meridian.

Features

Deprecation

Bug Fixes

Horizontal Regridding

Spatial Averaging

Documentation

DevOps

Full Changelog: https://github.com/xCDAT/xcdat/compare/v0.5.0...v0.6.0

Climate Change - Climate Data Processing and Analysis - Python
Published by github-actions[bot] over 1 year ago

xCDAT - v0.6.0rc1

v0.6.0rc1 (7 July 2023)

This is the first release candidate for the upcoming v0.6.0 release. This version is intended to be used for testing new features, improvements, and bug fixes. Refer to the changelog below for more information.

Features

Bug Fixes

Deprecations

Documentation

DevOps

Full Changelog: https://github.com/xCDAT/xcdat/compare/v0.5.0...v0.6.0rc1

Climate Change - Climate Data Processing and Analysis - Python
Published by tomvothecoder almost 2 years ago

xCDAT - v0.5.0

v0.5.0 (27 March 2023)

This long-awaited minor release includes feature updates to support an optional user-specified climatology reference period when calculating climatologies and departures, support for opening datasets using the directory key of the legacy CDAT Climate Data Markup Language (CDML) format (an XML dialect), and improved support for using custom time coordinates in temporal APIs.

This release also includes a bug fix for singleton coordinates breaking the swap_lon_axis() function. Additionally, Jupyter Notebooks for
presentations and demos have been added to the documentation.

Features

Bug Fixes

Documentation

DevOps

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

Climate Change - Climate Data Processing and Analysis - Python
Published by github-actions[bot] about 2 years ago

xCDAT - v0.4.0

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

  • Support for N axis dimensions mapped to N coordinates by @tomvothecoder and @pochedls in https://github.com/xCDAT/xcdat/pull/343
    • Rename get_axis_coord() to get_dim_coords() and get_axis_dim() to get_dim_keys()
    • Update spatial and temporal accessor class methods to refer to the dimension coordinate variable on the data_var being operated on,
      rather than the parent dataset
  • Decoding times (decode_time()) is now a lazy operation, which results in significant runtime improvements by @tomvothecoder in https://github.com/xCDAT/xcdat/pull/343

Bug Fixes

Documentation

DevOps

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

Climate Change - Climate Data Processing and Analysis - Python
Published by github-actions[bot] over 2 years ago

xCDAT - v0.3.3

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 @tomvothecoder and @lee1043 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 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

Dependencies

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

Climate Change - Climate Data Processing and Analysis - Python
Published by tomvothecoder over 2 years ago

xCDAT - v0.3.2

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 @durack1 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

Climate Change - Climate Data Processing and Analysis - Python
Published by tomvothecoder over 2 years ago

xCDAT - v0.3.1

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

Climate Change - Climate Data Processing and Analysis - Python
Published by tomvothecoder over 2 years ago

xCDAT - v0.3.0

v0.3.0 (27 June 2022)

New Features

Bug Fixes

Breaking Changes

Documentation

Internal Changes

New Contributors

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

Climate Change - Climate Data Processing and Analysis - Python
Published by tomvothecoder almost 3 years ago

xCDAT - v0.2.0

v0.2.0 (24 March 22)

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

Climate Change - Climate Data Processing and Analysis - Python
Published by tomvothecoder about 3 years ago

xCDAT - v0.1.0

Below is a summary of changes in this version. In subsequent changelogs, the exact commits will be listed.

Features

  • Add geospatial averaging API through DatasetSpatialAverageAccessor class by @pochedls and @tomvothecoder 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)

Docs

CI/CD

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

Climate Change - Climate Data Processing and Analysis - Python
Published by tomvothecoder over 3 years ago