Releases: E3SM-Project/e3sm_diags
v3.0.1
This release includes enhancements and bug fixes that primarily impact users working with high-frequency EAMxx output, polar maps, and high-resolution streamflow diagnostics, as well as those affected by bugs introduced in the major v3 release. Notable updates include tropical_subseasonal set support for eamxx, improved regridding accuracy through explicit 2D masking, dynamic-resolution support in streamflow diagnostics, and the addition of new variables. Visualization layout fixes are also included for improved PDF output handling.
User-facing changes
- Update tropical_subseasonal set for eamxx output by @chengzhuzhang @jjbenedict in #982
- Creates a mask for 2d datasets before regridding by @chengzhuzhang @tomvothecoder in #974
- Add
pad_year
function for xarray time slicing with years <1000 by @tomvothecoder in #972 - Add U10 and CERES EBAF TOA v4.1 to polar maps by @chengzhuzhang in #967
- Fix streamflow diagnostics to support dynamic resolution by @chengzhuzhang @hydrotian in #969
- EAMxx: add AODvis to derivations by @mahf708 in #983
- Fix layout for sub-plot saved in pdf format by @chengzhuzhang in #984
- Add support for saving regridded datasets to netCDF files by @chengzhuzhang in #963
Other Changes
- Documentation: Add jupyter notebooks documenting metrics diffs by @chengzhuzhang in #964
- Update
setup-miniconda
from v2 to v3 by @tomvothecoder in #980 - Investigate performance degradation with latest dependencies by @tomvothecoder in #986
- Fix premature
plt.close()
resulting in no subplots saved by @tomvothecoder in #989 - Drop Python 3.9 support and add support for Python 3.13 by @tomvothecoder in #921
- Fix xcdat bounds dim issue with v0.9.1 by @tomvothecoder in #992
- Update
pre-commit
dependencies andruff
hook ID by @altheaden in #991 - Bump to 3.0.1 by @chengzhuzhang in #993
Full Changelog: v3.0.0...v3.0.1
v3.0.0 Modernization with Xarray and xCDAT
What's Changed
v3.0.0 marks a major milestone after nearly two years of work by the core development team. This release introduces a completely new back-end, replacing CDAT with Xarray and xCDAT. Due to the significant scale of code changes, this has been incremented as a major release. The user-facing API for running E3SM Diagnostics remains backward-compatible between v2 and v3.
The modernization improves performance, usability, and maintainability, paving the way for future enhancements to E3SM development. The refactored codebase is now more robust and extensively covered by unit tests, setting a solid foundation for ongoing testing and development.
This release also includes several new enhancements including support for more EAMxx variables, standardization of regridding with xESMF's conservative_normed
method, and improving diagnostic run performance by skipping unnecessary regridding of datasets with the same lat-lon grid.
We are excited to share this release with the E3SM community and remain committed to continuously improving the software!
Enhancements
- Add support for more EAMxx variables by @chengzhuzhang, @tomvothecoder, and @czender in #880
- Standardize regridding to
conservative_normed
by @tomvothecoder and @chengzhuzhang in #940 - Improve diagnostic run performance by skipping regridding for two datasets on same lat-lon grids by @chengzhuzhang in #959
- Revamp logging to improve readability and output E3SM diagnostic configuration, prevent duplicate log messages, and save complete console output to log file in
prov
directory by @tomvothecoder in #924 - Make viewer accessible at the top-level of results directory by @tomvothecoder in #927
Bug Fixes
- Fix prov files not printing with links in
prov
index.html by @tomvothecoder in #937
Refactor and testing
- Merge v3.0.0 development branch (
cdat-migration-fy24
) intomain
with the new Xarray/xCDAT backend by @tomvothecoder, @chengzhuzhang, @forsyth2, and @xylar in #902
DevOps
- Replace deprecated SciPy cwt with PyWavelets cwt by @tomvothecoder, @chengzhuzhang, and @whannah1 in #913
- Make
scipy
a base dependency inci.yml
anddev.yml
by @tomvothecoder in #905 - Constrain
dask !=2024.12.0,!=2024.12.1
for performance by @tomvothecoder in #926 - Replace data downloads from LCRC webserver to avoid throttling by using data containers by @mahf708 in #901
- Adopt
ruff
as the central tool for linting and formatting by @tomvothecoder in #920
Full Changelog: v2.12.1...v3.0.0
v3.0.0rc4
v3.0.0rc3
v3.0.0rc2
v3.0.0rc1
v2.12.1 A Fond Farewell to CDAT
As we release version v2.12.1 of E3SM Diags, we would like to take a moment to acknowledge and express our gratitude to the developers and contributors from the CDAT (Climate Data Analysis Tools) community. Over the years, CDAT has been an invaluable tool for our development and analysis processes. This release marks a milestone, as it will be the final version of E3SM Diags that includes a dependency on CDAT.
Looking ahead, E3SM Diags will transition to utilizing xarray/xCDAT tools, which align with our future goals and enhances the performance and usability of our software. We are committed to ensuring a smooth transition for our users and will provide backward compatibility in upcoming releases.
User-facing changes
- add Qbo wavelet analysis by @justin-richling @whannah1 in #836
- add H2OLNZ in zonal mean 2d stratosphere by @chengzhuzhang in #868
- make --closedcontourcmd in TC detection resolution-specific by @chengzhuzhang in #824
- Fixing African easterly wave density plots in TC analysis by @chengzhuzhang in #851
- Convert H2OLNZ units to ppm by volume by @chengzhuzhang in #874
- add_TCO_60S60N to default lat-lon variables by @chengzhuzhang in #879
Other Update
- Updates for tutorial2024 by @chengzhuzhang in #811
- Update tutorial by @forsyth2 in #812
- Fix a variable name displayed in viewer by @chengzhuzhang in #820
- fix save_ncfiles for annual_cycle_zonal_mean by @chengzhuzhang in #822
- Update cfg files by @chengzhuzhang in #830
- Fix integration test download script by @tomvothecoder in #835
- Drop support for python 3.8 by @altheaden in #844
- Tweak behaviors of build and release CI workflows by @altheaden in #847
- Release 2.12.1 by @chengzhuzhang in #893
New Contributors
- @altheaden made their first contribution in #844
- @justin-richling made their first contribution in #836
Full Changelog: v2.12.0...v2.12.1
v2.12.0
New Feature
- Add Wheeler and Kiladis diagram for tropical subseasonal diags - Wheeler and Kiladis by @jjbenedict @brianpm @chengzhuzhang @tomvothecoder in #732
Updates and bug fixes
- Add intermediate output in json for ARM Diags by @yunpengshan2014 in #806
- Edit in-place modified derived variables for fixing aerosol budget table by @mahf708 in #805
Full Changelog: v2.11.0...v2.12.0
v2.12.0rc1
New Feature
- Add Wheeler and Kiladis diagram for tropical subseasonal diags - Wheeler and Kiladis by @jjbenedict @brianpm @chengzhuzhang @tomvothecoder in #732
Updates and bug fixes
- Add intermediate output in json for ARM Diags by @yunpengshan2014 in #806
- Edit in-place modified derived variables for fixing aerosol budget table by @mahf708 in #805
Full Changelog: v2.11.0...v2.12.0rc1
v2.11.0
What's Changed
New Features
- Initial support variable naming convention for EAMxx by @golaz in #712
- Support comparing monthly mean climatology (in addition to seasonal and annual mean) @chengzhuzhang in #712
Documentation Updates
- Update zppy cfg for perlmutter by @chengzhuzhang in #783
- Update inter-comparison of CMIP models workflow by @chengzhuzhang in #786
Bug fixes
- Fix
cosp_histogram_driver.py
not writing mean variables to netCDF by @tomvothecoder in #782
Others
- Bump/v2.11.0rc1 by @chengzhuzhang in #789
Full Changelog: v2.10.1...v2.11.0