DOI: 10.23729/474ade1f-6f51-40cb-a11c-06ea0f7bfd3c
title: Software for plotting results from "Modelling competing effects of cooling rate, grain size and radiation damage in low temperature thermochronometers"

description: # Important note [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/HUGG/tcplotter/HEAD?urlpath=lab/tree/tcplotter.ipynb) **This repository is for the pre-print version of the software associated with the manuscript**. In revision, we have made the code much easier to use and try out. You can test out the latest version of the software [using the Binder button](https://mybinder.org/v2/gh/HUGG/tcplotter/HEAD?urlpath=lab/tree/tcplotter.ipynb) above. The the code published with the final version of the manuscript can be found at [https://doi.org/10.5281/zenodo.5994750](https://doi.org/10.5281/zenodo.5994750). The original description of the pre-print version of the code is below. # Overview This archive contains the source code files for reproducing and customizing the plots from the article "Modelling competing effects of cooling rate, grain size and radiation damage in low temperature thermochronometers" by D. Whipp, D. Kellett, and I. Coutand. Details from the README.md file are shown below. ## Code description and instructions for use The programs provided for use with this manuscript will allow you to reproduce and customize the plots for your use. This document provides some basic instructions for using the plotting programs, assuming you have some basic familiarity with using programming languages such as Python. ### Attribution The age prediction algorithms used for calculating apatite and zircon (U-Th)/He and apatite fission-track ages were written by [Richard Ketcham](https://orcid.org/0000-0002-2748-0409) at the University of Texas, USA. Results published using this software should cite the articles below: Ketcham, R. A., Donelick, R. A., and Donelick, M. B.: AFTSolve: A program for multi-kinetic modeling of apatite fission-track data, Geol. Mat. Res., 2, (electronic), 2000. Ketcham, R. A., Mora, A., and Parra, M.: Deciphering exhumation and burial history with multi-sample down-well thermochronometric inverse modelling, Basin Res., 30, 48-64, 10.1111/bre.12207, 2018. ### Dependencies #### Age prediction algorithms - Apatite and Zircon RDAAM algorithm requires a C++ compiler. - AFT age and track length distribution algorithm requires a C compiler. #### Plotting software The plotting software is available in the form of Python scripts. The following libraries are needed for their use: - NumPy - Matplotlib - SciPy ### Creating plots using the programs #### Preparations ##### All figures All figures rely on having Python 3 installed with the libraries listed above. If you do not have Python installed, you can install [Anaconda](https://www.anaconda.com/products/individual#Downloads), for example. ##### Figures 2 and 3 In order to reproduce Figures 2 and 3 you will first need to compile the `RDAAM_He` program. For Linux or macOS, you can do the following (assuming you have a C++ compiler installed): ```bash cd cpp make make install cd .. ``` This will compile the program and copy it to the `bin` subdirectory. Windows users should compile things using the equivalent commands in a Windows shell. ##### Figure 4 In addition to the step needed for Figures 2 and 3 you should compile the `ketch_aft` program. For Linux or macOS, you can do the following (assuming you have a C compiler installed): ```bash cd c make make install cd .. ``` This will compile the program and copy it to the `bin` subdirectory. Windows users should compile things using the equivalent commands in a Windows shell. ### Making the plots Once you have done the necessary preparations, you can create the plots by simply running the Python programs in the `py` subdirectory. For example, you can create Figure 2 by running: ```bash python plot_age_tc_contours_figure2.py ``` ### Modifying the plots If you would like to customize the plots, simply edit the corresponding Python script for the plot of interest, save your changes, and run the script as shown above. In general, the parameters that should be modified are between the lines below. ```python # --- General model parameters ----------------------------------------------- # ... # --- End of user-defined parameters ----------------------------------------- # # # # You probably don't need to modify anything below unless you know what you # # are doing :) # # # # ---------------------------------------------------------------------------- # ``` Below are a few examples of values you might like to change in the plots. #### Figure 1 ##### Cooling rate options - Minimum cooling rate: `rate_min` - Slow cooling rate: `rate_slow` - 'Average' cooling rate: `rate_avg` - Maximum cooling rate: `rate_max` - Maximum temperature for cooling histories: `temp_max` ##### Plotting options - Maximum time shown in plotted time-temperature histories: `time_max` #### Figures 2-4 ##### Cooling history options - Figure 2 only - Type of cooling history to use: `cooling_hist_type` - 1 = constant cooling rate (defined by `rate` and `temp_max`) - 2 = time-temperature points (defined by `time_hist` and `temp_hist` lists) - Figures 3, 4 - Cooling rate range: `rate_min`, `rate_max` - Maximum temperature for cooling history: `temp_max` ##### Mineral options - All figures - Apatite, zircon thorium concentration: `ap_thorium`, `zr_thorium` - Figures 2, 3 only - Apatite uranium concentration range: `ap_u_min`, `ap_u_max` - Zircon uranium concentration range: `zr_u_min`, `zr_u_max` - Apatite grain radius range: `ap_rad_min`, `ap_rad_max` - Zircon grain radius range: `zr_rad_min`, `zr_rad_max` - Figure 4 only - List of apatite uranium concentrations: `ap_u_list` - List of zircon uranium concentrations: `zr_u_list` - Apatite, zircon grain radius: `ap_rad`, `zr_rad` ##### Plotting options - All figures - Number of points along x and/or y axes for age/closure temperature calculations: `n_inc` - Figures 2, 3 - Plot type: `plot_type` - 1 = apatite only - 2 = zircon only - 3 = both apatite and zircon - Figure 4 - Plot type: `plot_type` - 1 = Cooling rate versus closure temperature - 2 = Cooling rate versus age - 3 = Cooling rate versus age and closure temperature ##### Age uncertainty fractions (0.1 = 10%) - Apatite (U-Th)/He: `ahe_uncertainty` - Apatite fission-track: `aft_uncertainty` - Zircon (U-Th)/He: `zhe_uncertainty` ### Notes - The value for `n_inc` has been reduced from 101 to 21 in the scripts for plotting Figures 2 and 3. If you would like to reproduce those plots, you should increase `n_inc` to 101.