The fors_detect_spectra recipe

fors_detect_spectra

Synopsis

Detect MOS/MXU spectra on CCD

Description

This recipe is used to detect and locate MOS/MXU slit spectra on the CCD, applying a pattern-matching algorithm. The input spectral exposure must contain spectra with the dispersion direction approximately horizontal, with blue on the left and red on the right. Use recipe fors_wave_calib_lss for LSS data, or for MOS/MXU data where all slits have the same offset.

The rows of the input spectral exposure are processed separately, one by one. First, the background continuum is removed. Second, a list of positions of reference lines candidates is created. Only peaks above a given threshold (specified by the parameter –peakdetection) are selected.

Third, the pattern-matching task selects from the found peaks the ones corresponding to the reference lines, listed in the input line catalog, associating them to the appropriate wavelengths. The ensuing polynomial fit is used to locate the central wavelength of the applied grism along each image row. The contributions from all rows form an image of the location of all spectra, that can be used as a starting point for the proper modeling of the optical and spectral distortions. For more details on this reduction strategy please refer to the FORS Pipeline User’s Manual.

Note that specifying an input GRISM_TABLE will set some of the recipe configuration parameters to default values valid for a particular grism.

Again, see the pipeline manual for more details.

In the table below the MXU acronym can be alternatively read as MOS.

Input files

DO category:               Type:       Explanation:         Required:
LAMP_UNBIAS_MXU            Calib       Bias subtracted arc     Y
MASTER_LINECAT             Calib       Line catalog            Y
GRISM_TABLE                Calib       Grism table             .

Output files

DO category:               Data type:  Explanation:
SLIT_MAP_MXU               FITS image  Map of central wavelength on CCD
SLIT_LOCATION_DETECT_MXU   FITS table  Slits positions on CCD
SPECTRA_DETECTION_MXU      FITS image  Check of preliminary detection

Constructor

cpl.Recipe("fors_detect_spectra")

Create an object for the recipe fors_detect_spectra.

import cpl
fors_detect_spectra = cpl.Recipe("fors_detect_spectra")

Parameters

fors_detect_spectra.param.dispersion

Expected spectral dispersion (Angstrom/pixel) (float; default: 0.0) [default=0.0].

fors_detect_spectra.param.peakdetection

Initial peak detection threshold (ADU) (float; default: 0.0) [default=0.0].

fors_detect_spectra.param.wdegree

Degree of wavelength calibration polynomial (int; default: 0) [default=0].

fors_detect_spectra.param.wradius

Search radius if iterating pattern-matching with first-guess method (int; default: 4) [default=4].

fors_detect_spectra.param.wreject

Rejection threshold in dispersion relation fit (pixel) (float; default: 0.7) [default=0.7].

fors_detect_spectra.param.wcolumn

Name of line catalog table column with wavelengths (str; default: ‘WLEN’) [default=”WLEN”].

fors_detect_spectra.param.startwavelength

Start wavelength in spectral extraction (float; default: 0.0) [default=0.0].

fors_detect_spectra.param.endwavelength

End wavelength in spectral extraction (float; default: 0.0) [default=0.0].

fors_detect_spectra.param.slit_ident

Attempt slit identification for MOS or MXU (bool; default: True) [default=True].

The following code snippet shows the default settings for the available parameters.

import cpl
fors_detect_spectra = cpl.Recipe("fors_detect_spectra")

fors_detect_spectra.param.dispersion = 0.0
fors_detect_spectra.param.peakdetection = 0.0
fors_detect_spectra.param.wdegree = 0
fors_detect_spectra.param.wradius = 4
fors_detect_spectra.param.wreject = 0.7
fors_detect_spectra.param.wcolumn = "WLEN"
fors_detect_spectra.param.startwavelength = 0.0
fors_detect_spectra.param.endwavelength = 0.0
fors_detect_spectra.param.slit_ident = True

You may also set or overwrite some or all parameters by the recipe parameter param, as shown in the following example:

import cpl
fors_detect_spectra = cpl.Recipe("fors_detect_spectra")
[...]
res = fors_detect_spectra( ..., param = {"dispersion":0.0, "peakdetection":0.0})

See also

cpl.Recipe for more information about the recipe object.

Bug reports

Please report any problems to Carlo Izzo. Alternatively, you may send a report to the ESO User Support Department.