Tcages
Tcages is a Python package for predicting low-temperature thermochronometer ages from a time-temperature (tT) history. It provides compiled versions of two widely used age prediction codes with a simple Python interface:
- RDAAM / ZRDAAM for apatite and zircon (U-Th)/He ages, including the effects of radiation damage on He diffusion (Flowers et al., 2009; Guenthner et al., 2013)
- ketch for apatite fission-track (AFT) ages and track-length distributions (Ketcham et al., 1999)
Tcages is the age prediction engine used by Tc1D and Tcplotter, but it can also be used on its own.
Installation
Tcages can be installed using pip:
pip install tcages
Pre-built wheels are available for Linux (x86-64 and ARM64), macOS (Intel and Apple silicon) and Windows (x86-64 and ARM64), so no compilers are needed. Tcages requires Python 3.10 or newer and NumPy.
Older versions of Tc1D and Tcplotter
Prior to version 0.3, this software was distributed as Tccore, two command-line programs (RDAAM_He and ketch_aft) rather than a Python package.
These programs are still needed by Tc1D versions prior to 0.5.0 and Tcplotter versions up to 0.4.0.
They can be downloaded from the v0.2 release and installation instructions are in the v0.2 README.
Building from source
Building from source requires a C/C++ compiler (GCC, Clang or MSVC). CMake is installed automatically during the build if needed.
git clone https://github.com/HUGG/tcages.git
cd tcages
pip install .
To run the tests:
pip install pytest
pytest tests
Quick start
import tcages
# Define thermal history with cooling from 300 °C at 30 Ma to 0 °C today (rate of 10 °C/Myr)
times = [0.0, 30.0] # Ma, youngest (present day) first
temps = [0.0, 300.0] # °C
# Calculate (U-Th)/He and AFT ages
he = tcages.he_ages(
times, temps,
ap_rad=60.0, ap_u=10.0, ap_th=40.0, # apatite: radius (µm), U and Th (ppm)
zr_rad=60.0, zr_u=100.0, zr_th=40.0, # zircon: radius (µm), U and Th (ppm)
)
aft = tcages.aft_age(times, temps)
# Print results
print(f"AHe: {he.ahe_corr:.2f} Ma")
print(f"AFT: {aft.age:.2f} Ma (mean track length {aft.mean_length:.2f} µm)")
print(f"ZHe: {he.zhe_corr:.2f} Ma")
Output:
AHe: 6.13 Ma
AFT: 10.68 Ma (mean track length 13.94 µm)
ZHe: 13.20 Ma
Citing Tcages
If you use Tcages in your work, please cite the papers describing the models it implements (see References). If you use Tcages through Tc1D or Tcplotter, please also cite those packages as described in their documentation.
References
- Flowers, R. M., Ketcham, R. A., Shuster, D. L., and Farley, K. A.: Apatite (U-Th)/He thermochronometry using a radiation damage accumulation and annealing model, Geochimica et Cosmochimica Acta, 73, 2347–2365, https://doi.org/10.1016/j.gca.2009.01.015, 2009.
- Guenthner, W. R., Reiners, P. W., Ketcham, R. A., Nasdala, L., and Giester, G.: Helium diffusion in natural zircon: Radiation damage, anisotropy, and the interpretation of zircon (U-Th)/He thermochronology, American Journal of Science, 313, 145–198, https://doi.org/10.2475/03.2013.01, 2013.
- Ketcham, R. A., Donelick, R. A., and Carlson, W. D.: Variability of apatite fission-track annealing kinetics III: Extrapolation to geological time scales, American Mineralogist, 84, 1235–1255, https://doi.org/10.2138/am-1999-0903, 1999.
- Ketcham, R. A., Carter, A., Donelick, R. A., Barbarand, J., and Hurford, A. J.: Improved modeling of fission-track annealing in apatite, American Mineralogist, 92, 799–810, https://doi.org/10.2138/am.2007.2281, 2007.
- Ketcham, R. A., Gautheron, C., and Tassan-Got, L.: Accounting for long alpha-particle stopping distances in (U–Th–Sm)/He geochronology: Refinement of the baseline case, Geochimica et Cosmochimica Acta, 75, 7779–7791, https://doi.org/10.1016/j.gca.2011.10.011, 2011.
License
Tcages is distributed under the GNU General Public License v3.0 or later.
Metadata
Release files for tcages 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tcages-0.3.1.tar.gz | 57.8 kB | With provenance | Details for tcages-0.3.1.tar.gz |
Built distributions (wheels)
Total release size: 2.6 MB
Release files / tcages-0.3.1.tar.gz
| Download URL | tcages-0.3.1.tar.gz |
|---|---|
| Size | 57.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a8ac37c49e0c6210ab94a72dae95caf542bf77482322660509666de7b19b03f6
|
|
BLAKE2b-256 checksum How to use checksums |
5f5985955e352bc4765526fc237c03ecec076872b43dfc2aa3afb85c967bf626
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / tcages-0.3.1-py3-none-win_arm64.whl
| Download URL | tcages-0.3.1-py3-none-win_arm64.whl |
|---|---|
| Size | 57.4 kB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
ed0bd55c774624f030e892d163bf2971f4a874f3d4af5cee18b1e38e36ff1fa8
|
|
BLAKE2b-256 checksum How to use checksums |
1fb022ed86ecd1035a198130f22e95070c2326f03534b36e9ba3aade2d31b031
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / tcages-0.3.1-py3-none-win_amd64.whl
| Download URL | tcages-0.3.1-py3-none-win_amd64.whl |
|---|---|
| Size | 61.4 kB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
7dc297250bad1a4221c1d731168e0b80f94a7b94cd56ed836969b30ef47f9059
|
|
BLAKE2b-256 checksum How to use checksums |
cba75099651587629c20cf9cb79a4c70c1fc21c471e52994051ea26589b19c21
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / tcages-0.3.1-py3-none-win32.whl
| Download URL | tcages-0.3.1-py3-none-win32.whl |
|---|---|
| Size | 55.9 kB |
| Tags | Python 3 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
7afd2a4b80006626964a55a09fea7e0a5f11aef694fa14593d4c076bda816a4c
|
|
BLAKE2b-256 checksum How to use checksums |
1c9558f4a55cd4c2dda74f4521ddf94cb6abfddfd03de5d44a1a825c83788405
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / tcages-0.3.1-py3-none-musllinux_1_2_x86_64.whl
| Download URL | tcages-0.3.1-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 1.1 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
5225767e79847676f5ecd2f7834135c8533f65298f457e910a41fc0ac1a2f23e
|
|
BLAKE2b-256 checksum How to use checksums |
5ee903378c1aeefefe8f42ddb1dd6becf8e68874a522763ef2e1224ac72337b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / tcages-0.3.1-py3-none-musllinux_1_2_aarch64.whl
| Download URL | tcages-0.3.1-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 1.0 MB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
6890c3427c1c65a63d844b9e357d0a4f7b655207f846ba41dfa0ff89b23e069f
|
|
BLAKE2b-256 checksum How to use checksums |
28949ed43e9167961f0d4c225cab78aa6d11cc0b506eecda417e291b8f6191a4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / tcages-0.3.1-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | tcages-0.3.1-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 60.5 kB |
| Tags | Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
4f06bb7490b5cf870a51c1c546d4d5e2e13efab9498d839c9884ca8d6abfe05c
|
|
BLAKE2b-256 checksum How to use checksums |
6fcb32b4aa81908f626691da7fc1643b031484a0e472ef265c383673b1533cf5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / tcages-0.3.1-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
| Download URL | tcages-0.3.1-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl |
|---|---|
| Size | 60.4 kB |
| Tags | Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
69b6542cebcba4e4589e533915b315ca8f3041a2387057221e4f772822985ec6
|
|
BLAKE2b-256 checksum How to use checksums |
9ac915f3ca9a5ed2d3d60c87196254647b9e2bb526f404a279a7ca5e26ef476d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / tcages-0.3.1-py3-none-macosx_11_0_arm64.whl
| Download URL | tcages-0.3.1-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 57.4 kB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
4032e7c58ced0f6cc37d57809756e34c056fd8f1caaea3b3c960eb3ca9351e2f
|
|
BLAKE2b-256 checksum How to use checksums |
c3fda765ab6ad0ecef4903f249c300c06e622459e4d0247e0392668c3d0a1b0f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logRelease files / tcages-0.3.1-py3-none-macosx_10_9_x86_64.whl
| Download URL | tcages-0.3.1-py3-none-macosx_10_9_x86_64.whl |
|---|---|
| Size | 57.6 kB |
| Tags | Python 3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
b119c3144194b0c39c58d90ec2e700f95068969bf4c888b0a3e96cd59cb445e9
|
|
BLAKE2b-256 checksum How to use checksums |
4ee7cea21ad2433d27d1c13692a2d94c93bd9b03a91af4e301dd729f2a401086
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logSecurity for tcages 0.3.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 10 files in this release have been uploaded with provenance metadata.
Attestation for tcages-0.3.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 27, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.