Skip to content

Releases: xCDAT/xcdat

v0.7.3

06 Nov 20:51
1cfd369
Compare
Choose a tag to compare

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

  • Update get_bounds() to support mappable non-CF axes using "bounds" attr by @tomvothecoder in #708

Documentation

DevOps

Full Changelog: v0.7.2...v0.7.3

v0.7.2

02 Oct 18:52
f9d1566
Compare
Choose a tag to compare

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

  • [Refactor] Improve the performance of temporal group averaging by @tomvothecoder in #689

Bug Fixes

  • Update temporal.py to properly handle piControl and other simulations that start at year 1 when dropping incomplete seasons by @lee1043 in #696

Documentation

DevOps

Full Changelog: v0.7.1...v0.7.2

v0.7.1

24 Jun 20:56
1d57e25
Compare
Choose a tag to compare

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 (link). It also ensures all existing notebooks and documentation are up to date with the latest and relevant information.

Bug Fixes

  • Fixes regrid2 mapping output to input ordering by @jasonb5 in #653
  • Update add_missing_bounds() to convert np.timedelta64 to pd.Timedelta to support Xarray's datetime component accessor by @lee1043 in #660

Documentation

Full Changelog: v0.7.0...v0.7.1

v0.7.0

10 Apr 20:40
799b81f
Compare
Choose a tag to compare

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

  • Improving regrid2 performance by @jasonb5 in #533
  • Update Regrid2 missing and fill value behaviors to align with CDAT and add unmapped_to_nan arg for output data by @jasonb5 in #613

Bug Fixes

  • Fix Regrid2 to convert bounds as Dask Arrays to NumPy Arrays for compatibility with NumPy based code by @tomvothecoder and @lee1043 in #634
  • Fix climo notebook missing T bounds and add notebook env setup in all example notebooks by @tomvothecoder in #623
  • Update unweighted temporal averages to not require bounds by @tomvothecoder in #579

Documentation

Deprecations

  • Remove deprecated features and APIs by @tomvothecoder in #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: v0.6.1...0.7.0

v0.6.1

29 Nov 17:46
104a5d5
Compare
Choose a tag to compare

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

  • Update doc: Add link to the ESFG seminar xCDAT introduction video by @lee1043 in #571
  • Fix v0.6.0 changelog headers for proper nesting by @tomvothecoder in #559

Full Changelog:

v0.6.0...v0.6.1

v0.6.0

10 Oct 20:51
2325f29
Compare
Choose a tag to compare

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

  • Improves error when axis is missing/incorrect attributes with regrid2 by @jasonb5 in #481
  • Fixes preserving ds/da attributes in the regrid2 module by @jasonb5 in #468
  • Fixes duplicate parameter in regrid2 docs by @jasonb5 in #532

Spatial Averaging

  • Fix multi-file dataset spatial average orientation and weights when lon bounds span prime meridian by @pochedls in #495

Documentation

DevOps

Full Changelog: v0.5.0...v0.6.0

v0.6.0rc1

07 Jul 18:06
870b334
Compare
Choose a tag to compare
v0.6.0rc1 Pre-release
Pre-release

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

  • Functions to produce accurate time bounds by @pochedls in #418
  • Add API extending xgcm vertical regridding by @jasonb5 in #388
  • Update create_grid args to improve usability by @jasonb5 in #507

Bug Fixes

  • Improves error when axis is missing/incorrect attributes by @jasonb5 in #481
  • Fix multi-file dataset spatial average orientation and weights when lon bounds span prime meridian by @pochedls in #495
  • Fixes preserving ds/da attributes in the regrid2 module by @jasonb5 in #468

Deprecations

  • Add deprecation warning for CDML/XML support in open_mfdataset() by @tomvothecoder in #503

Documentation

DevOps

Full Changelog: v0.5.0...v0.6.0rc1

v0.5.0

27 Mar 21:36
d0a4892
Compare
Choose a tag to compare

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

  • Update departures and climatology APIs with reference period by @tomvothecoder in #417
  • Wrap open_dataset and open_mfdataset to flexibly open datasets by @pochedls in #385
  • Add better support for using custom time coordinates in temporal APIs by @tomvothecoder in #415

Bug Fixes

Documentation

DevOps

Full Changelog: v0.4.0...0.5.0

v0.4.0

09 Nov 22:57
d5d4fd7
Compare
Choose a tag to compare

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 #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 #343

Bug Fixes

Documentation

DevOps

Full Changelog: v0.3.3...v0.4.0

v0.3.3

12 Oct 18:28
36a3539
Compare
Choose a tag to compare

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 #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: v0.3.2...v0.3.3