The xsh_mdark recipe
===============================================================

.. data:: xsh_mdark

Synopsis
--------

Create the master dark frame

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

This recipe creates a master dark frame
Input Frames : 
  - A set of n RAW frames (Format=RAW, n >=3, Tag = DARK_arm)
  - [UVB,VIS] A master bias frame (Format=PRE, Tag = MASTER_BIAS_arm)
  - [OPTIONAL] A map of non linear bad pixels (Format=QUP, Tag = BP_MAP_NL_arm)
  - [OPTIONAL] A map of reference bad pixels (Format = QUP,RAW, Tag = BP_MAP_RP_arm)
Products : 
  - A master dark frame (Format=PRE, PRO.CATG = MASTER_DARK_arm)
    A dark frame, (Format=PRE, PRO.CATG = DARK_arm)

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

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

   Create an object for the recipe xsh_mdark.

::

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

Parameters
----------

.. py:attribute:: xsh_mdark.param.keep_temp

    If 'no', temporary files are deleted. (str; default: 'no') [default="no"].
.. py:attribute:: xsh_mdark.param.debug_level

    Additional xshooter debug level. One of 'none', 'low', 'medium',  'high' (str; default: 'none') [default="none"].
.. py:attribute:: xsh_mdark.param.time_stamp

    Add timestamp to product file name. (bool; default: False) [default=False].
.. py:attribute:: xsh_mdark.param.decode_bp

    Integer representation of the bits to be considered bad when decoding  the bad pixel mask pixel values.   Most frequent codes relevant for  the user:   0: good pixel,   8: pick-up noise,   16: cosmic-ray  removed,   32: cosmic-ray unremoved,   128: calibration file defect,  256: hot pixel,   512: dark pixel,   4096: A/D converted saturation,  32768: non linear pixel,   1048576: extrapolated flux in NIR,  4194304: Interpolated flux during extraction. (int; default:  2144337919) [default=2144337919].
.. py:attribute:: xsh_mdark.param.pre_overscan_corr

    pre-overscan correction. 0: no correction 1: mean overscan correction  2: mean prescan correction 3: (mean pre+mean overscan)/2 correction  (int; default: 1) [default=1].
.. py:attribute:: xsh_mdark.param.stack_method

    Method used to build master frame. (str; default: 'median') [default="median"].
.. py:attribute:: xsh_mdark.param.klow

    Kappa used to clip low level values, when method is set to 'mean'  (float; default: 5.0) [default=5.0].
.. py:attribute:: xsh_mdark.param.khigh

    Kappa used to clip high level values, when method is set to 'mean'  (float; default: 5.0) [default=5.0].
.. py:attribute:: xsh_mdark.param.bp_output

    Flag indicating whether the noise bad pixel map is to be computed  (bool; default: False) [default=False].
.. py:attribute:: xsh_mdark.param.crh_clip_kappa

    Kappa value in sigma clipping during CRH rejection using multiple  frames (float; default: -1.0) [default=-1.0].
.. py:attribute:: xsh_mdark.param.crh_clip_niter

    Number of iterations in sigma clipping during CRH rejection using  multiple frames (int; default: 3) [default=3].
.. py:attribute:: xsh_mdark.param.crh_clip_frac

    Minimal ratio of points accepted / total in sigma clipping during CRH  rejection using multiple frames (float; default: 0.7) [default=0.7].
.. py:attribute:: xsh_mdark.param.noise_clip_kappa

    Multiple of sigma in sigma clipping (float; default: 9.0) [default=9.0].
.. py:attribute:: xsh_mdark.param.noise_clip_niter

    Number of iterations in sigma clipping (int; default: 5) [default=5].
.. py:attribute:: xsh_mdark.param.noise_clip_frac

    Minimal fractions of bad pixel allowed (float; default: 0.7) [default=0.7].
.. py:attribute:: xsh_mdark.param.noise_clip_diff

    Minimum relative change in sigma for sigma clipping (float; default:  0.0) [default=0.0].
.. py:attribute:: xsh_mdark.param.noise_lower_rejection

    Lower rejection percentile to flag bad pixels via noise (float;  default: 10.0) [default=10.0].
.. py:attribute:: xsh_mdark.param.noise_higher_rejection

    Upper rejection percentile to flag bad pixels via noise (float;  default: 10.0) [default=10.0].
.. py:attribute:: xsh_mdark.param.ref1_llx

    Lower left X of reference region (int; default: -1) [default=-1].
.. py:attribute:: xsh_mdark.param.ref1_lly

    Lower left Y of reference region (int; default: -1) [default=-1].
