Source code for species.data.phot_data.phot_jwst_ydwarfs

"""
Module for the photometric data and parallaxes from the JWST late T and
early Y dwarf observations recorded in Beiler et al. 2024 (ApJ).
"""

from pathlib import Path

import h5py
import numpy as np
import pooch

from astropy.io import fits
from beartype import beartype

from species.util.data_util import update_sptype


[docs] @beartype def add_jwst_ydwarfs(input_path: str, database: h5py._hl.files.File) -> None: """ Function for adding the synthesized photometry from 'Precise Bolometric Luminosities and Effective Temperatures of 23 Late-T and Y Dwarfs Obtained with JWST' by Beiler et al. (2024, ApJ). Parameters ---------- input_path : str Data folder. database : h5py._hl.files.File The HDF5 database that has been opened. Returns ------- NoneType None """ input_file = "Beiler2024_synth_phot.fits" data_file = Path(input_path) / "Beiler2024_synth_phot.fits" url = "https://home.strw.leidenuniv.nl/~stolker/species/Beiler2024_synth_phot.fits" if not data_file.exists(): print() pooch.retrieve( url=url, known_hash=None, fname=input_file, path=input_path, progressbar=True, ) database.create_group("photometry/beiler2024") with fits.open(data_file, mode="update") as hdu_list: phot_data = hdu_list[1].data parallax = np.array(phot_data["PLX"], dtype=float) # (mas) parallax_error = np.array(phot_data["EPLX"], dtype=float) # (mas) name = np.array(phot_data["Name"]).astype("str") sptype_nir = np.array(phot_data["SpT"]).astype("str") sptype_nir = np.core.defchararray.strip(sptype_nir) sptype = update_sptype(sptype_nir) dtype = h5py.special_dtype(vlen=str) flag = np.repeat("null", np.size(name)) dset = database.create_dataset( "photometry/beiler2024/flag", (np.size(flag),), dtype=dtype ) dset[...] = flag dset = database.create_dataset( "photometry/beiler2024/name", (np.size(name),), dtype=dtype ) dset[...] = name dset = database.create_dataset( "photometry/beiler2024/sptype", (np.size(sptype),), dtype=dtype ) dset[...] = sptype database.create_dataset("photometry/beiler2024/parallax", data=parallax) database.create_dataset("photometry/beiler2024/parallax_error", data=parallax_error) nirc_filts = [ "F090W", "F115W", "F140M", "F150W", "F150W2", "F162M", "F164N", "F182M", "F187N", "F200W", "F210M", "F212N", "F250M", "F277W", "F300M", "F322W2", "F323N", "F335M", "F356W", "F360M", "F405N", "F410M", "F430M", "F444W", "F460M", "F466N", "F470N", "F480M", ] for filt in nirc_filts: database.create_dataset( f"photometry/beiler2024/JWST/NIRCAM.{filt}", data=np.array(phot_data[f"{filt}"], dtype=float), ) miri_filts = ["F560W", "F770W", "F1065C", "F1130W", "F1140C"] for filt in miri_filts: database.create_dataset( f"photometry/beiler2024/JWST/MIRI.{filt}", data=np.array(phot_data[f"{filt}"], dtype=float), ) database.close()