33 #include "muse_pfits.h"
34 #include "muse_instrument.h"
56 const char *value = cpl_propertylist_get_string(aHeaders,
"ARCFILE");
57 cpl_ensure(value, cpl_error_get_code(), NULL);
73 const char *value = cpl_propertylist_get_string(aHeaders,
"PIPEFILE");
74 cpl_ensure(value, cpl_error_get_code(), NULL);
90 cpl_errorstate prestate = cpl_errorstate_get();
91 const char *value = cpl_propertylist_get_string(aHeaders,
"ESO DPR TYPE");
92 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
108 cpl_errorstate prestate = cpl_errorstate_get();
109 const char *value = cpl_propertylist_get_string(aHeaders,
"ESO DPR CATG");
110 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
126 cpl_errorstate prestate = cpl_errorstate_get();
127 const char *value = cpl_propertylist_get_string(aHeaders,
"ESO PRO TYPE");
128 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
144 cpl_errorstate prestate = cpl_errorstate_get();
145 const char *value = cpl_propertylist_get_string(aHeaders,
"ESO PRO CATG");
146 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
166 cpl_errorstate prestate = cpl_errorstate_get();
168 if (!cpl_errorstate_is_equal(prestate) ||
169 strncmp(extname,
"CHAN", 4) ||
170 strlen(extname) < 6) {
171 cpl_errorstate_set(prestate);
174 unsigned char chan = atoi(extname + 4);
190 cpl_errorstate prestate = cpl_errorstate_get();
191 const char *value = cpl_propertylist_get_string(aHeaders,
"EXTNAME");
192 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
209 cpl_errorstate prestate = cpl_errorstate_get();
211 cpl_size value = cpl_propertylist_get_long_long(aHeaders,
"NAXIS");
212 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0);
215 char keyword[KEYWORD_LENGTH];
216 snprintf(keyword, KEYWORD_LENGTH,
"NAXIS%u", aAxis);
217 cpl_size value = cpl_propertylist_get_long_long(aHeaders, keyword);
218 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0);
234 cpl_errorstate prestate = cpl_errorstate_get();
235 const double value = cpl_propertylist_get_double(aHeaders,
"RA");
236 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
252 cpl_errorstate prestate = cpl_errorstate_get();
253 const double value = cpl_propertylist_get_double(aHeaders,
"DEC");
254 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
273 cpl_errorstate prestate = cpl_errorstate_get();
274 double value = cpl_propertylist_get_double(aHeaders,
"EQUINOX");
275 if (!cpl_errorstate_is_equal(prestate)) {
276 cpl_errorstate_set(prestate);
277 value = cpl_propertylist_get_long_long(aHeaders,
"EQUINOX");
278 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
295 cpl_errorstate prestate = cpl_errorstate_get();
296 const double value = cpl_propertylist_get_double(aHeaders,
"LST");
297 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
313 cpl_errorstate prestate = cpl_errorstate_get();
314 const double value = cpl_propertylist_get_double(aHeaders,
"MJD-OBS");
315 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
331 cpl_errorstate prestate = cpl_errorstate_get();
332 const char *value = cpl_propertylist_get_string(aHeaders,
"DATE-OBS");
333 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
349 cpl_errorstate prestate = cpl_errorstate_get();
350 const double value = cpl_propertylist_get_double(aHeaders,
"EXPTIME");
351 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
367 cpl_errorstate prestate = cpl_errorstate_get();
368 const int value = cpl_propertylist_get_int(aHeaders,
"ESO DET READ CURID");
369 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0);
385 cpl_errorstate prestate = cpl_errorstate_get();
386 const char *value = cpl_propertylist_get_string(aHeaders,
"ESO DET READ CURNAME");
387 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
403 cpl_errorstate prestate = cpl_errorstate_get();
404 const int value = cpl_propertylist_get_int(aHeaders,
"ESO DET BINX");
405 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 1);
421 cpl_errorstate prestate = cpl_errorstate_get();
422 const int value = cpl_propertylist_get_int(aHeaders,
"ESO DET BINY");
423 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 1);
439 cpl_errorstate prestate = cpl_errorstate_get();
440 const char *value = cpl_propertylist_get_string(aHeaders,
"ESO DET CHIP NAME");
441 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
457 cpl_errorstate prestate = cpl_errorstate_get();
458 const char *value = cpl_propertylist_get_string(aHeaders,
"ESO DET CHIP ID");
459 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
475 cpl_errorstate prestate = cpl_errorstate_get();
476 const char *value = cpl_propertylist_get_string(aHeaders,
"ESO DET CHIP DATE");
477 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
494 cpl_errorstate prestate = cpl_errorstate_get();
495 const cpl_boolean value = cpl_propertylist_get_bool(aHeaders,
496 "ESO DET CHIP LIVE") == 0
497 ? CPL_FALSE : CPL_TRUE;
498 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), CPL_FALSE);
515 char keyword[KEYWORD_LENGTH];
516 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d RON", aQuadrant);
517 if (!cpl_propertylist_has(aHeaders, keyword)) {
518 cpl_msg_warning(__func__,
"Could not get %s, using RON=1.0",
522 return cpl_propertylist_get_double(aHeaders, keyword);
541 char keyword[KEYWORD_LENGTH];
542 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d GAIN", aQuadrant);
543 return cpl_propertylist_get_double(aHeaders, keyword);
558 unsigned char aQuadrant)
560 cpl_errorstate prestate = cpl_errorstate_get();
561 char keyword[KEYWORD_LENGTH];
562 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d X", aQuadrant);
563 const int value = cpl_propertylist_get_int(aHeaders, keyword);
564 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), -1);
580 unsigned char aQuadrant)
582 cpl_errorstate prestate = cpl_errorstate_get();
583 char keyword[KEYWORD_LENGTH];
584 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d Y", aQuadrant);
585 const int value = cpl_propertylist_get_int(aHeaders, keyword);
586 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), -1);
603 cpl_errorstate prestate = cpl_errorstate_get();
604 char keyword[KEYWORD_LENGTH];
605 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d NX", aQuadrant);
606 const int value = cpl_propertylist_get_int(aHeaders, keyword);
607 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), -1);
624 cpl_errorstate prestate = cpl_errorstate_get();
625 char keyword[KEYWORD_LENGTH];
626 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d NY", aQuadrant);
627 const int value = cpl_propertylist_get_int(aHeaders, keyword);
628 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), -1);
644 unsigned char aQuadrant)
646 cpl_errorstate prestate = cpl_errorstate_get();
647 char keyword[KEYWORD_LENGTH];
648 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d PRSCX", aQuadrant);
649 const int value = cpl_propertylist_get_int(aHeaders, keyword);
650 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), -1);
666 unsigned char aQuadrant)
668 cpl_errorstate prestate = cpl_errorstate_get();
669 char keyword[KEYWORD_LENGTH];
670 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d PRSCY", aQuadrant);
671 const int value = cpl_propertylist_get_int(aHeaders, keyword);
672 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), -1);
688 unsigned char aQuadrant)
690 cpl_errorstate prestate = cpl_errorstate_get();
691 char keyword[KEYWORD_LENGTH];
692 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d OVSCX", aQuadrant);
693 const int value = cpl_propertylist_get_int(aHeaders, keyword);
694 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), -1);
710 unsigned char aQuadrant)
712 cpl_errorstate prestate = cpl_errorstate_get();
713 char keyword[KEYWORD_LENGTH];
714 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d OVSCY", aQuadrant);
715 const int value = cpl_propertylist_get_int(aHeaders, keyword);
716 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), -1);
737 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL GEOLAT");
738 if (fabs(value) < DBL_EPSILON) {
761 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL GEOLON");
762 if (fabs(value) < DBL_EPSILON) {
783 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL GEOELEV");
784 if (fabs(value) < DBL_EPSILON) {
806 double value = 1.705;
807 if (aHeaders && cpl_propertylist_has(aHeaders,
"ESO TEL FOCU SCALE")) {
808 value = cpl_propertylist_get_double(aHeaders,
"ESO TEL FOCU SCALE");
825 cpl_errorstate prestate = cpl_errorstate_get();
826 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL AIRM START");
827 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
843 cpl_errorstate prestate = cpl_errorstate_get();
844 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL AIRM END");
845 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
861 cpl_errorstate prestate = cpl_errorstate_get();
862 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL AMBI TEMP");
863 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
879 cpl_errorstate prestate = cpl_errorstate_get();
880 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL AMBI RHUM");
881 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
897 cpl_errorstate prestate = cpl_errorstate_get();
898 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL AMBI PRES START");
899 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
915 cpl_errorstate prestate = cpl_errorstate_get();
916 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL AMBI PRES END");
917 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
933 cpl_errorstate prestate = cpl_errorstate_get();
934 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL AMBI FWHM START");
935 cpl_ensure(cpl_errorstate_is_equal(prestate) && value > 0.,
936 cpl_error_get_code(), 0.0);
952 cpl_errorstate prestate = cpl_errorstate_get();
953 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL AMBI FWHM END");
954 cpl_ensure(cpl_errorstate_is_equal(prestate) && value > 0.,
955 cpl_error_get_code(), 0.0);
971 cpl_errorstate prestate = cpl_errorstate_get();
972 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL ALT");
973 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
989 cpl_errorstate prestate = cpl_errorstate_get();
990 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL PARANG START");
991 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
1007 cpl_errorstate prestate = cpl_errorstate_get();
1008 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL PARANG END");
1009 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
1025 cpl_errorstate prestate = cpl_errorstate_get();
1026 const char *value = cpl_propertylist_get_string(aHeaders,
"ESO INS DROT MODE");
1027 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
1043 cpl_errorstate prestate = cpl_errorstate_get();
1044 const double value = cpl_propertylist_get_double(aHeaders,
"ESO INS DROT POSANG");
1045 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
1061 cpl_errorstate prestate = cpl_errorstate_get();
1062 const double value = cpl_propertylist_get_double(aHeaders,
"ESO INS DROT START");
1063 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
1079 cpl_errorstate prestate = cpl_errorstate_get();
1080 const double value = cpl_propertylist_get_double(aHeaders,
"ESO INS DROT END");
1081 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
1100 cpl_ensure(value, cpl_error_get_code(), MUSE_MODE_WFM_NONAO_N);
1101 if (!strncmp(value,
"NFM", 3)) {
1102 return MUSE_MODE_NFM_AO_N;
1104 if (!strncmp(value,
"WFM-AO", 6)) {
1105 return MUSE_MODE_WFM_AO_N;
1107 if (!strncmp(value,
"WFM-NOAO-N", 10) || !strncmp(value,
"WFM-NONAO-N", 11)) {
1108 return MUSE_MODE_WFM_NONAO_N;
1110 return MUSE_MODE_WFM_NONAO_X;
1127 cpl_errorstate prestate = cpl_errorstate_get();
1128 const char *value = cpl_propertylist_get_string(aHeaders,
"ESO INS MODE");
1129 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
1153 cpl_errorstate prestate = cpl_errorstate_get();
1154 char keyword[KEYWORD_LENGTH];
1155 snprintf(keyword, KEYWORD_LENGTH,
"ESO INS AMPL%d CURR", aDiode);
1156 double value = cpl_propertylist_get_double(aHeaders, keyword);
1157 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
1158 const char *comment = cpl_propertylist_get_comment(aHeaders, keyword);
1159 cpl_boolean ismilliampere = comment && strstr(comment,
"[mA]")
1160 ? CPL_TRUE : CPL_FALSE;
1161 if (!ismilliampere) {
1162 cpl_error_set_message(__func__, CPL_ERROR_INCOMPATIBLE_INPUT,
1163 "Could not ensure that %s is in mA!", keyword);
1183 cpl_errorstate prestate = cpl_errorstate_get();
1184 char keyword[KEYWORD_LENGTH];
1185 snprintf(keyword, KEYWORD_LENGTH,
"ESO INS AMPL%d STDEV", aDiode);
1186 const double value = cpl_propertylist_get_double(aHeaders, keyword);
1187 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
1203 cpl_errorstate prestate = cpl_errorstate_get();
1204 const char *value = cpl_propertylist_get_string(aHeaders,
1205 "ESO INS AMPL2 FILTER");
1206 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
1227 cpl_errorstate prestate = cpl_errorstate_get();
1228 const int value = cpl_propertylist_get_int(aHeaders,
"ESO INS LAMPNUM");
1229 if (!cpl_errorstate_is_equal(prestate)) {
1231 cpl_errorstate_set(prestate);
1250 cpl_errorstate prestate = cpl_errorstate_get();
1251 char keyword[KEYWORD_LENGTH];
1252 snprintf(keyword, KEYWORD_LENGTH,
"ESO INS LAMP%d NAME", aLamp);
1253 const char *value = cpl_propertylist_get_string(aHeaders, keyword);
1254 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
1271 cpl_errorstate prestate = cpl_errorstate_get();
1272 char keyword[KEYWORD_LENGTH];
1273 snprintf(keyword, KEYWORD_LENGTH,
"ESO INS LAMP%d ST", aLamp);
1274 const int value = cpl_propertylist_get_bool(aHeaders, keyword);
1275 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0);
1292 cpl_errorstate prestate = cpl_errorstate_get();
1293 char keyword[KEYWORD_LENGTH];
1294 snprintf(keyword, KEYWORD_LENGTH,
"ESO INS SHUT%d NAME", aShutter);
1295 const char *value = cpl_propertylist_get_string(aHeaders, keyword);
1296 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
1313 cpl_errorstate prestate = cpl_errorstate_get();
1314 char keyword[KEYWORD_LENGTH];
1315 snprintf(keyword, KEYWORD_LENGTH,
"ESO INS SHUT%d ST", aShutter);
1316 const int value = cpl_propertylist_get_bool(aHeaders, keyword);
1317 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0);
1336 cpl_errorstate prestate = cpl_errorstate_get();
1337 char keyword[KEYWORD_LENGTH];
1338 snprintf(keyword, KEYWORD_LENGTH,
"ESO INS POS%d ENC", aEncoder);
1339 const int value = cpl_propertylist_get_int(aHeaders, keyword);
1340 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0);
1365 cpl_errorstate prestate = cpl_errorstate_get();
1366 char keyword[KEYWORD_LENGTH];
1367 snprintf(keyword, KEYWORD_LENGTH,
"ESO INS POS%d POS", aEncoder);
1368 const double value = cpl_propertylist_get_double(aHeaders, keyword);
1369 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
const char * muse_pfits_get_dpr_type(const cpl_propertylist *aHeaders)
find out the DPR type
cpl_boolean muse_pfits_has_ifu(const cpl_propertylist *aHeaders, unsigned char aIFU)
Find out the whether this header related to a certain IFU.
int muse_pfits_get_out_overscan_y(const cpl_propertylist *aHeaders, unsigned char aQuadrant)
find out the vertical size of the overscan region of one quadrant
int muse_pfits_get_out_output_y(const cpl_propertylist *aHeaders, unsigned char aQuadrant)
find out the vertical location of the output port of one quadrant
cpl_boolean muse_pfits_get_chip_live(const cpl_propertylist *aHeaders)
find out if the CCD was active (live)
const char * muse_pfits_get_extname(const cpl_propertylist *aHeaders)
find out the extension name
const char * muse_pfits_get_insmode(const cpl_propertylist *aHeaders)
find out the observation mode
int muse_pfits_get_read_id(const cpl_propertylist *aHeaders)
find out the readout mode id
const char * muse_pfits_get_dpr_catg(const cpl_propertylist *aHeaders)
find out the DPR category
double muse_pfits_get_rhum(const cpl_propertylist *aHeaders)
find out the relavtive humidity (in %)
double muse_pfits_get_ra(const cpl_propertylist *aHeaders)
find out the right ascension
cpl_size muse_pfits_get_naxis(const cpl_propertylist *aHeaders, unsigned int aAxis)
find out the size of a given axis
double muse_pfits_get_gain(const cpl_propertylist *aHeaders, unsigned char aQuadrant)
find the detector gain (in units of count/adu)
int muse_pfits_get_shut_status(const cpl_propertylist *aHeaders, int aShutter)
query the status of one shutter
int muse_pfits_get_out_overscan_x(const cpl_propertylist *aHeaders, unsigned char aQuadrant)
find out the horizontal size of the overscan region of one quadrant
double muse_pfits_get_altang(const cpl_propertylist *aHeaders)
find out the altitude angle at start of the exposure (in degrees)
int muse_pfits_get_out_output_x(const cpl_propertylist *aHeaders, unsigned char aQuadrant)
find out the horizontal location of the output port of one quadrant
double muse_pfits_get_pres_start(const cpl_propertylist *aHeaders)
find out the ambient pressure at start of exposure (in mbar)
double muse_pfits_get_airmass_start(const cpl_propertylist *aHeaders)
find out the airmass at start of exposure
const char * muse_pfits_get_dateobs(const cpl_propertylist *aHeaders)
find out the date of observations
double muse_pfits_get_focu_scale(const cpl_propertylist *aHeaders)
find out the scale in the VLT focal plane
const char * muse_pfits_get_shut_name(const cpl_propertylist *aHeaders, int aShutter)
query the name of one shutter
int muse_pfits_get_lampnum(const cpl_propertylist *aHeaders)
query the number of lamps installed
double muse_pfits_get_drot_posang(const cpl_propertylist *aHeaders)
find out the MUSE derotator position angle (in degrees)
const char * muse_pfits_get_chip_date(const cpl_propertylist *aHeaders)
find out the chip installation date
double muse_pfits_get_equinox(const cpl_propertylist *aHeaders)
find out the equinox
const char * muse_pfits_get_pam2_filter(const cpl_propertylist *aHeaders)
query the filter set up in front of photo diode (pico amplifier) 2
double muse_pfits_get_fwhm_end(const cpl_propertylist *aHeaders)
find out the ambient seeing at end of exposure (in arcsec)
int muse_pfits_get_biny(const cpl_propertylist *aHeaders)
find out the binning factor in y direction
double muse_pfits_get_geolat(const cpl_propertylist *aHeaders)
find out the telescope's latitude
const char * muse_pfits_get_lamp_name(const cpl_propertylist *aHeaders, int aLamp)
query the name of one lamp
double muse_pfits_get_pam_intensity(const cpl_propertylist *aHeaders, int aDiode)
query the intensity measured by one photo diode (pico amplifier)
const char * muse_pfits_get_pipefile(const cpl_propertylist *aHeaders)
find out the pipefile
const char * muse_pfits_get_drot_mode(const cpl_propertylist *aHeaders)
find out the MUSE derotator mode
int muse_pfits_get_out_prescan_y(const cpl_propertylist *aHeaders, unsigned char aQuadrant)
find out the vertical size of the prescan region of one quadrant
int muse_pfits_get_out_nx(const cpl_propertylist *aHeaders, unsigned char aQuadrant)
find out the horizontal size of the data region of one quadrant
const char * muse_pfits_get_arcfile(const cpl_propertylist *aHeaders)
find out the arcfile
double muse_pfits_get_ron(const cpl_propertylist *aHeaders, unsigned char aQuadrant)
find the detector read-out noise
const char * muse_pfits_get_read_name(const cpl_propertylist *aHeaders)
find out the readout mode name
double muse_pfits_get_pam_stdev(const cpl_propertylist *aHeaders, int aDiode)
query the intensity std. dev. of one photo diode (pico amplifier)
double muse_pfits_get_drot_end(const cpl_propertylist *aHeaders)
find out the MUSE derotator rotation at exposure end (in degrees)
double muse_pfits_get_fwhm_start(const cpl_propertylist *aHeaders)
find out the ambient seeing at start of exposure (in arcsec)
double muse_pfits_get_drot_start(const cpl_propertylist *aHeaders)
find out the MUSE derotator rotation at exposure start (in degrees)
double muse_pfits_get_dec(const cpl_propertylist *aHeaders)
find out the declination
int muse_pfits_get_posenc(const cpl_propertylist *aHeaders, unsigned short aEncoder)
query the absolute encoder position of one encoder
const char * muse_pfits_get_chip_id(const cpl_propertylist *aHeaders)
find out the chip id
int muse_pfits_get_binx(const cpl_propertylist *aHeaders)
find out the binning factor in x direction
double muse_pfits_get_parang_start(const cpl_propertylist *aHeaders)
find out the parallactic angle at start of exposure (in degrees)
double muse_pfits_get_pres_end(const cpl_propertylist *aHeaders)
find out the ambient pressure at end of exposure (in mbar)
double muse_pfits_get_airmass_end(const cpl_propertylist *aHeaders)
find out the airmass at end of exposure
int muse_pfits_get_lamp_status(const cpl_propertylist *aHeaders, int aLamp)
query the status of one lamp
double muse_pfits_get_mjdobs(const cpl_propertylist *aHeaders)
find out the Julian Date of the observation
double muse_pfits_get_pospos(const cpl_propertylist *aHeaders, unsigned short aEncoder)
query the position in user units of one encoder
const char * muse_pfits_get_pro_type(const cpl_propertylist *aHeaders)
find out the PRO type
double muse_pfits_get_exptime(const cpl_propertylist *aHeaders)
find out the exposure time
const char * muse_pfits_get_pro_catg(const cpl_propertylist *aHeaders)
find out the PRO category
double muse_pfits_get_temp(const cpl_propertylist *aHeaders)
find out the ambient temperature (in degrees Celsius)
double muse_pfits_get_geoelev(const cpl_propertylist *aHeaders)
find out the telescope's elevation
int muse_pfits_get_out_prescan_x(const cpl_propertylist *aHeaders, unsigned char aQuadrant)
find out the horizontal size of the prescan region of one quadrant
double muse_pfits_get_lst(const cpl_propertylist *aHeaders)
find out the local siderial time
int muse_pfits_get_out_ny(const cpl_propertylist *aHeaders, unsigned char aQuadrant)
find out the vertical size of the data region of one quadrant
const char * muse_pfits_get_chip_name(const cpl_propertylist *aHeaders)
find out the chip name
double muse_pfits_get_geolon(const cpl_propertylist *aHeaders)
find out the telescope's longitude
muse_ins_mode muse_pfits_get_mode(const cpl_propertylist *aHeaders)
find out the observation mode
double muse_pfits_get_parang_end(const cpl_propertylist *aHeaders)
find out the parallactic angle at end of exposure (in degrees)