The kmo_rotate recipe
===============================================================

.. data:: kmo_rotate

Synopsis
--------

Rotate a cube spatially

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

This recipe rotates a cube spatially (CCW). If the rotation angle isn't
a multiple of 90 degrees, the output cube will be interpolated and get larger
accordingly.

By default all IFUs will be rotated.


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

   DO                    KMOS                                                  
   category              Type   Explanation                    Required #Frames
   --------              -----  -----------                    -------- -------
   <none or any>         F3I    data frame                         Y       1   

Output files
^^^^^^^^^^^^
::

   DO                    KMOS
   category              Type   Explanation
   --------              -----  -----------
   ROTATE                F3I    Rotated data cube


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

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

   Create an object for the recipe kmo_rotate.

::

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

Parameters
----------

.. py:attribute:: kmo_rotate.param.imethod

    Method to use for interpolation: ["BCS" (bicubic spline, default),  "NN" (nearest neighbor), not implemented yet] (str; default: 'BCS') [default="BCS"].
.. py:attribute:: kmo_rotate.param.extrapolate

    Applies only when rotation angle is different from multiples of 90  degrees: FALSE: Output IFU will be larger than the input (Default),  TRUE: The size of input and output IFU remains the same. Data will be  clipped. (bool; default: False) [default=False].
.. py:attribute:: kmo_rotate.param.rotations

    The rotations for all specified IFUs. "rot1;rot2;..." (degrees) (str;  default: '') [default=""].
.. py:attribute:: kmo_rotate.param.ifu

    The IFU to rotate [1 to 24] or rotate all IFUs [0, default]. (long;  default: 0) [default=0].
.. py:attribute:: kmo_rotate.param.flux

    Apply flux conservation: (TRUE (apply) or FALSE (don't apply) (bool;  default: False) [default=False].


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

::

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

   kmo_rotate.param.imethod = "BCS"
   kmo_rotate.param.extrapolate = False
   kmo_rotate.param.rotations = ""
   kmo_rotate.param.ifu = 0
   kmo_rotate.param.flux = False


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

::

   import cpl
   kmo_rotate = cpl.Recipe("kmo_rotate")
   [...]
   res = kmo_rotate( ..., param = {"imethod":"BCS", "extrapolate":False})


.. 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 <usd-help@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 CRIRES 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, Inc., 59 Temple Place, Suite 330, Boston, 
MA  02111-1307  USA

.. codeauthor:: Alex Agudo Berbel <usd-help@eso.org>
