Source code for species.data.isochrone_data.iso_baraffe2015

from pathlib import Path

import h5py
import numpy as np
import pooch

from typeguard import typechecked

from species.core import constants


[docs] @typechecked def add_baraffe2015(database: h5py._hl.files.File, input_path: str) -> None: """ Function for adding the Baraffe et al. (2015) isochrone data to the database. Parameters ---------- database : h5py._hl.files.File Database. input_path : str Folder where the data is located. Returns ------- NoneType None """ url = "http://perso.ens-lyon.fr/isabelle.baraffe/BHAC15dir/BHAC15_tracks+structure" iso_tag = "Baraffe et al. (2015)" db_tag = "baraffe2015" input_file = url.rsplit("/", maxsplit=1)[-1] data_file = Path(input_path) / input_file if not data_file.exists(): print() pooch.retrieve( url=url, known_hash="b95474c5d4284373a2fed3f06d969a44bcd925ac0e5b226cc0235acb7e068d2a", fname=input_file, path=input_path, progressbar=True, ) # M/Ms, log t(yr), Teff, log(L/Ls), log(g), R/Rs, # Log(Li/Li0), log(Tc), log(ROc), Mrad, Rrad, k2conv, k2rad mass, log_age, teff, log_lum, log_g, radius, _, _, _, _, _, _, _ = np.loadtxt( data_file, unpack=True, skiprows=45, comments="!" ) age = 1e-6 * 10.0**log_age # (Myr) mass *= constants.M_SUN / constants.M_JUP # (Msun) -> (Mjup) radius *= constants.R_SUN / constants.R_JUP # (Msun) -> (Mjup) iso_data = np.column_stack([age, mass, teff, log_lum, log_g, radius]) print(f"\nAdding isochrones: {iso_tag}...", end="", flush=True) dset = database.create_dataset( f"isochrones/{db_tag}/age", data=iso_data[:, 0] ) # (Myr) database.create_dataset(f"isochrones/{db_tag}/mass", data=iso_data[:, 1]) # (Mjup) database.create_dataset(f"isochrones/{db_tag}/teff", data=iso_data[:, 2]) # (K) database.create_dataset( f"isochrones/{db_tag}/log_lum", data=iso_data[:, 3] ) # log(L/Lsun) database.create_dataset(f"isochrones/{db_tag}/log_g", data=iso_data[:, 4]) # log(g) database.create_dataset( f"isochrones/{db_tag}/radius", data=iso_data[:, 5] ) # (Rjup) dset.attrs["model"] = db_tag print(" [DONE]") print(f"Database tag: {db_tag}")