The kmo_std_star recipe
===============================================================

.. data:: kmo_std_star

Synopsis
--------

Create the telluric correction frame.

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

This recipe creates a telluric calibration frame and a PSF frame. It must be
called after the kmo_illumination-recipe.

Since there won’t be enough standard stars to observe for all IFUs in one ex-
posure, one has to do several exposures in a way that there is at least one
standard star and one sky exposure in each IFU. A internal data organiser will
analyse the provided exposures and select the appropriate frames as follows:
1. For each IFU the first standard star in the list of provided exposures is
   taken. All subsequent standard star exposures for this IFU will be ignored
2. A corresponding sky exposure will be chosen which will be as close in time
   to the standard star exposure as possible.

3. For any IFUs not containing a standard star and a sky exposure an empty
   frame will be returned.


NOISE_SPEC contains in any case the shot noise [sqrt(counts*gain)/gain]. If the
exposures have been taken with template KMOS_spec_cal_stdstarscipatt, then an
additional noise component is added in: All existing sky exposures for an IFU
are subtracted pairwise, spectra are extracted and the std deviation is calculated.


Input files
^^^^^^^^^^^^
::

                                                                               
   DO                      KMOS                                                
   category                Type  Explanation                   Required #Frames
   --------                ----- -----------                   -------- -------
   STD                     RAW   Std. star & sky exposures         Y     >=1   
   XCAL                    F2D   x calibration frame               Y      1    
   YCAL                    F2D   y calibration frame               Y      1    
   LCAL                    F2D   Wavelength calib. frame           Y      1    
   MASTER_FLAT             F2D   Master flat frame                 Y      1    
   WAVE_BAND               F2L   Table with start-/end-wavelengths Y      1    
   ILLUM_CORR              F2I   Illumination correction           N     0,1   
   SOLAR_SPEC              F1S   Solar spectrum                    N     0,1   
                                 (only for G stars)                            
   ATMOS_MODEL             F1S   Model atmospheric transmisson     N     0,1   
                                 (only for OBAF stars in K band)               
   SPEC_TYPE_LOOKUP        F2L   LUT  eff. stellar temperature     N     0,1   
                                                                               
Output files
^^^^^^^^^^^^
::

                                                                               
   DO                      KMOS                                                
   category                Type   Explanation                                  
   --------                -----  -----------                                  
   TELLURIC                F1I    The normalised telluric spectrum             
                                  (including errors)                           
   STAR_SPEC               F1I    The extracted star spectrum                  
                                  (including errors)                           
   STD_IMAGE               F2I    The standard star PSF images                 
   STD_MASK                F2I    The generated mask used to extract the star  
                                  spectrum                                     
   NOISE_SPEC              F1I    The extracted noise spectrum                 


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

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

   Create an object for the recipe kmo_std_star.

::

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

Parameters
----------

.. py:attribute:: kmo_std_star.param.startype

    The spectral type of the star (O, B, A, F, G) Format: G4V etc. (str;  default: '') [default=""].
