CR2RE Pipeline Reference Manual 1.6.10
cr2res_pfits.h
1/*
2 * This file is part of the CR2RES Pipeline
3 * Copyright (C) 2002,2003 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, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02111-1307 USA
18 */
19
20#ifndef CR2RES_PFITS_H
21#define CR2RES_PFITS_H
22
23/*-----------------------------------------------------------------------------
24 Includes
25 -----------------------------------------------------------------------------*/
26
27#include <cpl.h>
28#include "cr2res_nodding.h"
29#include "cr2res_utils.h"
30
31/*-----------------------------------------------------------------------------
32 Define
33 -----------------------------------------------------------------------------*/
34
35/* RAW files header Keywords Names */
36#define CR2RES_HEADER_INSTRUMENT "INSTRUME"
37#define CR2RES_HEADER_MJD_OBS "MJD-OBS"
38#define CR2RES_HEADER_EXTNAME "EXTNAME"
39#define CR2RES_HEADER_NAXIS1 "NAXIS1"
40#define CR2RES_HEADER_NAXIS2 "NAXIS2"
41#define CR2RES_HEADER_EXPNO "ESO TPL EXPNO"
42#define CR2RES_HEADER_NEXP "ESO TPL NEXP"
43#define CR2RES_HEADER_DECKER_POS "ESO INS OPTI8 NO"
44#define CR2RES_HEADER_NODPOS "ESO SEQ NODPOS"
45#define CR2RES_HEADER_DROT_POSANG "ESO INS1 DROT POSANG"
46#define CR2RES_HEADER_NODTHROW "ESO SEQ NODTHROW"
47#define CR2RES_HEADER_ARCFILE "ARCFILE"
48#define CR2RES_HEADER_MJDOBS "MJD-OBS"
49#define CR2RES_HEADER_WLEN_ID "ESO INS WLEN ID"
50#define CR2RES_HEADER_WLEN_BEGIN "ESO INS WLEN BEGIN%d"
51#define CR2RES_HEADER_WLEN_END "ESO INS WLEN END%d"
52#define CR2RES_HEADER_WLEN_CENY "ESO INS WLEN CENY%d"
53#define CR2RES_HEADER_WLEN_CWLEN "ESO INS WLEN CWLEN"
54#define CR2RES_HEADER_GRAT1_ZPORD "ESO INS GRAT1 ZP_ORD"
55#define CR2RES_HEADER_GRAT1_ORDER "ESO INS GRAT1 ORDER"
56#define CR2RES_HEADER_POL_TYPE "ESO INS POL TYPE"
57#define CR2RES_HEADER_NDIT "ESO DET NDIT"
58#define CR2RES_HEADER_DIT "ESO DET SEQ1 DIT"
59#define CR2RES_HEADER_CHIP_IDX "ESO DET CHIP INDEX"
60#define CR2RES_HEADER_PROG_ID "ESO OBS PROG ID"
61#define CR2RES_HEADER_OBS_ID "ESO OBS ID"
62#define CR2RES_HEADER_DRS_TYPE "ESO DRS TYPE"
63#define CR2RES_HEADER_DRS_TMID "ESO DRS TMID"
64#define CR2RES_HEADER_DRS_BARYCORR "ESO DRS BARYCORR"
65#define CR2RES_HEADER_DRS_ERRMETHOD "ESO DRS ERRMETHOD"
66#define CR2RES_HEADER_OCS_MTRLGY "ESO OCS MTRLGY ST"
67
68/* QC Parameter Names */
69#define CR2RES_HEADER_QC_DARK_RON1 "ESO QC DARK RON1"
70#define CR2RES_HEADER_QC_DARK_RON2 "ESO QC DARK RON2"
71#define CR2RES_HEADER_QC_DARK_MEAN "ESO QC DARK MEAN"
72#define CR2RES_HEADER_QC_DARK_MEDIAN "ESO QC DARK MEDIAN"
73#define CR2RES_HEADER_QC_DARK_STDEV "ESO QC DARK STDDEV"
74#define CR2RES_HEADER_QC_DARK_NBAD "ESO QC DARK NBAD"
75
76#define CR2RES_HEADER_QC_DARK_RON1_AVG "ESO QC DARK RON1 AVG"
77#define CR2RES_HEADER_QC_DARK_RON1_RMS "ESO QC DARK RON1 RMS"
78#define CR2RES_HEADER_QC_DARK_RON2_AVG "ESO QC DARK RON2 AVG"
79#define CR2RES_HEADER_QC_DARK_RON2_RMS "ESO QC DARK RON2 RMS"
80#define CR2RES_HEADER_QC_DARK_MEAN_AVG "ESO QC DARK MEAN AVG"
81#define CR2RES_HEADER_QC_DARK_MEAN_RMS "ESO QC DARK MEAN RMS"
82#define CR2RES_HEADER_QC_DARK_MEDIAN_AVG "ESO QC DARK MEDIAN AVG"
83#define CR2RES_HEADER_QC_DARK_MEDIAN_RMS "ESO QC DARK MEDIAN RMS"
84#define CR2RES_HEADER_QC_DARK_STDEV_AVG "ESO QC DARK STDDEV AVG"
85#define CR2RES_HEADER_QC_DARK_STDEV_RMS "ESO QC DARK STDDEV RMS"
86#define CR2RES_HEADER_QC_DARK_NBAD_AVG "ESO QC DARK NBAD AVG"
87#define CR2RES_HEADER_QC_DARK_NBAD_RMS "ESO QC DARK NBAD RMS"
88
89#define CR2RES_HEADER_QC_DETLIN_NBAD "ESO QC DETLIN NBBAD"
90#define CR2RES_HEADER_QC_DETLIN_NBFAILED "ESO QC DETLIN NBFAILED"
91#define CR2RES_HEADER_QC_DETLIN_NBSUCCESS "ESO QC DETLIN NBSUCCESS"
92#define CR2RES_HEADER_QC_DETLIN_MEDIAN "ESO QC DETLIN MEDIAN"
93#define CR2RES_HEADER_QC_DETLIN_MINLEVEL "ESO QC DETLIN MINLEVEL"
94#define CR2RES_HEADER_QC_DETLIN_MAXLEVEL "ESO QC DETLIN MAXLEVEL"
95#define CR2RES_HEADER_QC_DETLIN_MEDA "ESO QC DETLIN MEDA"
96#define CR2RES_HEADER_QC_DETLIN_MEDB "ESO QC DETLIN MEDB"
97#define CR2RES_HEADER_QC_DETLIN_MEDC "ESO QC DETLIN MEDC"
98#define CR2RES_HEADER_QC_DETLIN_MEDQ "ESO QC DETLIN MEDQ"
99
100#define CR2RES_HEADER_QC_DETLIN_NBAD_AVG "ESO QC DETLIN NBBAD AVG"
101#define CR2RES_HEADER_QC_DETLIN_NBAD_RMS "ESO QC DETLIN NBBAD RMS"
102#define CR2RES_HEADER_QC_DETLIN_NBFAILED_AVG "ESO QC DETLIN NBFAILED AVG"
103#define CR2RES_HEADER_QC_DETLIN_NBFAILED_RMS "ESO QC DETLIN NBFAILED RMS"
104#define CR2RES_HEADER_QC_DETLIN_NBSUCCESS_AVG "ESO QC DETLIN NBSUCCESS AVG"
105#define CR2RES_HEADER_QC_DETLIN_NBSUCCESS_RMS "ESO QC DETLIN NBSUCCESS RMS"
106#define CR2RES_HEADER_QC_DETLIN_MEDIAN_AVG "ESO QC DETLIN MEDIAN AVG"
107#define CR2RES_HEADER_QC_DETLIN_MEDIAN_RMS "ESO QC DETLIN MEDIAN RMS"
108#define CR2RES_HEADER_QC_DETLIN_MINLEVEL_AVG "ESO QC DETLIN MINLEVEL AVG"
109#define CR2RES_HEADER_QC_DETLIN_MINLEVEL_RMS "ESO QC DETLIN MINLEVEL RMS"
110#define CR2RES_HEADER_QC_DETLIN_MAXLEVEL_AVG "ESO QC DETLIN MAXLEVEL AVG"
111#define CR2RES_HEADER_QC_DETLIN_MAXLEVEL_RMS "ESO QC DETLIN MAXLEVEL RMS"
112#define CR2RES_HEADER_QC_DETLIN_MEDA_AVG "ESO QC DETLIN MEDA AVG"
113#define CR2RES_HEADER_QC_DETLIN_MEDA_RMS "ESO QC DETLIN MEDA RMS"
114#define CR2RES_HEADER_QC_DETLIN_MEDB_AVG "ESO QC DETLIN MEDB AVG"
115#define CR2RES_HEADER_QC_DETLIN_MEDB_RMS "ESO QC DETLIN MEDB RMS"
116#define CR2RES_HEADER_QC_DETLIN_MEDC_AVG "ESO QC DETLIN MEDC AVG"
117#define CR2RES_HEADER_QC_DETLIN_MEDC_RMS "ESO QC DETLIN MEDC RMS"
118#define CR2RES_HEADER_QC_DETLIN_MEDQ_AVG "ESO QC DETLIN MEDQ AVG"
119#define CR2RES_HEADER_QC_DETLIN_MEDQ_RMS "ESO QC DETLIN MEDQ RMS"
120
121#define CR2RES_HEADER_QC_FLAT_MEAN "ESO QC FLAT MEAN"
122#define CR2RES_HEADER_QC_FLAT_MEDIAN "ESO QC FLAT MEDIAN"
123#define CR2RES_HEADER_QC_FLAT_FLUX "ESO QC FLAT EFFICIENCY"
124#define CR2RES_HEADER_QC_FLAT_RMS "ESO QC FLAT RMS"
125#define CR2RES_HEADER_QC_FLAT_S2N "ESO QC FLAT S2NMED"
126#define CR2RES_HEADER_QC_FLAT_NBBAD "ESO QC FLAT NBBAD"
127#define CR2RES_HEADER_QC_FLAT_ORDERPOS "ESO QC FLAT ORDERPOS"
128#define CR2RES_HEADER_QC_FLAT_CENTERY "ESO QC FLAT TRACE CENTERY"
129
130#define CR2RES_HEADER_QC_FLAT_MEAN_AVG "ESO QC FLAT MEAN AVG"
131#define CR2RES_HEADER_QC_FLAT_MEAN_RMS "ESO QC FLAT MEAN RMS"
132#define CR2RES_HEADER_QC_FLAT_MEDIAN_AVG "ESO QC FLAT MEDIAN AVG"
133#define CR2RES_HEADER_QC_FLAT_MEDIAN_RMS "ESO QC FLAT MEDIAN RMS"
134#define CR2RES_HEADER_QC_FLAT_FLUX_AVG "ESO QC FLAT EFFICIENCY AVG"
135#define CR2RES_HEADER_QC_FLAT_FLUX_RMS "ESO QC FLAT EFFICIENCY RMS"
136#define CR2RES_HEADER_QC_FLAT_RMS_AVG "ESO QC FLAT RMS AVG"
137#define CR2RES_HEADER_QC_FLAT_RMS_RMS "ESO QC FLAT RMS RMS"
138#define CR2RES_HEADER_QC_FLAT_S2N_AVG "ESO QC FLAT S2N AVG"
139#define CR2RES_HEADER_QC_FLAT_S2N_RMS "ESO QC FLAT S2N RMS"
140#define CR2RES_HEADER_QC_FLAT_NBBAD_AVG "ESO QC FLAT NBBAD AVG"
141#define CR2RES_HEADER_QC_FLAT_NBBAD_RMS "ESO QC FLAT NBBAD RMS"
142#define CR2RES_HEADER_QC_FLAT_CENTERY_AVG "ESO QC FLAT TRACE CENTERY AVG"
143#define CR2RES_HEADER_QC_FLAT_CENTERY_RMS "ESO QC FLAT TRACE CENTERY RMS"
144#define CR2RES_HEADER_QC_BLAZE_NGOOD "ESO QC FLAT BLAZE NGOOD"
145#define CR2RES_HEADER_QC_BLAZE_TOT "ESO QC FLAT BLAZE TOT"
146#define CR2RES_HEADER_QC_BLAZE_NORM "ESO QC FLAT BLAZE NORM"
147
148#define CR2RES_HEADER_QC_WAVE_BESTXCORR "ESO QC WAVE BESTXCORR"
149#define CR2RES_HEADER_QC_WAVE_CENTWL "ESO QC WAVE CENTWL"
150#define CR2RES_HEADER_QC_WAVE_CENTWL_AVG "ESO QC WAVE CENTWL AVG"
151#define CR2RES_HEADER_QC_WAVE_CENTWL_RMS "ESO QC WAVE CENTWL RMS"
152#define CR2RES_HEADER_QC_WAVE_DISPWL "ESO QC WAVE DISPWL"
153#define CR2RES_HEADER_QC_WAVE_DISPWL_AVG "ESO QC WAVE DISPWL AVG"
154#define CR2RES_HEADER_QC_WAVE_DISPWL_RMS "ESO QC WAVE DISPWL RMS"
155#define CR2RES_HEADER_QC_WAVE_RESOL_FWHM "ESO QC WAVE RESOLFWHM"
156#define CR2RES_HEADER_QC_WAVE_POS "ESO QC WAVE RESOLFWHM POS"
157#define CR2RES_HEADER_QC_WAVE_RESOL "ESO QC WAVE RESOL"
158#define CR2RES_HEADER_QC_WAVE_LAMP_EFFIC "ESO QC WAVE LAMP EFFIC"
159
160#define CR2RES_HEADER_QC_NUMSAT "ESO QC NUMSAT"
161#define CR2RES_HEADER_QC_OVEREXPOSED "ESO QC OVEREXPOSED"
162#define CR2RES_HEADER_QC_SIGNAL "ESO QC SIGNAL"
163#define CR2RES_HEADER_QC_STANDARD_FLUX "ESO QC STANDARD FLUX"
164#define CR2RES_HEADER_QC_SNR "ESO QC SNR%d"
165#define CR2RES_HEADER_QC_DER_SNR "ESO QC DER SNR%d"
166#define CR2RES_HEADER_QC_SLITFWHM_ORDER "ESO QC SLITFWHM%d"
167#define CR2RES_HEADER_QC_SNR_BASE "ESO QC SNR"
168#define CR2RES_HEADER_QC_SLITFWHM_ORDER_BASE "ESO QC SLITFWHM"
169#define CR2RES_HEADER_QC_SLITFWHM_MED "ESO QC SLITFWHM MED"
170#define CR2RES_HEADER_QC_REAL_ORDER "ESO QC REALORDER%d"
171#define CR2RES_HEADER_QC_THROUGHPUT "ESO QC THROUGHPUT"
172#define CR2RES_HEADER_QC_TILT "ESO QC TILT%d"
173#define CR2RES_HEADER_QC_TILT_GLOBAL "ESO QC TILT GLOBAL"
174#define CR2RES_HEADER_QC_FPI_CONTRAST "ESO QC FPI CONTRAST"
175#define CR2RES_HEADER_QC_FPI_FLUX "ESO QC FPI FLUX"
176#define CR2RES_HEADER_QC_FPI_SEPARATION "ESO QC FPI SEPARATION"
177#define CR2RES_HEADER_QC_UNE_FLUX "ESO QC UNE FLUX"
178
179#define CR2RES_HEADER_QC_MTRLGY_ID "ESO QC MTRLGY ID"
180#define CR2RES_HEADER_QC_DET_ID "ESO QC DET ID"
181
182#define CR2RES_EXTRACT_ERROR_POISSON 0
183#define CR2RES_EXTRACT_ERROR_HORNE 1
184
185/*-----------------------------------------------------------------------------
186 Functions prototypes
187 -----------------------------------------------------------------------------*/
188
189cr2res_nodding_pos cr2res_pfits_get_nodding_pos(const cpl_propertylist * plist);
190
191const char * cr2res_pfits_get_drstype(const cpl_propertylist *) ;
192const char * cr2res_pfits_get_protype(const cpl_propertylist *) ;
193const char * cr2res_pfits_get_wlen_id(const cpl_propertylist *) ;
194const char * cr2res_pfits_get_progid(const cpl_propertylist *) ;
195
196#ifdef CR2RES_UNUSED
197const char * cr2res_pfits_get_procatg(const cpl_propertylist *) ;
198const char * cr2res_pfits_get_arcfile(const cpl_propertylist *) ;
199int cr2res_pfits_get_naxis1(const cpl_propertylist * plist) ;
200int cr2res_pfits_get_naxis2(const cpl_propertylist * plist) ;
201int cr2res_pfits_get_expno(const cpl_propertylist * plist) ;
202int cr2res_pfits_get_nexp(const cpl_propertylist * plist) ;
203#endif
204
205
206double cr2res_pfits_get_ra(const cpl_propertylist *) ;
207double cr2res_pfits_get_drot_posang(const cpl_propertylist *) ;
208double cr2res_pfits_get_dec(const cpl_propertylist *) ;
209double cr2res_pfits_get_nodthrow(const cpl_propertylist *) ;
210double cr2res_pfits_get_dit(const cpl_propertylist *) ;
211double cr2res_pfits_get_cwlen(const cpl_propertylist * plist) ;
212const char *cr2res_pfits_get_poltype(const cpl_propertylist *plist);
213double cr2res_pfits_get_mjd_obs(const cpl_propertylist *plist);
214double cr2res_pfits_get_wstrt(const cpl_propertylist * plist, int order_idx) ;
215double cr2res_pfits_get_wend(const cpl_propertylist * plist, int order_idx) ;
216
217int cr2res_pfits_get_ndit(const cpl_propertylist * plist) ;
218int cr2res_pfits_get_obs_id(const cpl_propertylist * plist) ;
219int cr2res_pfits_get_order_zp(const cpl_propertylist * plist) ;
220int cr2res_pfits_get_order(const cpl_propertylist * plist) ;
221int cr2res_pfits_get_order_idx(const cpl_propertylist * plist,double yposition);
222
223cr2res_decker cr2res_pfits_get_decker_position(const cpl_propertylist * plist) ;
224
225#endif
cr2res_decker cr2res_pfits_get_decker_position(const cpl_propertylist *plist)
find out the decker position
Definition: cr2res_pfits.c:467
int cr2res_pfits_get_order_idx(const cpl_propertylist *plist, double yposition)
find out the order_idx closest to the passed y position
Definition: cr2res_pfits.c:412
const char * cr2res_pfits_get_wlen_id(const cpl_propertylist *)
find out the Setting
Definition: cr2res_pfits.c:137
const char * cr2res_pfits_get_progid(const cpl_propertylist *)
find out the PROG ID
Definition: cr2res_pfits.c:124
double cr2res_pfits_get_wstrt(const cpl_propertylist *plist, int order_idx)
find out the Start wavelength for an order_idx (current detector)
Definition: cr2res_pfits.c:254
double cr2res_pfits_get_wend(const cpl_propertylist *plist, int order_idx)
find out the End wavelength for an order_idx (current detector)
Definition: cr2res_pfits.c:285
const char * cr2res_pfits_get_protype(const cpl_propertylist *)
find out the PRO.TYPE
Definition: cr2res_pfits.c:98
double cr2res_pfits_get_dit(const cpl_propertylist *)
find out the DIT value
Definition: cr2res_pfits.c:199
double cr2res_pfits_get_mjd_obs(const cpl_propertylist *plist)
find out the MJD-OBS value
Definition: cr2res_pfits.c:217
double cr2res_pfits_get_dec(const cpl_propertylist *)
find out the DEC
Definition: cr2res_pfits.c:150
double cr2res_pfits_get_drot_posang(const cpl_propertylist *)
find out the DROT POSANG value
Definition: cr2res_pfits.c:174
double cr2res_pfits_get_nodthrow(const cpl_propertylist *)
find out the NODTHROW value
Definition: cr2res_pfits.c:186
int cr2res_pfits_get_ndit(const cpl_propertylist *plist)
find out the NDIT value
Definition: cr2res_pfits.c:363
const char * cr2res_pfits_get_drstype(const cpl_propertylist *)
find out the DRS.TYPE
Definition: cr2res_pfits.c:86
cr2res_nodding_pos cr2res_pfits_get_nodding_pos(const cpl_propertylist *plist)
find out the nodding position
Definition: cr2res_pfits.c:53
double cr2res_pfits_get_ra(const cpl_propertylist *)
find out the RA
Definition: cr2res_pfits.c:162
double cr2res_pfits_get_cwlen(const cpl_propertylist *plist)
find out the CWLEN value
Definition: cr2res_pfits.c:229
const char * cr2res_pfits_get_poltype(const cpl_propertylist *plist)
find out the POL TYPE value
Definition: cr2res_pfits.c:241
int cr2res_pfits_get_obs_id(const cpl_propertylist *plist)
find out the OBS ID value
Definition: cr2res_pfits.c:375