Calkulate is a Python 3.6+ package for determining total alkalinity from seawater titration data.

pypi badge DOI


If you're using Conda, first create a new environment with Python 3.6+, NumPy 1.15+, and SciPy 1.1+ - or you can just allow Pip to install these dependencies for you. Other similar versions are probably fine, but untested. Then, to install:

pip install calkulate

To upgrade in existing installation when there is a new release:

pip install calkulate --upgrade --no-cache-dir

Since v2.2.0, Calkulate also requires PyCO2SYS v1.1.1 or greater. This will be automatically installed by Pip if you don't have it.

Get Calkulating!

This documentation is intended to present a broad overview of how Calkulate works, rather than provide a detailed syntactic reference for every constituent module and function.

Within Python, the import convention is:

import calkulate as calk

To quickly get started with some analysis, jump straight to the workflow examples. These examples illustrate the different parts of Calkulate that you may need to use, and provide a framework that you can quickly modify to suit your own requirements.

To find out more about the principles by which Calkulate calculates things, take a look at the other parts of the documentation. These explain:


A paper describing Calkulate v2 is in preparation. For now, if you use the current version of Calkulate in your research, please cite it as:

  • Humphreys, M. P. and Matthews, R. S. (2020). Total alkalinity from titration data in Python with Calkulate v2.3.0. doi:10.5281/zenodo.3737874.

For older Python versions, replace the version, year and DOI as follows:

For the original MATLAB version, please cite:

Humphreys, M. P. (2015). "Calculating seawater total alkalinity from open-cell titration data using a modified Gran plot technique," in Measurements and Concepts in Marine Carbonate Chemistry (PhD Thesis, Ocean and Earth Science, University of Southampton, UK), 25–44.

But please do check back here for any updates first (or get in touch)!


Calkulate is maintained by Dr Matthew P. Humphreys at the NIOZ Royal Netherlands Institute for Sea Research (Texel, the Netherlands), and Ruth Matthews at the University of East Anglia (Norwich, UK).

Its ongoing development has been indirectly funded by the Natural Environment Research Council (NERC, UK) and the Dutch Research Council (NWO, the Netherlands).


The entirety of Calkulate is licensed under the GNU General Public License version 3 (GPLv3).