soxs_disp_solution¶
The soxs_disp_solution recipe generates a first-guess dispersion solution for the instrument (measured along the central trace for each echelle order).
Input¶
Data Type |
Content |
Related OB |
|---|---|---|
FITS Image |
Arc Lamp through single pinhole mask |
|
FITS Image |
Master Dark Frame (VIS only, optional) |
- |
FITS Image |
Master Bias Frame (VIS only) |
- |
FITS Image |
Dark frame (Lamp-Off) of equal exposure length as single pinhole frame (Lamp-On) (NIR only) |
|
Data Type |
Content |
|---|---|
FITS images |
Default bad-pixel map |
FITS Binary Table |
A spectral format table for the detector, giving the minimum and maximum wavelengths covered by each spectral order. |
FITS Binary Table |
An arc-lamp line list. This table gives the predicted x, y pixel position that each arc line is expected to appear near for each spectral order and pinhole in the multi-pinhole mask. |
Parameters¶
Parameter |
Description |
Type |
Entry Point |
Related Util |
|---|---|---|---|---|
|
the size of the square window used to search for an arc-lamp emission line, centred on the predicted pixel position of the line |
int |
settings file |
|
|
minimum significance required for arc-line to be considered ‘detected’ |
float |
settings file |
|
|
degree of echelle order number component of global polynomial fit to the dispersion solution [x, y] |
int/list |
settings file or command-line |
|
|
degree of wavelength component of global polynomial fit to the dispersion solution [x, y] |
int/list |
settings file or command-line |
|
|
number of sigma-clipping iterations to perform before settling on a polynomial fit for the dispersion solution |
int |
settings file |
|
|
sigma clipping limit when fitting global polynomial to the dispersion solution |
float |
settings file |
Method¶
After preparing and calibrating the single-pinhole arc-lamp frame, the create_dispersion_map) util is employed to detect and measure the positions of the arc lines on the frame. Once the line positions have been measured, a dispersion solution is generated by iteratively fitting a global polynomial against the observed line positions (see create_dispersion_map for details). The algorithm used in the soxs_disp_solution recipe is shown in Fig. 43. Note that saturated arc-lines are either absent from the input line-list file or get clipped during the fitting process and so are not included in the final dispersion solution fitting.
Fig. 43 The soxs_disp_solution recipe algorithm. At the top of the diagram, NIR input data is found on the right and VIS on the left.¶
Output¶
Label |
Content |
Data Type |
PRO CATG |
PRO TYPE |
PRO TECH |
|---|---|---|---|---|---|
|
first pass dispersion solution |
FITS Table |
|
|
|
|
dispersion solution fitted lines |
FITS Table |
- |
- |
- |
|
undetected arc lines |
FITS Table |
- |
- |
- |
|
dispersion solution QC plots |
- |
- |
- |
QC Metrics¶
Label |
Description |
Unit |
Acceptable Range |
|---|---|---|---|
|
Total number of detected lines clipped during solution fitting |
lines |
- |
|
Number of lines detected in single pinhole frame |
lines |
- |
|
Proportion of input line-list lines detected on single pinhole frame |
VIS: [0.9,1.0], NIR: [0.9,1.0] |
|
|
Total number of line in single line-list |
lines |
- |
|
Proportion of good, unclipped lines in single pinhole frame |
lines |
- |
|
Maximum residual in fitting of pinholes along x-axis (global) |
pixels |
- |
|
Minimum residual in fitting of pinholes along x-axis (global) |
pixels |
- |
|
Median of absolute residuals in fitting of pinholes along x-axis (global) |
pixels |
VIS: [0.0,0.15], NIR: [0.0,0.35] |
|
Std-dev of residuals in fitting of pinholes along x-axis (global) |
pixels |
VIS: [0,0.4], NIR: [0,1.0] |
|
Maximum residual in fitting of pinholes along y-axis (global) |
pixels |
- |
|
Minimum residual in fitting of pinholes along y-axis (global) |
pixels |
- |
|
Median of absolute residuals in fitting of pinholes along y-axis (global) |
pixels |
VIS: [0.0,0.9], NIR: [0.0,0.13] |
|
Std-dev of residuals in fitting of pinholes along y-axis (global) |
pixels |
VIS: [0,1.2], NIR: [0,0.25] |
|
Maximum residual in fitting of pinholes (global) |
pixels |
- |
|
Minimum residual in fitting of pinholes (global) |
pixels |
- |
|
Median residual in fitting of pinholes (global) |
pixels |
NIR: [0,1.0] |
|
Std-dev of residuals in fitting of pinholes (global) |
pixels |
VIS: [0,1.5], NIR: [0,1.0] |
|
Median difference between observed and predicted pinhole detector locations along the x-axis (global) |
pixels |
- |
|
Std-dev in difference between observed and predicted pinhole detector locations along the x-axis (global) |
pixels |
VIS: [0,3.0], NIR: [0,1.3] |
|
Median difference between observed and predicted pinhole detector locations along the y-axis (global) |
pixels |
- |
|
Std-dev in difference between observed and predicted pinhole detector locations along the y-axis (global) |
pixels |
VIS: [0,10.0], NIR: [0,1.5] |
|
Median difference between observed and predicted pinhole detector locations (global) |
pixels |
NIR: [0,6.0] |
|
Std-dev of difference between observed and predicted pinhole detector locations (global) |
pixels |
NIR: [0,1.9] |
|
Median FWHM of detected lines in pinhole frames (global) |
pixels |
VIS: [1.60,1.75], NIR: [1.75,1.89] |
|
Std-dev in FWHM of detected lines in pinhole frames (global) |
pixels |
VIS: [0.1,0.2], NIR: [0,0.211] |
|
Median spectral resolution measured from detected lines in pinhole frames (global) |
- |
|
|
Maximum residual in fitting of pinholes along x-axis (order N) |
pixels |
- |
|
Minimum residual in fitting of pinholes along x-axis (order N) |
pixels |
- |
|
Median of absolute residuals in fitting of pinholes along x-axis (order N) |
pixels |
- |
|
Std-dev of residuals in fitting of pinholes along x-axis (order N) |
pixels |
- |
|
Maximum residual in fitting of pinholes along y-axis (order N) |
pixels |
- |
|
Minimum residual in fitting of pinholes along y-axis (order N) |
pixels |
- |
|
Median of absolute residuals in fitting of pinholes along y-axis (order N) |
pixels |
- |
|
Std-dev of residuals in fitting of pinholes along y-axis (order N) |
pixels |
- |
|
Maximum residual in fitting of pinholes (order N) |
pixels |
- |
|
Minimum residual in fitting of pinholes (order N) |
pixels |
- |
|
Std-dev of residuals in fitting of pinholes along (order N) |
pixels |
- |
|
Median difference between observed and predicted pinhole detector locations along the x-axis (order N) |
pixels |
- |
|
Std-dev in difference between observed and predicted pinhole detector locations along the x-axis (order N) |
pixels |
- |
|
Median difference between observed and predicted pinhole detector locations along the y-axis (order N) |
pixels |
- |
|
Std-dev in difference between observed and predicted pinhole detector locations along the y-axis (order N) |
pixels |
- |
|
Median difference between observed and predicted pinhole detector locations (order N) |
pixels |
- |
|
Median FWHM of detected lines in pinhole frames (order N) |
pixels |
- |
|
Std-dev in FWHM of detected lines in pinhole frames (order N) |
pixels |
- |
|
Median spectral resolution measured from detected lines in pinhole frames (order N) |
- |
The typical solution for the soxs_disp_solution recipe has sub-pixel residuals.
Fig. 44 A QC plot resulting from the soxs_disp_solution recipe as run on a SOXS NIR single pinhole arc lamp frame. A ‘good’ dispersion solution will have sub-pixel residuals (mean residuals \(<\) 0.5 pixels). The top-left panel shows an SOXS NIR arc-lamp frame, taken with a single pinhole mask. The green circles represent arc lines detected in the image, and the blue circles and red crosses were detected but dropped due to poor DAOStarFinder fitting or clipped during the polynomial fitting, respectively. The grey circles represent arc lines reported in the static calibration table that failed to be detected on the image. The bottom-left panel shows the same arc-lamp frame with the dispersion solution overlaid at the pixel locations modelled for the original lines in the line list. The top-right panels shows the residuals of the dispersion solution fit, and the final panels (bottom-right) the resolution measured for each line (as projected through the pinhole mask) with different colours for each echelle order and the mean order resolution in black.¶
Recipe API¶
- class soxs_disp_solution(log, settings=False, inputFrames=[], verbose=False, overwrite=False, polyOrders=False, command=False, debug=False, turnOffMP=False)[source]¶
Bases:
soxspipe.recipes.base_recipe.base_recipegenerate a first approximation of the dispersion solution from single pinhole frames
Key Arguments
log– loggersettings– the settings dictionaryinputFrames– input fits frames. Can be a directory, a set-of-files (SOF) file or a list of fits frame paths.verbose– verbose. True or False. Default Falseoverwrite– overwrite the product file if it already exists. Default FalsepolyOrders– the orders of the x-y polynomials used to fit the dispersion solution. Overrides parameters found in the yaml settings file. e.g 345400 is order_x=3, order_y=4 ,wavelength_x=5 ,wavelength_y=4. Default False.command– the command called to run the recipedebug– debug mode. True or False. Default FalseturnOffMP– turn off multiprocessing. True or False. Default False. If True, multiprocessing will be turned off and the recipe will run in serial. This is useful for debugging.
Usage
from soxspipe.recipes import soxs_disp_solution disp_map_path = soxs_disp_solution( log=log, settings=settings, inputFrames=sofPath ).produce_product()
Initialization
- produce_product()[source]¶
generate a fisrt guess of the dispersion solution
Return:
productPath– the path to the first guess dispersion map