The xsh_mbias recipe
===============================================================

.. data:: xsh_mbias

Synopsis
--------

Create the master bias frame

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

This recipe creates a master bias frame by computing the median of all input bias frames.

Input Frames : 
  - A set of n RAW frames (Format=RAW, n >=3, Tag = 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 bias frame (Format=PRE, PRO.CATG = MASTER_BIAS_arm)

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

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

   Create an object for the recipe xsh_mbias.

::

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

Parameters
----------

.. py:attribute:: xsh_mbias.param.keep_temp

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

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

    Add timestamp to product file name. (bool; default: False) [default=False].
.. py:attribute:: xsh_mbias.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_mbias.param.stack_method

    Method used to build master frame. (str; default: 'median') [default="median"].
.. py:attribute:: xsh_mbias.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_mbias.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_mbias.param.fpn_llx

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

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

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

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

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

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

    RON computation method (str; default: 'ALL') [default="ALL"].
.. py:attribute:: xsh_mbias.param.random_sizex

    Region X size for random computation (int; default: 10) [default=10].
.. py:attribute:: xsh_mbias.param.random_nsamples

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

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

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

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

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

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

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

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

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

    Lower value of kappa-sigma clip in stacking (int; default: 3) [default=3].
.. py:attribute:: xsh_mbias.param.stacking_ks_iter

    Number of iterations in kappa-sigma clip in stacking (int; default:  25) [default=25].
.. py:attribute:: xsh_mbias.param.struct_refx

    Reference X value to compute structure (int; default: -1) [default=-1].
.. py:attribute:: xsh_mbias.param.struct_refy

    Reference Y value to compute structure (int; default: -1) [default=-1].
.. py:attribute:: xsh_mbias.param.pd_noise_compute

    Determine Fixed Pattern Noise. If TRUE the Fixed Pattern Noise power  spectrum is determined. (bool; default: False) [default=False].
.. py:attribute:: xsh_mbias.param.pd_noise_dc_x

    x-size (pixel) of the mask starting at (x,y) = (1,1). (int; default:  1) [default=1].
.. py:attribute:: xsh_mbias.param.pd_noise_dc_y

    y-size (pixel) of the mask starting at (x,y) = (1,1). (int; default:  1) [default=1].


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

::

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

   xsh_mbias.param.keep_temp = "no"
   xsh_mbias.param.debug_level = "none"
   xsh_mbias.param.time_stamp = False
   xsh_mbias.param.decode_bp = 2144337919
   xsh_mbias.param.stack_method = "median"
   xsh_mbias.param.klow = 5.0
   xsh_mbias.param.khigh = 5.0
   xsh_mbias.param.fpn_llx = 10
   xsh_mbias.param.fpn_lly = 10
   xsh_mbias.param.fpn_urx = 1024
   xsh_mbias.param.fpn_ury = 1024
   xsh_mbias.param.fpn_hsize = 10
   xsh_mbias.param.fpn_nsamples = 100
   xsh_mbias.param.ron_method = "ALL"
   xsh_mbias.param.random_sizex = 10
   xsh_mbias.param.random_nsamples = 100
   xsh_mbias.param.ref1_llx = -1
   xsh_mbias.param.ref1_lly = -1
   xsh_mbias.param.ref1_urx = -1
   xsh_mbias.param.ref1_ury = -1
   xsh_mbias.param.ref2_llx = -1
   xsh_mbias.param.ref2_lly = -1
   xsh_mbias.param.ref2_urx = -1
   xsh_mbias.param.ref2_ury = -1
   xsh_mbias.param.stacking_ks_low = 3
   xsh_mbias.param.stacking_ks_iter = 25
   xsh_mbias.param.struct_refx = -1
   xsh_mbias.param.struct_refy = -1
   xsh_mbias.param.pd_noise_compute = False
   xsh_mbias.param.pd_noise_dc_x = 1
   xsh_mbias.param.pd_noise_dc_y = 1


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

::

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