Source code for species.data.phot_data.phot_vlm_plx

"""
Module for the photometric data and parallaxes from the
Database of Ultracool Parallaxes.
"""

import os
import urllib.request

import h5py
import numpy as np
import pooch

from astropy.io import fits

from species.util.data_util import update_sptype


[docs] def add_vlm_plx(input_path, database): """ 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 HDF5 database. Returns ------- NoneType None """ data_file = os.path.join(input_path, "vlm-plx-all.fits") url = "https://home.strw.leidenuniv.nl/~stolker/species/vlm-plx-all.fits" if not os.path.isfile(data_file): pooch.retrieve( url=url, known_hash="d31bb3162d7de890c09ebf9f0497d51159889b5f5e7c4da1ddf01f24d0c2b36f", fname="vlm-plx-all.fits", 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()