Skip to content

TerraTools

Tools to read, analyse and visualise models written by the TERRA mantle convection code. TerraTools is released under an MIT License.

DOI

Homepage: https://terratools.readthedocs.io/en/latest/
Documentation: https://terratools.readthedocs.io/en/latest/
Source code: https://github.com/mantle-convection-constrained/terratools
Publication: DOI

Citing TerraTools

If you use terratools, please cite the associated JOSS paper. You can make use of the BibTeX entry below:

@article{terratools:2025,
  title = {Terratools: {A} {P}ython package to analyse {TERRA} mantle convection simulations},
  shorttitle = {Terratools},
  author = {Nowacki, Andy and Panton, James and Ward, Jamie and Myhill, Bob and Walker, Andrew and Wookey, James and Davies, J. Huw},
  year = 2025,
  month = dec,
  journal = {Journal of Open Source Software},
  volume = {10},
  number = {116},
  pages = {7539},
  issn = {2475-9066},
  doi = {10.21105/joss.07539},
  urldate = {2025-12-16},
  langid = {english}
}

Installation

Requirements

TerraTools requires Python version 3.9 or newer.

If you want to use the map plotting functions (such as TerraModel.plot_layer), make sure you have a working installation of Cartopy.

Pre-installation

If you are using a Conda-like package manager (e.g., Miniconda or Mamba), we recommend always creating a new environment for each project you are working on into which you install TerraTools. For instance:

conda create -n amazing_mantle_convection_project python=3.11
conda activate amazing_mantle_convection_project

This is entirely optional but often prevents issues with dependency version conflicts.

Installing the latest released version

Installation with pip

Before installing TerraTools with pip, first install and/or upgrade your version of pip:

python -m ensurepip --upgrade

To install the latest released version of TerraTools, then do:

python -m pip install terratools

Installation with dependency management systems

If you use a dependency management system such as Poetry or Pipenv you should add terratools as a dependency of your project.

Installing the development version

You can also install the latest development version of TerraTools from source. To do this, first clone the repository onto your local machine using git:

git clone https://github.com/mantle-convection-constrained/terratools.git
Then navigate to the top level directory and install in development mode:

  • Using pip (-e for an 'editable' development install and the .[dev] group for the extra development dependencies):
     cd terratools; python -m pip install -ve '.[dev]'
    
  • Using Poetry:
    cd terratools; poetry install --all-extras
    
  • Using uv (install dev dependencies by default):
    cd terratools; uv sync
    

Post-installation

Finally, check you have a fully working installation:

python -c "import terratools"

Reporting bugs

If you would like to report any bugs, please raise an issue on GitHub.

Contributing to TerraTools

If you would like to contribute bug fixes, new functions or new modules to the existing codebase, please fork the terratools repository, make the desired changes and then make a pull request on GitHub.

Acknowledgement and Support

This project is supported by NERC Large Grant MC-squared.