Extracted Spectra Format

There are 4 HDUs with EXTNAME=’FLUX’, ‘IVAR’, ‘WAVELENGTH’, and ‘RESOLUTION’

HDU EXTNAME=’FLUX’

2D image with flux[ispec, wavelength] in photons per Angstrom. No fiber flat fielding or any calibrations have been applied.

Header keywords are propaged from the input image, with the following changes/additions:

NAXIS1  = Number of wavelength bins
NAXIS2  = Number of spectra
SPECMIN = First spectrum
SPECMAX = Last spectrum (inclusive)
NSPEC   = NAXIS2 = Number of spectra
WAVEMIN = First wavelength [Angstroms]
WAVEMAX = Last wavelength [Angstroms]
SPECTER = Specter version
IN_PSF  = Input spectral PSF
IN_IMG  = Input image

HDU EXTNAME=’IVAR’

Inverse variance of extracted spectra, same dimensions as FLUX. Units (photons/A)^-2.

HDU EXTNAME=’WAVELENGTH’

1D array with the wavelength grid in Angstroms. NAXIS1 same as ‘FLUX’ and ‘IVAR’ HDUs.

HDU EXTNAME=’RESOLUTION’

3D array storing the per-fiber band-diagonal elements of the spectroperfectionism “Resolution Matrix”:

NAXIS1 = Number of wavelength bins
NAXIS2 = Number of diagonal bands
NAXIS3 = Number of spectra

The format is designed such that the following python code will create a sparse matrix representation of the resolution matrix R for spectrum i:

nwave = header['NAXIS1']
nband = header['NAXIS2']
offsets = range(nband//2,-nband//2,-1)
R = scipy.sparse.dia_matrix((data[i], offsets), (nwave,nwave))

Also see ex2d_ResMatrix.pdf for how this is created from the divide-and-conquer extractions.

Cross terms between fibers are not stored.