The fors_calib recipe

fors_calib

Synopsis

Determination of the extraction mask

Description

This recipe is used to identify reference lines on LSS, MOS and MXU arc lamp exposures, and trace the spectral edges on the corresponding flat field exposures. This information is used to determine the spectral extraction mask to be applied in the scientific data reduction, performed with the recipe fors_science.

This recipe accepts both FORS1 and FORS2 frames. The input arc lamp and flat field exposures are assumed to be obtained quasi-simultaneously, so that they would be described by exactly the same instrument distortions.

A line catalog must be specified, containing the wavelengths of the reference arc lamp lines used for the wavelength calibration. A grism table (typically depending on the instrument mode, and in particular on the grism used) may also be specified: this table contains a default recipe parameter setting to control the way spectra are extracted for a specific instrument mode, as it is used for automatic run of the pipeline on Paranal and in Garching. If this table is specified, it will modify the default recipe parameter setting, with the exception of those parameters which have been explicitly modified on the command line.

If a grism table is not specified, the input recipe parameters values will always be read from the command line, or from an esorex configuration file if present, or from their generic default values (that are rarely meaningful). Finally a master bias frame must be input to this recipe.

In the table below the MXU acronym can be read alternatively as MOS and LSS, with the exception of CURV_COEFF_LSS, CURV_TRACES_LSS, SPATIAL_MAP_LSS, SPECTRA_DETECTION_LSS, and and SLIT_MAP_LSS, which are never created. The products SPECTRA_DETECTION_MXU, SLIT_MAP_MXU, and DISP_RESIDUALS_MXU, are just created if the –check parameter is set to true. The product GLOBAL_DISTORTION_TABLE is just created if more than 12 separate spectra are found in the CCD.

Input files

DO category:             Type:       Explanation:         Required:
SCREEN_FLAT_MXU          Raw         Flat field exposures    Y
LAMP_MXU                 Raw         Arc lamp exposure       Y
MASTER_BIAS              Calib       Master Bias frame       Y
MASTER_LINECAT           Calib       Line catalog            Y
GRISM_TABLE              Calib       Grism table             .

Output files

DO category:             Data type:  Explanation:
MASTER_SCREEN_FLAT_MXU   FITS image  Combined (sum) flat field
MASTER_NORM_FLAT_MXU     FITS image  Normalised flat field
MAPPED_SCREEN_FLAT_MXU   FITS image  Wavelength calibrated flat field
MAPPED_NORM_FLAT_MXU     FITS image  Wavelength calibrated normalised flat
REDUCED_LAMP_MXU         FITS image  Wavelength calibrated arc spectrum
DISP_COEFF_MXU           FITS table  Inverse dispersion coefficients
DISP_RESIDUALS_MXU       FITS image  Residuals in wavelength calibration
DISP_RESIDUALS_TABLE_MXU FITS table  Residuals in wavelength calibration
DELTA_IMAGE_MXU          FITS image  Offset vs linear wavelength calib
WAVELENGTH_MAP_MXU       FITS image  Wavelength for each pixel on CCD
SPECTRA_DETECTION_MXU    FITS image  Check for preliminary detection
SLIT_MAP_MXU             FITS image  Map of central wavelength on CCD
CURV_TRACES_MXU          FITS table  Spectral curvature traces
CURV_COEFF_MXU           FITS table  Spectral curvature coefficients
SPATIAL_MAP_MXU          FITS image  Spatial position along slit on CCD
SPECTRAL_RESOLUTION_MXU  FITS table  Resolution at reference arc lines
DETECTED_LINES_MXU       FITS table  All the lines detected in the arc
ARC_RECTIFIED_MXU        FITS image  The spatial rectified arc
SLIT_LOCATION_MXU        FITS table  Slits on product frames and CCD
GLOBAL_DISTORTION_TABLE  FITS table  Global distortions table
FLAT_SED_LSS             FITS image  Average SED for each of the slitsi

