The xsh_flexcomp recipe

xsh_flexcomp

Synopsis

Compute the flexure of the instrument

Description

This recipe computes the flexure of the instrument and correct CAL files.

Input Frames :
  • [UVB, VIS] One RAW frame (Format = RAW, Tag = AFF_ATT_arm)

  • [NIR] Two RAW frames ((Format = RAW, Tag = AFC_ATT_arm_ON,AFC_ATT_arm_OFF)

  • An arc line list (Format = TABLE, Tag = ARC_LINE_LIST_AFC_arm)

  • A spectral format table frame (Format = TABLE, Tag = SPECTRAL_FORMAT_TAB_arm)

  • [UVB,VIS] A master bias (Format = PRE, Tag = MASTER_BIAS_arm)

  • [UVB,VIS] A master dark (Format = PRE, Tag = MASTER_DARK_arm)

  • An order table frame (Format = TABLE, Tag = ORDER_TAB_EDGES_IFU_arm)

  • [OPTIONAL] A non-linear badpixel map (Tag = BP_MAP_NL_arm)

  • [OPTIONAL] A reference badpixel map (Tag = BP_MAP_RP_arm) - [poly mode] A wave solution frame (Format = TABLE, Tag = WAVE_TAB_2D_arm) - [physical model mode] A model cfg table (Format = TABLE, Tag = XSH_MOD_CFG_OPT_2D_arm)

Products :
  • [poly mode] An updated wave solution frame (Format = TABLE, Tag = WAVE_TAB_AFC_arm)

  • [physical model mode] An updated model cfg table (Format = TABLE, Tag = XSH_MOD_CFG_OPT_AFC_arm)

  • An updated order table frame (Format = TABLE, Tag = ORDER_TAB_AFC_IFU_arm)

  • [poly mode] A dispersion table frame (Format = TABLE, Tag = DISP_TAB_AFC_arm)

Constructor

cpl.Recipe("xsh_flexcomp")

Create an object for the recipe xsh_flexcomp.

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

Parameters

xsh_flexcomp.param.keep_temp

If ‘no’, temporary files are deleted. (str; default: ‘no’) [default=”no”].

xsh_flexcomp.param.debug_level

Additional xshooter debug level. One of ‘none’, ‘low’, ‘medium’, ‘high’ (str; default: ‘none’) [default=”none”].

xsh_flexcomp.param.time_stamp

Add timestamp to product file name. (bool; default: False) [default=False].

xsh_flexcomp.param.decode_bp

Integer representation of the bits to be considered bad when decoding the bad pixel mask pixel values. Most frequent codes relevant for the user: 0: good pixel, 8: pick-up noise, 16: cosmic-ray removed, 32: cosmic-ray unremoved, 128: calibration file defect, 256: hot pixel, 512: dark pixel, 4096: A/D converted saturation, 32768: non linear pixel, 1048576: extrapolated flux in NIR, 4194304: Interpolated flux during extraction. (int; default: 2144337919) [default=2144337919].

xsh_flexcomp.param.pre_overscan_corr

pre-overscan correction. 0: no correction 1: mean overscan correction 2: mean prescan correction 3: (mean pre+mean overscan)/2 correction (int; default: 1) [default=1].

xsh_flexcomp.param.detectarclines_fit_win_hsize

Half window size (HWS) in pixels for the line 2D fitting window (total window size = 2*HWS+1) (int; default: 6) [default=6].

xsh_flexcomp.param.detectarclines_search_win_hsize

Half window size (HWS) in pixels for the line search box around the expected position (total window size = 2*HWS+1) [bin units] (int; default: 3) [default=3].

xsh_flexcomp.param.detectarclines_running_median_hsize

Half window size in pixels (HWS) for the running median box (int; default: 0) [default=0].

xsh_flexcomp.param.detectarclines_wavesol_deg_lambda

Degree in lambda in the polynomial solution X=f(lambda,order,slit) and Y=f(lambda,order,slit) (POLY mode) (int; default: 5) [default=5].

xsh_flexcomp.param.detectarclines_wavesol_deg_order

Degree in order in the polynomial solution X=f(lambda,order,slit) and Y=f(lambda,order,slit) (POLY mode) (int; default: 5) [default=5].

xsh_flexcomp.param.detectarclines_min_sn

Minimum signal-to-noise ratio to filter lines [xsh_predict: UVB,VIS=5,NIR=4; xsh_2dmap: UVB=3, VIS=6, NIR=10] (float; default: 5.0) [default=5.0].

xsh_flexcomp.param.detectarclines_find_lines_center

Method used to find the center of the lines: gaussian, barycenter. Gaussian method applies a Gaussian fit to the line. Barycenter method computes the line centroid. (str; default: ‘gaussian’) [default=”gaussian”].

xsh_flexcomp.param.detectarclines_clip_sigma

Kappa value in sigma clipping during the polynomial solution fit (POLY mode) (float; default: 2.0) [default=2.0].

xsh_flexcomp.param.detectarclines_clip_niter

Number of iterations in sigma clipping during the polynomial solution fit (POLY mode) (int; default: 10) [default=10].

xsh_flexcomp.param.detectarclines_clip_frac

Minimal fractions of bad pixel allowed in sigma clipping duringthe polynomial solution fit (POLY mode) (float; default: 0.7) [default=0.7].

xsh_flexcomp.param.dispersol_deg_x

Degree in X in the polynomial dispersion solution lambda=f(X,Y) and slit=f(X,Y) (int; default: 4) [default=4].

xsh_flexcomp.param.dispersol_deg_y

Degree in Y in the polynomial dispersion solution lambda=f(X,Y) and slit=f(X,Y) (int; default: 5) [default=5].

xsh_flexcomp.param.model_maxit

Number/10 of annealing iterations if in physical model mode. (int; default: 1000) [default=1000].

xsh_flexcomp.param.model_anneal_factor

Multiplier applied to the automatic parameter ranges (i.e. when scenario!=0). For routine operations should be 1.0. (physical model mode). (float; default: 1.0) [default=1.0].

xsh_flexcomp.param.model_scenario

selects preset flag and range combinations appropriate to common scenarios: -1 - Only the position across the slit and camera focal length are open 0 - No scenario, input cfg flags and limits used. 1 - scenario appropriate for the startup recipe (large ranges for parameters affecting single ph exposures, dist coeff fixed) 2 - Like 1, but includes parameters affecting all ph positions 3 - Scenario for use in fine tuning cfg to match routine wavecal exposures. All parameters affecting 1ph exposures except dist coeffs are included and parameter ranges are small. (For use by flexcomp in 1ph case). 4 - Like 3 but includes parameters affecting all ph positions (Standard for use by flexcomp in 9ph case and 2dmap). 5 - Like 4 but includes also dist coeffs 6 - Just dist coeffs (and chipx, chipy) (int; default: 3) [default=3].

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

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

xsh_flexcomp.param.keep_temp = "no"
xsh_flexcomp.param.debug_level = "none"
xsh_flexcomp.param.time_stamp = False
xsh_flexcomp.param.decode_bp = 2144337919
xsh_flexcomp.param.pre_overscan_corr = 1
xsh_flexcomp.param.detectarclines_fit_win_hsize = 6
xsh_flexcomp.param.detectarclines_search_win_hsize = 3
xsh_flexcomp.param.detectarclines_running_median_hsize = 0
xsh_flexcomp.param.detectarclines_wavesol_deg_lambda = 5
xsh_flexcomp.param.detectarclines_wavesol_deg_order = 5
xsh_flexcomp.param.detectarclines_min_sn = 5.0
xsh_flexcomp.param.detectarclines_find_lines_center = "gaussian"
xsh_flexcomp.param.detectarclines_clip_sigma = 2.0
xsh_flexcomp.param.detectarclines_clip_niter = 10
xsh_flexcomp.param.detectarclines_clip_frac = 0.7
xsh_flexcomp.param.dispersol_deg_x = 4
xsh_flexcomp.param.dispersol_deg_y = 5
xsh_flexcomp.param.model_maxit = 1000
xsh_flexcomp.param.model_anneal_factor = 1.0
xsh_flexcomp.param.model_scenario = 3

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

import cpl
xsh_flexcomp = cpl.Recipe("xsh_flexcomp")
[...]
res = xsh_flexcomp( ..., param = {"keep_temp":"no", "debug_level":"none"})

See also

cpl.Recipe for more information about the recipe object.

Bug reports

Please report any problems to P.Goldoni, L.Guglielmi, R. Haigron, F. Royer. Alternatively, you may send a report to the ESO User Support Department.