The xsh_scired_ifu_offset recipe
===============================================================

.. data:: xsh_scired_ifu_offset

Synopsis
--------

Reduce science IFU on-off exposures and build a 3D cube

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

This recipe Reduce science IFU on-off exposures and build a 3D cube
Input Frames : 
  - A set of 2xn Science frames,       Tag = OBJECT_IFU_OFFSET_arm, SKY_IFU_arm
  - A spectral format table (Tag = SPECTRAL_FORMAT_TAB_arm)
  - A master flat frame (Tag = MASTER_FLAT_IFU_arm)
  - An order table frame(Tag = ORDER_TABLE_EDGES_IFU_arm)
  - 3 wave solution frames, one per slitlet (Tag = WAVE_TAB_ARC_IFU_slitlet_arm)
      where 'slitlet' is DOWN, CEN or UP
  - [OPTIONAL] A dispersion table (Tag = DISP_TAB_IFU_arm)
  - [OPTIONAL] A non-linear badpixel map (Tag = BP_MAP_NL_arm)
  - [OPTIONAL] A reference badpixel map (Tag = BP_MAP_RP_arm)
Products : 
 - Merged 3D data cube (PREFIX_MERGE3D_DATA_OBJ_arm)
 - QC Traces of 3D data cube (PREFIX_MERGE3D_TRACE_OBJ_arm)
 - Order by order 3D data cube (PREFIX_ORDER3D_DATA_OBJ_arm)
 - Order by order 3D qual cube (IFU_CFG_COR_arm)
 - Order by order 3D qual cube (PREFIX_MERGE3D_DATA_SKY_arm)
 - where PREFIX is SCI, FLUX, TELL if input raw DPR.TYPE contains OBJECT or FLUX or TELLURIC
 - 1 Spectrum merge 3D, PRO.CATG=MERGE3D_IFU_arm

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

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

   Create an object for the recipe xsh_scired_ifu_offset.

::

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

Parameters
----------

.. py:attribute:: xsh_scired_ifu_offset.param.keep_temp

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

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

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

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

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

    Number of iterations in sigma clipping during CRH rejection using  multiple frames (int; default: 5) [default=5].
.. py:attribute:: xsh_scired_ifu_offset.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_scired_ifu_offset.param.removecrhsingle_sigmalim

    Poisson fluctuation threshold to flag CRHs (see van Dokkum,  PASP,113,2001,p1420-27) (float; default: 5.0) [default=5.0].
.. py:attribute:: xsh_scired_ifu_offset.param.removecrhsingle_flim

    Minimum contrast between the Laplacian image and the fine structure  image that a point must have to be flagged as CRH. (see van Dokkum,  PASP,113,2001,p1420-27) (float; default: 2.0) [default=2.0].
.. py:attribute:: xsh_scired_ifu_offset.param.removecrhsingle_niter

    Max number of iterations (int; default: 4) [default=4].
.. py:attribute:: xsh_scired_ifu_offset.param.rectify_kernel

    Name of the Interpolation Kernel Used. Possible values are:  tanh,  sinc, sinc2, lanczos, hamming, hann. (str; default: 'tanh') [default="tanh"].
.. py:attribute:: xsh_scired_ifu_offset.param.rectify_radius

    Rectify Interpolation radius [bin units]. (float; default: 2.0) [default=2.0].
.. py:attribute:: xsh_scired_ifu_offset.param.rectify_bin_lambda

    Wavelength step in the output spectrum [nm] (float; default: -1.0) [default=-1.0].
.. py:attribute:: xsh_scired_ifu_offset.param.rectify_bin_slit

    Spatial step along the slit in the output spectrum [arcsec] (float;  default: -1.0) [default=-1.0].
.. py:attribute:: xsh_scired_ifu_offset.param.localize_method

    Localization method (MANUAL, MAXIMUM, GAUSSIAN) used to detect the  object centroid and height on the slit (str; default: 'MANUAL') [default="MANUAL"].
.. py:attribute:: xsh_scired_ifu_offset.param.localize_chunk_nb

    Number of chunks in the full spectrum to localize the object (int;  default: 10) [default=10].
.. py:attribute:: xsh_scired_ifu_offset.param.localize_thresh

    Threshold relative to the peak intensity below which the edges of the  object are detected for MAXIMUM localization (float; default: 0.1) [default=0.1].
.. py:attribute:: xsh_scired_ifu_offset.param.localize_deg_lambda

    Degree in lambda in the localization polynomial expression  slit=f(lambda), used only for MAXIMUM and GAUSSIAN (int; default: 0) [default=0].
