- The spectral axis of spectral data are calibrated to proper physical units -
erg/cm2/s/A. - The wavelength axis has monotonically increasing steps from
TDMINtoTDMAX. - Each FITS file contains weighted science spectrum, flux error spectrum, unweighted science spectrum, sky-background spectrum.
- The spectrum binary table format is made of:
- one primary header (no data in the primary HDU, that is
NAXIS=0) - one single extension with:
- one header unit and
- one BINTABLE with
NAXIS=2.
- one primary header (no data in the primary HDU, that is
Primary Header
- Here are the mandatory primary header keywords included
SIMPLE = T / Standard FITS format (NOST-100-2.0) BITPIX = %d / Number of bits per data pixel NAXIS = 0 / Number of data axes EXTEND = T / Extensions may be present ORIGIN = 'ESO' / European Southern Observatory DATE = %s / Date this file was written TELESCOP= %s / ESO Telescope designation INSTRUME= %s / Instrument name DISPELEM= %s / Dispersive element name SPECSYS = %s / Reference frame for spectral coordinates OBJECT = %s / Target designation EXT_OBJ = %c / TRUE if extended RA = %f / [deg] Spectroscopic target position (J2000.0) DEC = %f / [deg] Spectroscopic target position (J2000.0) EQUINOX = %.0f / Standard FK5 (years) RADECSYS= %s / Coordinate reference frame EXPTIME = %f / Total integration time per pixel (s) MJD-OBS = %.8f / [d] Start of observations (days) MJD-END = %.8f / [d] End of observations (days) PROG_ID = %20s / ESO programme identification OBID1 = %d / Observation block ID M_EPOCH = %d / TRUE if resulting from multiple epochs PROV1 = %s / Originating science file OBSTECH = %s / Technique of observation PRODCATG= 'SCIENCE.SPECTRUM' / Data product category FLUXCAL= %s / Type of flux calibration CONTNORM= %c / TRUE if normalised to the continuum WAVELMIN= %s / [nm] Minimum wavelength WAVELMAX= %s / [nm] Maximum wavelength SPEC_BIN= %f / Wavelength bin size TOT_FLUX= %c / TRUE if photometric conditions and all src flux is captured FLUXERR = %f / Uncertainty in flux scale (%) REFERENC= %s / Bibliographic reference SNR = %f / Average signal to noise ratio per pixel SPEC_RES= %f / [nm] Reference spectral resolution (FWHM) CHECKSUM= %s / HDU checksum DATASUM = %s / Data unit checksum END
Note: the format strings %c, %d, %f, and %s correspond to the data types boolean, integer number, floating point number, and character string, respectively.
Extension BINTABLE
- The data arrays are stored as vectors in single cells. As a consequence, there shall be only one row in the BINTABLE, that is
NAXIS2=1.
Extension Header
To ensure compliance with the VO standard, the keywords listed here are present in the extension header.
VOCLASS - The data model name and version, fixed to ‘SPECTRUM V1.0’.
VOPUB - The name of the publisher, fixed ‘ESO/SAF’.
TITLE - The value of the OBJECT keyword & short description of data included.
APERTURE - Aperture angular size, in degrees [deg]. It shall be set to the width of the slit or the diameter of the fiber.
TELAPSE - Total elapsed time in seconds [s], defined as MJD-END-MJD- OBS.
TMID - Exposure midpoint (MJD). It shall be set to (MJD-OBS+MJD- END)/2.0.
SPEC_VAL - Characteristic spectral coordinate value in nanometers [nm]. Should WCS information be available, it can be calculated as:
CRVAL1+(0.5-CRPIX1+NAXIS1*0.5)*CDELT1.Otherwise, it is set to:
(WAVELMAX+WAVELMIN)/2.0.SPEC_BW - Width of the spectrum in nanometers [nm]. Should WCS information be available, it can be calculated as:
NAXIS1*CDELT1.Otherwise, it is set to:
WAVELMAX-WAVELMIN.
Each field of the BINTABLE is further described in the extension header as specified in Table 11 of the ESO Phase III SDP Document. Mandatory fields included are
WAVE,FLUX, andERR, in that particular order.Here are the mandatory extension header keywords included:
XTENSION =BINTABLE / FITS Extension first keyword BITPIX = 8 / Number of bits per data pixel NAXIS = 2 / Number of data axes NAXIS1 = %d / Length of data axis 1 NAXIS2 = %d / Length of data axis 2 VOCLASS = 'SPECTRUM V1.0' / VO Data Model VOPUB = 'ESO/SAF' / VO Publishing Authority TITLE = %s / Dataset title OBJECT = %s / Target designation RA = %f / [deg] Spectroscopic target position (J2000.0) DEC = %f / [deg] Spectroscopic target position (J2000.0) APERTURE= %f / [deg] Aperture diameter TELAPSE = %f / [s] Total elapsed time TMID = %f / [d] MJD mid exposure SPEC_VAL= %f / [nm] Mean Wavelength SPEC_BW = %f / [nm] Bandpass Width Wmax – Wmin TFIELDS = %d / Number of fields in each row NELEM = %d / Length of the data arrays TTYPE1 = %s / Label for field 1 TUTYP1 = 'Spectrum.Data.SpectralAxis.Value' TFORM1 = %s / Data format of field1 TUNIT1 = %s / Physical unit of field1 TUCD1 = %s / UCD of field 1 TDMIN1 = %f / Start in spectral coord. TDMAX1 = %f / Stop in spectral coord. TTYPE2 = 'FLUX' / Label for field 2 TUTYP2 = 'Spectrum.Data.FluxAxis.Value' TFORM2 = %s / Data format of field 2 TUNIT2 = %s / Physical unit of field 2 TUCD2 = %s / UCD of field 2 TTYPE3 = 'ERR' / Label for field 3 TUTYP3 = 'Spectrum.Data.FluxAxis.Accuracy.StatError' TFORM3 = %s / Data format of field 3 TUNIT3 = %s / Physical unit of field 3 TUCD3 = %s / UCD of field 3 EXTNAME = %s / FITS Extension name INHERIT = T / Primary header keywords are inherited CHECKSUM= %s / HDU checksum DATASUM = %s / Data unit checksum END