35 #include "sinfo_bp_noise.h"
36 #include "sinfo_detnoise_ini_by_cpl.h"
37 #include "sinfo_pro_save.h"
38 #include "sinfo_pro_types.h"
39 #include "sinfo_raw_types.h"
40 #include "sinfo_functions.h"
41 #include "sinfo_detlin.h"
42 #include "sinfo_error.h"
43 #include "sinfo_utils_wrappers.h"
75 sinfo_new_bp_search_noise (
const char* plugin_id,
76 cpl_parameterlist* config,
78 const char* out_name )
81 detnoise_config * cfg =NULL;
83 cpl_imagelist * image_list=NULL ;
84 cpl_image * img_tmp=NULL ;
85 cpl_image * mask=NULL ;
86 cpl_parameter *p=NULL;
87 cpl_frameset* raw=NULL;
88 cpl_table* qclog_tbl=NULL;
89 char key_value[FILE_NAME_SZ];
95 check_nomsg(raw=cpl_frameset_new());
96 ck0(sinfo_extract_raw_frames_type1(sof,raw,RAW_DARK),
97 "Error extracting %s frames",RAW_DARK);
98 cknull(cfg = sinfo_parse_cpl_input_detnoise(config,sof,&raw),
99 " could not parse .ini file!") ;
100 check_nomsg(image_list = cpl_imagelist_new());
101 for ( i = 0 ; i < cfg->nframes ; i++ )
103 if(sinfo_is_fits_file (cfg->framelist[i]) != 1) {
107 check_nomsg(img_tmp=cpl_image_load(cfg->framelist[i],
108 CPL_TYPE_FLOAT,0,0));
110 check_nomsg(cpl_imagelist_set(image_list,img_tmp,i));
116 sinfo_msg(
"Noise Search for bad pixels");
118 cknull(mask=sinfo_new_search_bad_pixels_via_noise (image_list,
119 cfg->threshSigmaFactor,
122 " could not create bad pixel mask!") ;
124 n_bad = sinfo_new_count_bad_pixels(mask) ;
125 sinfo_msg (
"number of bad pixels: %d\n", n_bad) ;
128 cknull_nomsg(qclog_tbl = sinfo_qclog_init());
129 check_nomsg(p = cpl_parameterlist_find(config,
"sinfoni.bp.method"));
130 snprintf(key_value, MAX_NAME_SIZE-1,
"%s",cpl_parameter_get_string(p));
131 ck0_nomsg(sinfo_qclog_add_string(qclog_tbl,
"QC BP-MAP METHOD",key_value,
132 "BP search method",
"%s"));
133 ck0_nomsg(sinfo_qclog_add_int(qclog_tbl,
"QC BP-MAP NBADPIX",n_bad,
134 "No of bad pixels",
"%d"));
136 ck0(sinfo_pro_save_ima(mask,raw,sof,(
char *) out_name,
137 PRO_BP_MAP_HP,qclog_tbl,plugin_id,config),
138 "cannot save ima %s", out_name);
140 sinfo_free_image(&mask);
141 sinfo_free_table(&qclog_tbl);
142 sinfo_free_imagelist(&image_list) ;
143 sinfo_detnoise_free(cfg);
144 sinfo_free_frameset(&raw);
150 sinfo_free_table(&qclog_tbl);
151 sinfo_free_imagelist(&image_list) ;
152 sinfo_free_image(&mask) ;
153 sinfo_detnoise_free(cfg);
154 sinfo_free_frameset(&raw);
#define sinfo_msg_error(...)
Print an error message.