.. py:attribute:: xsh_scired_ifu_offset.param.localize_slit_position

    Object position on the slit for MANUAL localization [arcsec] (float;  default: 0.0) [default=0.0].
.. py:attribute:: xsh_scired_ifu_offset.param.localize_slit_hheight

    Object half height on the slit for MANUAL localization [arcsec]  (float; default: 2.0) [default=2.0].
.. py:attribute:: xsh_scired_ifu_offset.param.localize_kappa

    Kappa value for sigma clipping in the localization polynomial fit  (float; default: 3.0) [default=3.0].
.. py:attribute:: xsh_scired_ifu_offset.param.localize_niter

    Number of iterations for sigma clipping in the localization polynomial  fit (int; default: 3) [default=3].
.. py:attribute:: xsh_scired_ifu_offset.param.localize_use_skymask

    TRUE if we want to mask sky lines using SKY_LINE_LIST file. (bool;  default: False) [default=False].
.. py:attribute:: xsh_scired_ifu_offset.param.compute_map

    if TRUE recompute (wave and slit) maps from the dispersion solution.  If sky-subtract is set to TRUE this must be set to TRUE. (bool;  default: False) [default=False].
.. py:attribute:: xsh_scired_ifu_offset.param.trace_obj

    if TRUE trace object position on each IFU slice. In this case order  TAB edges is required (bool; default: False) [default=False].
.. py:attribute:: xsh_scired_ifu_offset.param.check_afc

    Input AFC corrected model/wave solution and science frame check. If  TRUE the recipe verify that the input mode/wave solution is AFC  corrected, its INS.OPTIi.NAME is 'Pin_0.5 ', and its OBS.ID and  OBS.TARG.NAME values matches with the corresponding values of the  science frame. (bool; default: True) [default=True].
.. py:attribute:: xsh_scired_ifu_offset.param.cut_uvb_spectrum

    TRUE if recipe cuts the UVB spectrum at 556 nm (dichroich) (bool;  default: True) [default=True].


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

::

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

   xsh_scired_ifu_offset.param.keep_temp = "no"
   xsh_scired_ifu_offset.param.debug_level = "none"
   xsh_scired_ifu_offset.param.time_stamp = False
   xsh_scired_ifu_offset.param.decode_bp = 2144337919
   xsh_scired_ifu_offset.param.pre_overscan_corr = 1
   xsh_scired_ifu_offset.param.stack_method = "median"
   xsh_scired_ifu_offset.param.klow = 5.0
   xsh_scired_ifu_offset.param.khigh = 5.0
   xsh_scired_ifu_offset.param.crh_clip_kappa = 5.0
   xsh_scired_ifu_offset.param.crh_clip_niter = 5
   xsh_scired_ifu_offset.param.crh_clip_frac = 0.7
   xsh_scired_ifu_offset.param.removecrhsingle_sigmalim = 5.0
   xsh_scired_ifu_offset.param.removecrhsingle_flim = 2.0
   xsh_scired_ifu_offset.param.removecrhsingle_niter = 4
   xsh_scired_ifu_offset.param.rectify_kernel = "tanh"
   xsh_scired_ifu_offset.param.rectify_radius = 2.0
   xsh_scired_ifu_offset.param.rectify_bin_lambda = -1.0
   xsh_scired_ifu_offset.param.rectify_bin_slit = -1.0
   xsh_scired_ifu_offset.param.localize_method = "MANUAL"
   xsh_scired_ifu_offset.param.localize_chunk_nb = 10
   xsh_scired_ifu_offset.param.localize_thresh = 0.1
   xsh_scired_ifu_offset.param.localize_deg_lambda = 0
   xsh_scired_ifu_offset.param.localize_slit_position = 0.0
   xsh_scired_ifu_offset.param.localize_slit_hheight = 2.0
   xsh_scired_ifu_offset.param.localize_kappa = 3.0
   xsh_scired_ifu_offset.param.localize_niter = 3
   xsh_scired_ifu_offset.param.localize_use_skymask = False
   xsh_scired_ifu_offset.param.compute_map = False
   xsh_scired_ifu_offset.param.trace_obj = False
   xsh_scired_ifu_offset.param.check_afc = True
   xsh_scired_ifu_offset.param.cut_uvb_spectrum = True


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

::

   import cpl
   xsh_scired_ifu_offset = cpl.Recipe("xsh_scired_ifu_offset")
   [...]
   res = xsh_scired_ifu_offset( ..., 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 `A.Modigliani, J.Vernet, P. Bristow <Andrea.Modigliani@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:: A.Modigliani, J.Vernet, P. Bristow <Andrea.Modigliani@eso.org>