Converting Spectra ==================================== Spectral data can be stored in a variety of formats, including FITS files, ASCII files, and other formats. We recommend converting all spectra to FITS files that are readable by `specutils `_ before ingestion into the database. This will ensure that the data (and metadata) are stored in a consistent format and that the data can be easily accessed and visualized. How to convert spectra ------------------------- To convert a spectrum into a specutils-readable FITS file, get the data into Python arrays. Add units to those arrays to create Quantity arrays. Use the Quantity arrays to create a `specutils.Spectrum` object. (`Spectrum1D` in `specutils` earlier than v2.0.) Create or modify the header of the FITS file to include the necessary metadata in the `Spectrum.meta` attribute. Then save the spectrum to a FITS file using the `specutils.Spectrum.write`` method. Here's a basic outline of the steps to convert a spectrum to the `specutils` `tabular-fits`` format: .. code-block:: python import astropy.units as u from astropy.io.fits import getheader from specutils import Spectrum from astrodb_utils.spectra import check_spectrum_plottable # Read in the data wave, flux, err = read_data() # Read in the header header = getheader() # Create the Spectrum object converted_spectrum = Spectrum( spectral_axis=wave * u.um, flux=flux * u.Jy, uncertainty=err * u.Jy ) converted_spectrum.meta["header"] = header # Write the Spectrum object to a FITS file converted_spectrum.write(, format="tabular-fits") # Check that the spectrum is readable and plottable # If you have matplotlib installed, use show_plot = True to display the spectrum check_spectrum_plottable(, show_plot=True) Creating or modifying a FITS header ------------------------------------ Oftentimes, the FITS header of a spectrum file will need to be modified or created from scratch. `astrodb_utils.fits` includes several functions to help with this task. - :doc:`fits_header_scratch` - :doc:`fits_header_modify` API documentation ----------------- :py:mod:`astrodb_utils.spectra` :py:mod:`astrodb_utils.fits`