Spectrophotometric Standards

Introduction

Instrument sensitivity as a function of wavelength is calibrated using observations of spectrophotometric standard stars. specreduce offers some convenience functions for accessing some databases of commonly used standard stars and loading the data into Spectrum1D instances.

Supported Databases

Probably the most well-curated database of spectrophotometric calibration data is the CALSPEC database at MAST (Ref.: Bohlin, Gordon, & Tremblay 2014). It also has the advantage of including data that extends well into both the UV and the IR. The load_MAST_calspec function provides a way to easily load CALSPEC data either directly from MAST (specifically, https://archive.stsci.edu/hlsps/reference-atlases/cdbs/calspec/) or from a previously downloaded local file. Here is an example of how to use it and of a CALSPEC standard that has both UV and IR coverage:

import matplotlib.pyplot as plt
from specreduce.calibration_data import load_MAST_calspec

spec = load_MAST_calspec("agk_81d266_stisnic_007.fits")

fig, ax = plt.subplots()
ax.step(spec.spectral_axis, spec.flux, where="mid")
ax.set_yscale('log')
ax.set_xlabel(f"Wavelength ({spec.spectral_axis.unit})")
ax.set_ylabel(f"Flux ({spec.flux.unit})")
ax.set_title("AGK+81 266")
fig.show()

(Source code, png, hires.png, pdf)

_images/specphot_standards-1.png

The specreduce_data package provides several datasets of spectrophotometric standard spectra. The bulk of them are inherited from IRAF’s onedstds datasets, but some more recently curated datasets from ESO, the Nearby Supernova Factory, and Gemini are included as well. The load_onedstds function is provided to load these data into Spectrum1D instances. If specreduce_data is not installed, the data will be downloaded from the GitHub repository. The available database names and their descriptions are listed here. Please refer to the specreduce-data repository for details on the specific data files that are available:

Selecting Spectrophotometric Standard Stars

Many commonly used standard stars have spectra in multiple datasets, but the quality and systematics can differ. The load_MAST_calspec and load_onedstds functions can be useful tools for exploring and comparing spectra from the various databases. An example is shown here for LTT 9491 which has spectra available from MAST, ESO, and the Nearby Supernova factory:

import matplotlib.pyplot as plt
from specreduce.calibration_data import load_MAST_calspec, load_onedstds

s1 = load_MAST_calspec("ltt9491_002.fits")
s2 = load_onedstds("snfactory", "LTT9491.dat")
s3 = load_onedstds("eso", "ctiostan/ltt9491.dat")

fig, ax = plt.subplots()
ax.step(s1.spectral_axis, s1.flux, label="MAST", where="mid")
ax.step(s2.spectral_axis, s2.flux, label="SNFactory", where="mid")
ax.step(s3.spectral_axis, s3.flux, label="ESO", where="mid")
ax.set_yscale('log')
ax.set_xlabel(f"Wavelength ({s1.spectral_axis.unit})")
ax.set_ylabel(f"Flux ({s1.flux.unit})")
ax.set_title("LTT 9491")
ax.legend()
fig.show()

(Source code, png, hires.png, pdf)

_images/specphot_standards-2.png

The MAST data have the best UV coverage, but that’s not useful from the ground and they only extend to 0.9 microns in the red in this case. The other data extend to 1.0 microns, but both spectra show systematics due to telluric absorption. The SNFactory data extend well past the atmospheric cutoff with no correction applied for atmospheric transmission. The ESO data, on the other hand, are not corrected for the telluric features in the near-IR while the SNFactory data are. Regions affected by such telluric systematics should be masked out before these spectra are used for calibration purposes.