Skip to content

DASH v4.1.0

Compare
Choose a tag to compare
@JonKing93 JonKing93 released this 31 Dec 22:29
· 31 commits to main since this release

Notice

If you are using the v4-beta-4 or v4.0.0 release, then you should update your code immediately. This update fixes a critical error in the calculation of covariance localization weights for those two releases. See "Fix 1" below for additional details.

Summary

This release includes:

  • A fix for a recent error in the calculation of covariance localization weights
  • A license
  • Improvements to the BayMAG and BayFOX PSMs,
  • Support for dimensionless scalar variables (such as climate model parameters)

as well as several other minor improvements.

Details

Fixes

  1. Gaspari-Cohn localization weights
    On October 17, 2022 an error was introduced into the code for the Gaspari-Cohn polynomial (dash.math.gaspariCohn) that caused covariance localization weights to be calculated incorrectly. This error affects the v4.0.0-Beta-4 and v4.0.0 releases, but all previous releases calculated localization weights correctly. This new release corrects the error and returns the code to its original (correct) state. Users of the two affected releases should update their code immediately.

  2. ensembleMetadata.remove
    The previous code did not remove variables from the stateType array, which could cause the latlon, closestLatLon, and regrid functions to crash in some cases.

Improvements

  1. Added a License
    The toolbox now has a license (the MIT license). This can be found in the repository itself, as well as within the documentation resources.

  2. Improved PSM.baymag
    Added options to allow the use of constant SST, SSS, omega, and/or pH values. Also updated the supported commit. The new commit includes functionality for calculating the seasonality of proxy sites.

  3. Improved PSM.bayfox
    Added options to allow the use of constant d18Osw and/or SST values.

  4. Support for dimensionless scalars
    Users may wish to assimilate dimensionless scalar variables (such as climate model parameters), but these can interact poorly with some native MATLAB functions (which assume all arrays have at least 2 dimensions). Added code to allow these variables within DASH. This includes the following changes when a dimensionless scalar is detected:

    • Removing start/count/stride inputs to ncread in dash.dataSource.nc
    • Skipping calls to permute and reshape in gridfile.loadInternal, and
    • Skipping a call to reshape in dash.stateVectorVariable.buildMembers
  5. Infinite Localization Radii
    Updated dash.localize.gc1d and dash.localize.gc2d to allow infinite localization radii (i.e. the case of no localization). Users may find this helpful for conducting parameter sweeps.

  6. ensembleMetadata.variableIndices
    The previous code used variable names (rather than indices) to test for duplicates. In some cases, this would require users to use double-quote input strings (single-quote strings would fail). The updated function permits both single-quote and double-quote strings.

Acknowledgements

Huge thanks to @mattosman for noting the two bugs and the lack of support for dimensionless scalars.