33 #include "sinfo_lamp_ini_by_cpl.h"
34 #include "sinfo_functions.h"
35 #include "sinfo_pro_types.h"
40 parse_section_frames(lamp_config *,
41 cpl_parameterlist* cpl_cfg,
47 parse_section_resampling(lamp_config *, cpl_parameterlist* cpl_cfg);
49 parse_section_extractspectrum(lamp_config *, cpl_parameterlist* cpl_cfg);
70 sinfo_parse_cpl_input_lamp(cpl_parameterlist* cpl_cfg,
75 lamp_config * cfg= sinfo_lamp_cfg_create();
83 parse_section_resampling (cfg, cpl_cfg);
84 parse_section_extractspectrum (cfg, cpl_cfg);
85 parse_section_frames (cfg, cpl_cfg, sof, raw,&status);
89 sinfo_lamp_cfg_destroy(cfg);
107 parse_section_frames(lamp_config * cfg,
108 cpl_parameterlist * cpl_cfg,
114 cpl_frame* frame = NULL;
117 char spat_res[FILE_NAME_SZ];
118 char lamp_status[FILE_NAME_SZ];
119 char band[FILE_NAME_SZ];
124 *raw=cpl_frameset_new();
125 sinfo_extract_raw_frames_type(sof,raw,PRO_FLUX_LAMP_STACKED);
127 nraw = cpl_frameset_get_size(*raw);
130 sinfo_msg_error(
"no good raw frame %s in input!",PRO_FLUX_LAMP_STACKED);
134 frame = cpl_frameset_get_frame(*raw,0);
135 strcpy(cfg -> inFrame,cpl_strdup(cpl_frame_get_filename(frame)));
138 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.lamp_spec.output_filename");
139 strcpy(cfg -> outName, cpl_parameter_get_string(p));
141 sinfo_get_spatial_res(frame,spat_res);
142 switch(sinfo_frame_is_on(frame))
146 strcpy(lamp_status,
"on");
149 strcpy(lamp_status,
"off");
152 strcpy(lamp_status,
"undefined");
155 strcpy(lamp_status,
"undefined");
159 sinfo_get_band(frame,band);
160 sinfo_msg(
"Spatial resolution: %s lamp_status: %s band: %s \n",
161 spat_res, lamp_status, band);
164 sinfo_get_ins_set(band,&ins_set);
166 if(NULL != cpl_frameset_find(sof,PRO_WAVE_MAP)) {
167 frame = cpl_frameset_find(sof,PRO_WAVE_MAP);
168 strcpy(cfg -> wavemapim,cpl_strdup(cpl_frame_get_filename(frame)));
190 parse_section_resampling(lamp_config * cfg, cpl_parameterlist * cpl_cfg)
194 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.lamp_spec.ncoeffs");
195 cfg -> ncoeffs = cpl_parameter_get_int(p);
197 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.lamp_spec.nrows");
198 cfg -> nrows = cpl_parameter_get_int(p);
211 parse_section_extractspectrum(lamp_config * cfg, cpl_parameterlist * cpl_cfg)
215 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.lamp_spec.lower_rejection");
216 cfg -> loReject = cpl_parameter_get_double(p);
218 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.lamp_spec.higher_rejection");
219 cfg -> hiReject = cpl_parameter_get_double(p);
221 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.lamp_spec.counts_to_intensity");
222 cfg -> countsToIntensity = cpl_parameter_get_double(p);
234 sinfo_lamp_free(lamp_config * cfg)
236 sinfo_lamp_cfg_destroy(cfg);