The visir_util_detect_shift recipe

visir_util_detect_shift

Synopsis

2012

Description

Detects beams in a background subtracted multi-beam image, determines the shifts between different images and their correlation. Images can be rejected if their correlation is bad.

The files listed in the Set Of Frames (sof-file) must be tagged: VISIR-chopnod-corrected-file.fits BKG_CORRECTED bad-pixel-mask.fits STATIC_MASK The output consists of single beam images of the size of the throw. The shifts will be written int CRPIX[12].

Constructor

cpl.Recipe("visir_util_detect_shift")

Create an object for the recipe visir_util_detect_shift.

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

Parameters

visir_util_detect_shift.param.template

Correlation template used to detect shifts and reject bad images. If none given an averaged image is used (str; default: ‘NONE’) [default=”NONE”].

visir_util_detect_shift.param.min_correlation

Minimal correlation to the template required to be accepted (float; default: 0.5) [default=0.5].

visir_util_detect_shift.param.max_shift

Maximal allowed object shift for an image to be accepted (float; default: 10.0) [default=10.0].

visir_util_detect_shift.param.max_mad

Maximal allowed median absolute deviation for an image to be accepted. <= 0 equals no limit (float; default: 0.0) [default=0.0].

visir_util_detect_shift.param.naverage

Number of planes to average before attempting to detect the shifts. (int; default: 1) [default=1].

visir_util_detect_shift.param.method

Method to determine beam shifts. xcorrelate: use the cross correlation shift. brightest: use the position of the brightest pixel (str; default: ‘xcorrelate’) [default=”xcorrelate”].

visir_util_detect_shift.param.no_shift

Sets whether to apply the determined shifts in following recipes. Set to TRUE of shifts appear too large. (bool; default: False) [default=False].

visir_util_detect_shift.param.no_reject

If true images with bad statistics will not be rejected and no shift correction is done (bool; default: True) [default=True].

visir_util_detect_shift.param.beampos

Define the positions of the beams. These positions are cut by the window to extract the single beam images. Format: sign:x,y,window;sign:x,y,window;… where sign is “pos” or “neg” depending on whether the beam is positive or negative. The window is optional and defines the size of the cut image around the beam. The default window is the chop throw. E.g.: pos:50,60;neg:50,160; By default autodetection is attempted. (str; default: ‘NONE’) [default=”NONE”].

visir_util_detect_shift.param.eccmax

The maximum eccentricity allowed in the combination of the three (in parallel nod/chopping) or four (in perpendicular nod/chopping) beams. In parallel mode, three perfectly aligned points spaced with the chopnod throw will have eccentricity 0, while in perpedicular mode a square with the chopnod throw as the side length will have eccentricity 0 (float; default: 3.0) [default=3.0].

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

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

visir_util_detect_shift.param.template = "NONE"
visir_util_detect_shift.param.min_correlation = 0.5
visir_util_detect_shift.param.max_shift = 10.0
visir_util_detect_shift.param.max_mad = 0.0
visir_util_detect_shift.param.naverage = 1
visir_util_detect_shift.param.method = "xcorrelate"
visir_util_detect_shift.param.no_shift = False
visir_util_detect_shift.param.no_reject = True
visir_util_detect_shift.param.beampos = "NONE"
visir_util_detect_shift.param.eccmax = 3.0

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

import cpl
visir_util_detect_shift = cpl.Recipe("visir_util_detect_shift")
[...]
res = visir_util_detect_shift( ..., param = {"template":"NONE", "min_correlation":0.5})

See also

cpl.Recipe for more information about the recipe object.

Bug reports

Please report any problems to Find beam positions and reject bad images. Alternatively, you may send a report to the ESO User Support Department.