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,
114 cpl_frame* frame = NULL;
118 char spat_res[FILE_NAME_SZ];
119 char lamp_status[FILE_NAME_SZ];
120 char band[FILE_NAME_SZ];
130 *raw=cpl_frameset_new();
131 sinfo_extract_raw_frames_type(sof,raw,PRO_FOCUS_STACKED);
134 nraw=cpl_frameset_get_size(*raw);
137 "frameset!Aborting...",nraw,PRO_FOCUS_STACKED);
142 cfg->inFrameList = cpl_malloc(nraw *
sizeof(
char*));
145 for (i=0 ; i<nraw ; i++) {
146 frame = cpl_frameset_get_frame(*raw,i);
147 char* name= (
char*) cpl_frame_get_filename(frame);
148 if(sinfo_file_exists(name)==1) {
150 if(cpl_frame_get_tag(frame) != NULL) {
152 tag= (
char*) cpl_frame_get_tag(frame);
153 if(sinfo_is_stack(tag))
155 cfg->inFrameList[i]=cpl_strdup(cpl_frame_get_filename(frame));
168 cfg->nframes = nraw ;
171 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.output_filename");
172 strcpy(cfg -> outName, cpl_parameter_get_string(p));
174 if(NULL != cpl_frameset_find(sof,PRO_FIRST_COL)) {
175 frame = cpl_frameset_find(sof,PRO_FIRST_COL);
176 strcpy(cfg -> firstCol,cpl_strdup(cpl_frame_get_filename(frame)));
183 if(NULL != cpl_frameset_find(sof,PRO_SLITLETS_DISTANCE)) {
184 frame = cpl_frameset_find(sof,PRO_SLITLETS_DISTANCE);
185 strcpy(cfg -> poslist,cpl_strdup(cpl_frame_get_filename(frame)));
194 frame = cpl_frameset_get_frame(*raw,0);
195 sinfo_get_spatial_res(frame,spat_res);
197 switch(sinfo_frame_is_on(frame))
200 strcpy(lamp_status,
"on");
203 strcpy(lamp_status,
"off");
206 strcpy(lamp_status,
"undefined");
209 strcpy(lamp_status,
"undefined");
213 sinfo_get_band(frame,band);
214 sinfo_msg(
"Spatial resolution: %s lamp_status: %s band: %s \n",
215 spat_res, lamp_status, band);
218 sinfo_get_ins_set(band,&ins_set);
230 parse_section_reconstruction(focus_config * cfg,cpl_parameterlist * cpl_cfg)
236 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.lower_rejection");
237 cfg -> lo_reject = cpl_parameter_get_double(p);
239 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.higher_rejection");
240 cfg -> hi_reject = cpl_parameter_get_double(p);
242 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.north_south_index");
243 cfg -> northsouthInd = cpl_parameter_get_bool(p);
245 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.nslits");
246 cfg -> nslits = cpl_parameter_get_int(p);
248 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.method");
249 strcpy(cfg->method, cpl_parameter_get_string(p));
251 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.order");
252 cfg -> order= cpl_parameter_get_int(p);
264 parse_section_gauss2dfit(focus_config * cfg,cpl_parameterlist * cpl_cfg)
267 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.llx");
268 cfg -> llx = cpl_parameter_get_int(p);
270 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.lly");
271 cfg -> lly = cpl_parameter_get_int(p);
273 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.halfbox_x");
274 cfg -> halfbox_x = cpl_parameter_get_int(p);
276 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.halfbox_y");
277 cfg -> halfbox_y = cpl_parameter_get_int(p);
279 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.mpar0");
280 cfg -> mpar0 = cpl_parameter_get_int(p);
282 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.mpar1");
283 cfg -> mpar1 = cpl_parameter_get_int(p);
285 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.mpar2");
286 cfg -> mpar2 = cpl_parameter_get_int(p);
288 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.mpar3");
289 cfg -> mpar3 = cpl_parameter_get_int(p);
291 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.mpar4");
292 cfg -> mpar4 = cpl_parameter_get_int(p);
294 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.mpar5");
295 cfg -> mpar5 = cpl_parameter_get_int(p);
297 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.mpar6");
298 cfg -> mpar6 = cpl_parameter_get_int(p);
300 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.fit_list");
301 strcpy(cfg -> fitlist, cpl_parameter_get_string(p));
304 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.plot_gauss_ind");
305 cfg -> plotGaussInd = cpl_parameter_get_bool(p);
307 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.focus.gauss_plot_name");
308 strcpy( cfg -> gaussplotName, cpl_parameter_get_string(p));
319 sinfo_free_focus(focus_config * cfg) {
320 cpl_free(cfg->inFrameList);
321 sinfo_focus_cfg_destroy (cfg);
#define sinfo_msg_error(...)
Print an error message.