History
Contents
History#
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, andstandardSince 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#
Add horizontal regridding gallery notebook by Jason Boutte in https://github.com/xCDAT/xcdat/pull/328
Add doc for staying up to date with releases by Tom Vo in https://github.com/xCDAT/xcdat/pull/355
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#
Fix multiple temporal avg calls on same dataset breaking by Tom Vo in https://github.com/xCDAT/xcdat/pull/329
Fix incorrect results for group averaging with missing data by Stephen Po-Chedley in https://github.com/xCDAT/xcdat/pull/320
Spatial Average#
Fix spatial bugs: handle datasets with domain bounds out of order and zonal averaging by Stephen Po-Chedley in https://github.com/xCDAT/xcdat/pull/340
Horizontal Regridding#
Fix regridder storing NaNs for bounds by Stephen Po-Chedley in https://github.com/xCDAT/xcdat/pull/344
Documentation#
Update README and add HPC/Jupyter Guidance by Stephen Po-Chedley in https://github.com/xCDAT/xcdat/pull/331
Dependencies#
Make
xesmfan optional dependency by Paul Durack in https://github.com/xCDAT/xcdat/pull/334This is required because
xesmf(andesmpywhich is a dependency) are not supported onosx-arm64andwindowsat this time.Once these platforms are supported,
xesmfcan become a direct dependency ofxcdat.
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#
Ignore singleton coordinates without dims when attempting to generate bounds by Stephen Po-Chedley in https://github.com/xCDAT/xcdat/pull/281
Modify logic to not throw error for singleton coordinates (with no bounds) by Stephen Po-Chedley in https://github.com/xCDAT/xcdat/pull/313
Time Axis and Coordinates#
Fix
TypeErrorwith Dask Arrays from multifile datasets in temporal averaging by Stephen Po-Chedley in https://github.com/xCDAT/xcdat/pull/291Use
cftimeto avoid out of boundsdatetimewhen decoding non-CF time coordinates by Stephen Po-Chedley and Tom Vo in https://github.com/xCDAT/xcdat/pull/283Use
cftimefor temporal averaging operations to avoid out of boundsdatetimeby Stephen Po-Chedley and Tom Vo in https://github.com/xCDAT/xcdat/pull/302Fix
open_mfdataset()dropping time encoding attrs by Tom Vo in https://github.com/xCDAT/xcdat/pull/309Replace “time” references with
self._diminclass TemporalAccessorby Tom Vo in https://github.com/xCDAT/xcdat/pull/312
Internal Changes#
Filters safe warnings. by Jason Boutte in https://github.com/xCDAT/xcdat/pull/276
Documentation#
update conda install to conda create by Paul Durack in https://github.com/xCDAT/xcdat/pull/294
Update project overview and planned features list by Tom Vo in https://github.com/xCDAT/xcdat/pull/298
Fix bullet formatting in
README.rstandindex.rstby Tom Vo in https://github.com/xCDAT/xcdat/pull/299Fix Jupyter headings not rendering with pandoc by Tom Vo in https://github.com/xCDAT/xcdat/pull/318
DevOps#
Unify workspace settings with
settings.jsonby Tom Vo in https://github.com/xCDAT/xcdat/pull/297Run CI/CD on “push” and “workflow_dispatch” by Tom Vo in https://github.com/xCDAT/xcdat/pull/287 and https://github.com/xCDAT/xcdat/pull/288
Pin
numba=0.55.2in dev env and constrainnumba>=0.55.2in ci env by Tom Vo in https://github.com/xCDAT/xcdat/pull/280Update conda env yml files and add missing dependencies by Tom Vo in https://github.com/xCDAT/xcdat/pull/307
New Contributors#
Paul Durack made their first contribution in https://github.com/xCDAT/xcdat/pull/294
Full Changelog: https://github.com/xCDAT/xcdat/compare/v0.3.0…v0.3.1
v0.3.0 (27 June 2022)#
New Features#
Add horizontal regridding by Jason Boutte in https://github.com/xCDAT/xcdat/pull/164
Add averages with time dimension removed by Tom Vo in https://github.com/xCDAT/xcdat/pull/236
Update
_get_weights()method inclass SpatialAccessorandclass TemporalAccessorby Tom Vo in https://github.com/xCDAT/xcdat/pull/252Add
keep_weightskeyword attr to reduction methodsMake
_get_weights()public inclass SpatialAccessor
Update
get_axis_coord()to interpret more keys by Tom Vo in https://github.com/xCDAT/xcdat/pull/262Along with the
axisattr, it also now interpretsstandard_nameand the dimension name
Bug Fixes#
Fix
add_bounds()breaking when time coords arecftimeobjects by Tom Vo in https://github.com/xCDAT/xcdat/pull/241Fix parsing of custom seasons for departures by Tom Vo in https://github.com/xCDAT/xcdat/pull/246
Update
swap_lon_axisto ignore same systems, which was causing odd behaviors for (0, 360) by Tom Vo in https://github.com/xCDAT/xcdat/pull/257
Breaking Changes#
Remove
class XCDATAccessorby Tom Vo in https://github.com/xCDAT/xcdat/pull/222Update spatial
axisarg supported type and keys by Tom Vo in https://github.com/xCDAT/xcdat/pull/226Now only supports CF-compliant axis names (e.g., “X”, “Y”)
Remove
center_timeskwarg from temporal averaging methods by Tom Vo in https://github.com/xCDAT/xcdat/pull/254
Documentation#
Revert official project name from “XCDAT” to “xCDAT” by Tom Vo in https://github.com/xCDAT/xcdat/pull/231
[DOC] Add CDAT API mapping table and gallery examples by Tom Vo in https://github.com/xCDAT/xcdat/pull/239
Internal Changes#
Update time coordinates object type from
MultiIndextodatetime/cftimeforTemporalAccessorreduction methods and add convenience methods by Tom Vo in https://github.com/xCDAT/xcdat/pull/221Extract method
_postprocess_dataset()and make bounds generation optional by Tom Vo in https://github.com/xCDAT/xcdat/pull/223Update
add_boundskwarg default value toTrueby Tom Vo in https://github.com/xCDAT/xcdat/pull/230Update
decode_non_cf_timeto return input dataset if the time “units” attr can’t be split into unit and reference date by Stephen Po-Chedley in https://github.com/xCDAT/xcdat/pull/263
Full Changelog: https://github.com/xCDAT/xcdat/compare/v0.2.0…v0.3.0
v0.2.0 (24 March 2022)#
New Features#
Add support for spatial averaging parallelism via Dask by Stephen Po-Chedley in https://github.com/xCDAT/xcdat/pull/132
Refactor spatial averaging with more robust handling of longitude spanning prime meridian by Stephen Po-Chedley in https://github.com/xCDAT/xcdat/pull/152
Update xcdat.open_mfdataset time decoding logic by Stephen Po-Chedley in https://github.com/xCDAT/xcdat/pull/161
Add function to swap dataset longitude axis orientation by Tom Vo in https://github.com/xCDAT/xcdat/pull/145
Add utility functions by Tom Vo in https://github.com/xCDAT/xcdat/pull/205
Add temporal utilities and averaging functionalities by Tom Vo in https://github.com/xCDAT/xcdat/pull/107
Bug Fixes#
Add exception for coords of len <= 1 or multidimensional coords in
fill_missing_bounds()by Tom Vo in https://github.com/xCDAT/xcdat/pull/141Update
open_mfdataset()to avoid data vars dim concatenation by Tom Vo in https://github.com/xCDAT/xcdat/pull/143Fix indexing on axis keys using generic map (related to spatial averaging) by Tom Vo in https://github.com/xCDAT/xcdat/pull/172
Breaking Changes#
Rename accessor classes and methods for API consistency by Tom Vo in https://github.com/xCDAT/xcdat/pull/142
Rename
fill_missing_bounds()toadd_missing_bounds()by Tom Vo in https://github.com/xCDAT/xcdat/pull/157Remove data variable inference API by Tom Vo in https://github.com/xCDAT/xcdat/pull/196
Rename spatial file and class by Tom Vo in https://github.com/xCDAT/xcdat/pull/207
Documentation#
update README by Jill Chengzhu Zhang in https://github.com/xCDAT/xcdat/pull/127
Update readme by Jiwoo Lee in https://github.com/xCDAT/xcdat/pull/129
Update
HISTORY.rstand fix docstrings by Tom Vo in https://github.com/xCDAT/xcdat/pull/139Update
README.rstcontent and add logo by Tom Vo in https://github.com/xCDAT/xcdat/pull/153Update API Reference docs to list all APIs by Tom Vo in https://github.com/xCDAT/xcdat/pull/155
Add
config.ymlfor issue templates with link to discussions by Tom Vo in https://github.com/xCDAT/xcdat/pull/176Add FAQs page to docs by Tom Vo in https://github.com/xCDAT/xcdat/pull/181
Fix syntax of code examples from PR #181 by Tom Vo in https://github.com/xCDAT/xcdat/pull/182
Replace markdown issue templates with GitHub yml forms by Tom Vo in https://github.com/xCDAT/xcdat/pull/186
Update
README.rst,index.rst, andproject_maintenance.rstby Tom Vo in https://github.com/xCDAT/xcdat/pull/211
Deprecations#
Internal Changes#
Update logger levels to debug by Tom Vo in https://github.com/xCDAT/xcdat/pull/148
Update and remove logger debug messages by Tom Vo in https://github.com/xCDAT/xcdat/pull/193
DevOps#
Add
requires_daskdecorator for tests by Tom Vo in https://github.com/xCDAT/xcdat/pull/177Update dependencies in
setup.pyanddev.ymlby Tom Vo in https://github.com/xCDAT/xcdat/pull/174Add matrix testing and ci specific conda env by Tom Vo in https://github.com/xCDAT/xcdat/pull/178
Suppress xarray warning in test suite by Tom Vo in https://github.com/xCDAT/xcdat/pull/179
Drop support for Python 3.7 by Tom Vo in https://github.com/xCDAT/xcdat/pull/187
Update conda env dependencies by Tom Vo in https://github.com/xCDAT/xcdat/pull/189
Add deps to
pre-commitmypyand fix issues by Tom Vo in https://github.com/xCDAT/xcdat/pull/191Add
matplotlibto dev env, updateci.ymland add Python 3.10 to build workflow by Tom Vo in https://github.com/xCDAT/xcdat/pull/203Replace conda with mamba in rtd build by Tom Vo in https://github.com/xCDAT/xcdat/pull/209
New Contributors#
Jill Chengzhu Zhang made their first contribution in https://github.com/xCDAT/xcdat/pull/127
Jiwoo Lee made their first contribution in https://github.com/xCDAT/xcdat/pull/129
Stephen Po-Chedley made their first contribution in https://github.com/xCDAT/xcdat/pull/132
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
DatasetSpatialAverageAccessorclass by Stephen Po-Chedley and Tom Vo in #87Does not support parallelism with Dask yet
Add wrappers for xarray’s
open_datasetandopen_mfdatasetto 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
DatasetBoundsAccessorclass for filling missing bounds, returning mapping of bounds, returning names of bounds keysAdd
BoundsAccessorclass for accessing xcdat public methods from other accessor classesThis 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_xarraypackage (https://github.com/xarray-contrib/cf-xarray)
Documentation#
Visit the docs here: https://xcdat.readthedocs.io/en/latest/index.html
DevOps#
100% code coverage (https://app.codecov.io/gh/xCDAT/xcdat)
GH Actions for CI/CD build (https://github.com/xCDAT/xcdat/actions)
Pytest and pytest-cov for test suite
Full Changelog: https://github.com/xCDAT/xcdat/commits/v0.1.0