Constructor

cpl.Recipe("fors_calib")

Create an object for the recipe fors_calib.

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

Parameters

fors_calib.param.dispersion

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

fors_calib.param.peakdetection

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

fors_calib.param.wdegree

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

fors_calib.param.wradius

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

fors_calib.param.wreject

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

fors_calib.param.wmode

Interpolation mode of wavelength solution applicable to LSS-like data (0 = no interpolation, 1 = fill gaps, 2 = global model) (int; default: 2) [default=2].

fors_calib.param.wmosmode

Interpolation mode of wavelength solution (0 = no interpolation, 1 = local (slit) solution, 2 = global model) (int; default: 0) [default=0].

fors_calib.param.ignore_lines

Catalog lines nearest to wavelengths in this list will be ignored for wavelength calibration (str; default: ‘’) [default=””].

fors_calib.param.used_linesets

Linesets to use. Valid are ‘standard’ and’extended’ (see column LINE_SET in the line catalogue) (str; default: ‘standard’) [default=”standard”].

fors_calib.param.cdegree

Degree of spectral curvature polynomial (int; default: -1) [default=-1].

fors_calib.param.cmode

Interpolation mode of curvature solution applicable to MOS-like data (0 = no interpolation, 1 = fill gaps, 2 = global model) (int; default: 1) [default=1].

fors_calib.param.startwavelength

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

fors_calib.param.endwavelength

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

fors_calib.param.slit_ident

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

fors_calib.param.stack_method

Frames combination method (str; default: ‘sum’) [default=”sum”].

fors_calib.param.ksigma

Low and high threshold in ksigma method (str; default: ‘-3.0,3.0’) [default=”-3.0,3.0”].

fors_calib.param.kiter

Max number of iterations in ksigma method (int; default: 999) [default=999].

fors_calib.param.s_degree

Polynomial degree for the flat field fitting along spatial direction (int; default: -1) [default=-1].

fors_calib.param.sradius

Smooth box radius for flat field along spatial direction (used if s_knots < 0) (int; default: -1) [default=-1].

fors_calib.param.d_nknots

Number of knots in flat field fitting splines along dispersion direction (int; default: -1) [default=-1].

fors_calib.param.dradius

Smooth box radius for flat field along dispersion direction (if d_knots < 0) (int; default: 10) [default=10].

fors_calib.param.fit_threshold

Threshold percentage for flat spline fittingwith respect to the maximum (float; default: 0.01) [default=0.01].

fors_calib.param.nonlinear_level

Level above which the detector is not linear (float; default: 60000.0) [default=60000.0].

fors_calib.param.max_nonlinear_ratio

Maximum allowed ratio of non-linear pixels per slit (float; default: 0.2) [default=0.2].

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

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

fors_calib.param.dispersion = 0.0
fors_calib.param.peakdetection = 0.0
fors_calib.param.wdegree = 0
fors_calib.param.wradius = 4
fors_calib.param.wreject = 0.7
fors_calib.param.wmode = 2
fors_calib.param.wmosmode = 0
fors_calib.param.ignore_lines = ""
fors_calib.param.used_linesets = "standard"
fors_calib.param.cdegree = -1
fors_calib.param.cmode = 1
fors_calib.param.startwavelength = 0.0
fors_calib.param.endwavelength = 0.0
fors_calib.param.slit_ident = False
fors_calib.param.stack_method = "sum"
fors_calib.param.ksigma = "-3.0,3.0"
fors_calib.param.kiter = 999
fors_calib.param.s_degree = -1
fors_calib.param.sradius = -1
fors_calib.param.d_nknots = -1
fors_calib.param.dradius = 10
fors_calib.param.fit_threshold = 0.01
fors_calib.param.nonlinear_level = 60000.0
fors_calib.param.max_nonlinear_ratio = 0.2

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

import cpl
fors_calib = cpl.Recipe("fors_calib")
[...]
res = fors_calib( ..., 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.