33 #include "sinfo_focus_ini_by_cpl.h"
34 #include "sinfo_pro_types.h"
35 #include "sinfo_functions.h"
36 #include "sinfo_file_handling.h"
41 parse_section_frames(focus_config *, cpl_parameterlist* cpl_cfg,
42 cpl_frameset* sof,cpl_frameset** stk,
int* status);
44 parse_section_reconstruction(focus_config *, cpl_parameterlist* cpl_cfg);
46 parse_section_gauss2dfit(focus_config *, cpl_parameterlist* cpl_cfg);
71 sinfo_parse_cpl_input_focus(cpl_parameterlist * cpl_cfg, cpl_frameset* sof,
74 focus_config * cfg = sinfo_focus_cfg_create();
81 parse_section_reconstruction (cfg, cpl_cfg);
82 parse_section_gauss2dfit (cfg, cpl_cfg);
83 parse_section_frames (cfg, cpl_cfg,sof,stk,&status);
86 sinfo_focus_cfg_destroy(cfg);
104 parse_section_frames(focus_config * cfg,
105 cpl_parameterlist* cpl_cfg,
115 cpl_frame* frame = NULL;
119 char spat_res[FILE_NAME_SZ];
120 char lamp_status[FILE_NAME_SZ];
121 char band[FILE_NAME_SZ];
131 *raw=cpl_frameset_new();
132 sinfo_extract_raw_frames_type(sof,raw,PRO_FOCUS_STACKED);
135 nraw=cpl_frameset_get_size(*raw);
138 "frameset!Aborting...",nraw,PRO_FOCUS_STACKED);
143 cfg->inFrameList = cpl_malloc(nraw *
sizeof(
char*));
146 for (i=0 ; i<nraw ; i++) {
147 frame = cpl_frameset_get_frame(*raw,i);
148 name= (
char*) cpl_frame_get_filename(frame);
149 if(sinfo_file_exists(name)==1) {
151 if(cpl_frame_get_tag(frame) != NULL) {
153 tag= (
char*) cpl_frame_get_tag(frame);
154 if(sinfo_is_stack(tag))
156 cfg->inFrameList[i]=cpl_strdup(cpl_frame_get_filename(frame));
169 cfg->nframes = nraw ;
172 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.output_filename");
173 strcpy(cfg -> outName, cpl_parameter_get_string(p));
175 if(NULL != cpl_frameset_find(sof,PRO_FIRST_COL)) {
176 frame = cpl_frameset_find(sof,PRO_FIRST_COL);
177 strcpy(cfg -> firstCol,cpl_strdup(cpl_frame_get_filename(frame)));
184 if(NULL != cpl_frameset_find(sof,PRO_SLITLETS_DISTANCE)) {
185 frame = cpl_frameset_find(sof,PRO_SLITLETS_DISTANCE);
186 strcpy(cfg -> poslist,cpl_strdup(cpl_frame_get_filename(frame)));
195 frame = cpl_frameset_get_frame(*raw,0);
196 sinfo_get_spatial_res(frame,spat_res);
198 switch(sinfo_frame_is_on(frame))
201 strcpy(lamp_status,
"on");
204 strcpy(lamp_status,
"off");
207 strcpy(lamp_status,
"undefined");
210 strcpy(lamp_status,
"undefined");
214 sinfo_get_band(frame,band);
215 sinfo_msg(
"Spatial resolution: %s lamp_status: %s band: %s \n",
216 spat_res, lamp_status, band);
219 sinfo_get_ins_set(band,&ins_set);
231 parse_section_reconstruction(focus_config * cfg,cpl_parameterlist * cpl_cfg)
237 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.lower_rejection");
238 cfg -> lo_reject = cpl_parameter_get_double(p);
240 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.higher_rejection");
241 cfg -> hi_reject = cpl_parameter_get_double(p);
243 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.north_south_index");
244 cfg -> northsouthInd = cpl_parameter_get_bool(p);
246 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.nslits");
247 cfg -> nslits = cpl_parameter_get_int(p);
249 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.method");
250 strcpy(cfg->method, cpl_parameter_get_string(p));
252 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.order");
253 cfg -> order= cpl_parameter_get_int(p);
265 parse_section_gauss2dfit(focus_config * cfg,cpl_parameterlist * cpl_cfg)
268 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.llx");
269 cfg -> llx = cpl_parameter_get_int(p);
271 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.lly");
272 cfg -> lly = cpl_parameter_get_int(p);
274 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.halfbox_x");
275 cfg -> halfbox_x = cpl_parameter_get_int(p);
277 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.halfbox_y");
278 cfg -> halfbox_y = cpl_parameter_get_int(p);
280 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.mpar0");
281 cfg -> mpar0 = cpl_parameter_get_int(p);
283 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.mpar1");
284 cfg -> mpar1 = cpl_parameter_get_int(p);
286 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.mpar2");
287 cfg -> mpar2 = cpl_parameter_get_int(p);
289 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.mpar3");
290 cfg -> mpar3 = cpl_parameter_get_int(p);
292 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.mpar4");
293 cfg -> mpar4 = cpl_parameter_get_int(p);
295 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.mpar5");
296 cfg -> mpar5 = cpl_parameter_get_int(p);
298 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.mpar6");
299 cfg -> mpar6 = cpl_parameter_get_int(p);
301 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.fit_list");
302 strcpy(cfg -> fitlist, cpl_parameter_get_string(p));
305 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.plot_gauss_ind");
306 cfg -> plotGaussInd = cpl_parameter_get_bool(p);
308 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.gauss_plot_name");
309 strcpy( cfg -> gaussplotName, cpl_parameter_get_string(p));
320 sinfo_free_focus(focus_config * cfg) {
321 cpl_free(cfg->inFrameList);
322 sinfo_focus_cfg_destroy (cfg);