33 #include "sinfo_dark_ini_by_cpl.h"
34 #include "sinfo_raw_types.h"
35 #include "sinfo_pro_types.h"
36 #include "sinfo_globals.h"
37 #include "sinfo_hidden.h"
38 #include "sinfo_functions.h"
43 parse_section_frames(dark_config *, cpl_frameset* sof,
44 cpl_frameset** raw,
int* status);
46 parse_section_cleanmean(dark_config *, cpl_parameterlist* cpl_cfg);
48 parse_section_qclog(dark_config * cfg, cpl_parameterlist * cpl_cfg);
50 void sinfo_detnoise_free(dark_config * cfg);
73 sinfo_parse_cpl_input_dark(cpl_parameterlist * cpl_cfg,
84 cfg = sinfo_dark_cfg_create();
90 parse_section_cleanmean (cfg, cpl_cfg);
91 parse_section_qclog (cfg, cpl_cfg);
92 parse_section_frames (cfg, sof, raw, &status);
95 sinfo_dark_cfg_destroy(cfg);
114 parse_section_frames(dark_config * cfg,
123 cpl_frame* frame=NULL;
125 char spat_res[FILE_NAME_SZ];
126 char lamp_status[FILE_NAME_SZ];
127 char band[FILE_NAME_SZ];
129 sinfo_extract_raw_frames_type(sof,raw,RAW_DARK);
131 nraw=cpl_frameset_get_size(*raw);
134 "frameset!Aborting...",nraw,RAW_DARK);
143 cfg->inFrameList = cpl_malloc(nraw *
sizeof(
char*));
147 for (i=0 ; i<nraw ; i++) {
148 frame = cpl_frameset_get_frame(*raw,i);
150 cfg->inFrameList[i]=cpl_strdup(cpl_frame_get_filename(frame));
160 cfg->nframes = nraw ;
162 strcpy(cfg -> outName, DARK_OUT_FILENAME);
165 frame = cpl_frameset_get_frame(*raw,0);
166 sinfo_get_spatial_res(frame,spat_res);
168 switch(sinfo_frame_is_on(frame))
171 strcpy(lamp_status,
"on");
174 strcpy(lamp_status,
"off");
177 strcpy(lamp_status,
"undefined");
180 strcpy(lamp_status,
"undefined");
186 sinfo_get_band(frame,band);
187 sinfo_msg(
"Spatial resolution: %s lamp status: %s band: %s \n",
188 spat_res, lamp_status, band);
191 sinfo_get_ins_set(band,&ins_set);
204 parse_section_cleanmean(dark_config * cfg, cpl_parameterlist * cpl_cfg)
208 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.dark.low_rejection");
209 cfg -> lo_reject = cpl_parameter_get_double(p);
211 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.dark.high_rejection");
212 cfg -> hi_reject = cpl_parameter_get_double(p);
224 parse_section_qclog(dark_config * cfg, cpl_parameterlist * cpl_cfg)
228 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.dark.qc_ron_xmin");
229 cfg -> qc_ron_xmin = cpl_parameter_get_int(p);
231 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.dark.qc_ron_xmax");
232 cfg -> qc_ron_xmax = cpl_parameter_get_int(p);
234 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.dark.qc_ron_ymin");
235 cfg -> qc_ron_ymin = cpl_parameter_get_int(p);
237 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.dark.qc_ron_ymax");
238 cfg -> qc_ron_ymax = cpl_parameter_get_int(p);
240 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.dark.qc_ron_hsize");
241 cfg -> qc_ron_hsize = cpl_parameter_get_int(p);
243 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.dark.qc_ron_nsamp");
244 cfg -> qc_ron_nsamp = cpl_parameter_get_int(p);
248 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.dark.qc_fpn_xmin");
249 cfg -> qc_fpn_xmin = cpl_parameter_get_int(p);
251 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.dark.qc_fpn_xmax");
252 cfg -> qc_fpn_xmax = cpl_parameter_get_int(p);
254 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.dark.qc_fpn_ymin");
255 cfg -> qc_fpn_ymin = cpl_parameter_get_int(p);
257 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.dark.qc_fpn_ymax");
258 cfg -> qc_fpn_ymax = cpl_parameter_get_int(p);
260 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.dark.qc_fpn_hsize");
261 cfg -> qc_fpn_hsize = cpl_parameter_get_int(p);
263 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.dark.qc_fpn_nsamp");
264 cfg -> qc_fpn_nsamp = cpl_parameter_get_int(p);
276 sinfo_dark_free(dark_config ** cfg)
281 for(i=0;i<(*cfg)->nframes;i++) {
282 if((*cfg)->inFrameList[i] != NULL) {
283 cpl_free((*cfg)->inFrameList[i]);
284 (*cfg)->inFrameList[i]=NULL;
287 cpl_free((*cfg)->inFrameList);
288 (*cfg)->inFrameList=NULL;
289 sinfo_dark_cfg_destroy((*cfg));