The visir_old_img_phot recipe
===============================================================

.. data:: visir_old_img_phot

Synopsis
--------

Old DRS detector: Sensitivity computation

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

This recipe computes the conversion factor and the sentitivity of a
standard star. It requires a standard star catalog.

The files listed in the Set Of Frames (sof-file) must be tagged:
VISIR-std-star-observation.fits IM_CAL_PHOT
VISIR-Imaging-Standard-Star-Catalog.fits IMG_STD_CATALOG

The primary product will have a FITS card
'HIERARCH ESO PRO CATG' with a string value of
'IMG_PHOT_COMBINED'
 and the corresponding beam-collapsed product will have a FITS card
'HIERARCH ESO PRO CATG' with a value of
IMG_PHOT_ONEBEAM

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


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

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

   Create an object for the recipe visir_old_img_phot.

::

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

Parameters
----------

.. py:attribute:: visir_old_img_phot.param.nod

    An optional ASCII specification of the nodding positions (in case they  are missing from the FITS-file). The file must consist of one line per  input FITS-file and each line must consist of an integer (which is  ignored) followed by a 0 or 1 (to indicate object or sky).  (str;  default: 'NONE') [default="NONE"].
.. py:attribute:: visir_old_img_phot.param.auto_bpm

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

    Automatic filtering of glitches (bool; default: False) [default=False].
.. py:attribute:: visir_old_img_phot.param.p

    Automatic purging of half-cycle images whose median deviates more than  a factor three from the mean of the medians of half-cycle images or  whose standard deviation deviates more than a factor three from the  mean of their standard deviations (bool; default: False) [default=False].
.. py:attribute:: visir_old_img_phot.param.union

    Combine images using their union, as opposed to their intersection  (deprecated and ignored, see --combine_method) (bool; default: True) [default=True].
.. py:attribute:: visir_old_img_phot.param.rej

    Each resulting pixel is the average of the corresponding  (interpolated) pixel value in each jittered image. A positive value,  n1, for the first of the two integers specifies that for each pixel  the smallest n1 pixel values shall be ignored in the averaging.  Similarly, a positive value, n2, for the second of the two integers  specifies that for each pixel the largest n2 pixel values shall be  ignored in the averaging. (str; default: '0-0') [default="0-0"].
.. py:attribute:: visir_old_img_phot.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_img_phot.param.off

    An optional ASCII specification of the offsets in case those in FITS-  headers are missing or wrong. The file must consist of one line per  input pair of FITS-files, and each line must consist of two numbers  which represent the shift in pixels of that image relative to the  first image. The first line should thus comprise two zeros. Correct  FITS-header offsets mean that the i'th X offset can be gotten from  Xoffset_0 - Xoffset_i, where Xoffset_i is the value of ESO SEQ  CUMOFFSETX and likewise for Y. (str; default: 'NONE') [default="NONE"].
.. py:attribute:: visir_old_img_phot.param.ref

    User-defined refining of the image offsets. See options objs and xcorr  (bool; default: False) [default=False].
.. py:attribute:: visir_old_img_phot.param.objs

    The shift and add of images needs anchor points that typically are  bright objects. These are normally detected automatically but with  user-defined refining of offsets enabled, they must be provided by the  user through an ASCII file containing one line per anchor point with  each line consisting of its x and y coordinate (in pixels). This file  is ignored with user-defined refining of offsets disabled. (str;  default: 'NONE') [default="NONE"].
.. py:attribute:: visir_old_img_phot.param.xcorr

    If user-defined refining of offsets is enabled a cross-correlation of  the images is performed. In order to speed up this process, this  cross-correlation is performed only on smaller rectangles around the  anchor points. The first two parameters is the half-size of this  rectangle in pixels. The second pair is the maximum shift in x and y  (pixels) evaluated by the cross-correlation on the rectangle. Used  only if user-defined refining of offsets is enabled. (str; default:  '10-10-25-25') [default="10-10-25-25"].
.. py:attribute:: visir_old_img_phot.param.jy_val

    The flux of the standard star in Jansky (float; default: -999.0) [default=-999.0].
.. py:attribute:: visir_old_img_phot.param.radii

    Radii : star_max bg_int bg_ext (str; default: '20-20-30') [default="20-20-30"].
.. py:attribute:: visir_old_img_phot.param.combine_method

    Combine images using one of: 1) Onto the first image (first); 2) Their  union (union); 3) Their intersection (inter). NB: Only the  'first'-method produces an image product with WCS coordinates. A  successful 'first'-method always produces a combined image with  dimensions equal to those of the input images. For the 'union'-method  the result image is at least as large as the input images while for  the 'inter'-method the result image is at most as large as the input  images (str; default: 'union') [default="union"].
.. py:attribute:: visir_old_img_phot.param.destripe_iterations

    Max number of destriping iterations (0 to disable destriping).  Horizontal destriping is done first and if no horizontal striping is  detected, vertical destriping is performed (long; default: 15) [default=15].
.. py:attribute:: visir_old_img_phot.param.destripe_morpho

    Destripe with morphological cleaning (bool; default: False) [default=False].
.. py:attribute:: visir_old_img_phot.param.eccmax

    The maximum eccentricity allowed in the combination of the three (in  parallel nod/chopping) or four (in perpendicular nod/chopping) beams.  In parallel mode, three perfectly aligned points spaced with the  chopnod throw will have eccentricity 0, while in perpedicular mode a  square with the chopnod throw as the side length will have  eccentricity 0 (float; default: 0.25) [default=0.25].


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

::

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

   visir_old_img_phot.param.nod = "NONE"
   visir_old_img_phot.param.auto_bpm = True
   visir_old_img_phot.param.g = False
   visir_old_img_phot.param.p = False
   visir_old_img_phot.param.union = True
   visir_old_img_phot.param.rej = "0-0"
   visir_old_img_phot.param.plot = 0
   visir_old_img_phot.param.off = "NONE"
   visir_old_img_phot.param.ref = False
   visir_old_img_phot.param.objs = "NONE"
   visir_old_img_phot.param.xcorr = "10-10-25-25"
   visir_old_img_phot.param.jy_val = -999.0
   visir_old_img_phot.param.radii = "20-20-30"
   visir_old_img_phot.param.combine_method = "union"
   visir_old_img_phot.param.destripe_iterations = 15
   visir_old_img_phot.param.destripe_morpho = False
   visir_old_img_phot.param.eccmax = 0.25


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_img_phot = cpl.Recipe("visir_old_img_phot")
   [...]
   res = visir_old_img_phot( ..., param = {"nod":"NONE", "auto_bpm":True})


.. 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>
