30#include "moo_detector.h"
64 const char *key = MOONS_QC_CRH_NUMBER;
65 const char *comment = MOONS_QC_CRH_NUMBER_C;
67 cpl_error_code status = CPL_ERROR_NONE;
69 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
70 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
71 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
93 const char *key = MOONS_QC_CRH_TOT;
94 const char *comment = MOONS_QC_CRH_TOT_C;
96 cpl_error_code status = CPL_ERROR_NONE;
98 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
99 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
100 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
122 const char *key = MOONS_QC_CRH_AVG;
123 const char *comment = MOONS_QC_CRH_AVG_C;
125 cpl_error_code status = CPL_ERROR_NONE;
127 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
128 moo_ensure_status(cpl_propertylist_append_float(plist, key, val), status);
129 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
151 const char *key = MOONS_QC_NCOM;
152 const char *comment = MOONS_QC_NCOM_C;
154 cpl_error_code status = CPL_ERROR_NONE;
156 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
157 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
158 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
182 cpl_error_code status = CPL_ERROR_NONE;
184 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
186 char *key = cpl_sprintf(MOONS_QC_MBIAS_AVG, i);
189 moo_ensure_status(cpl_propertylist_append_double(plist, key, val),
191 moo_ensure_status(cpl_propertylist_set_comment(plist, key,
192 MOONS_QC_MBIAS_AVG_C),
196 status = cpl_error_get_code();
223 cpl_error_code status = CPL_ERROR_NONE;
225 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
227 char *key = cpl_sprintf(MOONS_QC_MBIAS_MED, i);
230 moo_ensure_status(cpl_propertylist_append_double(plist, key, val),
232 moo_ensure_status(cpl_propertylist_set_comment(plist, key,
233 MOONS_QC_MBIAS_MED_C),
237 status = cpl_error_get_code();
264 cpl_error_code status = CPL_ERROR_NONE;
266 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
268 char *key = cpl_sprintf(MOONS_QC_MBIAS_RMS, i);
271 moo_ensure_status(cpl_propertylist_append_double(plist, key, val),
273 moo_ensure_status(cpl_propertylist_set_comment(plist, key,
274 MOONS_QC_MBIAS_RMS_C),
278 status = cpl_error_get_code();
305 cpl_error_code status = CPL_ERROR_NONE;
307 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
309 char *key = cpl_sprintf(MOONS_QC_MBIAS_MAD, i);
312 moo_ensure_status(cpl_propertylist_append_double(plist, key, val),
314 moo_ensure_status(cpl_propertylist_set_comment(plist, key,
315 MOONS_QC_MBIAS_MAD_C),
319 status = cpl_error_get_code();
346 cpl_error_code status = CPL_ERROR_NONE;
348 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
350 char *key = cpl_sprintf(MOONS_QC_RON_RAW, i);
353 moo_ensure_status(cpl_propertylist_append_double(plist, key, val),
355 moo_ensure_status(cpl_propertylist_set_comment(plist, key,
360 status = cpl_error_get_code();
387 cpl_error_code status = CPL_ERROR_NONE;
389 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
391 char *key = cpl_sprintf(MOONS_QC_RON_MASTER, i);
394 moo_ensure_status(cpl_propertylist_append_double(plist, key, val),
396 moo_ensure_status(cpl_propertylist_set_comment(plist, key,
397 MOONS_QC_RON_MASTER_C),
401 status = cpl_error_get_code();
426 const char *key = MOONS_QC_MDARK_NHOT;
427 const char *comment = MOONS_QC_MDARK_NHOT_C;
429 cpl_error_code status = CPL_ERROR_NONE;
431 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
432 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
433 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
455 const char *key = MOONS_QC_MDARK_AVG;
456 const char *comment = MOONS_QC_MDARK_AVG_C;
458 cpl_error_code status = CPL_ERROR_NONE;
460 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
461 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
462 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
483 const char *key = MOONS_QC_MDARK_NORMALISE_FACTOR;
484 const char *comment = MOONS_QC_MDARK_NORMALISE_FACTOR_C;
486 cpl_error_code status = CPL_ERROR_NONE;
488 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
489 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
490 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
511 const char *key = MOONS_QC_MDARK_MED;
512 const char *comment = MOONS_QC_MDARK_MED_C;
514 cpl_error_code status = CPL_ERROR_NONE;
516 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
517 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
518 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
540 const char *key = MOONS_QC_MDARK_RMS;
541 const char *comment = MOONS_QC_MDARK_RMS_C;
543 cpl_error_code status = CPL_ERROR_NONE;
545 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
546 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
547 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
569 const char *key = MOONS_QC_MDARK_CURRENT;
570 const char *comment = MOONS_QC_MDARK_CURRENT_C;
572 cpl_error_code status = CPL_ERROR_NONE;
574 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
575 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
576 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
598 const char *key = MOONS_QC_RESIDY_MED;
599 const char *comment = MOONS_QC_RESIDY_MED_C;
601 cpl_error_code status = CPL_ERROR_NONE;
603 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
604 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
605 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
627 const char *key = MOONS_QC_RESIDY_SD;
628 const char *comment = MOONS_QC_RESIDY_SD_C;
630 cpl_error_code status = CPL_ERROR_NONE;
632 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
633 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
634 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
655 const char *key = MOONS_QC_RESIDY_AVG;
656 const char *comment = MOONS_QC_RESIDY_AVG_C;
658 cpl_error_code status = CPL_ERROR_NONE;
660 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
661 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
662 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
684 const char *key = MOONS_QC_WIDTHY_MED;
685 const char *comment = MOONS_QC_WIDTHY_MED_C;
687 cpl_error_code status = CPL_ERROR_NONE;
689 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
690 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
691 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
713 const char *key = MOONS_QC_WIDTHY_SD;
714 const char *comment = MOONS_QC_WIDTHY_SD_C;
716 cpl_error_code status = CPL_ERROR_NONE;
718 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
719 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
720 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
741 const char *key = MOONS_QC_WIDTHY_AVG;
742 const char *comment = MOONS_QC_WIDTHY_AVG_C;
744 cpl_error_code status = CPL_ERROR_NONE;
746 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
747 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
748 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
770 const char *key = MOONS_QC_SHIFTY_PTS_MED;
771 const char *comment = MOONS_QC_SHIFTY_PTS_MED_C;
773 cpl_error_code status = CPL_ERROR_NONE;
775 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
776 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
777 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
799 const char *key = MOONS_QC_SHIFTY_PTS_AVG;
800 const char *comment = MOONS_QC_SHIFTY_PTS_AVG_C;
802 cpl_error_code status = CPL_ERROR_NONE;
804 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
805 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
806 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
828 const char *key = MOONS_QC_SHIFTY_PTS_SD;
829 const char *comment = MOONS_QC_SHIFTY_PTS_SD_C;
831 cpl_error_code status = CPL_ERROR_NONE;
833 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
834 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
835 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
857 const char *key = MOONS_QC_SHIFTY_FIT_MED;
858 const char *comment = MOONS_QC_SHIFTY_FIT_MED_C;
860 cpl_error_code status = CPL_ERROR_NONE;
862 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
863 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
864 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
886 const char *key = MOONS_QC_SHIFTY_FIT_AVG;
887 const char *comment = MOONS_QC_SHIFTY_FIT_AVG_C;
889 cpl_error_code status = CPL_ERROR_NONE;
891 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
892 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
893 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
915 const char *key = MOONS_QC_SHIFTY_FIT_SD;
916 const char *comment = MOONS_QC_SHIFTY_FIT_SD_C;
918 cpl_error_code status = CPL_ERROR_NONE;
920 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
921 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
922 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
944 const char *key = MOONS_QC_FIT_DEG;
945 const char *comment = MOONS_QC_FIT_DEG_C;
947 cpl_error_code status = CPL_ERROR_NONE;
949 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
950 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
951 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
973 const char *key = MOONS_QC_NOUTLIER_PTS;
974 const char *comment = MOONS_QC_NOUTLIER_PTS_C;
976 cpl_error_code status = CPL_ERROR_NONE;
978 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
979 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
980 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1002 const char *key = MOONS_QC_NOUTLIER_WID;
1003 const char *comment = MOONS_QC_NOUTLIER_WID_C;
1005 cpl_error_code status = CPL_ERROR_NONE;
1007 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1008 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
1009 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1031 const char *key = MOONS_QC_NBADPROFILE;
1032 const char *comment = MOONS_QC_NBADPROFILE_C;
1034 cpl_error_code status = CPL_ERROR_NONE;
1036 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1037 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
1038 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1060 const char *key = MOONS_QC_NBADPIX;
1061 const char *comment = MOONS_QC_NBADPIX_C;
1063 cpl_error_code status = CPL_ERROR_NONE;
1065 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1066 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
1067 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1089 const char *key = MOONS_QC_NMISSINGFIB;
1090 const char *comment = MOONS_QC_NMISSINGFIB_C;
1092 cpl_error_code status = CPL_ERROR_NONE;
1094 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1095 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
1096 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1120 cpl_error_code status = CPL_ERROR_NONE;
1122 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1124 char *key = cpl_sprintf(MOONS_QC_MISSINGFIB, num);
1127 moo_ensure_status(cpl_propertylist_append_string(plist, key, val),
1129 moo_ensure_status(cpl_propertylist_set_comment(plist, key,
1130 MOONS_QC_MISSINGFIB_C),
1134 status = cpl_error_get_code();
1159 const char *key = MOONS_QC_P2P_MIN;
1160 const char *comment = MOONS_QC_P2P_MIN_C;
1162 cpl_error_code status = CPL_ERROR_NONE;
1164 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1165 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1166 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1188 const char *key = MOONS_QC_P2P_MAX;
1189 const char *comment = MOONS_QC_P2P_MAX_C;
1191 cpl_error_code status = CPL_ERROR_NONE;
1193 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1194 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1195 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1217 const char *key = MOONS_QC_P2P_AVG;
1218 const char *comment = MOONS_QC_P2P_AVG_C;
1220 cpl_error_code status = CPL_ERROR_NONE;
1222 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1223 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1224 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1246 const char *key = MOONS_QC_P2P_MED;
1247 const char *comment = MOONS_QC_P2P_MED_C;
1249 cpl_error_code status = CPL_ERROR_NONE;
1251 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1252 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1253 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1275 const char *key = MOONS_QC_P2P_MAD;
1276 const char *comment = MOONS_QC_P2P_MAD_C;
1278 cpl_error_code status = CPL_ERROR_NONE;
1280 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1281 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1282 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1303 const char *key = MOONS_QC_P2P_RMS;
1304 const char *comment = MOONS_QC_P2P_RMS_C;
1306 cpl_error_code status = CPL_ERROR_NONE;
1308 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1309 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1310 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1331 const char *key = MOONS_QC_MFLAT_SN_MIN;
1332 const char *comment = MOONS_QC_MFLAT_SN_MIN_C;
1334 cpl_error_code status = CPL_ERROR_NONE;
1336 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1337 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1338 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1360 const char *key = MOONS_QC_MFLAT_SN_MAX;
1361 const char *comment = MOONS_QC_MFLAT_SN_MAX_C;
1363 cpl_error_code status = CPL_ERROR_NONE;
1365 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1366 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1367 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1389 const char *key = MOONS_QC_MFLAT_SN_MED;
1390 const char *comment = MOONS_QC_MFLAT_SN_MED_C;
1392 cpl_error_code status = CPL_ERROR_NONE;
1394 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1395 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1396 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1418 const char *key = MOONS_QC_WAVE_MIN;
1419 const char *comment = MOONS_QC_WAVE_MIN_C;
1421 cpl_error_code status = CPL_ERROR_NONE;
1423 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1424 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1425 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1447 const char *key = MOONS_QC_WAVE_MAX;
1448 const char *comment = MOONS_QC_WAVE_MAX_C;
1450 cpl_error_code status = CPL_ERROR_NONE;
1452 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1453 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1454 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1476 const char *key = MOONS_QC_DETECT_NOISEMULT;
1477 const char *comment = MOONS_QC_DETECT_NOISEMULT_C;
1479 cpl_error_code status = CPL_ERROR_NONE;
1481 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1482 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1483 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1505 const char *key = MOONS_QC_MFLAT_MIN;
1506 const char *comment = MOONS_QC_MFLAT_MIN_C;
1508 cpl_error_code status = CPL_ERROR_NONE;
1510 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1511 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1512 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1534 const char *key = MOONS_QC_MFLAT_MAX;
1535 const char *comment = MOONS_QC_MFLAT_MAX_C;
1537 cpl_error_code status = CPL_ERROR_NONE;
1539 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1540 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1541 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1563 const char *key = MOONS_QC_MFLAT_AVG;
1564 const char *comment = MOONS_QC_MFLAT_AVG_C;
1566 cpl_error_code status = CPL_ERROR_NONE;
1568 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1569 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1570 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1592 const char *key = MOONS_QC_MFLAT_MED;
1593 const char *comment = MOONS_QC_MFLAT_MED_C;
1595 cpl_error_code status = CPL_ERROR_NONE;
1597 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1598 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1599 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1621 const char *key = MOONS_QC_MFLAT_RMS;
1622 const char *comment = MOONS_QC_MFLAT_RMS_C;
1624 cpl_error_code status = CPL_ERROR_NONE;
1626 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1627 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
1628 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1652 cpl_error_code status = CPL_ERROR_NONE;
1654 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1656 char *comment = NULL;
1657 char *key = cpl_sprintf(MOONS_QC_FIBTRANS_REF, ntas);
1660 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
1661 comment = cpl_sprintf(MOONS_QC_FIBTRANS_REF_C, ntas);
1662 if (comment != NULL) {
1663 moo_ensure_status(cpl_propertylist_set_comment(
1664 plist, key, MOONS_QC_FIBTRANS_REF_C),
1668 status = cpl_error_get_code();
1672 status = cpl_error_get_code();
1678 if (comment != NULL) {
1704 cpl_error_code status = CPL_ERROR_NONE;
1706 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1711 moo_ensure_status(cpl_propertylist_append_double(plist, key, val),
1713 moo_ensure_status(cpl_propertylist_set_comment(plist, key,
1714 MOONS_QC_FIBTRANS_MIN_C),
1718 status = cpl_error_get_code();
1747 cpl_error_code status = CPL_ERROR_NONE;
1749 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1754 moo_ensure_status(cpl_propertylist_append_double(plist, key, val),
1756 moo_ensure_status(cpl_propertylist_set_comment(plist, key,
1757 MOONS_QC_FIBTRANS_MAX_C),
1761 status = cpl_error_get_code();
1790 cpl_error_code status = CPL_ERROR_NONE;
1792 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1797 moo_ensure_status(cpl_propertylist_append_double(plist, key, val),
1799 moo_ensure_status(cpl_propertylist_set_comment(plist, key,
1800 MOONS_QC_FIBTRANS_MED_C),
1804 status = cpl_error_get_code();
1828 const char *key = MOONS_QC_WAVECAL_CATLINE;
1829 const char *comment = MOONS_QC_WAVECAL_CATLINE_C;
1831 cpl_error_code status = CPL_ERROR_NONE;
1833 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1834 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
1835 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1857 const char *key = MOONS_QC_WAVECAL_DETECTLINE;
1858 const char *comment = MOONS_QC_WAVECAL_DETECTLINE_C;
1860 cpl_error_code status = CPL_ERROR_NONE;
1862 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1863 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
1864 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1886 const char *key = MOONS_QC_WAVECAL_FAILEDFIT;
1887 const char *comment = MOONS_QC_WAVECAL_FAILEDFIT_C;
1889 cpl_error_code status = CPL_ERROR_NONE;
1891 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1892 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
1893 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1915 const char *key = MOONS_QC_WAVECAL_FITLINE;
1916 const char *comment = MOONS_QC_WAVECAL_FITLINE_C;
1918 cpl_error_code status = CPL_ERROR_NONE;
1920 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1921 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
1922 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1944 const char *key = MOONS_QC_WAVECAL_MATCHLINE;
1945 const char *comment = MOONS_QC_WAVECAL_MATCHLINE_C;
1947 cpl_error_code status = CPL_ERROR_NONE;
1949 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1950 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
1951 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
1973 const char *key = MOONS_QC_WAVECAL_CLIPLINE;
1974 const char *comment = MOONS_QC_WAVECAL_CLIPLINE_C;
1976 cpl_error_code status = CPL_ERROR_NONE;
1978 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
1979 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
1980 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
2002 const char *key = MOONS_QC_WAVECAL_MONOTONOUS_SOLUTION;
2003 const char *comment = MOONS_QC_WAVECAL_MONOTONOUS_SOLUTION_C;
2005 cpl_error_code status = CPL_ERROR_NONE;
2007 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
2009 moo_ensure_status(cpl_propertylist_append_bool(plist, key, val), status);
2010 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
2032 const char *key = MOONS_QC_WAVECAL_VALIDFIBRE;
2033 const char *comment = MOONS_QC_WAVECAL_VALIDFIBRE_C;
2035 cpl_error_code status = CPL_ERROR_NONE;
2037 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
2038 moo_ensure_status(cpl_propertylist_append_int(plist, key, val), status);
2039 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
2063 const char *key = MOONS_QC_WAVECAL_DISP_MIN;
2064 const char *comment = MOONS_QC_WAVECAL_DISP_MIN_C;
2065 cpl_error_code status = CPL_ERROR_NONE;
2067 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
2069 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
2070 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
2094 const char *key = MOONS_QC_WAVECAL_DISP_MAX;
2095 const char *comment = MOONS_QC_WAVECAL_DISP_MAX_C;
2096 cpl_error_code status = CPL_ERROR_NONE;
2098 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
2100 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
2101 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
2125 const char *key = MOONS_QC_WAVECAL_RESOL_MED;
2126 const char *comment = MOONS_QC_WAVECAL_RESOL_MED_C;
2127 cpl_error_code status = CPL_ERROR_NONE;
2129 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
2131 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
2132 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
2156 const char *key = MOONS_QC_WAVECAL_RESIDWAVE_MED;
2157 const char *comment = MOONS_QC_WAVECAL_RESIDWAVE_MED_C;
2158 cpl_error_code status = CPL_ERROR_NONE;
2160 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
2162 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
2163 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
2187 const char *key = MOONS_QC_WAVECAL_RESIDWAVE_STD;
2188 const char *comment = MOONS_QC_WAVECAL_RESIDWAVE_STD_C;
2189 cpl_error_code status = CPL_ERROR_NONE;
2191 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
2193 moo_ensure_status(cpl_propertylist_append_double(plist, key, val), status);
2194 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
2219 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
2220 return cpl_propertylist_get_int(plist, MOONS_QC_NCOM);
2240 cpl_error_code status = CPL_ERROR_NONE;
2242 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
2244 if (cpl_propertylist_has(plist, MOONS_QC_SNR_RANGE)) {
2245 moo_ensure_status(cpl_propertylist_set_string(plist, MOONS_QC_SNR_RANGE,
2250 moo_ensure_status(cpl_propertylist_append_string(plist,
2254 moo_ensure_status(cpl_propertylist_set_comment(plist,
2256 MOONS_QC_SNR_RANGE_C),
2282 const char *value = NULL;
2283 cpl_error_code status = CPL_ERROR_NONE;
2285 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
2287 char *name = strrchr(val,
'/');
2294 if (cpl_propertylist_has(plist, MOONS_QC_FRAME_RAW1)) {
2295 moo_ensure_status(cpl_propertylist_set_string(plist,
2296 MOONS_QC_FRAME_RAW1,
2301 moo_ensure_status(cpl_propertylist_append_string(plist,
2302 MOONS_QC_FRAME_RAW1,
2305 moo_ensure_status(cpl_propertylist_set_comment(plist,
2306 MOONS_QC_FRAME_RAW1,
2307 MOONS_QC_FRAME_RAW1_C),
2333 const char *value = NULL;
2334 cpl_error_code status = CPL_ERROR_NONE;
2336 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
2338 char *name = strrchr(val,
'/');
2345 if (cpl_propertylist_has(plist, MOONS_QC_FRAME_RAW2)) {
2346 moo_ensure_status(cpl_propertylist_set_string(plist,
2347 MOONS_QC_FRAME_RAW2,
2352 moo_ensure_status(cpl_propertylist_append_string(plist,
2353 MOONS_QC_FRAME_RAW2,
2356 moo_ensure_status(cpl_propertylist_set_comment(plist,
2357 MOONS_QC_FRAME_RAW2,
2358 MOONS_QC_FRAME_RAW2_C),
2383 const char *key = MOONS_QC_IS_LINEARCOR;
2384 const char *comment = MOONS_QC_IS_LINEARCOR_C;
2385 cpl_error_code status = CPL_ERROR_NONE;
2387 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
2388 if (cpl_propertylist_has(plist, key)) {
2389 moo_ensure_status(cpl_propertylist_set_bool(plist, key, val), status);
2392 moo_ensure_status(cpl_propertylist_append_bool(plist, key, val),
2394 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
2418 const char *key = MOONS_QC_IS_P2PCOR;
2419 const char *comment = MOONS_QC_IS_P2PCOR_C;
2420 cpl_error_code status = CPL_ERROR_NONE;
2422 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
2423 if (cpl_propertylist_has(plist, key)) {
2424 moo_ensure_status(cpl_propertylist_set_bool(plist, key, val), status);
2427 moo_ensure_status(cpl_propertylist_append_bool(plist, key, val),
2429 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
2453 const char *key = MOONS_QC_IS_TELLCOR;
2454 const char *comment = MOONS_QC_IS_TELLCOR_C;
2455 cpl_error_code status = CPL_ERROR_NONE;
2457 cpl_ensure_code(plist != NULL, CPL_ERROR_NULL_INPUT);
2458 if (cpl_propertylist_has(plist, key)) {
2459 moo_ensure_status(cpl_propertylist_set_bool(plist, key, val), status);
2462 moo_ensure_status(cpl_propertylist_append_bool(plist, key, val),
2464 moo_ensure_status(cpl_propertylist_set_comment(plist, key, comment),
const char * moo_detector_get_name(moo_detector_type type)
Get the extension name of a detector.
enum _moo_detector_type_ moo_detector_type
The type code type.
cpl_error_code moo_qc_set_p2p_max(cpl_propertylist *plist, double val)
Set the QC.P2P.MAX value.
cpl_error_code moo_qc_set_mdark_normalise_factor(cpl_propertylist *plist, double val)
Set the QC.MDARK.NORMALISE.FACTOR value.
cpl_error_code moo_qc_set_ron_raw(cpl_propertylist *plist, int i, double val)
Set the QC.RON.RAW value.
cpl_error_code moo_qc_set_snr_range(cpl_propertylist *plist, const char *val)
Set the QC.SNR.RANGE value.
cpl_error_code moo_qc_set_wavecal_residwave_std(cpl_propertylist *plist, double val)
Set the QC.WAVECAL.RESIDWAVE.STD value.
cpl_error_code moo_qc_set_fibtrans_ref(cpl_propertylist *plist, int ntas, int val)
Set the QC.SPECTRO.FIBTRANS.REF.value.
cpl_error_code moo_qc_set_widthy_sd(cpl_propertylist *plist, double val)
Set the QC.WIDTHY.STD value.
cpl_error_code moo_qc_set_p2p_med(cpl_propertylist *plist, double val)
Set the QC.P2P.MED value.
cpl_error_code moo_qc_set_shifty_fit_sd(cpl_propertylist *plist, double val)
Set the QC.SHIFTY.FIT.SD value.
cpl_error_code moo_qc_set_wavecal_validfibre(cpl_propertylist *plist, int val)
Set the QC.WAVECAL.VALIDFIBRE value.
cpl_error_code moo_qc_set_wavecal_catline(cpl_propertylist *plist, int val)
Set the QC.WAVECAL.CATLINE value.
cpl_error_code moo_qc_set_wavecal_monotonous_solution(cpl_propertylist *plist, int val)
Set the QC.WAVECAL.MONOTONOUS.SOLUTION value.
cpl_error_code moo_qc_set_wavecal_disp_max(cpl_propertylist *plist, double val)
Set the QC.WAVECAL.DISP.MAX value.
cpl_error_code moo_qc_set_wavecal_matchline(cpl_propertylist *plist, int val)
Set the QC.WAVECAL.MATCHLINE value.
cpl_error_code moo_qc_set_widthy_med(cpl_propertylist *plist, double val)
Set the QC.WIDTHY.MED value.
cpl_error_code moo_qc_set_mbias_mad(cpl_propertylist *plist, int i, double val)
Set the QC.MBIAS.MAD value.
cpl_error_code moo_qc_set_nbadprofile(cpl_propertylist *plist, int val)
Set the QC.NBADPROFILE value.
cpl_error_code moo_qc_set_noutlier_wid(cpl_propertylist *plist, int val)
Set the QC.NOUTLIER.WID value.
cpl_error_code moo_qc_set_mdark_nhot(cpl_propertylist *plist, int val)
Set the QC.MDARK.NHOT value.
cpl_error_code moo_qc_set_p2p_min(cpl_propertylist *plist, double val)
Set the QC.P2P.MIN value.
cpl_error_code moo_qc_set_is_linearcor(cpl_propertylist *plist, cpl_boolean val)
Set the QC.IS.LINEARCOR value.
cpl_error_code moo_qc_set_mflat_max(cpl_propertylist *plist, double val)
Set the QC.MFLAT.MAX value.
cpl_error_code moo_qc_set_fibtrans_med(cpl_propertylist *plist, moo_detector_type type, double val)
Set the QC.FIBTRANS.MED value.
cpl_error_code moo_qc_set_p2p_mad(cpl_propertylist *plist, double val)
Set the QC.P2P.MAD value.
cpl_error_code moo_qc_set_mdark_rms(cpl_propertylist *plist, double val)
Set the QC.MDARK.RMS value.
cpl_error_code moo_qc_set_mflat_min(cpl_propertylist *plist, double val)
Set the QC.MFLAT.MIN value.
cpl_error_code moo_qc_set_mflat_sn_max(cpl_propertylist *plist, double val)
Set the QC.MFLAT.SN.MAX value.
cpl_error_code moo_qc_set_wavecal_failedfit(cpl_propertylist *plist, int val)
Set the QC.WAVECAL.FAILEDFIT value.
cpl_error_code moo_qc_set_mflat_sn_min(cpl_propertylist *plist, double val)
Set the QC.MFLAT.SN.MIN value.
cpl_error_code moo_qc_set_ncrh(cpl_propertylist *plist, int val)
Set the QC.NCRH value.
cpl_error_code moo_qc_set_residy_med(cpl_propertylist *plist, double val)
Set the QC.RESIDY.MED value.
cpl_error_code moo_qc_set_shifty_pts_avg(cpl_propertylist *plist, double val)
Set the QC.SHIFTY.PTS.AVG value.
cpl_error_code moo_qc_set_mdark_avg(cpl_propertylist *plist, double val)
Set the QC.MDARK.AVG value.
cpl_error_code moo_qc_set_wavecal_clipline(cpl_propertylist *plist, int val)
Set the QC.WAVECAL.CLIPLINE value.
cpl_error_code moo_qc_set_wavecal_residwave_med(cpl_propertylist *plist, double val)
Set the QC.WAVECAL.RESIDWAVE.MED value.
cpl_error_code moo_qc_set_wavecal_disp_min(cpl_propertylist *plist, double val)
Set the QC.WAVECAL.DISP.MIN value.
cpl_error_code moo_qc_set_widthy_avg(cpl_propertylist *plist, double val)
Set the QC.WIDTH.AVG value.
cpl_error_code moo_qc_set_ncrh_tot(cpl_propertylist *plist, int val)
Set the QC.NCRH.TOT value.
int moo_qc_get_ncom(cpl_propertylist *plist)
Get the QC.NCOM value.
cpl_error_code moo_qc_set_residy_avg(cpl_propertylist *plist, double val)
Set the QC.RESIDY.AVG value.
cpl_error_code moo_qc_set_missingfib(cpl_propertylist *plist, int num, const char *val)
Set the QC.MISSINGFIB value.
cpl_error_code moo_qc_set_mbias_med(cpl_propertylist *plist, int i, double val)
Set the QC.MBIAS.MED value.
cpl_error_code moo_qc_set_shifty_fit_avg(cpl_propertylist *plist, double val)
Set the QC.SHIFTY.FIT.AVG value.
cpl_error_code moo_qc_set_wavecal_resol_med(cpl_propertylist *plist, double val)
Set the QC.WAVECAL.RESOL.MED value.
cpl_error_code moo_qc_set_frame_raw1(cpl_propertylist *plist, const char *val)
Set the QC.FRAME.RAW1 value.
cpl_error_code moo_qc_set_nmissingfib(cpl_propertylist *plist, int val)
Set the QC.NMISSINGFIB value.
cpl_error_code moo_qc_set_wave_min(cpl_propertylist *plist, double val)
Set the QC.WAVE.MIN value.
cpl_error_code moo_qc_set_ncrh_avg(cpl_propertylist *plist, float val)
Set the QC.NCRH value.
cpl_error_code moo_qc_set_fibtrans_min(cpl_propertylist *plist, moo_detector_type type, double val)
Set the QC.FIBTRANS.MIN value.
cpl_error_code moo_qc_set_mdark_current(cpl_propertylist *plist, double val)
Set the QC.MEAN.DARK.CURRENT value.
cpl_error_code moo_qc_set_ron_master(cpl_propertylist *plist, int i, double val)
Set the QC.RON.MASTER value.
cpl_error_code moo_qc_set_mflat_rms(cpl_propertylist *plist, double val)
Set the QC.MFLAT.RMS value.
cpl_error_code moo_qc_set_ncom(cpl_propertylist *plist, int val)
Set the QC.NCOM value.
cpl_error_code moo_qc_set_is_p2pcor(cpl_propertylist *plist, cpl_boolean val)
Set the QC.IS.P2PCOR value.
cpl_error_code moo_qc_set_qc_detect_noisemult(cpl_propertylist *plist, double val)
Set the QC.DETECT.NOISEMULT value.
cpl_error_code moo_qc_set_mbias_avg(cpl_propertylist *plist, int i, double val)
Set the QC.MBIAS.AVG value.
cpl_error_code moo_qc_set_shifty_pts_sd(cpl_propertylist *plist, double val)
Set the QC.SHIFTY.PTS.SD value.
cpl_error_code moo_qc_set_fit_deg(cpl_propertylist *plist, int val)
Set the QC.RESIDY.AVG value.
cpl_error_code moo_qc_set_wavecal_detectline(cpl_propertylist *plist, int val)
Set the QC.WAVECAL.DETECTLINE value.
cpl_error_code moo_qc_set_wavecal_fitline(cpl_propertylist *plist, int val)
Set the QC.WAVECAL.FITLINE value.
cpl_error_code moo_qc_set_p2p_avg(cpl_propertylist *plist, double val)
Set the QC.P2P.AVG value.
cpl_error_code moo_qc_set_mflat_sn_med(cpl_propertylist *plist, double val)
Set the QC.MFLAT.SN.MED value.
cpl_error_code moo_qc_set_p2p_rms(cpl_propertylist *plist, double val)
Set the QC.P2P.RMS value.
cpl_error_code moo_qc_set_mflat_med(cpl_propertylist *plist, double val)
Set the QC.MFLAT.MED value.
cpl_error_code moo_qc_set_nbadpix(cpl_propertylist *plist, int val)
Set the QC.NBADPIX value.
cpl_error_code moo_qc_set_frame_raw2(cpl_propertylist *plist, const char *val)
Set the QC.FRAME.RAW2 value.
cpl_error_code moo_qc_set_noutlier_pts(cpl_propertylist *plist, int val)
Set the QC.NOUTLIER.PTS value.
cpl_error_code moo_qc_set_mdark_med(cpl_propertylist *plist, double val)
Set the QC.MDARK.MED value.
cpl_error_code moo_qc_set_is_tellcor(cpl_propertylist *plist, cpl_boolean val)
Set the QC.IS.TELLCOR value.
cpl_error_code moo_qc_set_fibtrans_max(cpl_propertylist *plist, moo_detector_type type, double val)
Set the QC.FIBTRANS.MAX value.
cpl_error_code moo_qc_set_mbias_rms(cpl_propertylist *plist, int i, double val)
Set the QC.MBIAS.AVG value.
cpl_error_code moo_qc_set_shifty_pts_med(cpl_propertylist *plist, double val)
Set the QC.SHIFTY.PTS.MED value.
cpl_error_code moo_qc_set_shifty_fit_med(cpl_propertylist *plist, double val)
Set the QC.SHIFTY.FIT.MED value.
cpl_error_code moo_qc_set_residy_sd(cpl_propertylist *plist, double val)
Set the QC.RESIDY.STD value.
cpl_error_code moo_qc_set_wave_max(cpl_propertylist *plist, double val)
Set the QC.WAVE.MAX value.
cpl_error_code moo_qc_set_mflat_avg(cpl_propertylist *plist, double val)
Set the QC.MFLAT.AVG value.