<jupyter_start><jupyter_text>Getting Started with *pyFTracks* v 1.0**<NAME>, <NAME>, <NAME> and <NAME>**The Australian National UniversityThe University of GlasgowLithodat*pyFTracks* is a Python package that can be used to predict Fission Track ages and Track lengths distributions for some given thermal-histories and kinetic parameters.*pyFTracks* is an open-source project licensed under the MiT license. See LICENSE.md for details.The functionalities provided are similar to Richard Ketcham HeFTy sofware. The main advantage comes from its Python interface which allows users to easily integrate *pyFTracks* with other Python libraries and existing scientific applications.*pyFTracks* is available on all major operating systems.For now, *pyFTracks* only provide forward modelling functionalities. Integration with inverse problem schemes is planned for version 2.0. Installation*pyFTracks* is availabe on pypi. The code should work on all major operating systems (Linux, MaxOSx and Windows)`pip install pyFTracks`  Importing *pyFTracks*The recommended way to import pyFTracks is to run:<jupyter_code>import pyFTracks as FT<jupyter_output><empty_output><jupyter_text>Input  Specifying a Thermal history<jupyter_code>thermal_history = FT.ThermalHistory(name="My Thermal History",
                  time=[0., 43., 44., 100.],
                  temperature=[283., 283., 403., 403.])
import matplotlib.pyplot as plt
plt.figure(figsize=(15, 5))
plt.plot(thermal_history.input_time, thermal_history.input_temperature, label=thermal_history.name, marker="o")
plt.xlim(100., 0.)
plt.ylim(150. + 273.15, 0.+273.15)
plt.ylabel("Temperature in degC")
plt.xlabel("Time in (Ma)")
plt.legend()<jupyter_output><empty_output><jupyter_text>Predefined thermal historiesWe provide predefined thermal histories for convenience.<jupyter_code>from pyFTracks.thermal_history import WOLF1, WOLF2, WOLF3, WOLF4, WOLF5, FLAXMANS1, VROLIJ
thermal_histories = [WOLF1, WOLF2, WOLF3, WOLF4, WOLF5, FLAXMANS1, VROLIJ]

plt.figure(figsize=(15, 5))
for thermal_history in thermal_histories:
    plt.plot(thermal_history.input_time, thermal_history.input_temperature, label=thermal_history.name, marker="o")
plt.xlim(100., 0.)
plt.ylim(150. + 273.15, 0.+273.15)
plt.ylabel("Temperature in degC")
plt.xlabel("Time in (Ma)")
plt.legend()<jupyter_output><empty_output><jupyter_text>Annealing Models<jupyter_code>annealing_model = FT.Ketcham1999(kinetic_parameters={"ETCH_PIT_LENGTH": 1.65})
annealing_model.history = WOLF1
annealing_model.calculate_age()
annealing_model = FT.Ketcham2007(kinetic_parameters={"ETCH_PIT_LENGTH": 1.65})
annealing_model.history = WOLF1
annealing_model.calculate_age()
FT.Viewer(history=WOLF1, annealing_model=annealing_model)<jupyter_output><empty_output><jupyter_text>Simple Fission-Track data Predictions<jupyter_code>Ns = [31, 19, 56, 67, 88, 6, 18, 40, 36, 54, 35, 52, 51, 47, 27, 36, 64, 68, 61, 30]
Ni = [41, 22, 63, 71, 90, 7, 14, 41, 49, 79, 52, 76, 74, 66, 39, 44, 86, 90, 91, 41]

zeta = 350.
zeta_err = 10. / 350.
rhod = 1.304
rhod_err = 0.
Nd = 2936
FT.central_age(Ns, Ni, zeta, zeta_err, rhod, Nd)
FT.pooled_age(Ns, Ni, zeta, zeta_err, rhod, Nd)
FT.single_grain_ages(Ns, Ni, zeta, zeta_err, rhod, Nd)
FT.chi2_test(Ns, Ni)<jupyter_output><empty_output><jupyter_text>Included datasets*pyFTracks* comes with some sample datasets that can be used for testing and designing general code.<jupyter_code>from pyFTracks.ressources import Gleadow
from pyFTracks.ressources import Miller
Gleadow
FT.central_age(Gleadow.Ns,
               Gleadow.Ni,
               Gleadow.zeta,
               Gleadow.zeta_error,
               Gleadow.rhod,
               Gleadow.nd)
Miller
FT.central_age(Miller.Ns,
               Miller.Ni,
               Miller.zeta,
               Miller.zeta_error,
               Miller.rhod,
               Miller.nd)
Miller.calculate_central_age()
Miller.calculate_pooled_age()
Miller.calculate_ages()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.10485093481556342, 'fraction_numerical': 0.0482566953006569, 'mean_word_length': 4.971342383107089, 'pattern_counts': {'":': 2, '<': 29, '<?xml version=': 0, '>': 29, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '9881', 'license': 'MIT', 'n_tokens_mistral': 1552, 'n_tokens_neox': 1343, 'n_words': 355, 'path': 'docs/examples/Manual.ipynb', 'repo_name': 'underworldcode/pyFTracks', 'size': '3989'}