.. py:attribute:: kmo_std_star.param.imethod

    Method to use for interpolation. ["NN" (nearest neighbour), "lwNN"  (linear weighted nearest neighbor), "swNN" (square weighted nearest  neighbor), "MS" (Modified Shepard's method), "CS" (Cubic spline)]  (str; default: 'CS') [default="CS"].
.. py:attribute:: kmo_std_star.param.fmethod

    Either fit a 'gauss' or 'moffat' profile. (str; default: 'gauss') [default="gauss"].
.. py:attribute:: kmo_std_star.param.neighborhoodRange

    Defines the range to search for neighbors in pixels (float; default:  1.001) [default=1.001].
.. py:attribute:: kmo_std_star.param.magnitude

    The magnitude of the std star. For HK two values have to provided (eg.  12.1,13.2) (str; default: '') [default=""].
.. py:attribute:: kmo_std_star.param.flux

    TRUE: Apply flux conservation. FALSE: otherwise (bool; default: True) [default=True].
.. py:attribute:: kmo_std_star.param.save_cubes

    TRUE: Save reconstructed cubes, FALSE: otherwise (bool; default:  False) [default=False].
.. py:attribute:: kmo_std_star.param.no_noise

    Applies only for data taken with template  KMOS_spec_cal_stdstarscipatt: FALSE:  Calculate noise-spectra on all  sky exposures. TRUE: skip this step (bool; default: False) [default=False].
.. py:attribute:: kmo_std_star.param.xcal_interpolation

    TRUE: Interpolate xcal between rotator angles. FALSE: otherwise (bool;  default: True) [default=True].
.. py:attribute:: kmo_std_star.param.suppress_extension

    Suppress arbitrary filename extension.(TRUE (apply) or FALSE (don't  apply) (bool; default: False) [default=False].
.. py:attribute:: kmo_std_star.param.b_samples

    The number of samples in wavelength for the reconstructed cube (long;  default: 2048) [default=2048].
.. py:attribute:: kmo_std_star.param.b_start

    The lowest wavelength [um] to take into account when reconstructing  (default of -1 sets the proper value for the actual band  automatically) (float; default: -1.0) [default=-1.0].
.. py:attribute:: kmo_std_star.param.b_end

    The highest wavelength [um] to take into account when reconstructing  (default of -1 sets the proper value for the actual band  automatically) (float; default: -1.0) [default=-1.0].
.. py:attribute:: kmo_std_star.param.cmethod

    Either apply "average", "median", "sum", "min_max." or "ksigma". (str;  default: 'ksigma') [default="ksigma"].
.. py:attribute:: kmo_std_star.param.cpos_rej

    The positive rejection threshold for kappa-sigma-clipping (sigma).  (float; default: 3.0) [default=3.0].
.. py:attribute:: kmo_std_star.param.cneg_rej

    The negative rejection threshold for kappa-sigma-clipping (sigma).  (float; default: 3.0) [default=3.0].
.. py:attribute:: kmo_std_star.param.citer

    The number of iterations for kappa-sigma-clipping. (long; default: 3) [default=3].
.. py:attribute:: kmo_std_star.param.cmax

    The number of maximum pixel values to clip with min/max-clipping.  (long; default: 1) [default=1].
.. py:attribute:: kmo_std_star.param.cmin

    The number of minimum pixel values to clip with min/max-clipping.  (long; default: 1) [default=1].


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

::

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

   kmo_std_star.param.startype = ""
   kmo_std_star.param.imethod = "CS"
   kmo_std_star.param.fmethod = "gauss"
   kmo_std_star.param.neighborhoodRange = 1.001
   kmo_std_star.param.magnitude = ""
   kmo_std_star.param.flux = True
   kmo_std_star.param.save_cubes = False
   kmo_std_star.param.no_noise = False
   kmo_std_star.param.xcal_interpolation = True
   kmo_std_star.param.suppress_extension = False
   kmo_std_star.param.b_samples = 2048
   kmo_std_star.param.b_start = -1.0
   kmo_std_star.param.b_end = -1.0
   kmo_std_star.param.cmethod = "ksigma"
   kmo_std_star.param.cpos_rej = 3.0
   kmo_std_star.param.cneg_rej = 3.0
   kmo_std_star.param.citer = 3
   kmo_std_star.param.cmax = 1
   kmo_std_star.param.cmin = 1


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

::

   import cpl
   kmo_std_star = cpl.Recipe("kmo_std_star")
   [...]
   res = kmo_std_star( ..., param = {"startype":"", "imethod":"CS"})


.. 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 `Alex Agudo Berbel <kmos-spark@mpe.mpg.de>`_. Alternatively, you may 
send a report to the `ESO User Support Department <usd-help@eso.org>`_.

Copyright
---------

This file is part of the KMOS Instrument Pipeline
Copyright (C) 2002,2003 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, 51 Franklin Street, Suite 500, Boston, MA  02110-1335  USA

.. codeauthor:: Alex Agudo Berbel <kmos-spark@mpe.mpg.de>
