The muse_flat recipe

muse_flat

Synopsis

Combine several separate flat images into one master flat file, trace slice locations, and locate dark pixels.

Description

This recipe combines several separate flat-field images into one master flat-field file and traces the location of the slices on the CCD. The master flat contains the combined pixel values of the raw flat exposures, with respect to the image combination method used, normalized to the mean flux. The trace table contains polynomials defining the location of the slices on the CCD. Processing trims the raw data and records the overscan statistics, subtracts the bias (taking account of the overscan, if –overscan is not “none”), and optionally, the dark from each raw input image, converts them from adu to count, scales them according to their exposure time, and combines the exposures using input parameters. To trace the position of the slices on the CCD, their edges are located using a threshold method. The edge detection is repeated at given intervals thereby tracing the central position (the mean of both edges) and width of each slit vertically across the CCD. Deviant positions of detections on CCD rows can be detected and excluded before fitting a polynomial to all positions measured for one slice. The polynomial parameters for each slice are saved in the output trace table. Finally, the area between the now known slice edges is searched for dark (and bright) pixels, using statistics in each row of the master flat.

Constructor

cpl.Recipe("muse_flat")

Create an object for the recipe muse_flat.

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

Parameters

muse_flat.param.nifu

IFU to handle. If set to 0, all IFUs are processed serially. If set to -1, all IFUs are processed in parallel. (int; default: 0) [default=0].

muse_flat.param.overscan

If this is “none”, stop when detecting discrepant overscan levels (see ovscsigma), for “offset” it assumes that the mean overscan level represents the real offset in the bias levels of the exposures involved, and adjusts the data accordingly; for “vpoly”, a polynomial is fit to the vertical overscan and subtracted from the whole quadrant. (str; default: ‘vpoly’) [default=”vpoly”].

muse_flat.param.ovscreject

This influences how values are rejected when computing overscan statistics. Either no rejection at all (“none”), rejection using the DCR algorithm (“dcr”), or rejection using an iterative constant fit (“fit”). (str; default: ‘dcr’) [default=”dcr”].

muse_flat.param.ovscsigma

If the deviation of mean overscan levels between a raw input image and the reference image is higher than |ovscsigma x stdev|, stop the processing. If overscan=”vpoly”, this is used as sigma rejection level for the iterative polynomial fit (the level comparison is then done afterwards with |100 x stdev| to guard against incompatible settings). Has no effect for overscan=”offset”. (float; default: 30.0) [default=30.0].

muse_flat.param.ovscignore

The number of pixels of the overscan adjacent to the data section of the CCD that are ignored when computing statistics or fits. (int; default: 3) [default=3].

muse_flat.param.combine

Type of combination to use (str; default: ‘sigclip’) [default=”sigclip”].

muse_flat.param.nlow

Number of minimum pixels to reject with minmax (int; default: 1) [default=1].

muse_flat.param.nhigh

Number of maximum pixels to reject with minmax (int; default: 1) [default=1].

muse_flat.param.nkeep

Number of pixels to keep with minmax (int; default: 1) [default=1].

muse_flat.param.lsigma

Low sigma for pixel rejection with sigclip (float; default: 3.0) [default=3.0].

muse_flat.param.hsigma

High sigma for pixel rejection with sigclip (float; default: 3.0) [default=3.0].

muse_flat.param.scale

Scale the individual images to a common exposure time before combining them. (bool; default: True) [default=True].

muse_flat.param.normalize

Normalize the master flat to the average flux (bool; default: True) [default=True].

muse_flat.param.trace

Trace the position of the slices on the master flat (bool; default: True) [default=True].

muse_flat.param.nsum

Number of lines over which to average when tracing (int; default: 32) [default=32].

muse_flat.param.order

Order of polynomial fit to the trace (int; default: 5) [default=5].

muse_flat.param.edgefrac

Fractional change required to identify edge when tracing (float; default: 0.5) [default=0.5].

muse_flat.param.losigmabadpix

Low sigma to find dark pixels in the master flat (float; default: 5.0) [default=5.0].

muse_flat.param.hisigmabadpix

High sigma to find bright pixels in the master flat (float; default: 5.0) [default=5.0].

muse_flat.param.samples

Create a table containing all tracing sample points. (bool; default: False) [default=False].

muse_flat.param.merge

Merge output products from different IFUs into a common file. (bool; default: False) [default=False].

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

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

muse_flat.param.nifu = 0
muse_flat.param.overscan = "vpoly"
muse_flat.param.ovscreject = "dcr"
muse_flat.param.ovscsigma = 30.0
muse_flat.param.ovscignore = 3
muse_flat.param.combine = "sigclip"
muse_flat.param.nlow = 1
muse_flat.param.nhigh = 1
muse_flat.param.nkeep = 1
muse_flat.param.lsigma = 3.0
muse_flat.param.hsigma = 3.0
muse_flat.param.scale = True
muse_flat.param.normalize = True
muse_flat.param.trace = True
muse_flat.param.nsum = 32
muse_flat.param.order = 5
muse_flat.param.edgefrac = 0.5
muse_flat.param.losigmabadpix = 5.0
muse_flat.param.hisigmabadpix = 5.0
muse_flat.param.samples = False
muse_flat.param.merge = False

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

import cpl
muse_flat = cpl.Recipe("muse_flat")
[...]
res = muse_flat( ..., param = {"nifu":0, "overscan":"vpoly"})

See also

cpl.Recipe for more information about the recipe object.

Bug reports

Please report any problems to Peter Weilbacher (based on Joris Gerssen’s draft). Alternatively, you may send a report to the ESO User Support Department.