GRAVI Pipeline Reference Manual  1.2.3
gravi_dfs.h
1 /* $Id: gravi_dfs.h,v 1.9 2011/04/31 06:10:40 nazouaoui Exp $
2  *
3  * This file is part of the GRAVI Pipeline
4  * Copyright (C) 2002,2003 European Southern Observatory
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19  */
20 
21 /*
22  * History
23  * 12/11/2018 add cpl_frameset * gravi_frameset_extract_static_param
24  * add STATIC_PARAM
25  * 04/12/2018 add cpl_frameset * gravi_frameset_extract_wave_param (cpl_frameset * frameset);
26  * add WAVE_PARAM
27  */
28 #ifndef GRAVI_DFS_H
29 #define GRAVI_DFS_H
30 
31 /*-----------------------------------------------------------------------------
32  Define
33  -----------------------------------------------------------------------------*/
34 
35 /* Flag for recipe helps */
36 #define GRAVI_UNOFFERED "*UNOFFERED* "
37 #define GRAVI_RECIPE_FLOW "\nReduction steps:\n---------------------"
38 #define GRAVI_RECIPE_INPUT "\nDO.CATG in input SoF:\n---------------------"
39 #define GRAVI_RECIPE_OUTPUT "\nPRO.CATG of products:\n---------------------"
40 
41 
42 /* DO.CATG for RAW data */
43 #define GRAVI_PIEZOTF_RAW "PIEZOTF_RAW"
44 #define GRAVI_P2VM_RAW "P2VM_RAW"
45 #define GRAVI_DISP_RAW "DISP_RAW"
46 #define GRAVI_DARK_RAW "DARK_RAW"
47 #define GRAVI_WAVE_RAW "WAVE_RAW"
48 #define GRAVI_WAVESC_RAW "WAVESC_RAW"
49 #define GRAVI_WAVELAMP_RAW "WAVELAMP_RAW"
50 #define GRAVI_FLAT_RAW "FLAT_RAW"
51 #define GRAVI_SINGLE_CALIB_RAW "SINGLE_CAL_RAW"
52 #define GRAVI_SINGLE_SCIENCE_RAW "SINGLE_SCI_RAW"
53 #define GRAVI_DUAL_CALIB_RAW "DUAL_CAL_RAW"
54 #define GRAVI_DUAL_SCIENCE_RAW "DUAL_SCI_RAW"
55 #define GRAVI_DUAL_SKY_RAW "DUAL_SKY_RAW"
56 #define GRAVI_SINGLE_SKY_RAW "SINGLE_SKY_RAW"
57 
58 /* PRO.CATG / DO.CATG for intermediate product */
59 #define GRAVI_DISP_VIS "DISP_VIS"
60 #define GRAVI_PREPROC "PREPROC"
61 #define GRAVI_SPECTRUM "SPECTRUM"
62 #define GRAVI_P2VMRED_SINGLE_CALIB "SINGLE_CAL_P2VMRED"
63 #define GRAVI_P2VMRED_SINGLE_SCIENCE "SINGLE_SCI_P2VMRED"
64 #define GRAVI_P2VMRED_DUAL_CALIB "DUAL_CAL_P2VMRED"
65 #define GRAVI_P2VMRED_DUAL_SCIENCE "DUAL_SCI_P2VMRED"
66 #define GRAVI_ASTROREDUCED "ASTROREDUCED"
67 #define GRAVI_KEY_PATCH "KEY_PATCH"
68 #define GRAVI_STATIC_PARAM "STATIC_PARAM"
69 #define GRAVI_WAVE_PARAM "WAVE_PARAM"
70 
71 /* PRO.CATG / DO.CATG for calibration product */
72 #define GRAVI_BAD_MAP "BAD"
73 #define GRAVI_FLAT_MAP "FLAT"
74 #define GRAVI_WAVE_MAP "WAVE"
75 #define GRAVI_P2VM_MAP "P2VM"
76 #define GRAVI_DARK_MAP "DARK"
77 #define GRAVI_EOP_MAP "EOP_PARAM"
78 #define GRAVI_DISP_MODEL "DISP_MODEL"
79 #define GRAVI_DIAMETER_CAT "DIAMETER_CAT"
80 #define GRAVI_DIODE_POSITION "DIODE_POSITION"
81 #define GRAVI_NAB_CAL "NAB_CAL"
82 #define GRAVI_DEBUG_MAP "DEBUG"
83 #define GRAVI_BIASMASK_MAP "BIASMASK"
84 #define GRAVI_WAVELAMP_MAP "WAVELAMP"
85 #define GRAVI_PIEZOTF_MAP "PIEZOTF"
86 
87 #define GRAVI_SINGLE_SKY_MAP "SINGLE_SKY"
88 #define GRAVI_DUAL_SKY_MAP "DUAL_SKY"
89 
90 #define GRAVI_FLAT_ACQ_MAP "FLAT_ACQ"
91 #define GRAVI_BAD_ACQ_MAP "BAD_ACQ"
92 
93 /* PRO.CATG / DO.CATG for Visibility product */
94 #define GRAVI_VIS_SINGLE_SCIENCE "SINGLE_SCI_VIS"
95 #define GRAVI_VIS_SINGLE_CALIB "SINGLE_CAL_VIS"
96 #define GRAVI_VIS_DUAL_SCIENCE "DUAL_SCI_VIS"
97 #define GRAVI_VIS_DUAL_CALIB "DUAL_CAL_VIS"
98 
99 #define GRAVI_VIS_SINGLE_CALIBRATED "SINGLE_SCI_VIS_CALIBRATED"
100 #define GRAVI_VIS_DUAL_CALIBRATED "DUAL_SCI_VIS_CALIBRATED"
101 #define GRAVI_VIS_CALIBRATED(data_mode) (data_mode==MODE_DUAL?GRAVI_VIS_DUAL_CALIBRATED:GRAVI_VIS_SINGLE_CALIBRATED)
102 
103 /* PRO.CATG / DO.CATG for Transfer Function product */
104 #define GRAVI_TF_SINGLE_CALIB "SINGLE_CAL_TF"
105 #define GRAVI_TF_SINGLE_SCIENCE "SINGLE_SCI_TF"
106 #define GRAVI_TF_SCIENCE(data_mode) (data_mode==MODE_DUAL?GRAVI_TF_DUAL_SCIENCE:GRAVI_TF_SINGLE_SCIENCE)
107 
108 #define GRAVI_TF_DUAL_SCIENCE "DUAL_SCI_TF"
109 #define GRAVI_TF_DUAL_CALIB "DUAL_CAL_TF"
110 #define GRAVI_TF_CALIB(data_mode) (data_mode==MODE_DUAL?GRAVI_TF_DUAL_CALIB:GRAVI_TF_SINGLE_CALIB)
111 
112 /* Still unsuported data */
113 #define GRAVI_ZP_CAL "ZP_CAL"
114 #define GRAVI_MIRA_INPUT_PROCATG "VIS_CALIBRATED"
115 #define GRAVI_MIRA_OUTPUT_PROCATG "IMAGE"
116 
117 /*-----------------------------------------------------------------------------
118  Public prototypes
119  -----------------------------------------------------------------------------*/
120 
121 void gravity_print_banner (void);
122 
123 cpl_error_code gravi_dfs_set_groups(cpl_frameset *);
124 
125 cpl_error_code gravi_parameter_disable (cpl_parameter * p);
126 
127 cpl_parameter * gravi_parameter_add_badpix (cpl_parameterlist *self);
128 cpl_parameter * gravi_parameter_add_profile (cpl_parameterlist *self);
129 cpl_parameter * gravi_parameter_add_preproc (cpl_parameterlist *self);
130 cpl_parameter * gravi_parameter_add_wave (cpl_parameterlist *self);
131 cpl_parameter * gravi_parameter_add_metrology (cpl_parameterlist *self);
132 
133 cpl_parameter * gravi_parameter_add_static_name (cpl_parameterlist *self);
134 cpl_parameter * gravi_parameter_add_debug_file (cpl_parameterlist *self);
135 cpl_parameter * gravi_parameter_add_biassub_file (cpl_parameterlist *self);
136 cpl_parameter * gravi_parameter_add_spectrum_file (cpl_parameterlist *self);
137 cpl_parameter * gravi_parameter_add_preproc_file (cpl_parameterlist *self);
138 cpl_parameter * gravi_parameter_add_p2vmred_file (cpl_parameterlist *self);
139 cpl_parameter * gravi_parameter_add_vis_file (cpl_parameterlist *self);
140 cpl_parameter * gravi_parameter_add_astro_file (cpl_parameterlist *self);
141 
142 cpl_parameter * gravi_parameter_add_biasmethod (cpl_parameterlist *self);
143 cpl_parameter * gravi_parameter_add_extract (cpl_parameterlist *self);
144 
145 cpl_parameter * gravi_parameter_add_average_vis (cpl_parameterlist *self);
146 cpl_parameter * gravi_parameter_add_force_uncertainties (cpl_parameterlist *self);
147 
148 cpl_error_code gravi_parameter_add_compute_snr (cpl_parameterlist *self, int isCalib);
149 cpl_error_code gravi_parameter_add_compute_signal (cpl_parameterlist *self, int isCalib);
150 cpl_error_code gravi_parameter_add_rejection (cpl_parameterlist *self, int iscalib);
151 cpl_error_code gravi_parameter_add_compute_vis (cpl_parameterlist *self, int iscalib);
152 cpl_error_code gravi_parameter_add_image (cpl_parameterlist *self);
153 
154 cpl_frameset * gravi_frameset_extract (cpl_frameset * frameset, const char ** frame_tags, int nb_tabs);
155 cpl_frameset * gravi_frameset_extract_wave_map(cpl_frameset * );
156 cpl_frameset * gravi_frameset_extract_bad_map(cpl_frameset * );
157 cpl_frameset * gravi_frameset_extract_biasmask_map(cpl_frameset * );
158 cpl_frameset * gravi_frameset_extract_dark_data (cpl_frameset * );
159 cpl_frameset * gravi_frameset_extract_dark_map(cpl_frameset * );
160 cpl_frameset * gravi_frameset_extract_p2vm_data(cpl_frameset * );
161 cpl_frameset * gravi_frameset_extract_disp_data(cpl_frameset * );
162 cpl_frameset * gravi_frameset_extract_wave_data(cpl_frameset * );
163 cpl_frameset * gravi_frameset_extract_wavesc_data(cpl_frameset * );
164 cpl_frameset * gravi_frameset_extract_flat_data(cpl_frameset * );
165 cpl_frameset * gravi_frameset_extract_flat_map(cpl_frameset * );
166 cpl_frameset * gravi_frameset_extract_p2vm_map(cpl_frameset * );
167 cpl_frameset * gravi_frameset_extract_tf_calib (cpl_frameset * );
168 cpl_frameset * gravi_frameset_extract_vis_calib (cpl_frameset * );
169 cpl_frameset * gravi_frameset_extract_vis_science (cpl_frameset * );
170 cpl_frameset * gravi_frameset_extract_sky_data(cpl_frameset * );
171 cpl_frameset * gravi_frameset_extract_wavelamp_data(cpl_frameset * );
172 cpl_frameset * gravi_frameset_extract_dispvis_data(cpl_frameset * );
173 cpl_frameset * gravi_frameset_extract_wavelamp_map(cpl_frameset * frameset);
174 cpl_frameset * gravi_frameset_extract_disp_map (cpl_frameset * frameset);
175 cpl_frameset * gravi_frameset_extract_met_pos (cpl_frameset * frameset);
176 cpl_frameset * gravi_frameset_extract_fringe_data (cpl_frameset * frameset);
177 cpl_frameset * gravi_frameset_extract_p2vmred_data (cpl_frameset * frameset);
178 cpl_frameset * gravi_frameset_extract_piezotf_data (cpl_frameset * frameset);
179 cpl_frameset * gravi_frameset_extract_diamcat_map (cpl_frameset * frameset);
180 cpl_frameset * gravi_frameset_extract_eop_map (cpl_frameset * frameset);
181 cpl_frameset * gravi_frameset_extract_patch (cpl_frameset * frameset);
182 cpl_frameset * gravi_frameset_extract_static_param (cpl_frameset * frameset);
183 cpl_frameset * gravi_frameset_extract_wave_param (cpl_frameset * frameset);
184 
185 const char * gravi_param_get_string (const cpl_parameterlist * parlist, const char * name);
186 double gravi_param_get_double (const cpl_parameterlist *, const char *);
187 int gravi_param_get_bool (const cpl_parameterlist *, const char *);
188 int gravi_param_get_int (const cpl_parameterlist *, const char *);
189 
190 double gravi_param_get_double_default (const cpl_parameterlist *, const char *, double);
191 int gravi_param_get_bool_default (const cpl_parameterlist *, const char *, int);
192 int gravi_param_get_int_default (const cpl_parameterlist *, const char *, int);
193 const char * gravi_param_get_string_default (const cpl_parameterlist * parlist, const char * name, const char * def);
194 
195 cpl_error_code gravi_check_frameset (cpl_frameset *frameset, const char * tag, int min, int max);
196 
197 #endif
cpl_parameter * gravi_parameter_add_badpix(cpl_parameterlist *self)
Add badpix parameters to the input parameter list.
Definition: gravi_dfs.c:187
cpl_frameset * gravi_frameset_extract_dark_data(cpl_frameset *)
Extract DARK_RAW frame from the input frameset.
Definition: gravi_dfs.c:913
cpl_parameter * gravi_parameter_add_preproc(cpl_parameterlist *self)
Add preprocessing parameters to the input parameter list.
Definition: gravi_dfs.c:264
cpl_error_code gravi_dfs_set_groups(cpl_frameset *)
Set the group as RAW or CALIB in a frameset.
Definition: gravi_dfs.c:78
cpl_frameset * gravi_frameset_extract(cpl_frameset *frameset, const char **frame_tags, int nb_tabs)
Extract a list of tags from a frameset.
Definition: gravi_dfs.c:855
double gravi_param_get_double_default(const cpl_parameterlist *, const char *, double)
Get the parameter from the parameter list.
Definition: gravi_dfs.c:1045
cpl_error_code gravi_parameter_disable(cpl_parameter *p)
Disable a parameter.
Definition: gravi_dfs.c:169
cpl_parameter * gravi_parameter_add_profile(cpl_parameterlist *self)
Add profile parameters to the input parameter list.
Definition: gravi_dfs.c:212
cpl_error_code gravi_parameter_add_rejection(cpl_parameterlist *self, int iscalib)
Add rejection parameters to the input parameter list.
Definition: gravi_dfs.c:593
cpl_frameset * gravi_frameset_extract_p2vm_data(cpl_frameset *)
Extract P2VM_RAW frame from the input frameset.
Definition: gravi_dfs.c:895
cpl_parameter * gravi_parameter_add_wave(cpl_parameterlist *self)
Add wavelength calibration parameters to the input parameter list.
Definition: gravi_dfs.c:290