The visir_old_spc_obs_ech recipe¶
- visir_old_spc_obs_ech¶
Synopsis¶
Old DRS detector: Spectroscopic Observation recipe in Echelle mode
Description¶
This recipe estimates the dispersion relation using the atmospheric spectrum in a grism spectroscopy half-cycle frame.
It also extracts the spectrum of an observed object using a combined frame.
The files listed in the Set Of Frames (sof-file) must be tagged: VISIR-Echelle-Spectroscopy-file.fits SPEC_OBS_HRG VISIR-Quantum-Efficiency-Calibration-file.fits SPEC_CAL_QEFF VISIR-Atmospheric-Emission-Lines-Calibration-file.fits SPEC_CAL_LINES
Additionally, a bad pixel map with a PRO.CATG of SPEC_BPM may be added to the Set Of Frames with tag: BPM.
Constructor¶
- cpl.Recipe("visir_old_spc_obs_ech")
Create an object for the recipe visir_old_spc_obs_ech.
import cpl
visir_old_spc_obs_ech = cpl.Recipe("visir_old_spc_obs_ech")
Parameters¶
- visir_old_spc_obs_ech.param.nod¶
An optional ASCII specification of the nodding positions (in case they are missing from the FITS-file). The file must consist of one line per input FITS-file and each line must consist of an integer (which is ignored) followed by a 0 or 1 (to indicate object or sky). (str; default: ‘NONE’) [default=”NONE”].
- visir_old_spc_obs_ech.param.auto_bpm¶
Automatic detection and correction of bad pixels (bool; default: True) [default=True].
- visir_old_spc_obs_ech.param.g¶
Automatic filtering of glitches (bool; default: False) [default=False].
- visir_old_spc_obs_ech.param.p¶
Automatic purging of half-cycle images whose median deviates more than a factor three from the mean of the medians of half-cycle images or whose standard deviation deviates more than a factor three from the mean of their standard deviations (bool; default: False) [default=False].
- visir_old_spc_obs_ech.param.union¶
Combine images using their union, as opposed to their intersection (deprecated and ignored, see –combine_method) (bool; default: True) [default=True].
- visir_old_spc_obs_ech.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”].
- visir_old_spc_obs_ech.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].
- visir_old_spc_obs_ech.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].
- visir_old_spc_obs_ech.param.slit_skew¶
Distortion correction: Skew of slit (degrees) (clockwise) (float; default: 0.0) [default=0.0].
- visir_old_spc_obs_ech.param.spectrum_skew¶
Distortion correction: LMR Skew of spectrum (degrees) (counter- clockwise). Not used in High Resolution (float; default: 0.0) [default=0.0].
- visir_old_spc_obs_ech.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.0) [default=0.0].
- visir_old_spc_obs_ech.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].
- visir_old_spc_obs_ech.param.orderoffset¶
Echelle order offset. The offset is relative to the main order. The allowed range of offsets depend on the selected grism. The offset can never exceed +/-4. If the main order is e.g. 8 an order offset of +1 will cause the recipe to base the data reduction on order 9. With a positive order offset the central wavelength becomes smaller while for a negative order offset the central wavelength becomes larger. (int; default: 0) [default=0].
- visir_old_spc_obs_ech.param.off¶
An optional ASCII specification of the offsets in case those in FITS- headers are missing or wrong. The file must consist of one line per input pair of FITS-files, and each line must consist of two numbers which represent the shift in pixels of that image relative to the first image. The first line should thus comprise two zeros. Correct FITS-header offsets mean that the i’th X offset can be gotten from Xoffset_0 - Xoffset_i, where Xoffset_i is the value of ESO SEQ CUMOFFSETX and likewise for Y. (str; default: ‘NONE’) [default=”NONE”].
- visir_old_spc_obs_ech.param.ref¶
User-defined refining of the image offsets. See options objs and xcorr (bool; default: False) [default=False].
- visir_old_spc_obs_ech.param.objs¶
The shift and add of images needs anchor points that typically are bright objects. These are normally detected automatically but with user-defined refining of offsets enabled, they must be provided by the user through an ASCII file containing one line per anchor point with each line consisting of its x and y coordinate (in pixels). This file is ignored with user-defined refining of offsets disabled. (str; default: ‘NONE’) [default=”NONE”].
- visir_old_spc_obs_ech.param.xcorr¶
If user-defined refining of offsets is enabled a cross-correlation of the images is performed. In order to speed up this process, this cross-correlation is performed only on smaller rectangles around the anchor points. The first two parameters is the half-size of this rectangle in pixels. The second pair is the maximum shift in x and y (pixels) evaluated by the cross-correlation on the rectangle. Used only if user-defined refining of offsets is enabled. (str; default: ‘10-10-25-25’) [default=”10-10-25-25”].
- visir_old_spc_obs_ech.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].
- visir_old_spc_obs_ech.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].
- visir_old_spc_obs_ech.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].
- visir_old_spc_obs_ech.param.destripe_morpho¶
Destripe with morphological cleaning (bool; default: False) [default=False].
- visir_old_spc_obs_ech.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].
- visir_old_spc_obs_ech.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].
- visir_old_spc_obs_ech.param.ro_noise¶
Readout noise of the detector (float; default: 14.5) [default=14.5].
- visir_old_spc_obs_ech.param.ox_sigma¶
Sigma to use for clipping in optimal extraction (float; default: 5.0) [default=5.0].
- visir_old_spc_obs_ech.param.ox_niters¶
Number of optimal extraction iterations to perform (int; default: 2) [default=2].
- visir_old_spc_obs_ech.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].
- visir_old_spc_obs_ech.param.gain¶
Detector gain (float; default: 0.75) [default=0.75].
- visir_old_spc_obs_ech.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].
The following code snippet shows the default settings for the available parameters.
import cpl
visir_old_spc_obs_ech = cpl.Recipe("visir_old_spc_obs_ech")
visir_old_spc_obs_ech.param.nod = "NONE"
visir_old_spc_obs_ech.param.auto_bpm = True
visir_old_spc_obs_ech.param.g = False
visir_old_spc_obs_ech.param.p = False
visir_old_spc_obs_ech.param.union = True
visir_old_spc_obs_ech.param.rej = "0-0"
visir_old_spc_obs_ech.param.bkgcorrect = True
visir_old_spc_obs_ech.param.plot = 0
visir_old_spc_obs_ech.param.slit_skew = 0.0
visir_old_spc_obs_ech.param.spectrum_skew = 0.0
visir_old_spc_obs_ech.param.vert_arc = 0.0
visir_old_spc_obs_ech.param.hori_arc = 0.0
visir_old_spc_obs_ech.param.orderoffset = 0
visir_old_spc_obs_ech.param.off = "NONE"
visir_old_spc_obs_ech.param.ref = False
visir_old_spc_obs_ech.param.objs = "NONE"
visir_old_spc_obs_ech.param.xcorr = "10-10-25-25"
visir_old_spc_obs_ech.param.fixcombi = False
visir_old_spc_obs_ech.param.emis_tol = 1.0
visir_old_spc_obs_ech.param.destripe_iterations = 15
visir_old_spc_obs_ech.param.destripe_morpho = False
visir_old_spc_obs_ech.param.rl = 0
visir_old_spc_obs_ech.param.rr = 0
visir_old_spc_obs_ech.param.ro_noise = 14.5
visir_old_spc_obs_ech.param.ox_sigma = 5.0
visir_old_spc_obs_ech.param.ox_niters = 2
visir_old_spc_obs_ech.param.ox_smooth = 31
visir_old_spc_obs_ech.param.gain = 0.75
visir_old_spc_obs_ech.param.ox_kernel = 3
You may also set or overwrite some or all parameters by the recipe parameter param, as shown in the following example:
import cpl
visir_old_spc_obs_ech = cpl.Recipe("visir_old_spc_obs_ech")
[...]
res = visir_old_spc_obs_ech( ..., param = {"nod":"NONE", "auto_bpm":True})
See also
cpl.Recipe for more information about the recipe object.
Bug reports¶
Please report any problems to Lars Lundin. Alternatively, you may send a report to the ESO User Support Department.
Copyright¶
This file is part of the VISIR Instrument Pipeline Copyright (C) 2004, 2005 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
Code author: Lars Lundin <https://support.eso.org>