Mini Tools for APOGEE data - astroNN.apogee¶
Note
astroNN only contains a limited amount of necessary tools. For a more comprehensive python tool to deal with APOGEE data, please refer to Jo Bovy’s APOGEE tools
The APO Galactic Evolution Experiment 1 (APOGEE-1) employed high-resolution, high signal-to-noise infrared spectroscopy to penetrate the dust that obscures significant fractions of the disk and bulge of our Galaxy. APOGEE surveyed over 100,000 red giant stars across the full range of the Galactic bulge, bar, disk, and halo. APOGEE-1 generated precise radial velocities and detailed chemical abundances, providing unprecedented insights into the dynamical structure and chemical history of the Galaxy. In conjunction with the planet-finding surveys, Kepler and CoRoT, APOGEE unravels problems in fundamental astrophysics.
SDSS APOGEE: http://www.sdss.org/surveys/apogee/
Continuum Normalization of APOGEE Spectra¶
You can access the default astroNN continuum mask fro APOGEE spectra by
import os
import astroNN
import numpy as np
dr = 14
dir = os.path.join(os.path.dirname(astroNN.__path__[0]), 'astroNN', 'data', f'dr{dr}_contmask.npy')
cont_mask = np.load(dir)
When you do continuum normalization using astroNN, you can just use con_mask=None to use default mask provided by Jo Bovy’s APOGEE Tools. astroNN will use a SINGLE continuum pixel mask to normalize all spectra you provided. Moreover, astroNN will normalize the spectra by chips instead of normalize them all together.
-
astroNN.apogee.
apogee_continuum
(spectra, spectra_err, cont_mask=None, deg=2, dr=None, bitmask=None, target_bit=None, mask_value=1.0)¶ It is designed only for apogee spectra by fitting Chebyshev polynomials to the flux values in the continuum mask by chips. The resulting continuum will have the same shape as fluxes.
Parameters: - spectra (ndarray) – spectra
- spectra_err (ndarray) – spectra uncertainty, same shape as spectra
- cont_mask (ndarray[bool]) – continuum mask
- deg (int) – The degree of Chebyshev polynomial to use in each region, default is 2 which works the best so far
- dr (int) – apogee dr
- bitmask (ndarray) – bitmask array of the spectra, same shape as spectra
- target_bit (Union(int, list[int], ndarray[int])) – a list of bit to be masked
- mask_value (Union(int, float)) – if a pixel is determined to be a bad pixel, this value will be used to replace that pixel flux
Returns: normalized spectra, normalized spectra uncertainty
Return type: ndarray, ndarray
History: 2018-Mar-21 - Written - Henry Leung (University of Toronto)
from astroNN.apogee import apogee_continuum
# spectra_errs refers to the 1-sigma error array provided by APOGEE
# spectra can be multiple spectra at a time
norm_spec, norm_spec_err = apogee_continuum(apogee_spectra, spectra_errs, cont_mask=None, deg=2, dr=14)
# If you deal with bitmask too and want to set some target bits to zero, you can add additional arguement in apogee_continuum()
# You target_bit=[a list of number] or target_bit=None to use default target_bit
apogee_continuum(apogee_spectra, spectra_errs, cont_mask=None, deg=2, dr=14, bitmask=apogee_bitmask, target_bit=None)
norm_spec refers to the normalized spectra while norm_spec_err refers to the normalized spectra error
Note
If you are planning to compile APOGEE dataset using astroNN, you can ignore this section as astroNN H5Compiler will load data from fits files directly and will take care everything.

