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);
208 cpl_errorstate prestate = cpl_errorstate_get();
209 const double value = cpl_propertylist_get_double(aHeaders,
"RA");
210 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
226 cpl_errorstate prestate = cpl_errorstate_get();
227 const double value = cpl_propertylist_get_double(aHeaders,
"DEC");
228 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
244 cpl_errorstate prestate = cpl_errorstate_get();
245 const double value = cpl_propertylist_get_double(aHeaders,
"LST");
246 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
262 cpl_errorstate prestate = cpl_errorstate_get();
263 const char *value = cpl_propertylist_get_string(aHeaders,
"DATE-OBS");
264 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
280 cpl_errorstate prestate = cpl_errorstate_get();
281 const double value = cpl_propertylist_get_double(aHeaders,
"EXPTIME");
282 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
298 cpl_errorstate prestate = cpl_errorstate_get();
299 const int value = cpl_propertylist_get_int(aHeaders,
"ESO DET READ CURID");
300 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0);
316 cpl_errorstate prestate = cpl_errorstate_get();
317 const char *value = cpl_propertylist_get_string(aHeaders,
"ESO DET READ CURNAME");
318 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
334 cpl_errorstate prestate = cpl_errorstate_get();
335 const int value = cpl_propertylist_get_int(aHeaders,
"ESO DET BINX");
336 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 1);
352 cpl_errorstate prestate = cpl_errorstate_get();
353 const int value = cpl_propertylist_get_int(aHeaders,
"ESO DET BINY");
354 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 1);
370 cpl_errorstate prestate = cpl_errorstate_get();
371 const char *value = cpl_propertylist_get_string(aHeaders,
"ESO DET CHIP NAME");
372 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
388 cpl_errorstate prestate = cpl_errorstate_get();
389 const char *value = cpl_propertylist_get_string(aHeaders,
"ESO DET CHIP ID");
390 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
406 cpl_errorstate prestate = cpl_errorstate_get();
407 const char *value = cpl_propertylist_get_string(aHeaders,
"ESO DET CHIP DATE");
408 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
425 cpl_errorstate prestate = cpl_errorstate_get();
426 const cpl_boolean value = cpl_propertylist_get_bool(aHeaders,
427 "ESO DET CHIP LIVE") == 0
428 ? CPL_FALSE : CPL_TRUE;
429 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), CPL_FALSE);
446 char keyword[KEYWORD_LENGTH];
447 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d RON", aQuadrant);
448 if (!cpl_propertylist_has(aHeaders, keyword)) {
449 cpl_msg_warning(__func__,
"Could not get %s, using RON=1.0",
453 return cpl_propertylist_get_double(aHeaders, keyword);
472 char keyword[KEYWORD_LENGTH];
473 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d GAIN", aQuadrant);
474 return cpl_propertylist_get_double(aHeaders, keyword);
489 unsigned char aQuadrant)
491 cpl_errorstate prestate = cpl_errorstate_get();
492 char keyword[KEYWORD_LENGTH];
493 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d X", aQuadrant);
494 const int value = cpl_propertylist_get_int(aHeaders, keyword);
495 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), -1);
511 unsigned char aQuadrant)
513 cpl_errorstate prestate = cpl_errorstate_get();
514 char keyword[KEYWORD_LENGTH];
515 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d Y", aQuadrant);
516 const int value = cpl_propertylist_get_int(aHeaders, keyword);
517 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), -1);
534 cpl_errorstate prestate = cpl_errorstate_get();
535 char keyword[KEYWORD_LENGTH];
536 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d NX", aQuadrant);
537 const int value = cpl_propertylist_get_int(aHeaders, keyword);
538 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), -1);
555 cpl_errorstate prestate = cpl_errorstate_get();
556 char keyword[KEYWORD_LENGTH];
557 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d NY", aQuadrant);
558 const int value = cpl_propertylist_get_int(aHeaders, keyword);
559 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), -1);
575 unsigned char aQuadrant)
577 cpl_errorstate prestate = cpl_errorstate_get();
578 char keyword[KEYWORD_LENGTH];
579 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d PRSCX", aQuadrant);
580 const int value = cpl_propertylist_get_int(aHeaders, keyword);
581 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), -1);
597 unsigned char aQuadrant)
599 cpl_errorstate prestate = cpl_errorstate_get();
600 char keyword[KEYWORD_LENGTH];
601 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d PRSCY", aQuadrant);
602 const int value = cpl_propertylist_get_int(aHeaders, keyword);
603 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), -1);
619 unsigned char aQuadrant)
621 cpl_errorstate prestate = cpl_errorstate_get();
622 char keyword[KEYWORD_LENGTH];
623 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d OVSCX", aQuadrant);
624 const int value = cpl_propertylist_get_int(aHeaders, keyword);
625 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), -1);
641 unsigned char aQuadrant)
643 cpl_errorstate prestate = cpl_errorstate_get();
644 char keyword[KEYWORD_LENGTH];
645 snprintf(keyword, KEYWORD_LENGTH,
"ESO DET OUT%d OVSCY", aQuadrant);
646 const int value = cpl_propertylist_get_int(aHeaders, keyword);
647 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), -1);
668 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL GEOLAT");
669 if (fabs(value) < DBL_EPSILON) {
692 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL GEOLON");
693 if (fabs(value) < DBL_EPSILON) {
715 double value = 1.705;
716 if (aHeaders && cpl_propertylist_has(aHeaders,
"ESO TEL FOCU SCALE")) {
717 value = cpl_propertylist_get_double(aHeaders,
"ESO TEL FOCU SCALE");
734 cpl_errorstate prestate = cpl_errorstate_get();
735 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL AIRM START");
736 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
752 cpl_errorstate prestate = cpl_errorstate_get();
753 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL AIRM END");
754 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
770 cpl_errorstate prestate = cpl_errorstate_get();
771 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL AMBI TEMP");
772 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
788 cpl_errorstate prestate = cpl_errorstate_get();
789 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL AMBI RHUM");
790 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
806 cpl_errorstate prestate = cpl_errorstate_get();
807 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL AMBI PRES START");
808 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
824 cpl_errorstate prestate = cpl_errorstate_get();
825 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL AMBI PRES END");
826 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
842 cpl_errorstate prestate = cpl_errorstate_get();
843 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL AMBI FWHM START");
844 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
860 cpl_errorstate prestate = cpl_errorstate_get();
861 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL AMBI FWHM END");
862 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
878 cpl_errorstate prestate = cpl_errorstate_get();
879 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL ALT");
880 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
896 cpl_errorstate prestate = cpl_errorstate_get();
897 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL PARANG START");
898 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
914 cpl_errorstate prestate = cpl_errorstate_get();
915 const double value = cpl_propertylist_get_double(aHeaders,
"ESO TEL PARANG END");
916 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
932 cpl_errorstate prestate = cpl_errorstate_get();
933 const char *value = cpl_propertylist_get_string(aHeaders,
"ESO INS DROT MODE");
934 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
950 cpl_errorstate prestate = cpl_errorstate_get();
951 const double value = cpl_propertylist_get_double(aHeaders,
"ESO INS DROT POSANG");
952 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
968 cpl_errorstate prestate = cpl_errorstate_get();
969 const double value = cpl_propertylist_get_double(aHeaders,
"ESO INS DROT START");
970 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
986 cpl_errorstate prestate = cpl_errorstate_get();
987 const double value = cpl_propertylist_get_double(aHeaders,
"ESO INS DROT END");
988 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
1005 cpl_errorstate prestate = cpl_errorstate_get();
1006 const char *value = cpl_propertylist_get_string(aHeaders,
"ESO INS MODE");
1007 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(),
1008 MUSE_MODE_WFM_NONAO_N);
1009 if (!strncmp(value,
"NFM", 3)) {
1010 return MUSE_MODE_NFM_AO_N;
1012 if (!strncmp(value,
"WFM-AO", 6)) {
1013 return MUSE_MODE_WFM_AO_N;
1015 if (!strncmp(value,
"WFM-NOAO-N", 10) || !strncmp(value,
"WFM-NONAO-N", 11)) {
1016 return MUSE_MODE_WFM_NONAO_N;
1018 return MUSE_MODE_WFM_NONAO_X;
1041 cpl_errorstate prestate = cpl_errorstate_get();
1042 char keyword[KEYWORD_LENGTH];
1043 snprintf(keyword, KEYWORD_LENGTH,
"ESO INS AMPL%d CURR", aDiode);
1044 double value = cpl_propertylist_get_double(aHeaders, keyword);
1045 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
1046 const char *comment = cpl_propertylist_get_comment(aHeaders, keyword);
1047 cpl_boolean ismilliampere = comment && strstr(comment,
"[mA]")
1048 ? CPL_TRUE : CPL_FALSE;
1049 if (!ismilliampere) {
1050 cpl_error_set_message(__func__, CPL_ERROR_INCOMPATIBLE_INPUT,
1051 "Could not ensure that %s is in mA!", keyword);
1071 cpl_errorstate prestate = cpl_errorstate_get();
1072 char keyword[KEYWORD_LENGTH];
1073 snprintf(keyword, KEYWORD_LENGTH,
"ESO INS AMPL%d STDEV", aDiode);
1074 const double value = cpl_propertylist_get_double(aHeaders, keyword);
1075 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0.0);
1091 cpl_errorstate prestate = cpl_errorstate_get();
1092 const char *value = cpl_propertylist_get_string(aHeaders,
1093 "ESO INS AMPL2 FILTER");
1094 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
1115 cpl_errorstate prestate = cpl_errorstate_get();
1116 const int value = cpl_propertylist_get_int(aHeaders,
"ESO INS LAMPNUM");
1117 if (!cpl_errorstate_is_equal(prestate)) {
1119 cpl_errorstate_set(prestate);
1138 cpl_errorstate prestate = cpl_errorstate_get();
1139 char keyword[KEYWORD_LENGTH];
1140 snprintf(keyword, KEYWORD_LENGTH,
"ESO INS LAMP%d NAME", aLamp);
1141 const char *value = cpl_propertylist_get_string(aHeaders, keyword);
1142 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
1159 cpl_errorstate prestate = cpl_errorstate_get();
1160 char keyword[KEYWORD_LENGTH];
1161 snprintf(keyword, KEYWORD_LENGTH,
"ESO INS LAMP%d ST", aLamp);
1162 const int value = cpl_propertylist_get_bool(aHeaders, keyword);
1163 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0);
1180 cpl_errorstate prestate = cpl_errorstate_get();
1181 char keyword[KEYWORD_LENGTH];
1182 snprintf(keyword, KEYWORD_LENGTH,
"ESO INS SHUT%d NAME", aShutter);
1183 const char *value = cpl_propertylist_get_string(aHeaders, keyword);
1184 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), NULL);
1201 cpl_errorstate prestate = cpl_errorstate_get();
1202 char keyword[KEYWORD_LENGTH];
1203 snprintf(keyword, KEYWORD_LENGTH,
"ESO INS SHUT%d ST", aShutter);
1204 const int value = cpl_propertylist_get_bool(aHeaders, keyword);
1205 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0);
1224 cpl_errorstate prestate = cpl_errorstate_get();
1225 char keyword[KEYWORD_LENGTH];
1226 snprintf(keyword, KEYWORD_LENGTH,
"ESO INS POS%d ENC", aEncoder);
1227 const int value = cpl_propertylist_get_int(aHeaders, keyword);
1228 cpl_ensure(cpl_errorstate_is_equal(prestate), cpl_error_get_code(), 0);
1253 cpl_errorstate prestate = cpl_errorstate_get();
1254 char keyword[KEYWORD_LENGTH];
1255 snprintf(keyword, KEYWORD_LENGTH,
"ESO INS POS%d POS", aEncoder);
1256 const double value = cpl_propertylist_get_double(aHeaders, keyword);
1257 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
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
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 exposure time
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
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_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)
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)