Observations have shown that stars with the same age and mass can have a wide range of rotation periods. The purpose of this code is to compute the posterior probability for a star's age given its observed rotation period and effective temperature. This is achieved by marginalizing over all possible ages that might explain the observed stellar properties with a parametric model that has been fitted to not only the mean rotation periods, but also the intrinsic scatter in observed open cluster rotation sequences.
The documentation is hosted at gyro-interp.readthedocs.io. A minimal example to get you started is below. The method is described in detail in Bouma, Palumbo & Hillenbrand (2023).
Preferred installation method is through PyPI:
pip install gyrointerp
Given a star's rotation period, effective temperature, and uncertainties, what is the gyrochronological age posterior over a grid spanning 0 to 2.6 Gyr?
import numpy as np
from gyrointerp import gyro_age_posterior
# units: days
Prot, Prot_err = 11, 0.2
# units: kelvin
Teff, Teff_err = 4500, 100
# uniformly spaced grid between 0 and 2600 megayears
age_grid = np.linspace(0, 2600, 500)
# calculate the age posterior - takes ~30 seconds
age_posterior = gyro_age_posterior(
Prot, Teff, Prot_err=Prot_err, Teff_err=Teff_err, age_grid=age_grid
)
# calculate dictionary of summary statistics
from gyrointerp import get_summary_statistics
result = get_summary_statistics(age_grid, age_posterior)
print(f"Age = {result['median']} +{result['+1sigma']} -{result['-1sigma']} Myr.")
If you were interested in a slower-rotating star that might be closer to 4 Gyr
old, which is the oldest age out to which gyro-interp
is calibrated, you
could modify the following lines:
age_grid = np.linspace(0, 5000, 500)
age_posterior = gyro_age_posterior(
Prot, Teff, Prot_err=Prot_err, Teff_err=Teff_err, age_grid=age_grid,
verbose=False, bounds_error='4gyrextrap'
)
bounds_error='4gyrextrap'
has no physical content beyond 4 Gyr.
The documentation contains more extensive examples, as well as discussion of important caveats.
If you use the code in your work, please reference
@ARTICLE{2023ApJ...947L...3B,
author = {{Bouma}, Luke G. and {Palumbo}, Elsa K. and {Hillenbrand}, Lynne A.},
title = "{The Empirical Limits of Gyrochronology}",
journal = {\apjl},
keywords = {Stellar ages, Stellar rotation, Field stars, Bayesian statistics, 1581, 1629, 2103, 1900, Astrophysics - Solar and Stellar Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics},
year = 2023,
month = apr,
volume = {947},
number = {1},
eid = {L3},
pages = {L3},
doi = {10.3847/2041-8213/acc589},
archivePrefix = {arXiv},
eprint = {2303.08830},
primaryClass = {astro-ph.SR},
adsurl = {https://ui.adsabs.harvard.edu/abs/2023ApJ...947L...3B},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
If your result is particularly dependent on the rotation data from any one cluster, we also encourage you to refer to the relevant study:
- α Per: Boyle & Bouma (2023)
- Pleiades: Rebull et al. (2016)
- Blanco-1: Gillen et al. (2020)
- Psc-Eri: Curtis et al. (2019a)
- NGC-3532: Fritzewski et al. (2022)
- Group-X: Messina et al. (2022)
- Praesepe: Rampalli et al. (2021)
- NGC-6811: Curtis et al. (2019b)
- NGC-6819: Meibom et al. (2015)
- Ruprecht-147 Curtis et al. (2020)
- M67: Barnes et al. (2016), Dungee et al (2022), and Gruner et al (2023).