Source code for species.data.phot_data.phot_vlm_plx
"""
Module for the photometric data and parallaxes from the
Database of Ultracool Parallaxes.
"""
from pathlib import Path
import h5py
import numpy as np
import pooch
from astropy.io import fits
from typeguard import typechecked
from species.util.data_util import update_sptype
[docs]
@typechecked
def add_vlm_plx(input_path: str, database: h5py._hl.files.File) -> None:
"""
Function for adding the Database of Ultracool Parallaxes to the
database. The FITS file with data was originally downloaded from
http://www.as.utexas.edu/~tdupuy/plx/Database_of_Ultracool_Parallaxes_files/vlm-plx-all.fits
but that website has been taken offline, probably because of the
new table at http://bit.ly/UltracoolSheet.
Parameters
----------
input_path : str
Data folder.
database : h5py._hl.files.File
The HDF5 database that has been opened.
Returns
-------
NoneType
None
"""
input_file = "vlm-plx-all.fits"
data_file = Path(input_path) / "vlm-plx-all.fits"
url = "https://home.strw.leidenuniv.nl/~stolker/species/vlm-plx-all.fits"
if not data_file.exists():
print()
pooch.retrieve(
url=url,
known_hash="d31bb3162d7de890c09ebf9f0497d51159889b5f5e7c4da1ddf01f24d0c2b36f",
fname=input_file,
path=input_path,
progressbar=True,
)
database.create_group("photometry/vlm-plx")
with fits.open(data_file) as hdu_list:
phot_data = hdu_list[1].data
parallax = phot_data["PLX"] # (mas)
parallax_error = phot_data["EPLX"] # (mas)
name = phot_data["NAME"]
name = np.core.defchararray.strip(name)
sptype = phot_data["OSPTSTR"]
sptype = np.core.defchararray.strip(sptype)
sptype_nir = phot_data["ISPTSTR"]
sptype_nir = np.core.defchararray.strip(sptype_nir)
for i, item in enumerate(sptype):
if item == "null":
sptype[i] = sptype_nir[i]
flag = phot_data["FLAG"]
flag = np.core.defchararray.strip(flag)
sptype = update_sptype(sptype)
dtype = h5py.special_dtype(vlen=str)
dset = database.create_dataset(
"photometry/vlm-plx/name", (np.size(name),), dtype=dtype
)
dset[...] = name
dset = database.create_dataset(
"photometry/vlm-plx/sptype", (np.size(sptype),), dtype=dtype
)
dset[...] = sptype
dset = database.create_dataset(
"photometry/vlm-plx/flag", (np.size(flag),), dtype=dtype
)
dset[...] = flag
database.create_dataset("photometry/vlm-plx/ra", data=phot_data["RA"]) # (deg)
database.create_dataset("photometry/vlm-plx/dec", data=phot_data["DEC"]) # (deg)
database.create_dataset("photometry/vlm-plx/parallax", data=parallax)
database.create_dataset("photometry/vlm-plx/parallax_error", data=parallax_error)
database.create_dataset("photometry/vlm-plx/Keck/NIRC.Y", data=phot_data["YMAG"])
database.create_dataset("photometry/vlm-plx/MKO/NSFCam.J", data=phot_data["JMAG"])
database.create_dataset("photometry/vlm-plx/MKO/NSFCam.H", data=phot_data["HMAG"])
database.create_dataset("photometry/vlm-plx/MKO/NSFCam.K", data=phot_data["KMAG"])
database.create_dataset("photometry/vlm-plx/MKO/NSFCam.Lp", data=phot_data["LMAG"])
database.create_dataset("photometry/vlm-plx/MKO/NSFCam.Mp", data=phot_data["MMAG"])
database.create_dataset("photometry/vlm-plx/2MASS/2MASS.J", data=phot_data["J2MAG"])
database.create_dataset("photometry/vlm-plx/2MASS/2MASS.H", data=phot_data["H2MAG"])
database.create_dataset(
"photometry/vlm-plx/2MASS/2MASS.Ks", data=phot_data["K2MAG"]
)
database.close()