The visir_spc_reduce recipe =============================================================== .. data:: visir_spc_reduce Synopsis -------- Spectroscopic Observation recipe Description ----------- This recipe performs a wavelength calibration followed by spectrum extraction from a combined image. It can also compute sensitivities for standard star observations. It works for low and high resolution including echelle mode. The files listed in the Set Of Frames (sof-file) must be tagged: VISIR-Long-Slit-Spectroscopy-file.fits SPEC_OBS_LMR VISIR-Quantum-Efficiency-Calibration-file.fits SPEC_CAL_QEFF VISIR-Atmospheric-Emission-Lines-Calibration-file.fits SPEC_CAL_LINES VISIR-Standard-Star-Flux-Catalog.fits (optional)SPEC_STD_CATALOG VISIR-linearty-table.fits LINEARITY_TABLE (optional) Additionally, a bad pixel map with a PRO.CATG of IMG_BPM may be added to the Set Of Frames with tag: BPM. Constructor ----------- .. method:: cpl.Recipe("visir_spc_reduce") :noindex: Create an object for the recipe visir_spc_reduce. :: import cpl visir_spc_reduce = cpl.Recipe("visir_spc_reduce") Parameters ---------- .. py:attribute:: visir_spc_reduce.param.planestart Plane number to start repacking from in each nod cycle,earlier planes are skipped. (int; default: 0) [default=0]. .. py:attribute:: visir_spc_reduce.param.planelimit Limit number of processed inputplanes. It will repack until at least this number of input images have been processed or the full dataset has been repacked. Always full chop cycles need to be repacked so the number is adjusted upward to the next multiple of images per chop cycle. <= 0 for no limit. (int; default: -1) [default=-1]. .. py:attribute:: visir_spc_reduce.param.trimlow Burst data only. Number of additional planes to cut from before each plane with chopper movement. (int; default: 0) [default=0]. .. py:attribute:: visir_spc_reduce.param.trimhigh Burst data only. Number of additional planes to cut from after each plane with chopper movement. A value of -1 does not skip the plane of the movement. (int; default: 0) [default=0]. .. py:attribute:: visir_spc_reduce.param.lincorrect Apply linearity correction. Should only be enabled on high flux observations, may degrade results otherwise. (bool; default: False) [default=False]. .. py:attribute:: visir_spc_reduce.param.xl Coordinate in spatial direction. Together with yl it defines the lower point of a rectangle containing only skylines for the wavelength shift detection (int; default: 117) [default=117]. .. py:attribute:: visir_spc_reduce.param.yl Coordinate in wavelength direction. See xl (int; default: 110) [default=110]. .. py:attribute:: visir_spc_reduce.param.xh Coordinate in spatial direction. Together with yl it defines the higher point of a rectangle containing only skylines for the wavelength shift detection (int; default: 125) [default=125]. .. py:attribute:: visir_spc_reduce.param.yh Coordinate in wavelength direction. See xh (int; default: 150) [default=150]. .. py:attribute:: visir_spc_reduce.param.slit_skew Distortion correction: Skew of slit (degrees) (clockwise) (float; default: 0.52) [default=0.52]. .. py:attribute:: visir_spc_reduce.param.spectrum_skew Distortion correction: LMR Skew of spectrum (degrees) (counter- clockwise). Not used in High Resolution (float; default: 1.73) [default=1.73]. .. py:attribute:: visir_spc_reduce.param.vert_arc Distortion correction: LR Detector vertical curvature (pixel). Reduced by a factor 4 in MR. Not used in HR A-side. Increased by a factor 115/52 in HR B-side (float; default: -0.8) [default=-0.8]. .. py:attribute:: visir_spc_reduce.param.hori_arc Distortion correction: LMR Detector horizontal curvature (pixel). Increased by a factor 1.5 in HR A-side. Reduced by a factor 2 in HR B-side (float; default: 0.0) [default=0.0]. .. py:attribute:: visir_spc_reduce.param.destripe_iterations Max number of destriping iterations (0 to disable destriping). Horizontal destriping is done first and if no horizontal striping is detected, vertical destriping is performed (int; default: 15) [default=15]. .. py:attribute:: visir_spc_reduce.param.destripe_morpho Destripe with morphological cleaning (bool; default: False) [default=False]. .. py:attribute:: visir_spc_reduce.param.rej Each resulting pixel is the average of the corresponding (interpolated) pixel value in each jittered image. A positive value, n1, for the first of the two integers specifies that for each pixel the smallest n1 pixel values shall be ignored in the averaging. Similarly, a positive value, n2, for the second of the two integers specifies that for each pixel the largest n2 pixel values shall be ignored in the averaging. (str; default: '0-0') [default="0-0"]. .. py:attribute:: visir_spc_reduce.param.bkgcorrect Subtract the median from the spectral column before extracting the wavelength. This is required when the skylines do not correctly cancel due to gratting oscillations (bool; default: True) [default=True]. .. py:attribute:: visir_spc_reduce.param.plot The recipe can produce a number of predefined plots. Zero means that none of the plots are produced, while increasing values (e.g. 1 or 2) increases the number of plots produced. If the plotting fails a warning is produced, and the recipe continues. The default behaviour of the plotting is to use gnuplot (with option -persist). The recipe currently produces 1D-plots using gnuplot commands. The recipe user can control the actual plotting-command used by the recipe to create the plot by setting the environment variable CPL_PLOTTER. Currently, if CPL_PLOTTER is set it must contain the string 'gnuplot'. Setting it to 'cat > my_gnuplot_$$.txt' causes a number of ASCII-files to be created, which each produce a plot when given as standard input to gnuplot (e.g. later or on a different computer). A finer control of the plotting options can be obtained by writing an executable script, e.g. my_gnuplot.pl, that executes gnuplot after setting the desired gnuplot options (e.g. set terminal pslatex color) and then setting CPL_PLOTTER to my_gnuplot.pl. The predefined plots include plotting of images. Images can be plotted not only with gnuplot, but also using the pnm format. This is controlled with the environment variable CPL_IMAGER. If CPL_IMAGER is set to a string that does not contain the word gnuplot, the recipe will generate the plot in pnm format. E.g. setting CPL_IMAGER to 'display - &' will produce a gray-scale image using the image viewer display. (int; default: 0) [default=0]. .. py:attribute:: visir_spc_reduce.param.slit_skew Distortion correction: Skew of slit (degrees) (clockwise) (float; default: 0.52) [default=0.52]. .. py:attribute:: visir_spc_reduce.param.spectrum_skew Distortion correction: LMR Skew of spectrum (degrees) (counter- clockwise). Not used in High Resolution (float; default: 1.73) [default=1.73]. .. py:attribute:: visir_spc_reduce.param.vert_arc Distortion correction: LR Detector vertical curvature (pixel). Reduced by a factor 4 in MR. Not used in HR A-side. Increased by a factor 115/52 in HR B-side (float; default: -0.8) [default=-0.8]. .. py:attribute:: visir_spc_reduce.param.hori_arc Distortion correction: LMR Detector horizontal curvature (pixel). Increased by a factor 1.5 in HR A-side. Reduced by a factor 2 in HR B-side (float; default: 0.0) [default=0.0]. .. py:attribute:: visir_spc_reduce.param.fixcombi Perform the distortion correction on the combined image, and not on each of the jittered images. This will reduce excution time and degrade the quality of the combined image (bool; default: False) [default=False]. .. py:attribute:: visir_spc_reduce.param.emis_tol The computation of the mean and standard deviation of the sensitivity is done for wavelengths with an atmospheric emissivity of at most emis_min + emis_tol * (emis_max - emis_min), where emis_min is the minimum emissivity in the observed wavelength range and emis_max is the ditto maximum. Thus emis_tol = 1 means that all wavelengths are included. (float; default: 1.0) [default=1.0]. .. py:attribute:: visir_spc_reduce.param.destripe_iterations Max number of destriping iterations (0 to disable destriping). Horizontal destriping is done first and if no horizontal striping is detected, vertical destriping is performed (int; default: 15) [default=15]. .. py:attribute:: visir_spc_reduce.param.destripe_morpho Destripe with morphological cleaning (bool; default: False) [default=False]. .. py:attribute:: visir_spc_reduce.param.rl Reject leftmost columns in spectrum extraction, zero means all columns on the left are used. In cross-dispersion mode a (small) negative number may be used (pixel) (int; default: 0) [default=0]. .. py:attribute:: visir_spc_reduce.param.rr Reject rightmost columns in spectrum extraction, zero means all columns on the right are used. In cross-dispersion mode a (small) negative number may be used (pixel) (int; default: 0) [default=0]. .. py:attribute:: visir_spc_reduce.param.apfile An optional ASCII file specification of the aperture definitions to use during spectral extraction. Each line must contain either 3 fields for optimal extraction, or an even number of fields greater than 5 for aperture extraction. For optimal extraction, the 1st field should be 'O', and for aperture extraction it should be 'A'. In both cases the next pair of fields indicate the left & right edges of the source aperture in pixel coordinates. For aperture extraction, fields after the 3rd define the sky apertures coordinates, with the 4th field indicating the method used to determine the sky background [one of 'A' (average), 'F' (linear fit), or 'M' (median)] followed by at least one pair of pixel coordinates representing the left & right edge of a sky aperture. You may supply more sky apertures by supplying additional pixel coordinate pairs after the first. Multiple lines targeting the same order are allowed. (str; default: 'NONE') [default="NONE"]. .. py:attribute:: visir_spc_reduce.param.ro_noise Readout noise of the detector (float; default: 14.5) [default=14.5]. .. py:attribute:: visir_spc_reduce.param.ox_sigma Sigma to use for clipping in optimal extraction (float; default: 5.0) [default=5.0]. .. py:attribute:: visir_spc_reduce.param.ox_niters Number of optimal extraction iterations to perform (int; default: 2) [default=2]. .. py:attribute:: visir_spc_reduce.param.ox_smooth Width of smoothing window to use along spectral dimension during optimal extraction. A median filter is used. (int; default: 31) [default=31]. .. py:attribute:: visir_spc_reduce.param.gain Detector gain (float; default: 0.75) [default=0.75]. .. py:attribute:: visir_spc_reduce.param.ox_kernel Size of square smoothing kernel, in pixels, to apply to science frame before optimal extraction (ignored during aperture extraction). A median filter is used. (int; default: 3) [default=3]. .. py:attribute:: visir_spc_reduce.param.respcal An optional path to a FITS file containing a 1-D fringe model to be divided into the 1-D extracted spectra in order to remove the fringes. (str; default: 'NONE') [default="NONE"]. .. py:attribute:: visir_spc_reduce.param.delete_temp Delete temporary files created during processing (bool; default: True) [default=True]. .. py:attribute:: visir_spc_reduce.param.destripe Attempt to remove stripes (bool; default: False) [default=False]. The following code snippet shows the default settings for the available parameters. :: import cpl visir_spc_reduce = cpl.Recipe("visir_spc_reduce") visir_spc_reduce.param.planestart = 0 visir_spc_reduce.param.planelimit = -1 visir_spc_reduce.param.trimlow = 0 visir_spc_reduce.param.trimhigh = 0 visir_spc_reduce.param.lincorrect = False visir_spc_reduce.param.xl = 117 visir_spc_reduce.param.yl = 110 visir_spc_reduce.param.xh = 125 visir_spc_reduce.param.yh = 150 visir_spc_reduce.param.slit_skew = 0.52 visir_spc_reduce.param.spectrum_skew = 1.73 visir_spc_reduce.param.vert_arc = -0.8 visir_spc_reduce.param.hori_arc = 0.0 visir_spc_reduce.param.destripe_iterations = 15 visir_spc_reduce.param.destripe_morpho = False visir_spc_reduce.param.rej = "0-0" visir_spc_reduce.param.bkgcorrect = True visir_spc_reduce.param.plot = 0 visir_spc_reduce.param.slit_skew = 0.52 visir_spc_reduce.param.spectrum_skew = 1.73 visir_spc_reduce.param.vert_arc = -0.8 visir_spc_reduce.param.hori_arc = 0.0 visir_spc_reduce.param.fixcombi = False visir_spc_reduce.param.emis_tol = 1.0 visir_spc_reduce.param.destripe_iterations = 15 visir_spc_reduce.param.destripe_morpho = False visir_spc_reduce.param.rl = 0 visir_spc_reduce.param.rr = 0 visir_spc_reduce.param.apfile = "NONE" visir_spc_reduce.param.ro_noise = 14.5 visir_spc_reduce.param.ox_sigma = 5.0 visir_spc_reduce.param.ox_niters = 2 visir_spc_reduce.param.ox_smooth = 31 visir_spc_reduce.param.gain = 0.75 visir_spc_reduce.param.ox_kernel = 3 visir_spc_reduce.param.respcal = "NONE" visir_spc_reduce.param.delete_temp = True visir_spc_reduce.param.destripe = False You may also set or overwrite some or all parameters by the recipe parameter `param`, as shown in the following example: :: import cpl visir_spc_reduce = cpl.Recipe("visir_spc_reduce") [...] res = visir_spc_reduce( ..., param = {"planestart":0, "planelimit":-1}) .. seealso:: `cpl.Recipe `_ for more information about the recipe object. Bug reports ----------- Please report any problems to `Julian Taylor `_. Alternatively, you may send a report to the `ESO User Support Department `_. Copyright --------- This file is part of the VISIR Instrument Pipeline Copyright (C) 2015 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., 51 Franklin St, Fifth Floor, Boston, MA 02111-1307 USA .. codeauthor:: Julian Taylor