34 #define DET_DIT "IPAG DET DIT" 35 #define GRAVI_DET_DIT "ESO DET2 SEQ1 DIT" 36 #define GRAVI_NIGHT_OBS "ESO PRO NIGHT OBS" 37 #define DPR_TYPE "ESO DPR TYPE" 39 #define GRAVI_PRIMARY_HDR_EXT "PRIMARY_HDR" 41 #define GRAVI_IMAGING_DATA_ACQ_EXT "IMAGING_DATA_ACQ" 42 #define GRAVI_IMAGING_DATA_FT_EXT "IMAGING_DATA_FT" 43 #define GRAVI_IMAGING_DATA_SC_EXT "IMAGING_DATA_SC" 44 #define GRAVI_IMAGING_ERR_SC_EXT "IMAGING_ERR_SC" 45 #define GRAVI_IMAGING_ERR_FT_EXT "IMAGING_ERR_FT" 46 #define GRAVI_IMAGING_MASK_SC_EXT "IMAGING_MASK_SC" 48 #define GRAVI_IMAGING_DETECTOR_SC_EXT "IMAGING_DETECTOR_SC" 49 #define GRAVI_IMAGING_DETECTOR_FT_EXT "IMAGING_DETECTOR_FT" 50 #define GRAVI_IMAGING_DETECTOR_EXT(type) (type==GRAVI_SC?GRAVI_IMAGING_DETECTOR_SC_EXT:GRAVI_IMAGING_DETECTOR_FT_EXT) 52 #define GRAVI_SPECTRUM_DATA_SC_EXT "SPECTRUM_DATA_SC" 53 #define GRAVI_SPECTRUM_DATA_FT_EXT "SPECTRUM_DATA_FT" 54 #define GRAVI_SPECTRUM_DATA_EXT(type) (type==GRAVI_SC?GRAVI_SPECTRUM_DATA_SC_EXT:GRAVI_SPECTRUM_DATA_FT_EXT) 55 #define GRAVI_SPECTRUMFLAT_DATA_SC_EXT "SPECTRUMFLAT_DATA_SC" 57 #define GRAVI_BIAS_MASK_SC_EXT "BIAS_MASK_SC" 59 #define GRAVI_METROLOGY_EXT "METROLOGY" 60 #define GRAVI_METROLOGY_ERR_EXT "METROLOGY_ERR" 61 #define GRAVI_OPDC_EXT "OPDC" 62 #define GRAVI_WAVE_ARGON_EXT "WAVE_ARGON" 63 #define GRAVI_WAVE_DATA_FT_EXT "WAVE_DATA_FT" 64 #define GRAVI_WAVE_DATA_SC_EXT "WAVE_DATA_SC" 65 #define GRAVI_WAVE_DATA_FT_EXT "WAVE_DATA_FT" 66 #define GRAVI_WAVE_DATA_EXT(type) (type==GRAVI_SC?GRAVI_WAVE_DATA_SC_EXT:GRAVI_WAVE_DATA_FT_EXT) 67 #define GRAVI_WAVE_FIBRE_FT_EXT "WAVE_FIBRE_FT" 68 #define GRAVI_WAVE_FIBRE_SC_EXT "WAVE_FIBRE_SC" 69 #define GRAVI_WAVE_FIBRE_EXT(type) (type==GRAVI_SC?GRAVI_WAVE_FIBRE_SC_EXT:GRAVI_WAVE_FIBRE_FT_EXT) 70 #define GRAVI_P2VM_MET_EXT "P2VM_MET" 71 #define GRAVI_P2VM_DATA_SC_EXT "P2VM_SC" 72 #define GRAVI_P2VM_DATA_FT_EXT "P2VM_FT" 73 #define GRAVI_P2VM_DATA_EXT(type) (type==GRAVI_SC?GRAVI_P2VM_DATA_SC_EXT:GRAVI_P2VM_DATA_FT_EXT) 74 #define GRAVI_FDDL_EXT "FDDL" 76 #define GRAVI_PROFILE_DATA_EXT "PROFILE_DATA" 77 #define GRAVI_PROFILE_PARAMS_EXT "PROFILE_PARAMS" 78 #define GRAVI_IMAGING_DETECTOR_SC_EXT "IMAGING_DETECTOR_SC" 79 #define GRAVI_IMAGING_DETECTOR_FT_EXT "IMAGING_DETECTOR_FT" 80 #define GRAVI_OI_ARRAY_EXT "OI_ARRAY" 81 #define GRAVI_ARRAY_GEOMETRY_EXT "ARRAY_GEOMETRY" 82 #define GRAVI_OPTICAL_TRAIN_EXT "OPTICAL_TRAIN" 83 #define GRAVI_OI_TARGET_EXT "OI_TARGET" 85 #define GRAVI_OI_VIS_MET_EXT "OI_VIS_MET" 86 #define GRAVI_OI_VIS_ACQ_EXT "OI_VIS_ACQ" 88 #define GRAVI_OI_WAVELENGTH_EXT "OI_WAVELENGTH" 89 #define GRAVI_OI_VIS_EXT "OI_VIS" 90 #define GRAVI_OI_FLUX_EXT "OI_FLUX" 91 #define GRAVI_OI_T3_EXT "OI_T3" 92 #define GRAVI_OI_VIS2_EXT "OI_VIS2" 94 #define GRAVI_NAN_DOUBLE -99. 95 #define GRAVI_NAN_FLOAT -99. 96 #define GRAVI_NAN_INT -99 99 #define LAMBDA_MET 0.000001908254 102 #define QC_MINWAVE(type) (type==GRAVI_SC?"ESO QC MINWAVE SC":"ESO QC MINWAVE FT") 103 #define QC_MAXWAVE(type) (type==GRAVI_SC?"ESO QC MAXWAVE SC":"ESO QC MAXWAVE FT") 104 #define QC_RMS_RESIDUALS(type) (type==GRAVI_SC?"ESO QC RMSWAVE SC":"ESO QC RMSWAVE FT") 105 #define OPD_COEFF_SIGN(type) (type==GRAVI_SC?"ESO QC OPD_COEFF_SIGN SC":"ESO QC OPD_COEFF_SIGN FT") 108 #define QC_MEANDARK_SC "ESO QC MEDIANDARK SC" 109 #define QC_DARKRMS_SC "ESO QC DARKRMS SC" 110 #define QC_MEANSKY_SC "ESO QC MEDIANSKY SC" 111 #define QC_SKYRMS_SC "ESO QC SKYRMS SC" 113 #define QC_MEANDARK_FT "ESO QC MEANDARK FT" 114 #define QC_DARKRMS_FT "ESO QC DARKRMS FT" 115 #define QC_MEANSKY_FT "ESO QC MEANSKY FT" 116 #define QC_SKYRMS_FT "ESO QC SKYRMS FT" 118 #define QC_MEANDARK_MET "ESO QC MEANDARK MET" 119 #define QC_DARKRMS_MET "ESO QC DARKRMS MET" 121 #define QC_MEANDARK "ESO QC MEANDARK" 122 #define QC_DARKRMS "ESO QC DARKRMS" 125 #define QC_MEANGAIN_SC "ESO QC MEANGAIN SC" 126 #define QC_BADPIX_SC "ESO QC BADPIX SC" 127 #define QC_BADPIX_DARK_SC "ESO QC BADPIX_DARK SC" 128 #define QC_BADPIX_RMS_SC "ESO QC BADPIX_RMS SC" 129 #define QC_BADPIX_FLAT_SC "ESO QC BADPIX_FLAT SC" 130 #define QC_MEANGAIN_FT "ESO QC MEANGAIN FT" 131 #define QC_BADPIX_FT "ESO QC BADPIX FT" 132 #define PROFILE_STARTX "ESO PRO PROFILE STARTX" 133 #define PROFILE_FULLSTARTX "ESO PRO PROFILE FULLSTARTX" 134 #define PROFILE_NX "ESO PRO PROFILE NX" 138 #define QC_MEANCOH_SC "ESO QC P2VM_COHERENCE_AVG_SC" 139 #define QC_RMSCOH_SC "ESO QC P2VM_COHERENCERMS_AVG_SC" 140 #define QC_RMSPHASE_SC "ESO QC P2VM_PHASERMS_AVG_SC" 141 #define QC_MEANCOH_FT "ESO QC P2VM_COHERENCE_AVG_FT" 142 #define QC_RMSCOH_FT "ESO QC P2VM_COHERENCERMS_AVG_FT" 143 #define QC_RMSPHASE_FT "ESO QC P2VM_PHASERMS_AVG_FT" 149 #define GRAVI_TYPE(type) (type==GRAVI_SC?"SC":"FT") 151 enum gravi_detector_type
159 #define MODE_SINGLE 1 163 #define INSNAME_FT_P1 "GRAVITY_FT_P1" 164 #define INSNAME_FT_P2 "GRAVITY_FT_P2" 165 #define INSNAME_SC_P1 "GRAVITY_SC_P1" 166 #define INSNAME_SC_P2 "GRAVITY_SC_P2" 167 #define INSNAME_FT "GRAVITY_FT" 168 #define INSNAME_SC "GRAVITY_SC" 169 #define GRAVI_INSNAME(type,pol,npol) (type==GRAVI_SC ? (npol==1?INSNAME_SC:(pol==0?INSNAME_SC_P1:INSNAME_SC_P2) ) : (npol==1?INSNAME_FT:(pol==0?INSNAME_FT_P1:INSNAME_FT_P2) ) ) 174 #define GRAVI_EXTVER(type,pol,npol) ( (type+1)*10 + (npol==1?0:(pol+1)) ) 176 #define gravi_pfits_get_sobj_decep(plist) gravi_pfits_get_decep(plist, 1.0) 177 #define gravi_pfits_get_sobj_raep(plist) gravi_pfits_get_raep(plist, 1.0) 178 #define gravi_pfits_get_mid_decep(plist) gravi_pfits_get_decep(plist, 0.5) 179 #define gravi_pfits_get_mid_raep(plist) gravi_pfits_get_raep(plist, 0.5) 180 #define gravi_pfits_get_type_decep(plist,type) (type==GRAVI_SC?gravi_pfits_get_sobj_decep(plist):gravi_pfits_get_robj_decep(plist)) 181 #define gravi_pfits_get_type_raep(plist,type) (type==GRAVI_SC?gravi_pfits_get_sobj_raep(plist):gravi_pfits_get_robj_raep(plist)) 183 #define gravi_pfits_get_dit(plist, type) (type==GRAVI_SC ? gravi_pfits_get_dit_sc(plist) : gravi_pfits_get_dit_ft(plist)) 190 const char * gravi_pfits_get_met_ph(
const cpl_propertylist * );
191 int gravi_pfits_has_gdzero (
const cpl_propertylist * plist,
int tel);
192 double gravi_pfits_get_gdzero (
const cpl_propertylist * plist,
int tel);
193 int gravi_pfits_has_oplzero (
const cpl_propertylist * plist,
int tel);
194 double gravi_pfits_get_oplzero (
const cpl_propertylist * plist,
int tel);
195 double gravi_pfits_get_metfc_lockmjd (
const cpl_propertylist * plist,
int tel);
196 double gravi_pfits_get_met_wavelength (
const cpl_propertylist * plist);
197 double gravi_pfits_get_met_wavelength_mean (
const cpl_propertylist * plist, cpl_table * met_table);
199 const char * gravi_pfits_get_start_sc (
const cpl_propertylist * plist);
200 const char * gravi_pfits_get_start_acqcam (
const cpl_propertylist * plist);
201 const char * gravi_pfits_get_start_prcacq (
const cpl_propertylist * plist);
203 double gravi_pfits_get_fddlwindow (
const cpl_propertylist * plist);
205 double gravi_pfits_get_period_sc (
const cpl_propertylist * plist);
206 double gravi_pfits_get_period_acqcam (
const cpl_propertylist * plist);
207 double gravi_pfits_get_dit_ft (
const cpl_propertylist * plist);
208 double gravi_pfits_get_dit_sc (
const cpl_propertylist * plist);
209 double gravi_pfits_get_dit_acqcam (
const cpl_propertylist * plist);
214 double gravi_pfits_get_mjd (
const cpl_propertylist * plist);
219 const char * gravi_pfits_get_extname(
const cpl_propertylist * );
220 int gravi_pfits_get_extension_type(
const cpl_propertylist * plist);
222 double gravi_pfits_get_sobj_diam (
const cpl_propertylist * plist);
223 double gravi_pfits_get_robj_diam (
const cpl_propertylist * plist);
224 double gravi_pfits_get_diameter(
const cpl_propertylist * plist,
int type_data);
226 double gravi_pfits_get_ptfc_acqcam (
const cpl_propertylist * plist,
int spot);
227 double gravi_pfits_get_drotoff (
const cpl_propertylist * plist,
int tel);
228 double gravi_pfits_get_fangle_acqcam (
const cpl_propertylist * plist,
int tel);
230 const char * gravi_pfits_get_resolution(
const cpl_propertylist * plist);
231 const char * gravi_pfits_get_dpr_type(
const cpl_propertylist * plist);
232 const char * gravi_pfits_get_insname(
const cpl_propertylist * plist);
233 const char * gravi_pfits_get_spec_res(
const cpl_propertylist * plist);
234 const char * gravi_pfits_get_pola_mode(
const cpl_propertylist * plist,
int type_data);
236 int gravi_pfits_is_calib (
const cpl_propertylist * plist);
237 int gravi_pfits_get_pola_num(
const cpl_propertylist * plist,
int type_data );
238 int gravi_pfits_get_mode (
const cpl_propertylist * plist);
239 const char * gravi_pfits_get_mode_name (
const cpl_propertylist * plist);
240 int gravi_data_frame_get_mode(
const cpl_frame * frame);
242 int gravi_pfits_get_window_start (
const cpl_propertylist * plist);
244 int gravi_pfits_get_fullstartx (
const cpl_propertylist * plist);
245 int gravi_pfits_get_nx (
const cpl_propertylist * plist);
247 const char * gravi_pfits_get_robj(
const cpl_propertylist * plist);
248 const char * gravi_pfits_get_sobj(
const cpl_propertylist * plist);
250 double gravi_pfits_get_decep(
const cpl_propertylist * plist,
double coef);
251 double gravi_pfits_get_raep(
const cpl_propertylist * plist,
double coef);
252 double gravi_pfits_get_robj_decep(
const cpl_propertylist * plist);
253 double gravi_pfits_get_robj_raep(
const cpl_propertylist * plist);
254 double gravi_pfits_get_sobj_x(
const cpl_propertylist * plist);
255 double gravi_pfits_get_sobj_y(
const cpl_propertylist * plist);
257 double gravi_pfits_get_plx(
const cpl_propertylist * plist);
258 double gravi_pfits_get_pmra(
const cpl_propertylist * plist);
259 double gravi_pfits_get_pmdec(
const cpl_propertylist * plist);
261 double gravi_pfits_get_geoelev(
const cpl_propertylist * plist);
262 double gravi_pfits_get_geolat(
const cpl_propertylist * plist);
263 double gravi_pfits_get_geolon(
const cpl_propertylist * plist);
265 double gravi_ra_to_rad (
const char *stri);
266 double gravi_dec_to_rad (
const char *stri);
267 double gravi_convert_to_mjd (
const char * );
268 char * gravi_convert_to_timestamp (
double mjd);
269 cpl_error_code gravi_pfits_ensure_double(cpl_propertylist *
self,
const char * name);
275 double gravi_pfits_get_double_default(
const cpl_propertylist * plist,
const char *name,
double def);
276 double gravi_pfits_get_double_silentdefault(
const cpl_propertylist * plist,
const char *name,
double def);
277 const char * gravi_pfits_get_string_default (
const cpl_propertylist * plist,
const char *name,
const char *def);
282 cpl_error_code gravi_pfits_update_double (cpl_propertylist * plist,
const char * name,
double value);
283 cpl_error_code gravi_pfits_update_int (cpl_propertylist * plist,
const char * name,
int value);
double gravi_pfits_get_time_sc(const cpl_propertylist *header, cpl_size row)
Time of the middle of the SC exposure row in [us], counted from PRC.ACQ.START.
cpl_propertylist * gravi_plist_get_qc(cpl_propertylist *)
Extract QC parameters.
int gravi_pfits_get_startx(const cpl_propertylist *plist)
find out the name of the propertylist
cpl_error_code gravi_pfits_add_check(cpl_propertylist *header, char *msg)
Add a QC.CHECK keyword to the header.
double gravi_pfits_get_sc_gain(const cpl_propertylist *plist)
SC system gain in [ADU/e].
cpl_propertylist * gravi_plist_get_oifits_keywords(cpl_propertylist *header)
Create OIFITS keywords to satisfy standar.
double gravi_pfits_get_double(const cpl_propertylist *self, const char *name)
Get the double value of the given property list entry.
double gravi_pfits_get_ft_gain(const cpl_propertylist *plist)
FT system gain in [ADU/e].
double gravi_pfits_get_time_acqcam(const cpl_propertylist *header, cpl_size row)
Time of the middle of the ACQCAM exposure row in [us], counted from PRC.ACQ.START.
cpl_error_code gravi_pfits_add_pipe_build(cpl_propertylist *header)
Add the ESO PRO REC# PIPE LAST_BUILD in header.