NACO Pipeline Reference Manual  4.4.0
naco_pfits.h
1 /* $Id: naco_pfits.h,v 1.39 2009-11-15 21:40:34 llundin Exp $
2  *
3  * This file is part of the NACO 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., 51 Franklin St, Fifth Floor, Boston, MA 02111-1307 USA
19  */
20 
21 /*
22  * $Author: llundin $
23  * $Date: 2009-11-15 21:40:34 $
24  * $Revision: 1.39 $
25  * $Name: not supported by cvs2svn $
26  */
27 
28 #ifndef NACO_PFITS_H
29 #define NACO_PFITS_H
30 
31 /*-----------------------------------------------------------------------------
32  Includes
33  -----------------------------------------------------------------------------*/
34 
35 #include <cpl.h>
36 
37 #include "irplib_pfits.h"
38 
39 /*-----------------------------------------------------------------------------
40  Defines
41  -----------------------------------------------------------------------------*/
42 
43 #define NACO_PFITS_DOUBLE_DEC "DEC"
44 #define NACO_PFITS_DOUBLE_FOCUS "ESO AOS INS FOCU ABSPOS"
45 #define NACO_PFITS_DOUBLE_ECMEAN "ESO AOS RTC DET DST ECMEAN"
46 #define NACO_PFITS_DOUBLE_FLUXMEAN "ESO AOS RTC DET DST FLUXMEAN"
47 #define NACO_PFITS_DOUBLE_L0MEAN "ESO AOS RTC DET DST L0MEAN"
48 #define NACO_PFITS_DOUBLE_R0MEAN "ESO AOS RTC DET DST R0MEAN"
49 #define NACO_PFITS_DOUBLE_T0MEAN "ESO AOS RTC DET DST T0MEAN"
50 #define NACO_PFITS_DOUBLE_DIT "ESO DET DIT"
51 #define NACO_PFITS_STRING_MODE "ESO DET MODE NAME"
52 #define NACO_PFITS_INT_ROM "ESO DET NCORRS"
53 #define NACO_PFITS_STRING_ROM_NAME "ESO DET NCORRS NAME"
54 #define NACO_PFITS_INT_NDIT "ESO DET NDIT"
55 #define NACO_PFITS_BOOL_LAMP1 "ESO INS LAMP1 ST"
56 #define NACO_PFITS_STRING_SPECMODE "ESO SEQ SPECMODE"
57 #define NACO_PFITS_DOUBLE_CWLEN "ESO INS CWLEN"
58 #define NACO_PFITS_STRING_SLITNAME "ESO INS OPTI1 ID"
59 #define NACO_PFITS_INT_LAMP2 "ESO INS LAMP2 SET"
60 #define NACO_PFITS_STRING_OPTI3_NAME "ESO INS OPTI3 NAME"
61 #define NACO_PFITS_STRING_OPTI4_NAME "ESO INS OPTI4 NAME"
62 #define NACO_PFITS_STRING_OPTI7_NAME "ESO INS OPTI7 NAME"
63 #define NACO_PFITS_DOUBLE_PIXSCALE "ESO INS PIXSCALE"
64 #define NACO_PFITS_DOUBLE_CUMOFFSETX "ESO SEQ CUMOFFSETX"
65 #define NACO_PFITS_DOUBLE_CUMOFFSETY "ESO SEQ CUMOFFSETY"
66 #define NACO_PFITS_DOUBLE_AIRMASS_END "ESO TEL AIRM END"
67 #define NACO_PFITS_DOUBLE_AIRMASS_START "ESO TEL AIRM START"
68 #define NACO_PFITS_DOUBLE_HUMIDITY_LEVEL "ESO TEL AMBI RHUM"
69 #define NACO_PFITS_STRING_TEMPLATEID "ESO TPL ID"
70 #define NACO_PFITS_DOUBLE_EXPTIME "EXPTIME"
71 #define NACO_PFITS_STRING_OBJECT "OBJECT"
72 #define NACO_PFITS_DOUBLE_RA "RA"
73 
74 #define NACO_PFITS_STRING_OPTI4 "ESO INS OPTI4 ID"
75 #define NACO_PFITS_STRING_OPTI5 "ESO INS OPTI5 ID"
76 #define NACO_PFITS_STRING_OPTI6 "ESO INS OPTI6 ID"
77 
78 
79 /* Properties used by naco_img_zpoint */
80 #define NACO_PFITS_REGEXP_ZPOINT_PAF \
81  IRPLIB_PFITS_REGEXP_PAF "|" \
82  NACO_PFITS_DOUBLE_AIRMASS_START "|" \
83  NACO_PFITS_STRING_ROM_NAME "|" \
84  NACO_PFITS_STRING_MODE "|" \
85  NACO_PFITS_DOUBLE_DIT "|" \
86  NACO_PFITS_DOUBLE_PIXSCALE "|" \
87  NACO_PFITS_DOUBLE_RA "|" \
88  NACO_PFITS_DOUBLE_DEC "|" \
89  "ESO INS OPTI7 ID|" \
90  "ESO OBS ID|ESO AOS INS DICH POSNAM|" \
91  "ESO AOS OCS WFS MODE|ESO AOS OCS WFS TYPE"
92 
93 #define NACO_PFITS_REGEXP_ZPOINT_REF \
94  NACO_PFITS_STRING_OPTI4 "|" \
95  NACO_PFITS_STRING_OPTI5 "|" \
96  NACO_PFITS_STRING_OPTI6 "|" \
97  NACO_PFITS_STRING_OPTI3_NAME "|" \
98  NACO_PFITS_STRING_OPTI4_NAME "|" \
99  NACO_PFITS_STRING_OBJECT "|" \
100  NACO_PFITS_DOUBLE_PIXSCALE
101 
102 #define NACO_PFITS_REGEXP_ZPOINT \
103  NACO_PFITS_DOUBLE_FLUXMEAN "|" \
104  NACO_PFITS_DOUBLE_L0MEAN "|" \
105  NACO_PFITS_DOUBLE_R0MEAN "|" \
106  NACO_PFITS_DOUBLE_T0MEAN "|" \
107  NACO_PFITS_DOUBLE_HUMIDITY_LEVEL "|" \
108  NACO_PFITS_DOUBLE_ECMEAN "|" \
109  NACO_PFITS_DOUBLE_AIRMASS_START "|" \
110  NACO_PFITS_DOUBLE_AIRMASS_END "|" \
111  NACO_PFITS_DOUBLE_CUMOFFSETX "|" \
112  NACO_PFITS_DOUBLE_CUMOFFSETY
113 
114 /* Properties used by naco_img_slitpos */
115 
116 #define NACO_PFITS_REGEXP_SLITPOS_PAF \
117  IRPLIB_PFITS_REGEXP_PAF "|" \
118  IRPLIB_PFITS_REGEXP_DPR "|" \
119  NACO_PFITS_STRING_SLITNAME "|" \
120  "INSTRUME|ESO TPL NEXP|ESO INS OPTI3 ID|" \
121  "ESO INS OPTI7 ID|ESO ADA ABSROT START"
122 
123 #define NACO_PFITS_REGEXP_SLITPOS \
124  NACO_PFITS_STRING_OPTI4 "|" \
125  NACO_PFITS_STRING_OPTI5 "|" \
126  NACO_PFITS_STRING_OPTI6
127 
128 /* Properties used by naco_img_strehl */
129 
130 #define NACO_PFITS_REGEXP_STREHL_PAF \
131  IRPLIB_PFITS_REGEXP_PAF "|" \
132  NACO_PFITS_DOUBLE_DIT "|" \
133  NACO_PFITS_INT_NDIT "|" \
134  NACO_PFITS_STRING_OPTI7_NAME "|" \
135  NACO_PFITS_STRING_ROM_NAME "|" \
136  NACO_PFITS_STRING_MODE "|" \
137  NACO_PFITS_DOUBLE_PIXSCALE "|" \
138  "ESO OBS ID|ESO AOS INS DICH POSNAM|" \
139  "ESO AOS OCS WFS MODE|ESO AOS OCS WFS TYPE"
140 
141 /* OK: NACO_PFITS_INT_NDIT is present also in _PAF */
142 #define NACO_PFITS_REGEXP_STREHL \
143  NACO_PFITS_DOUBLE_AIRMASS_END "|" \
144  NACO_PFITS_DOUBLE_AIRMASS_START "|" \
145  NACO_PFITS_DOUBLE_ECMEAN "|" \
146  NACO_PFITS_STRING_OPTI4 "|" \
147  NACO_PFITS_STRING_OPTI5 "|" \
148  NACO_PFITS_STRING_OPTI6 "|" \
149  NACO_PFITS_DOUBLE_FLUXMEAN "|" \
150  NACO_PFITS_DOUBLE_L0MEAN "|" \
151  NACO_PFITS_DOUBLE_R0MEAN "|" \
152  NACO_PFITS_DOUBLE_T0MEAN "|" \
153  NACO_PFITS_INT_NDIT "|" \
154  NACO_PFITS_STRING_OPTI3_NAME "|" \
155  NACO_PFITS_STRING_OPTI4_NAME "|" \
156  NACO_PFITS_DOUBLE_PIXSCALE
157 
158 /* Properties used by naco_img_twflat */
159 
160 #define NACO_PFITS_REGEXP_TWFLAT_DARK \
161  NACO_PFITS_DOUBLE_DIT "|" \
162  NACO_PFITS_STRING_MODE "|" \
163  NACO_PFITS_STRING_ROM_NAME
164 
165 #define NACO_PFITS_REGEXP_TWFLAT \
166  NACO_PFITS_REGEXP_TWFLAT_DARK "|" \
167  NACO_PFITS_STRING_OPTI4 "|" \
168  NACO_PFITS_STRING_OPTI5 "|" \
169  NACO_PFITS_STRING_OPTI6 "|" \
170  NACO_PFITS_STRING_TEMPLATEID
171 
172 /* Properties used by naco_img_checkfocus */
173 
174 #define NACO_PFITS_REGEXP_CHECKFOCUS_PAF \
175  IRPLIB_PFITS_REGEXP_PAF
176 
177 #define NACO_PFITS_REGEXP_CHECKFOCUS \
178  NACO_PFITS_STRING_OPTI4 "|" \
179  NACO_PFITS_STRING_OPTI5 "|" \
180  NACO_PFITS_STRING_OPTI6 "|" \
181  NACO_PFITS_DOUBLE_PIXSCALE "|" \
182  NACO_PFITS_DOUBLE_FOCUS
183 
184 /* Properties used by naco_img_dark */
185 
186 #define NACO_PFITS_REGEXP_DARK_PAF \
187  IRPLIB_PFITS_REGEXP_PAF "|" \
188  IRPLIB_PFITS_STRING_DPR_TECH "|" \
189  NACO_PFITS_DOUBLE_DIT "|" \
190  NACO_PFITS_INT_NDIT "|" \
191  NACO_PFITS_INT_ROM "|" \
192  NACO_PFITS_STRING_MODE "|" \
193  NACO_PFITS_STRING_ROM_NAME
194 
195 /* All recipes may use IRPLIB_PFITS_REGEXP_DPR */
196 #define NACO_PFITS_REGEXP_DARK \
197  NACO_PFITS_DOUBLE_EXPTIME "|" \
198  NACO_PFITS_STRING_OPTI7_NAME "|" \
199  "NAXIS[12]"
200 
201 
202 /* Properties used by naco_spc_combine */
203 
204 #define NACO_PFITS_REGEXP_SPC_COMBINE_PAF \
205  IRPLIB_PFITS_REGEXP_PAF "|" \
206  "NAXIS1|NAXIS2|" \
207  NACO_PFITS_DOUBLE_DIT "|" \
208  NACO_PFITS_STRING_OPTI4 "|" \
209  NACO_PFITS_STRING_OPTI5 "|" \
210  NACO_PFITS_STRING_OPTI6 "|" \
211  NACO_PFITS_REGEXP_JITTER_ALL
212 
213 #define NACO_PFITS_REGEXP_SPC_COMBINE \
214  "NAXIS1|NAXIS2|" \
215  NACO_PFITS_DOUBLE_DIT "|" \
216  NACO_PFITS_REGEXP_JITTER_ALL
217 
218 /* Properties used by naco_spc_wavecal */
219 
220 /* Properties used by naco_spc_lampflat */
221 #define NACO_PFITS_REGEXP_SPCWAVE_PAF \
222  IRPLIB_PFITS_REGEXP_PAF "|" \
223  IRPLIB_PFITS_REGEXP_DPR "|" \
224  NACO_PFITS_STRING_SPECMODE "|" \
225  NACO_PFITS_STRING_SLITNAME "|" \
226  NACO_PFITS_DOUBLE_CWLEN "|" \
227  NACO_PFITS_DOUBLE_DIT "|" \
228  "INSTRUME|ESO TPL NEXP|" \
229  "ESO INS GRAT NAME|" \
230  "ESO INS MODE"
231 
232 
233 #define NACO_PFITS_REGEXP_SPCWAVE \
234  IRPLIB_PFITS_REGEXP_RECAL "|" \
235  "NAXIS1|NAXIS2|" \
236  NACO_PFITS_INT_LAMP2 "|" \
237  NACO_PFITS_DOUBLE_PIXSCALE "|" \
238  NACO_PFITS_BOOL_LAMP1
239 
240 /* Properties used by naco_img_lampflat */
241 
242 #define NACO_PFITS_REGEXP_LAMPFLAT_PAF \
243  IRPLIB_PFITS_REGEXP_PAF "|" \
244  NACO_PFITS_DOUBLE_DIT "|" \
245  NACO_PFITS_INT_LAMP2 "|" \
246  NACO_PFITS_INT_NDIT "|" \
247  NACO_PFITS_INT_ROM "|" \
248  NACO_PFITS_STRING_MODE "|" \
249  NACO_PFITS_STRING_ROM_NAME "|" \
250  NACO_PFITS_STRING_OPTI7_NAME "|" \
251  "ESO INS LAMP2 NAME|ESO INS LAMP2 TYPE|ESO INS LAMP2 CURRENT"
252 
253 
254 /* All recipes may use IRPLIB_PFITS_REGEXP_DPR */
255 #define NACO_PFITS_REGEXP_LAMPFLAT \
256  NACO_PFITS_STRING_OPTI4 "|" \
257  NACO_PFITS_STRING_OPTI5 "|" \
258  NACO_PFITS_STRING_OPTI6 "|" \
259  NACO_PFITS_STRING_OPTI3_NAME "|" \
260  NACO_PFITS_STRING_OPTI4_NAME
261 
262 /* Properties used by naco_spc_lampflat */
263 #define NACO_PFITS_REGEXP_SPCFLAT_PAF \
264  IRPLIB_PFITS_REGEXP_PAF "|" \
265  NACO_PFITS_STRING_SPECMODE "|" \
266  NACO_PFITS_STRING_SLITNAME "|" \
267  NACO_PFITS_DOUBLE_CWLEN "|" \
268  NACO_PFITS_DOUBLE_DIT
269 
270 #define NACO_PFITS_REGEXP_SPCFLAT \
271  IRPLIB_PFITS_REGEXP_RECAL "|" \
272  "NAXIS1|NAXIS2|" \
273  NACO_PFITS_BOOL_LAMP1 "|" \
274  NACO_PFITS_INT_LAMP2
275 
276 /* Properties used by naco_img_jitter */
277 #define NACO_PFITS_REGEXP_JITTER_PAF \
278  IRPLIB_PFITS_REGEXP_PAF "|" \
279  IRPLIB_PFITS_REGEXP_DPR "|" \
280  NACO_PFITS_DOUBLE_PIXSCALE "|" \
281  "INSTRUME|ESO TPL NEXP|ESO OBS ID"
282 
283 #define NACO_PFITS_REGEXP_JITTER_COPY \
284  IRPLIB_PFITS_REGEXP_RECAL "|" \
285  "ALARM"
286 
287 /* - these are needed for all frames (recalc airmass) */
288 #define NACO_PFITS_REGEXP_JITTER_ALL \
289  NACO_PFITS_DOUBLE_CUMOFFSETX "|" \
290  NACO_PFITS_DOUBLE_CUMOFFSETY "|" \
291  NACO_PFITS_STRING_OPTI4 "|" \
292  NACO_PFITS_STRING_OPTI5 "|" \
293  NACO_PFITS_STRING_OPTI6 "|" \
294  NACO_PFITS_DOUBLE_PIXSCALE "|" \
295  "NAXIS3" "|" \
296  "AIRMASS"
297 
298 #define NACO_PFITS_REGEXP_JITTER_FIRST \
299  NACO_PFITS_REGEXP_JITTER_ALL "|" \
300  NACO_PFITS_REGEXP_JITTER_PAF "|" \
301  NACO_PFITS_REGEXP_JITTER_COPY "|" \
302  IRPLIB_PFITS_WCS_REGEXP "|" \
303  NACO_PFITS_STRING_OPTI4 "|" \
304  NACO_PFITS_STRING_OPTI5 "|" \
305  NACO_PFITS_STRING_OPTI6 "|" \
306  NACO_PFITS_STRING_OPTI3_NAME "|" \
307  NACO_PFITS_STRING_OPTI4_NAME
308 
309 #define NACO_PFITS_REGEXP_DETLIN \
310  NACO_PFITS_DOUBLE_DIT
311 
312 #define NACO_PFITS_REGEXP_DETLIN_COPY \
313  NACO_PFITS_DOUBLE_EXPTIME
314 
315 #define NACO_PFITS_REGEXP_DETLIN_FIRST \
316  NACO_PFITS_REGEXP_DETLIN "|" \
317  NACO_PFITS_REGEXP_DETLIN_COPY
318 
319 /*-----------------------------------------------------------------------------
320  Function prototypes
321  -----------------------------------------------------------------------------*/
322 
323 double naco_pfits_get_airmass_start(const cpl_propertylist *);
324 double naco_pfits_get_airmass_end(const cpl_propertylist *);
325 double naco_pfits_get_cumoffsetx(const cpl_propertylist *);
326 double naco_pfits_get_cumoffsety(const cpl_propertylist *);
327 double naco_pfits_get_dec(const cpl_propertylist *);
328 double naco_pfits_get_dit(const cpl_propertylist *);
329 double naco_pfits_get_ecmean(const cpl_propertylist *);
330 double naco_pfits_get_exptime(const cpl_propertylist *);
331 const char * naco_pfits_get_filter(const cpl_propertylist *);
332 double naco_pfits_get_fluxmean(const cpl_propertylist *);
333 double naco_pfits_get_focus(const cpl_propertylist *);
334 double naco_pfits_get_humidity_level(const cpl_propertylist *);
335 double naco_pfits_get_l0mean(const cpl_propertylist *);
336 int naco_pfits_get_lamp2(const cpl_propertylist *);
337 const char * naco_pfits_get_mode(const cpl_propertylist *);
338 int naco_pfits_get_ndit(const cpl_propertylist *);
339 const char * naco_pfits_get_object(const cpl_propertylist *);
340 const char * naco_pfits_get_opti3_name(const cpl_propertylist *);
341 const char * naco_pfits_get_opti4_name(const cpl_propertylist *);
342 const char * naco_pfits_get_opti7_name(const cpl_propertylist *);
343 double naco_pfits_get_pixscale(const cpl_propertylist *);
344 double naco_pfits_get_r0mean(const cpl_propertylist *);
345 double naco_pfits_get_ra(const cpl_propertylist *);
346 int naco_pfits_get_rom(const cpl_propertylist *);
347 const char * naco_pfits_get_rom_name(const cpl_propertylist *);
348 double naco_pfits_get_t0mean(const cpl_propertylist *);
349 const char * naco_pfits_get_templateid(const cpl_propertylist *);
350 
351 #endif
const char * naco_pfits_get_rom_name(const cpl_propertylist *)
find out the read out mode name
Definition: naco_pfits.c:389
double naco_pfits_get_dit(const cpl_propertylist *)
find out the DIT
Definition: naco_pfits.c:131
double naco_pfits_get_pixscale(const cpl_propertylist *)
find out the pixel scale
Definition: naco_pfits.c:341
double naco_pfits_get_cumoffsety(const cpl_propertylist *)
find out the cumulative offset in Y
Definition: naco_pfits.c:107
const char * naco_pfits_get_opti4_name(const cpl_propertylist *)
find out the OPTI4.NAME key
Definition: naco_pfits.c:316
int naco_pfits_get_lamp2(const cpl_propertylist *)
find out the INS.LAMP2.SET keyword
Definition: naco_pfits.c:256
double naco_pfits_get_t0mean(const cpl_propertylist *)
find out the T0MEAN key
Definition: naco_pfits.c:401
double naco_pfits_get_ra(const cpl_propertylist *)
find out the RA
Definition: naco_pfits.c:365
int naco_pfits_get_rom(const cpl_propertylist *)
find out the read out mode
Definition: naco_pfits.c:377
double naco_pfits_get_cumoffsetx(const cpl_propertylist *)
find out the cumulative offset in X
Definition: naco_pfits.c:95
double naco_pfits_get_dec(const cpl_propertylist *)
find out the DEC
Definition: naco_pfits.c:119
int naco_pfits_get_ndit(const cpl_propertylist *)
find out the NDIT keyword
Definition: naco_pfits.c:292
double naco_pfits_get_l0mean(const cpl_propertylist *)
find out the L0MEAN
Definition: naco_pfits.c:244
double naco_pfits_get_focus(const cpl_propertylist *)
find out the focus
Definition: naco_pfits.c:220
const char * naco_pfits_get_opti7_name(const cpl_propertylist *)
find out the OPTI7.NAME key
Definition: naco_pfits.c:329
double naco_pfits_get_airmass_start(const cpl_propertylist *)
find out airmass start
Definition: naco_pfits.c:71
double naco_pfits_get_fluxmean(const cpl_propertylist *)
find out the FLUXMEAN key
Definition: naco_pfits.c:208
double naco_pfits_get_humidity_level(const cpl_propertylist *)
find out the humidity level
Definition: naco_pfits.c:232
const char * naco_pfits_get_object(const cpl_propertylist *)
Get the Object name.
Definition: naco_pfits.c:280
const char * naco_pfits_get_opti3_name(const cpl_propertylist *)
find out the OPTI3.NAME key
Definition: naco_pfits.c:304
double naco_pfits_get_airmass_end(const cpl_propertylist *)
find out airmass end
Definition: naco_pfits.c:83
const char * naco_pfits_get_templateid(const cpl_propertylist *)
find out the template ID
Definition: naco_pfits.c:413
double naco_pfits_get_r0mean(const cpl_propertylist *)
find out the R0MEAN key
Definition: naco_pfits.c:353
const char * naco_pfits_get_mode(const cpl_propertylist *)
find out the mode name
Definition: naco_pfits.c:268
double naco_pfits_get_ecmean(const cpl_propertylist *)
find out the ECMEAN key
Definition: naco_pfits.c:143
const char * naco_pfits_get_filter(const cpl_propertylist *)
find out the filter
Definition: naco_pfits.c:167
double naco_pfits_get_exptime(const cpl_propertylist *)
find out the exposure time
Definition: naco_pfits.c:155