DASH v4.1.0
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
-
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. -
ensembleMetadata.remove
The previous code did not remove variables from thestateType
array, which could cause thelatlon
,closestLatLon
, andregrid
functions to crash in some cases.
Improvements
-
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. -
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. -
Improved
PSM.bayfox
Added options to allow the use of constant d18Osw and/or SST values. -
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
indash.dataSource.nc
- Skipping calls to
permute
andreshape
ingridfile.loadInternal
, and - Skipping a call to
reshape
indash.stateVectorVariable.buildMembers
- Removing start/count/stride inputs to
-
Infinite Localization Radii
Updateddash.localize.gc1d
anddash.localize.gc2d
to allow infinite localization radii (i.e. the case of no localization). Users may find this helpful for conducting parameter sweeps. -
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.