318 const cpl_parameterlist * parlist)
320 cpl_frameset * disp_frameset=NULL, * darkcalib_frameset=NULL,
321 * dark_frameset=NULL, * wavecalib_frameset=NULL,
322 * badcalib_frameset=NULL, * flatcalib_frameset=NULL, * dispvis_frameset=NULL,
323 * p2vmcalib_frameset=NULL, * wavelampcalib_frameset=NULL, *used_frameset=NULL,
324 * current_frameset=NULL, *static_param_frameset=NULL;
326 cpl_frame * frame=NULL;
328 gravi_data * disp_map = NULL, * data = NULL, * dark_map = NULL, * wave_map = NULL,
329 * profile_map = NULL, * badpix_map = NULL, * p2vmred_data = NULL, * preproc_data = NULL,
330 * p2vm_map = NULL, * vis_data = NULL, * tmpvis_data=NULL, * argon_data=NULL, * static_param_data=NULL;
331 cpl_propertylist ** p2vm_qcs = NULL;
342 cpl_error_get_code()) ;
348 used_frameset = cpl_frameset_new();
355 if (!cpl_frameset_is_empty (static_param_frameset)) {
356 frame = cpl_frameset_get_position (static_param_frameset, 0);
360 cpl_msg_info (cpl_func,
"There is no STATIC_PARAM in the frameset");
364 if (cpl_frameset_is_empty (dispvis_frameset)){
379 if ( cpl_frameset_is_empty(p2vmcalib_frameset) ||
380 cpl_frameset_is_empty(wavecalib_frameset) ||
381 cpl_frameset_is_empty(flatcalib_frameset) ||
382 cpl_frameset_is_empty(badcalib_frameset) ||
383 ( cpl_frameset_is_empty(dark_frameset) &&
384 cpl_frameset_is_empty(darkcalib_frameset) ) ||
385 cpl_frameset_is_empty(disp_frameset) ||
386 cpl_frameset_is_empty(wavelampcalib_frameset) ) {
388 cpl_error_set_message (cpl_func, CPL_ERROR_ILLEGAL_INPUT,
389 "Missing P2VM, DARK, BAD, WAVE, WAVELAMP, FLAT or DISP frames") ;
397 if (!cpl_frameset_is_empty (dark_frameset)) {
399 frame = cpl_frameset_get_position (dark_frameset, 0);
411 NULL, frame,
"gravi_single",
416 else if (!cpl_frameset_is_empty (darkcalib_frameset)) {
418 frame = cpl_frameset_get_position (darkcalib_frameset, 0);
424 cpl_msg_error (cpl_func,
"There is no DARK in the frame set");
427 frame = cpl_frameset_get_position (badcalib_frameset, 0);
431 frame = cpl_frameset_get_position (flatcalib_frameset, 0);
435 frame = cpl_frameset_get_position (wavecalib_frameset, 0);
439 frame = cpl_frameset_get_position (p2vmcalib_frameset, 0);
449 nb_frame = cpl_frameset_get_size (disp_frameset);
450 p2vm_qcs = cpl_malloc(
sizeof(cpl_propertylist*) * nb_frame);
452 for (
int ivis = 0; ivis < nb_frame; ivis++) {
453 current_frameset = cpl_frameset_duplicate (used_frameset);
454 p2vm_qcs[ivis] = cpl_propertylist_new();
456 cpl_msg_info (cpl_func,
"*** Processing file %d over %d *** ", ivis+1, nb_frame);
458 frame = cpl_frameset_get_position (disp_frameset, ivis);
464 badpix_map, NULL, parlist,
486 current_frameset, frame,
"gravity_disp",
495 "gravi_single", parlist);
537 current_frameset, frame,
"gravity_disp",
544 cpl_size current_frame = 0;
545 while (current_frame >= 0)
560 cpl_propertylist_append_double(vis_header,
"MJD-OBS", mjd_obs);
563 current_frameset, frame,
"gravity_disp",
570 if (vis_data == NULL) {
571 vis_data = tmpvis_data; tmpvis_data = NULL;
586 parlist, current_frameset, frame,
593 FREE (cpl_frameset_delete, current_frameset);
607 frame = cpl_frameset_get_position (wavelampcalib_frameset, 0);
614 cpl_frameset_join (used_frameset, disp_frameset);
615 frame = cpl_frameset_get_position (disp_frameset, 0);
618 used_frameset, frame,
"gravity_disp",
628 FREE (cpl_frameset_delete, darkcalib_frameset);
629 FREE (cpl_frameset_delete, wavecalib_frameset);
630 FREE (cpl_frameset_delete, dark_frameset);
631 FREE (cpl_frameset_delete, flatcalib_frameset);
632 FREE (cpl_frameset_delete, badcalib_frameset);
633 FREE (cpl_frameset_delete, p2vmcalib_frameset);
634 FREE (cpl_frameset_delete, wavelampcalib_frameset);
635 FREELOOP(cpl_propertylist_delete, p2vm_qcs, nb_frame);
640 frame = cpl_frameset_get_position (dispvis_frameset, 0);
645 disp_frameset = cpl_frameset_duplicate (dispvis_frameset);
659 frame = cpl_frameset_get_position (disp_frameset, 0);
663 used_frameset, frame,
"gravity_disp",
684 FREE (cpl_frameset_delete, disp_frameset);
685 FREE (cpl_frameset_delete, dispvis_frameset);
686 FREE (cpl_frameset_delete, darkcalib_frameset);
687 FREE (cpl_frameset_delete, dark_frameset);
688 FREE (cpl_frameset_delete, wavecalib_frameset);
689 FREE (cpl_frameset_delete, badcalib_frameset);
690 FREE (cpl_frameset_delete, flatcalib_frameset);
691 FREE (cpl_frameset_delete, p2vmcalib_frameset);
692 FREE (cpl_frameset_delete, wavelampcalib_frameset);
693 FREE (cpl_frameset_delete, used_frameset);
694 FREE (cpl_frameset_delete, current_frameset);
695 FREELOOP(cpl_propertylist_delete, p2vm_qcs, nb_frame);
698 return (
int)cpl_error_get_code();