Version history
Semantics
Version numbering aims to follow semantic versioning.
- New patch versions (e.g. 0.1.0 to 0.1.1) make minor changes that do not alter fuctionality or calculated results.
- New minor versions (e.g. 0.0.1 to 0.1.0) add new functionality, but will not break your code. They will not alter the results of calculations with default settings (except for in the hopefully rare case of correcting a bug or typo).
- New major versions (e.g. 0.1.1 to 1.0.0) may break your code and require you to rewrite things. They may significantly alter the results of calculations with default settings.
Warning
The only things that may change, in at least a minor version release, are:
- Additional features provided with this package, such as for example new functionnalities with new functions to complement the main
canyonbfunction. - Additional code to improve the performance of
canyonbfunction: computational time, documentation, etc.
The structure of the underlying modules and their functions is not yet totally stable and, for now, may change in any version increment. Such changes will be described in the release notes below.
0.4
CONTENT algorithm and multi-dimensional input support.
0.4.0 (27 May 2026)
Changes in v0.4.0
New features
ds.canyonb.content()— CONTENT algorithm (Bittig et al. 2018) as an xarray accessor method. Returns internally-consistent AT, CT, pH, and pCO₂ estimates with full propagated uncertainty, including cross-variable covariance from shared hydrographic inputs.co2content()— public low-level function mirroringCONTENT.m.include_raw=Trueexposes the four individual estimates per variable (CANYON-B direct + 3 CO2SYS combinations) along anestimatedimension.include_canyonb=Trueincludes the full CANYON-B sub-output prefixed withcanyonb_.- Multi-dimensional datasets (e.g.
time × pressure × lat × lon) are now fully supported by bothpredict()andcontent().
Bug fixes
- Sigma values — Jacobians are now computed via forward finite differences
(signed), matching the
inxarrays inCANYONB_private.m. The previous unit-error approach returned|inx|, causing cross-covariances to lose their sign and sigma values to be 5–18 % too low. Values now match the MATLAB reference to < 0.1 %. - Dimension ordering —
DatasetToNumpy._broadcast_all()now passes multi-dimensional variables first toxr.broadcast, preserving the user-defined dimension order for N-D grids.
Documentation
- API autodoc via
mkdocstringsforcanyonb,co2content,CanyonBAccessor, andDatasetToNumpy. - New API pages: xarray Accessor and Preprocessing.
0.3
Native xarray support.
0.3.0 (2 March 2026)
Changes in v0.3.0
New features
ds.canyonb.predict()— run CANYON-B directly on anxr.Datasetwithout any manual extraction. Results are returned as anxr.Datasetsharing the same dimensions and coordinates as the input, making it trivial to merge predictions back into the original dataset.DatasetToNumpy— low-level helper class that mapscanyonbargument names to dataset variables (with a customisablevar_map) and converts them to flat numpy arrays. Useful when you need to inspect or pre-process inputs before running the neural network.- Both interfaces support a
var_mapparameter for datasets with non-standard variable names (e.g. Argo BGC delayed-mode files usingTEMP_ADJUSTED,PSAL_ADJUSTED, …). DatasetToNumpyis now exported from the top-levelcanyonbpynamespace.
Behind the scene
- New
canyonbpy/preprocessing.pymodule implementsDatasetToNumpy. canyonb xarray accessorlives incanyonbpy/accessor.py.- New test file
canyonbpy/tests/test_xarray.pycovers both interfaces.
Documentation
- Advanced Features page fully rewritten with xarray usage examples, including Argo BGC workflows and custom variable name mapping.
- API reference updated for
DatasetToNumpy.
0.2
Documentation is now available!
0.2.0 (10 January 2025)
Changes in v0.2.0
Technical
- Online documentation using with
mkdocsandreadthedocs.
Bug fixes
- Bug fixes in
README.md.
Behind the scene
- Added inline documentation in Python functions.
0.1
Deployment of canyonbpy on PyPi! An as-close-as-possible clone of MATLAB CANYON-B v1.0. The version is in production, so will be 1.0 instead of 0.1 pretty soon, but (doing it on my own) I want feedbacks from people before publishing to 1.0.0. The documentation needs to be done also.
0.1.1 (2 January 2025)
Changes in v0.1.1
Bug fixes
- Updated correct version number.
Technical
- Inline documentation.
- Test deployment with multiple Python versions: 3.8, 3.9, 3.10, 3.11.
0.1.0 (2 January 2025)
Changes in v0.1.1
New features
canyonbis available on python!