The fors_calib recipe =============================================================== .. data:: 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 ----------- .. method:: cpl.Recipe("fors_calib") :noindex: Create an object for the recipe fors_calib. :: import cpl fors_calib = cpl.Recipe("fors_calib") Parameters ---------- .. py:attribute:: fors_calib.param.dispersion Expected spectral dispersion (Angstrom/pixel) (float; default: 0.0) [default=0.0]. .. py:attribute:: fors_calib.param.peakdetection Initial peak detection threshold (ADU) (float; default: 0.0) [default=0.0]. .. py:attribute:: fors_calib.param.wdegree Degree of wavelength calibration polynomial (int; default: 0) [default=0]. .. py:attribute:: fors_calib.param.wradius Search radius if iterating pattern-matching with first-guess method (int; default: 4) [default=4]. .. py:attribute:: fors_calib.param.wreject Rejection threshold in dispersion relation fit (pixel) (float; default: 0.7) [default=0.7]. .. py:attribute:: 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]. .. py:attribute:: fors_calib.param.wmosmode Interpolation mode of wavelength solution (0 = no interpolation, 1 = local (slit) solution, 2 = global model) (int; default: 0) [default=0]. .. py:attribute:: fors_calib.param.ignore_lines Catalog lines nearest to wavelengths in this list will be ignored for wavelength calibration (str; default: '') [default=""]. .. py:attribute:: 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"]. .. py:attribute:: fors_calib.param.cdegree Degree of spectral curvature polynomial (int; default: -1) [default=-1]. .. py:attribute:: 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]. .. py:attribute:: fors_calib.param.startwavelength Start wavelength in spectral extraction (float; default: 0.0) [default=0.0]. .. py:attribute:: fors_calib.param.endwavelength End wavelength in spectral extraction (float; default: 0.0) [default=0.0]. .. py:attribute:: fors_calib.param.slit_ident Attempt slit identification for MOS or MXU (bool; default: False) [default=False]. .. py:attribute:: fors_calib.param.stack_method Frames combination method (str; default: 'sum') [default="sum"]. .. py:attribute:: fors_calib.param.ksigma Low and high threshold in ksigma method (str; default: '-3.0,3.0') [default="-3.0,3.0"]. .. py:attribute:: fors_calib.param.kiter Max number of iterations in ksigma method (int; default: 999) [default=999]. .. py:attribute:: fors_calib.param.s_degree Polynomial degree for the flat field fitting along spatial direction (int; default: -1) [default=-1]. .. py:attribute:: fors_calib.param.sradius Smooth box radius for flat field along spatial direction (used if s_knots < 0) (int; default: -1) [default=-1]. .. py:attribute:: fors_calib.param.d_nknots Number of knots in flat field fitting splines along dispersion direction (int; default: -1) [default=-1]. .. py:attribute:: fors_calib.param.dradius Smooth box radius for flat field along dispersion direction (if d_knots < 0) (int; default: 10) [default=10]. .. py:attribute:: fors_calib.param.fit_threshold Threshold percentage for flat spline fittingwith respect to the maximum (float; default: 0.01) [default=0.01]. .. py:attribute:: fors_calib.param.nonlinear_level Level above which the detector is not linear (float; default: 60000.0) [default=60000.0]. .. py:attribute:: 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}) .. seealso:: `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 `_. Copyright --------- This file is currently part of the FORS Instrument Pipeline Copyright (C) 2002-2010 European Southern Observatory This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA .. codeauthor:: Carlo Izzo