Source code for spec_plots.utils.specutils_hasp.readspec

"""
.. module:: readspec
   :synopsis: Reads in a HASP spectrum from a FITS file.

.. moduleauthor:: Rob Swaters <rswaters@stsci.edu>
"""

#--------------------
# Built-In Imports
#--------------------
from __future__ import absolute_import
#--------------------
# External Imports
#--------------------
from astropy.io import fits
#--------------------
# Package Imports
#--------------------
from spec_plots.utils.specutils_hasp.haspspectrum import HASPSpectrum
from spec_plots import __version__

#--------------------

#--------------------
[docs] def readspec(input_file): """ Reads in a HASP spectrum FITS file (_cspec.fits) and returns the wavelengths, fluxes, and flux uncertainties. :param input_file: Name of input FITS file. :type input_file: str :returns: HASPSpectrum -- The spectroscopic data (wavelength, flux, flux error, etc): """ with fits.open(input_file) as hdulist: # Create an initially empty list that will contain each extension's # (association's) spectrum object. try: title = hdulist[0].header['TARGNAME'] except KeyError: title = "" plot_info = {"title": title, "orig_file": input_file} # Data are in the first extension. data_table = hdulist[1].data return HASPSpectrum( nelem=len(data_table["WAVELENGTH"][0]), wavelengths=data_table["WAVELENGTH"][0], fluxes=data_table["FLUX"][0], fluxerrs=data_table["ERROR"][0], dqs=[0 if x > 0 else 1 for x in data_table["EFF_EXPTIME"][0]], plot_info=plot_info )
#--------------------