28#include "cr2res_nodding.h"
29#include "cr2res_utils.h"
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_OCS_MTRLGY "ESO OCS MTRLGY ST"
68#define CR2RES_HEADER_QC_DARK_RON1 "ESO QC DARK RON1"
69#define CR2RES_HEADER_QC_DARK_RON2 "ESO QC DARK RON2"
70#define CR2RES_HEADER_QC_DARK_MEAN "ESO QC DARK MEAN"
71#define CR2RES_HEADER_QC_DARK_MEDIAN "ESO QC DARK MEDIAN"
72#define CR2RES_HEADER_QC_DARK_STDEV "ESO QC DARK STDDEV"
73#define CR2RES_HEADER_QC_DARK_NBAD "ESO QC DARK NBAD"
75#define CR2RES_HEADER_QC_DARK_RON1_AVG "ESO QC DARK RON1 AVG"
76#define CR2RES_HEADER_QC_DARK_RON1_RMS "ESO QC DARK RON1 RMS"
77#define CR2RES_HEADER_QC_DARK_RON2_AVG "ESO QC DARK RON2 AVG"
78#define CR2RES_HEADER_QC_DARK_RON2_RMS "ESO QC DARK RON2 RMS"
79#define CR2RES_HEADER_QC_DARK_MEAN_AVG "ESO QC DARK MEAN AVG"
80#define CR2RES_HEADER_QC_DARK_MEAN_RMS "ESO QC DARK MEAN RMS"
81#define CR2RES_HEADER_QC_DARK_MEDIAN_AVG "ESO QC DARK MEDIAN AVG"
82#define CR2RES_HEADER_QC_DARK_MEDIAN_RMS "ESO QC DARK MEDIAN RMS"
83#define CR2RES_HEADER_QC_DARK_STDEV_AVG "ESO QC DARK STDDEV AVG"
84#define CR2RES_HEADER_QC_DARK_STDEV_RMS "ESO QC DARK STDDEV RMS"
85#define CR2RES_HEADER_QC_DARK_NBAD_AVG "ESO QC DARK NBAD AVG"
86#define CR2RES_HEADER_QC_DARK_NBAD_RMS "ESO QC DARK NBAD RMS"
88#define CR2RES_HEADER_QC_DETLIN_NBAD "ESO QC DETLIN NBBAD"
89#define CR2RES_HEADER_QC_DETLIN_NBFAILED "ESO QC DETLIN NBFAILED"
90#define CR2RES_HEADER_QC_DETLIN_NBSUCCESS "ESO QC DETLIN NBSUCCESS"
91#define CR2RES_HEADER_QC_DETLIN_MEDIAN "ESO QC DETLIN MEDIAN"
92#define CR2RES_HEADER_QC_DETLIN_MINLEVEL "ESO QC DETLIN MINLEVEL"
93#define CR2RES_HEADER_QC_DETLIN_MAXLEVEL "ESO QC DETLIN MAXLEVEL"
94#define CR2RES_HEADER_QC_DETLIN_MEDA "ESO QC DETLIN MEDA"
95#define CR2RES_HEADER_QC_DETLIN_MEDB "ESO QC DETLIN MEDB"
96#define CR2RES_HEADER_QC_DETLIN_MEDC "ESO QC DETLIN MEDC"
97#define CR2RES_HEADER_QC_DETLIN_MEDQ "ESO QC DETLIN MEDQ"
99#define CR2RES_HEADER_QC_DETLIN_NBAD_AVG "ESO QC DETLIN NBBAD AVG"
100#define CR2RES_HEADER_QC_DETLIN_NBAD_RMS "ESO QC DETLIN NBBAD RMS"
101#define CR2RES_HEADER_QC_DETLIN_NBFAILED_AVG "ESO QC DETLIN NBFAILED AVG"
102#define CR2RES_HEADER_QC_DETLIN_NBFAILED_RMS "ESO QC DETLIN NBFAILED RMS"
103#define CR2RES_HEADER_QC_DETLIN_NBSUCCESS_AVG "ESO QC DETLIN NBSUCCESS AVG"
104#define CR2RES_HEADER_QC_DETLIN_NBSUCCESS_RMS "ESO QC DETLIN NBSUCCESS RMS"
105#define CR2RES_HEADER_QC_DETLIN_MEDIAN_AVG "ESO QC DETLIN MEDIAN AVG"
106#define CR2RES_HEADER_QC_DETLIN_MEDIAN_RMS "ESO QC DETLIN MEDIAN RMS"
107#define CR2RES_HEADER_QC_DETLIN_MINLEVEL_AVG "ESO QC DETLIN MINLEVEL AVG"
108#define CR2RES_HEADER_QC_DETLIN_MINLEVEL_RMS "ESO QC DETLIN MINLEVEL RMS"
109#define CR2RES_HEADER_QC_DETLIN_MAXLEVEL_AVG "ESO QC DETLIN MAXLEVEL AVG"
110#define CR2RES_HEADER_QC_DETLIN_MAXLEVEL_RMS "ESO QC DETLIN MAXLEVEL RMS"
111#define CR2RES_HEADER_QC_DETLIN_MEDA_AVG "ESO QC DETLIN MEDA AVG"
112#define CR2RES_HEADER_QC_DETLIN_MEDA_RMS "ESO QC DETLIN MEDA RMS"
113#define CR2RES_HEADER_QC_DETLIN_MEDB_AVG "ESO QC DETLIN MEDB AVG"
114#define CR2RES_HEADER_QC_DETLIN_MEDB_RMS "ESO QC DETLIN MEDB RMS"
115#define CR2RES_HEADER_QC_DETLIN_MEDC_AVG "ESO QC DETLIN MEDC AVG"
116#define CR2RES_HEADER_QC_DETLIN_MEDC_RMS "ESO QC DETLIN MEDC RMS"
117#define CR2RES_HEADER_QC_DETLIN_MEDQ_AVG "ESO QC DETLIN MEDQ AVG"
118#define CR2RES_HEADER_QC_DETLIN_MEDQ_RMS "ESO QC DETLIN MEDQ RMS"
120#define CR2RES_HEADER_QC_FLAT_MEAN "ESO QC FLAT MEAN"
121#define CR2RES_HEADER_QC_FLAT_MEDIAN "ESO QC FLAT MEDIAN"
122#define CR2RES_HEADER_QC_FLAT_FLUX "ESO QC FLAT EFFICIENCY"
123#define CR2RES_HEADER_QC_FLAT_RMS "ESO QC FLAT RMS"
124#define CR2RES_HEADER_QC_FLAT_S2N "ESO QC FLAT S2NMED"
125#define CR2RES_HEADER_QC_FLAT_NBBAD "ESO QC FLAT NBBAD"
126#define CR2RES_HEADER_QC_FLAT_ORDERPOS "ESO QC FLAT ORDERPOS"
127#define CR2RES_HEADER_QC_FLAT_CENTERY "ESO QC FLAT TRACE CENTERY"
129#define CR2RES_HEADER_QC_FLAT_MEAN_AVG "ESO QC FLAT MEAN AVG"
130#define CR2RES_HEADER_QC_FLAT_MEAN_RMS "ESO QC FLAT MEAN RMS"
131#define CR2RES_HEADER_QC_FLAT_MEDIAN_AVG "ESO QC FLAT MEDIAN AVG"
132#define CR2RES_HEADER_QC_FLAT_MEDIAN_RMS "ESO QC FLAT MEDIAN RMS"
133#define CR2RES_HEADER_QC_FLAT_FLUX_AVG "ESO QC FLAT EFFICIENCY AVG"
134#define CR2RES_HEADER_QC_FLAT_FLUX_RMS "ESO QC FLAT EFFICIENCY RMS"
135#define CR2RES_HEADER_QC_FLAT_RMS_AVG "ESO QC FLAT RMS AVG"
136#define CR2RES_HEADER_QC_FLAT_RMS_RMS "ESO QC FLAT RMS RMS"
137#define CR2RES_HEADER_QC_FLAT_S2N_AVG "ESO QC FLAT S2N AVG"
138#define CR2RES_HEADER_QC_FLAT_S2N_RMS "ESO QC FLAT S2N RMS"
139#define CR2RES_HEADER_QC_FLAT_NBBAD_AVG "ESO QC FLAT NBBAD AVG"
140#define CR2RES_HEADER_QC_FLAT_NBBAD_RMS "ESO QC FLAT NBBAD RMS"
141#define CR2RES_HEADER_QC_FLAT_CENTERY_AVG "ESO QC FLAT TRACE CENTERY AVG"
142#define CR2RES_HEADER_QC_FLAT_CENTERY_RMS "ESO QC FLAT TRACE CENTERY RMS"
143#define CR2RES_HEADER_QC_BLAZE_NGOOD "ESO QC FLAT BLAZE NGOOD"
144#define CR2RES_HEADER_QC_BLAZE_TOT "ESO QC FLAT BLAZE TOT"
145#define CR2RES_HEADER_QC_BLAZE_NORM "ESO QC FLAT BLAZE NORM"
147#define CR2RES_HEADER_QC_WAVE_BESTXCORR "ESO QC WAVE BESTXCORR"
148#define CR2RES_HEADER_QC_WAVE_CENTWL "ESO QC WAVE CENTWL"
149#define CR2RES_HEADER_QC_WAVE_CENTWL_AVG "ESO QC WAVE CENTWL AVG"
150#define CR2RES_HEADER_QC_WAVE_CENTWL_RMS "ESO QC WAVE CENTWL RMS"
151#define CR2RES_HEADER_QC_WAVE_DISPWL "ESO QC WAVE DISPWL"
152#define CR2RES_HEADER_QC_WAVE_DISPWL_AVG "ESO QC WAVE DISPWL AVG"
153#define CR2RES_HEADER_QC_WAVE_DISPWL_RMS "ESO QC WAVE DISPWL RMS"
154#define CR2RES_HEADER_QC_WAVE_RESOL_FWHM "ESO QC WAVE RESOLFWHM"
155#define CR2RES_HEADER_QC_WAVE_POS "ESO QC WAVE RESOLFWHM POS"
156#define CR2RES_HEADER_QC_WAVE_RESOL "ESO QC WAVE RESOL"
157#define CR2RES_HEADER_QC_WAVE_LAMP_EFFIC "ESO QC WAVE LAMP EFFIC"
159#define CR2RES_HEADER_QC_NUMSAT "ESO QC NUMSAT"
160#define CR2RES_HEADER_QC_OVEREXPOSED "ESO QC OVEREXPOSED"
161#define CR2RES_HEADER_QC_SIGNAL "ESO QC SIGNAL"
162#define CR2RES_HEADER_QC_STANDARD_FLUX "ESO QC STANDARD FLUX"
163#define CR2RES_HEADER_QC_SNR "ESO QC SNR%d"
164#define CR2RES_HEADER_QC_SLITFWHM_ORDER "ESO QC SLITFWHM%d"
165#define CR2RES_HEADER_QC_SNR_BASE "ESO QC SNR"
166#define CR2RES_HEADER_QC_SLITFWHM_ORDER_BASE "ESO QC SLITFWHM"
167#define CR2RES_HEADER_QC_SLITFWHM_MED "ESO QC SLITFWHM MED"
168#define CR2RES_HEADER_QC_REAL_ORDER "ESO QC REALORDER%d"
169#define CR2RES_HEADER_QC_THROUGHPUT "ESO QC THROUGHPUT"
170#define CR2RES_HEADER_QC_TILT "ESO QC TILT%d"
171#define CR2RES_HEADER_QC_TILT_GLOBAL "ESO QC TILT GLOBAL"
172#define CR2RES_HEADER_QC_FPI_CONTRAST "ESO QC FPI CONTRAST"
173#define CR2RES_HEADER_QC_FPI_FLUX "ESO QC FPI FLUX"
174#define CR2RES_HEADER_QC_FPI_SEPARATION "ESO QC FPI SEPARATION"
175#define CR2RES_HEADER_QC_UNE_FLUX "ESO QC UNE FLUX"
177#define CR2RES_HEADER_QC_MTRLGY_ID "ESO QC MTRLGY ID"
178#define CR2RES_HEADER_QC_DET_ID "ESO QC DET ID"
192const char * cr2res_pfits_get_procatg(
const cpl_propertylist *) ;
193const char * cr2res_pfits_get_arcfile(
const cpl_propertylist *) ;
194int cr2res_pfits_get_naxis1(
const cpl_propertylist * plist) ;
195int cr2res_pfits_get_naxis2(
const cpl_propertylist * plist) ;
196int cr2res_pfits_get_expno(
const cpl_propertylist * plist) ;
197int cr2res_pfits_get_nexp(
const cpl_propertylist * plist) ;
214int cr2res_pfits_get_order_zp(
const cpl_propertylist * plist) ;
215int cr2res_pfits_get_order(
const cpl_propertylist * plist) ;
cr2res_decker cr2res_pfits_get_decker_position(const cpl_propertylist *plist)
find out the decker position
int cr2res_pfits_get_order_idx(const cpl_propertylist *plist, double yposition)
find out the order_idx closest to the passed y position
const char * cr2res_pfits_get_wlen_id(const cpl_propertylist *)
find out the Setting
const char * cr2res_pfits_get_progid(const cpl_propertylist *)
find out the PROG ID
double cr2res_pfits_get_wstrt(const cpl_propertylist *plist, int order_idx)
find out the Start wavelength for an order_idx (current detector)
double cr2res_pfits_get_wend(const cpl_propertylist *plist, int order_idx)
find out the End wavelength for an order_idx (current detector)
const char * cr2res_pfits_get_protype(const cpl_propertylist *)
find out the PRO.TYPE
double cr2res_pfits_get_dit(const cpl_propertylist *)
find out the DIT value
double cr2res_pfits_get_mjd_obs(const cpl_propertylist *plist)
find out the MJD-OBS value
double cr2res_pfits_get_dec(const cpl_propertylist *)
find out the DEC
double cr2res_pfits_get_drot_posang(const cpl_propertylist *)
find out the DROT POSANG value
double cr2res_pfits_get_nodthrow(const cpl_propertylist *)
find out the NODTHROW value
int cr2res_pfits_get_ndit(const cpl_propertylist *plist)
find out the NDIT value
const char * cr2res_pfits_get_drstype(const cpl_propertylist *)
find out the DRS.TYPE
cr2res_nodding_pos cr2res_pfits_get_nodding_pos(const cpl_propertylist *plist)
find out the nodding position
double cr2res_pfits_get_ra(const cpl_propertylist *)
find out the RA
double cr2res_pfits_get_cwlen(const cpl_propertylist *plist)
find out the CWLEN value
const char * cr2res_pfits_get_poltype(const cpl_propertylist *plist)
find out the POL TYPE value
int cr2res_pfits_get_obs_id(const cpl_propertylist *plist)
find out the OBS ID value