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.
Tcages can be installed using pip:
pip install tcagesPre-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.
Note
On Windows ARM64, Python 3.11 or newer is needed because NumPy does not provide Windows ARM64 packages for Python 3.10.
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 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 testsimport 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,
# Apatite: radius (µm), U and Th (ppm)
ap_rad=60.0,
ap_u=10.0,
ap_th=40.0,
# Zircon: radius (µm), U and Th (ppm)
zr_rad=60.0,
zr_u=100.0,
zr_th=40.0,
)
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
If you use Tcages in your work, please cite the software using its DOI (10.5281/zenodo.23689444, or use the "Cite this repository" button on GitHub) and 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.
- 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.
Tcages is distributed under the GNU General Public License v3.0 or later.