Calkulate v2.3 introduces a new
Potentiometric class that titration datasets can be imported into, enabling easier high-level analysis using the existing array-based functions. This is not yet properly documented, although there is a working example script in the Github repo (examples/stepwise-alkalinity.py).
Release date: forthcoming
- Updated to work with PyCO2SYS v1.4.0.
Release date: 2020-04-02
convertmodule with convenience functions to convert acid and sample volumes into masses.
- Relocated EMF to [H+] conversion functions from
convert, with aliases to maintain backwards compatibility.
titrationmodule with new
Potentiometricclass for higher-level manipulation of titration datasets.
- Added plotting functions for
Potentiometrictitration objects into the
The main advance in Calkulate v2.2 is switching to using PyCO2SYS to evaluate all equilibrium constants and solute concentrations from temperature and salinity, instead of having an independent set of equivalent functions written into Calkulate itself.
Release date: 2020-03-20
dissociation.eqConstantsto use PyCO2SYS functions to calculate things instead of functions built in to Calkulate.
- Removed all equilibrium constant and concentration functions that were previously internally in Calkulate.
- Added optional total ammonia and hydrogen sulfide concentration inputs. If values are provided, these equilibria will now be taken into account by the
io.writeDatfunction to correctly delimit .dat files with tabs (not spaces).
simulate.titrationfunction to directly simulate a titration dataset.
- Updated solver functions to optionally accept
concTotals['C']as an array.
- Renamed module
datfile, but added alias to avoid breaking existing code.
Calkulate v2.1 is the first stable version in Python! New features will continue to be added, documentation developed, and bugs fixed, but the API of existing functions will no longer be changed.
Release date: 2019-08-06
- Renamed many functions and variables, as now described in the conventions documentation;
- Added plot module to visualise titration results;
halfGransolver to return values in dict field
- Fixed fatal bug in
- Fixed incorrect
eqConstants['P1']value in D81 dataset loading function;
- Combined all calibration and VINDTA-style functions into generic functions that can implement any solving method;
- Major documentation overhaul, and added workflow examples.
2.0 (Python, beta)
Despite the version number, Calkulate v2.0 is still a beta, as the original MATLAB program is extended and converted to Python.
Release date: 2019-04-09
- Added full outline documentation and function docstrings;
- Added meta module, with single-source-of-truth version number;
- Converted lists of solute concentrations (
XT) and dissociation constants (
KX) to dicts;
- Renamed MPH functions to complete;
- Updated various aspects of nomenclature throughout;
- Switched pH simulator to solve for pH, not [H+];
- Active efforts towards MATLAB integration paused.
Release date: 2019-01-15
- All functionality from original MATLAB version converted to Python, with equivalent results;
- Tested all solvers successfully against simulated titration data from Dickson (1981);
- Final release before starting to track updates here in the version history.
Release date: 2015
The original Calkulate v1.0.2 is a MATLAB-only implementation of the half-Gran alkalinity solver, as described by Humphreys (2015). The final version will remain freely available: see the appropriate project branch on GitHub.