You can use continuum()
to normalize any spectra while apogee_continuum()
is specifically designed for APOGEE spectra.
from astroNN.apogee import continuum
spec, spec_err = continuum(spectra, spectra_errs, cont_mask, deg=2)
APOGEE Data Downloader¶
astroNN APOGEE data downloader always act as functions that will return you the path of downloaded file(s),
and download it if it does not exist locally. If the file cannot be found on server, astroNN will generally return False
as the path.
General Way to Open Fits File¶
astropy.io.fits documentation: http://docs.astropy.org/en/stable/io/fits/
from astropy.io import fits
data = fits.open(local_path_to_file)
allstar file¶
-
astroNN.apogee.
allstar
(dr=None, flag=None)¶ Download the allStar file (catalog of ASPCAP stellar parameters and abundances from combined spectra)
Parameters: Returns: full file path and download in background if not found locally, False if cannot be found on server
Return type: History: 2017-Oct-09 - Written - Henry Leung (University of Toronto)
from astroNN.apogee import allstar
local_path_to_file = allstar(dr=14)
allvisit file¶
-
astroNN.apogee.
allvisit
(dr=None, flag=None)¶ Download the allVisit file (catalog of properties from individual visit spectra)
Parameters: Returns: full file path and download in background if not found locally, False if cannot be found on server
Return type: History: 2017-Oct-11 - Written - Henry Leung (University of Toronto)
from astroNN.apogee import allvisit
local_path_to_file = allvisit(dr=14)
Combined Spectra (aspcapStar)¶
-
astroNN.apogee.
combined_spectra
(dr=None, location=None, apogee=None, verbose=1, flag=None)¶ Download the required combined spectra file
Parameters: Returns: full file path and download in background if not found locally, False if cannot be found on server
Return type: History: 2017-Oct-15 - Written - Henry Leung (University of Toronto)
from astroNN.apogee import combined_spectra
local_path_to_file = combined_spectra(dr=14, location=a_location_id, apogee=a_apogee_id)
Visit Spectra (apStar)¶
Data Model: https://data.sdss.org/datamodel/files/APOGEE_REDUX/APRED_VERS/APSTAR_VERS/TELESCOPE/LOCATION_ID/apStar.html
-
astroNN.apogee.
visit_spectra
(dr=None, location=None, apogee=None, verbose=1, flag=None, commission=False)¶ Download the required individual spectra file
Parameters: Returns: full file path and download in background if not found locally, False if cannot be found on server
Return type: History: 2017-Nov-11 - Written - Henry Leung (University of Toronto)
from astroNN.apogee import visit_spectra
local_path_to_file = visit_spectra(dr=14, location=a_location_id, apogee=a_apogee_id)
Red Clumps of SDSS Value Added Catalogs¶
Introduction: http://www.sdss.org/dr14/data_access/value-added-catalogs/?vac_id=apogee-red-clump-rc-catalog
Data Model (DR14): https://data.sdss.org/datamodel/files/APOGEE_RC/cat/apogee-rc-DR14.html
-
astroNN.datasets.apogee_rc.
load_apogee_rc
(dr=None, metric='distance', extinction=True)¶ Load apogee red clumps (absolute magnitude measurement)
Parameters: Returns: numpy array of ra, dec, metrics_array
Return type: ndarrays
History: 2018-Jan-21 - Written - Henry Leung (University of Toronto)2018-May-12 - Updated - Henry Leung (University of Toronto)
from astroNN.apogee import apogee_vac_rc
local_path_to_file = apogee_vac_rc(dr=14)
Or you can use load_apogee_rc() to load the data by
from astroNN.datasets import load_apogee_rc
# metric can be 'distance' for distance in parsec, 'absmag' for k-band absolute magnitude
# 'fakemag' for astroNN's k-band fakemag scale
RA, DEC, metrics_array = load_apogee_rc(dr=14, metric='distance', extinction=True) # extinction only effective if not metric='distance'
APOKASC in the Kepler Fields¶
from astroNN.datasets.apokasc import apokasc_load
ra, dec, logg = apokasc_load()
# OR you want the gold and basic standard separately
gold_ra, gold_dec, gold_logg, basic_ra, basic_dec, basic_logg = apokasc_load(combine=False)
APOGEE DR14-Based Distance Estimations¶
Introduction: http://www.sdss.org/dr14/data_access/value-added-catalogs/?vac_id=apogee-dr14-based-distance-estimations
Data Model (DR14): https://data.sdss.org/datamodel/files/APOGEE_DISTANCES/apogee_distances.html
-
astroNN.apogee.
apogee_distances
(dr=None, flag=None)¶ Download the Apogee Distances catalogue
Parameters: Returns: full file path
Return type: History: 2018-Jan-24 - Written - Henry Leung (University of Toronto)
from astroNN.apogee.downloader import apogee_distances
local_path_to_file = apogee_distances(dr=14)
-
astroNN.datasets.
load_apogee_distances
(dr=None, metric='distance', cuts=True, extinction=True, keepdims=False)¶ Load apogee distances (absolute magnitude from stellar model)
Parameters: - dr (int) – Apogee DR
- metric (string) –
which metric you want to get back
- ”absmag” for absolute magnitude
- ”fakemag” for fake magnitude
- ”distance” for distance in parsec
- cuts (Union[boolean, float]) – Whether to cut bad data (negative parallax and percentage error more than 20%), or a float to set the threshold
- extinction (bool) – Whether to take extinction into account, only affect when metric is NOT ‘distance’
- keepdims (boolean) – Whether to preserve indices the same as APOGEE allstar DR14, no effect when cuts=False, set to -9999 for bad indices when cuts=True keepdims=True
Returns: numpy array of ra, dec, metrics_array, metrics_err_array
Return type: ndarrays
History: 2018-Jan-25 - Written - Henry Leung (University of Toronto)
Or you can use load_apogee_distances() to load the data by
from astroNN.datasets import load_apogee_distances
# metric can be 'distance' for distance in parsec, 'absmag' for k-band absolute magnitude
# 'fakemag' for astroNN's k-band fakemag scale
# cuts=True to cut out those unknown values (-9999.) and measurement error > 20%
RA, DEC, metrics_array, metrics_err_array = load_apogee_distances(dr=14, metric='distance', cuts=True, keepdims=False)
Cannon’s allstar¶
Data Model (DR14): https://data.sdss.org/datamodel/files/APOGEE_REDUX/APRED_VERS/APSTAR_VERS/ASPCAP_VERS/RESULTS_VERS/CANNON_VERS/allStarCannon.html
-
astroNN.apogee.
allstarcannon
(dr=None, flag=None)¶ Download the allStarCannon file (catalog of Cannon stellar parameters and abundances from combined spectra)
Parameters: Returns: full file path and download in background if not found locally, False if cannot be found on server
Return type: History: 2017-Oct-24 - Written - Henry Leung (University of Toronto)
from astroNN.apogee import allstarcannon
local_path_to_file = allstarcannon(dr=14)