.. py:attribute:: xsh_mdark.param.ref1_urx

    Upper right X of reference region (int; default: -1) [default=-1].
.. py:attribute:: xsh_mdark.param.ref1_ury

    Upper right Y of reference region (int; default: -1) [default=-1].
.. py:attribute:: xsh_mdark.param.ron_llx

    Lower left X of reference region to measure RON (int; default: -1) [default=-1].
.. py:attribute:: xsh_mdark.param.ron_lly

    Lower left Y of reference region to measure RON (int; default: -1) [default=-1].
.. py:attribute:: xsh_mdark.param.ron_urx

    Upper right X of reference region to measure RON (int; default: -1) [default=-1].
.. py:attribute:: xsh_mdark.param.ron_ury

    Upper right Y of reference region to measure RON (int; default: -1) [default=-1].
.. py:attribute:: xsh_mdark.param.ron_hsize

    Sampling area size (int; default: 4) [default=4].
.. py:attribute:: xsh_mdark.param.ron_nsamples

    Number of random samples (int; default: 100) [default=100].
.. py:attribute:: xsh_mdark.param.fpn_llx

    Lower left reference area X coordinate for Fixed Pattern Noise  computation (int; default: -1) [default=-1].
.. py:attribute:: xsh_mdark.param.fpn_lly

    Lower left reference area Y coordinate for Fixed Pattern Noise  computation (int; default: -1) [default=-1].
.. py:attribute:: xsh_mdark.param.fpn_urx

    Upper right reference area X coordinate for Fixed Pattern Noise  computation (int; default: -1) [default=-1].
.. py:attribute:: xsh_mdark.param.fpn_ury

    Upper right reference area Y coordinate for Fixed Pattern Noise  computation (int; default: -1) [default=-1].
.. py:attribute:: xsh_mdark.param.fpn_hsize

    Sample size for Fixed Pattern Noise computation (int; default: 4) [default=4].
.. py:attribute:: xsh_mdark.param.fpn_nsamples

    Number of sampling points for Fixed Pattern Noise computation (int;  default: 100) [default=100].


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

::

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

   xsh_mdark.param.keep_temp = "no"
   xsh_mdark.param.debug_level = "none"
   xsh_mdark.param.time_stamp = False
   xsh_mdark.param.decode_bp = 2144337919
   xsh_mdark.param.pre_overscan_corr = 1
   xsh_mdark.param.stack_method = "median"
   xsh_mdark.param.klow = 5.0
   xsh_mdark.param.khigh = 5.0
   xsh_mdark.param.bp_output = False
   xsh_mdark.param.crh_clip_kappa = -1.0
   xsh_mdark.param.crh_clip_niter = 3
   xsh_mdark.param.crh_clip_frac = 0.7
   xsh_mdark.param.noise_clip_kappa = 9.0
   xsh_mdark.param.noise_clip_niter = 5
   xsh_mdark.param.noise_clip_frac = 0.7
   xsh_mdark.param.noise_clip_diff = 0.0
   xsh_mdark.param.noise_lower_rejection = 10.0
   xsh_mdark.param.noise_higher_rejection = 10.0
   xsh_mdark.param.ref1_llx = -1
   xsh_mdark.param.ref1_lly = -1
   xsh_mdark.param.ref1_urx = -1
   xsh_mdark.param.ref1_ury = -1
   xsh_mdark.param.ron_llx = -1
   xsh_mdark.param.ron_lly = -1
   xsh_mdark.param.ron_urx = -1
   xsh_mdark.param.ron_ury = -1
   xsh_mdark.param.ron_hsize = 4
   xsh_mdark.param.ron_nsamples = 100
   xsh_mdark.param.fpn_llx = -1
   xsh_mdark.param.fpn_lly = -1
   xsh_mdark.param.fpn_urx = -1
   xsh_mdark.param.fpn_ury = -1
   xsh_mdark.param.fpn_hsize = 4
   xsh_mdark.param.fpn_nsamples = 100


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

::

   import cpl
   xsh_mdark = cpl.Recipe("xsh_mdark")
   [...]
   res = xsh_mdark( ..., param = {"keep_temp":"no", "debug_level":"none"})


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

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

Please report any problems to `P.Goldoni, L.Guglielmi, R. Haigron, F. Royer, D. Bramich, A. Modigliani <amodigli@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 X-shooter Instrument Pipeline
Copyright (C) 2006 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., 59 Temple Place, Suite 330, Boston, 
MA  02111-1307  USA

.. codeauthor:: P.Goldoni, L.Guglielmi, R. Haigron, F. Royer, D. Bramich, A. Modigliani <amodigli@eso.org>
