SINFONI Pipeline Reference Manual  2.5.2
sinfo_bad_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 : bad_cfg.h
22  Author : Juergen Schreiber
23  Created on : October 2001
24  Description : bad_ini definitions + handling prototypes
25 
26  ---------------------------------------------------------------------------*/
27 #ifndef SINFO_BAD_CFG_H
28 #define SINFO_BAD_CFG_H
29 /*---------------------------------------------------------------------------
30  Includes
31  ---------------------------------------------------------------------------*/
32 #include <stdlib.h>
33 #include "sinfo_globals.h"
34 #include <cpl.h>
35 
36 /*---------------------------------------------------------------------------
37  Defines
38  ---------------------------------------------------------------------------*/
39 /*---------------------------------------------------------------------------
40  New types
41  ---------------------------------------------------------------------------*/
42 /*
43  bad pixels search blackboard container
44 
45  This structure holds all information related to the bad pixels search
46  routine. It is used as a container for the flux of ancillary data,
47  computed values, and algorithm status. Pixel flux is separated from
48  the blackboard.
49  */
50 
51 typedef struct bad_config {
52 /*-------General---------*/
53  char inFile[FILE_NAME_SZ] ; /* file name of the file containing
54  the list of all input frames */
55  char outName[FILE_NAME_SZ] ; /* output name of resulting bad pixel
56  mask (fits file)*/
57  char ** framelist ; /* list of frames */
58  int nframes ; /* number of frames in frame list */
59 
60 /*------ BadPix ------*/
61  /* factor of noise within which the pixels are used to fit a
62  straight line to the column intensity */
63  float sigmaFactor ;
64  /* factor of calculated standard deviation beyond which the
65  deviation of a pixel value from the
66  median of the 8 nearest neighbors declares a pixel as bad */
67  float factor ;
68  /* number of iterations of sinfo_median filter */
69  int iterations ;
70  /* percentage of extreme pixel value to reject when calculating
71  the mean and stdev */
72  float loReject ;
73  float hiReject ;
74  /* pixel coordinate of lower left edge of a rectangle zone from
75  which image statistics are computed */
76  int llx ;
77  int lly ;
78  /* pixel coordinate of upper right edge of a rectangle zone from
79  which image statistics are computed */
80  int urx ;
81  int ury ;
82 /*------ Thresh ------*/
83  /* indicates if the values beyond threshold values should
84  be marked as bad before proceeding
85  to sinfo_median filtering */
86  int threshInd ;
87  /* factor to the clean standard deviation to define the
88  threshold deviation from the clean mean */
89  float meanfactor ;
90  /* minimum vlaue of good data */
91  float mincut ;
92  /* maximum vlaue of good data */
93  float maxcut ;
94  /* indicates which method will be used */
95  int methodInd ;
96 } bad_config ;
97 
98 /*---------------------------------------------------------------------------
99  Function prototypes
100  ---------------------------------------------------------------------------*/
101 
102 
110 bad_config *
111 sinfo_bad_cfg_create(void);
112 
113 
120 void
121 sinfo_bad_cfg_destroy(bad_config * sc);
122 
123 
124 #endif