SINFONI Pipeline Reference Manual  2.6.0
sinfo_flat_cfg.h
1 /*
2  * This file is part of the ESO SINFONI Pipeline
3  * Copyright (C) 2004,2005 European Southern Observatory
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, 51 Franklin St, Fifth Floor, Boston, MA 02111-1307 USA
18  */
19 /*---------------------------------------------------------------------------
20 
21  File name : sinfo_flat_cfg.h
22  Author : Juergen Schreiber
23  Created on : march 2002
24  Description : flat_ini definitions + handling prototypes
25  ---------------------------------------------------------------------------*/
26 #ifndef SINFO_FLAT_CFG_H
27 #define SINFO_FLAT_CFG_H
28 /*---------------------------------------------------------------------------
29  Includes
30  ---------------------------------------------------------------------------*/
31 #include <stdlib.h>
32 #include <cpl.h>
33 #include "sinfo_globals.h"
34 /*---------------------------------------------------------------------------
35  Defines
36  ---------------------------------------------------------------------------*/
37 /*---------------------------------------------------------------------------
38  New types
39  ---------------------------------------------------------------------------*/
40 /*
41  prepare lamp flat fields blackboard container
42 
43  This structure holds all information related to the flatfield handling
44  routine. It is used as a container for the flux of ancillary data,
45  computed values, and algorithm status. Pixel flux is separated from
46  the blackboard.
47  */
48 
49 typedef struct flat_config {
50 /*-------General---------*/
51  char inFile[FILE_NAME_SZ] ; /* file name of the file containing the
52  list of all input frames */
53  char outName[FILE_NAME_SZ] ; /* output name of resulting fits
54  wavelength map */
55  char ** framelist ; /* list of frames */
56  int * frametype ; /* list of frame types on or off */
57  int * frameposition ; /* list of grating positions */
58  int contains_sky ; /* indicates if off or sky frames were exposed */
59  int contains_dither ; /* indicates if spectral dithering was applied */
60  int nframes ; /* number of frames in frame list */
61  int nobj ; /* number of object frames in frame list */
62  int noff ; /* number of off frames in frame list */
63  int nditherobj ; /* number of dithered object frames in frame list */
64  int nditheroff ; /* number of dithered off frames in frame list */
65 /*------ CleanMean ------*/
66  /* percentage of rejected low intensity pixels */
67  float loReject ;
68  /* percentage of rejected high intensity pixels */
69  float hiReject ;
70 /*------ BadPixel ------*/
71  /* indicator if the bad pixels of the flat field are known and
72  if they should be interpolated or not */
73  int interpolInd ;
74  /* file name of the bad pixel mask fits file */
75  char mask[FILE_NAME_SZ] ;
76  /* maximal pixel distance from the bad pixel to which valid
77  pixels are searched for*/
78  int maxRad ;
79  /* file name of the slitlet sinfo_edge position list */
80  char slitposList[FILE_NAME_SZ] ;
81 /*------ BadPix ------*/
82  /* indicator if a bad pixel mask should be generated or not */
83  int badInd ;
84  /* name of the static bad pixel mask to be generated */
85  char maskname[FILE_NAME_SZ] ;
86  /* factor of noise within which the pixels are used to fit a
87  straight line to the column intensity */
88  float sigmaFactor ;
89  /* factor of calculated standard deviation beyond which the
90  deviation of a pixel value from the
91  median of the 8 nearest neighbors declares a pixel as bad */
92  float factor ;
93  /* number of iterations of sinfo_median filter */
94  int iterations ;
95  /* percentage of extreme pixel value to reject when calculating
96  the mean and stdev */
97  float badLoReject ;
98  float badHiReject ;
99  /* pixel coordinate of lower left edge of a rectangle zone
100  from which image statistics are computed */
101  int llx ;
102  int lly ;
103  /* pixel coordinate of upper right edge of a rectangle zone from
104  which image statistics are computed */
105  int urx ;
106  int ury ;
107 /*------ Thresh ------*/
108  /* indicates if the values beyond threshold values should be
109  marked as bad before proceeding
110  to sinfo_median filtering */
111  int threshInd ;
112  /* factor to the clean standard deviation to define the
113  threshold deviation from the clean mean */
114  float meanfactor ;
115 
116 
117  /* QC LOG */
118 
119  /* FPN */
120  int qc_fpn_xmin1;
121  int qc_fpn_xmax1;
122  int qc_fpn_ymin1;
123  int qc_fpn_ymax1;
124 
125  int qc_fpn_xmin2;
126  int qc_fpn_xmax2;
127  int qc_fpn_ymin2;
128  int qc_fpn_ymax2;
129 
130  int qc_thresh_min;
131  int qc_thresh_max;
132 
133 
134 } flat_config ;
135 
136 /*---------------------------------------------------------------------------
137  Function prototypes
138  ---------------------------------------------------------------------------*/
146 flat_config *
147 sinfo_flat_cfg_create(void);
155 void
156 sinfo_flat_cfg_destroy(flat_config * sc);
157 
158 #endif