The visir_old_spc_wcal_ech recipe
===============================================================

.. data:: visir_old_spc_wcal_ech

Synopsis
--------

Old DRS detector: Spectroscopic wavelength calibration recipe in Echelle

Description
-----------

This recipe estimates the dispersion relation using the atmospheric spectrum
in a grism spectroscopy half-cycle frame.

The files listed in the Set Of Frames (sof-file) must be tagged:
VISIR-Echelle-Spectroscopy-file.fits SPEC_CAL_HRG_WCAL
VISIR-Quantum-Efficiency-Calibration-file.fits SPEC_CAL_QEFF
VISIR-Atmospheric-Emission-Lines-Calibration-file.fits SPEC_CAL_LINES

Additionally, a bad pixel map with a PRO.CATG of SPEC_BPM
may be added to the Set Of Frames with tag: BPM.


Constructor
-----------

.. method:: cpl.Recipe("visir_old_spc_wcal_ech")
   :noindex:

   Create an object for the recipe visir_old_spc_wcal_ech.

::

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

Parameters
----------

.. py:attribute:: visir_old_spc_wcal_ech.param.auto_bpm

    Automatic detection and correction of bad pixels (bool; default: True) [default=True].
.. py:attribute:: visir_old_spc_wcal_ech.param.plot

    The recipe can produce a number of predefined plots. Zero means that  none of the plots are produced, while increasing values (e.g. 1 or 2)  increases the number of plots produced. If the plotting fails a  warning is produced, and the recipe continues. The default behaviour  of the plotting is to use gnuplot (with option -persist). The recipe  currently produces 1D-plots using gnuplot commands. The recipe user  can control the actual plotting-command used by the recipe to create  the plot by setting the environment variable CPL_PLOTTER. Currently,  if CPL_PLOTTER is set it must contain the string 'gnuplot'. Setting it  to 'cat > my_gnuplot_$$.txt' causes a number of ASCII-files to be  created, which each produce a plot when given as standard input to  gnuplot (e.g. later or on a different computer). A finer control of  the plotting options can be obtained by writing an executable script,  e.g. my_gnuplot.pl, that executes gnuplot after setting the desired  gnuplot options (e.g. set terminal pslatex color) and then setting  CPL_PLOTTER to my_gnuplot.pl. The predefined plots include plotting of  images. Images can be plotted not only with gnuplot, but also using  the pnm format. This is controlled with the environment variable  CPL_IMAGER. If CPL_IMAGER is set to a string that does not contain the  word gnuplot, the recipe will generate the plot in pnm format. E.g.  setting CPL_IMAGER to 'display - &' will produce a gray-scale image  using the image viewer display. (long; default: 0) [default=0].
.. py:attribute:: visir_old_spc_wcal_ech.param.slit_skew

    Distortion correction: Skew of slit (degrees) (clockwise) (float;  default: 0.0) [default=0.0].
.. py:attribute:: visir_old_spc_wcal_ech.param.spectrum_skew

    Distortion correction: LMR Skew of spectrum (degrees) (counter-  clockwise). Not used in High Resolution (float; default: 0.0) [default=0.0].
.. py:attribute:: visir_old_spc_wcal_ech.param.vert_arc

    Distortion correction: LR Detector vertical curvature (pixel). Reduced  by a factor 4 in MR. Not used in HR A-side. Increased by a factor  115/52 in HR B-side (float; default: 0.0) [default=0.0].
.. py:attribute:: visir_old_spc_wcal_ech.param.hori_arc

    Distortion correction: LMR Detector horizontal curvature (pixel).  Increased by a factor 1.5 in HR A-side. Reduced by a factor 2 in HR  B-side (float; default: 0.0) [default=0.0].
.. py:attribute:: visir_old_spc_wcal_ech.param.orderoffset

    Echelle order offset. The offset is relative to the main order. The  allowed range of offsets depend on the selected grism. The offset can  never exceed +/-4. If the main order is e.g. 8 an order offset of +1  will cause the recipe to base the data reduction on order 9. With a  positive order offset the central wavelength becomes smaller while for  a negative order offset the central wavelength becomes larger. (long;  default: 0) [default=0].
.. py:attribute:: visir_old_spc_wcal_ech.param.rl

    Reject leftmost columns in spectrum extraction, zero means all columns  on the left are used. In cross-dispersion mode a (small) negative  number may be used (pixel) (long; default: 0) [default=0].
.. py:attribute:: visir_old_spc_wcal_ech.param.rr

    Reject rightmost columns in spectrum extraction, zero means all  columns on the right are used. In cross-dispersion mode a (small)  negative number may be used (pixel) (long; default: 0) [default=0].


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

::

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

   visir_old_spc_wcal_ech.param.auto_bpm = True
   visir_old_spc_wcal_ech.param.plot = 0
   visir_old_spc_wcal_ech.param.slit_skew = 0.0
   visir_old_spc_wcal_ech.param.spectrum_skew = 0.0
   visir_old_spc_wcal_ech.param.vert_arc = 0.0
   visir_old_spc_wcal_ech.param.hori_arc = 0.0
   visir_old_spc_wcal_ech.param.orderoffset = 0
   visir_old_spc_wcal_ech.param.rl = 0
   visir_old_spc_wcal_ech.param.rr = 0


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

::

   import cpl
   visir_old_spc_wcal_ech = cpl.Recipe("visir_old_spc_wcal_ech")
   [...]
   res = visir_old_spc_wcal_ech( ..., param = {"auto_bpm":True, "plot":0})


.. seealso:: `cpl.Recipe <http://packages.python.org/python-cpl/recipe.html>`_
   for more information about the recipe object.

Bug reports
-----------

Please report any problems to `Lars Lundin <llundin@eso.org>`_. Alternatively, you may 
send a report to the `ESO User Support Department <usd-help@eso.org>`_.

Copyright
---------

This file is part of the VISIR Instrument Pipeline
Copyright (C) 2004, 2005 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  02111-1307  USA

.. codeauthor:: Lars Lundin <llundin@eso.org>
