Source code for astroNN.datasets.apogee_rc
# ---------------------------------------------------------#
# astroNN.datasets.apogee_rc: APOGEE RC
# ---------------------------------------------------------#
from astropy import units as u
from astropy.io import fits
from astroNN.apogee.downloader import apogee_vac_rc
from astroNN.gaia import extinction_correction
from astroNN.gaia.gaia_shared import mag_to_absmag, mag_to_fakemag
# noinspection PyUnresolvedReferences
[docs]def load_apogee_rc(dr=None, metric='distance', extinction=True):
"""
Load apogee red clumps (absolute magnitude measurement)
:param dr: Apogee DR
:type dr: int
:param metric: which metric you want to get back
- "absmag" for k-band absolute magnitude
- "fakemag" for k-band fake magnitude
- "distance" for distance in parsec
:type metric: string
:param extinction: Whether to take extinction into account, only affect when metric is NOT 'distance'
:type extinction: bool
:return: numpy array of ra, dec, metrics_array
:rtype: ndarrays
:History:
| 2018-Jan-21 - Written - Henry Leung (University of Toronto)
| 2018-May-12 - Updated - Henry Leung (University of Toronto)
"""
fullfilename = apogee_vac_rc(dr=dr)
with fits.open(fullfilename) as F:
hdulist = F[1].data
ra = hdulist['RA']
dec = hdulist['DEC']
rc_dist = hdulist['RC_DIST']
rc_parallax = (1 / rc_dist) * u.mas # Convert kpc to parallax in mas
k_mag = hdulist['K']
if extinction:
k_mag = extinction_correction(k_mag, hdulist['AK_TARG'])
if metric == 'distance':
output = rc_dist * 1000
elif metric == 'absmag':
absmag = mag_to_absmag(k_mag, rc_parallax)
output = absmag
elif metric == 'fakemag':
# fakemag requires parallax (mas)
fakemag = mag_to_fakemag(k_mag, rc_parallax)
output = fakemag
else:
raise ValueError('Unknown metric')
return ra, dec, output