37 #include "sinfo_standstar_ini_by_cpl.h"
38 #include "sinfo_pro_types.h"
39 #include "sinfo_hidden.h"
40 #include "sinfo_functions.h"
41 #include "sinfo_file_handling.h"
48 parse_section_frames(standstar_config *, cpl_frameset* sof, cpl_frameset** raw,
51 parse_section_extraction(standstar_config *, cpl_parameterlist* cpl_cfg);
74 sinfo_parse_cpl_input_standstar(cpl_parameterlist* cpl_cfg, cpl_frameset* sof,
78 standstar_config * cfg = sinfo_standstar_cfg_create();
84 parse_section_extraction(cfg, cpl_cfg);
85 parse_section_frames(cfg, sof, raw, &status);
88 sinfo_standstar_cfg_destroy(cfg);
96 parse_section_frames(standstar_config * cfg, cpl_frameset* sof,
97 cpl_frameset** raw,
int* status)
101 cpl_frame* frame = NULL;
102 char spat_res[FILE_NAME_SZ];
103 char lamp_status[FILE_NAME_SZ];
104 char band[FILE_NAME_SZ];
106 cpl_frameset* tmp = NULL;
108 sinfo_extract_frames_group_type(sof, &tmp, CPL_FRAME_GROUP_PRODUCT);
109 sinfo_extract_raw_frames_type(tmp, raw, PRO_COADD_STD);
110 cpl_frameset_delete(tmp);
111 nval = cpl_frameset_get_size(*raw);
113 sinfo_extract_raw_frames_type(sof, raw, PRO_OBS_STD);
115 nval = cpl_frameset_get_size(*raw);
117 sinfo_extract_raw_frames_type(sof, raw, PRO_COADD_PSF);
119 nval = cpl_frameset_get_size(*raw);
121 sinfo_extract_raw_frames_type(sof, raw, PRO_OBS_PSF);
123 nval = cpl_frameset_get_size(*raw);
125 sinfo_extract_raw_frames_type(sof, raw, PRO_COADD_OBJ);
127 nval = cpl_frameset_get_size(*raw);
129 sinfo_extract_raw_frames_type(sof, raw, PRO_OBS_OBJ);
131 nval = cpl_frameset_get_size(*raw);
134 "(%s or %s or %s or %s or %s or %s ) "
135 "present in frameset!Aborting...", nval, PRO_COADD_STD,
136 PRO_OBS_STD, PRO_COADD_PSF, PRO_OBS_PSF, PRO_COADD_OBJ,
143 cfg->inFrameList = cpl_malloc(nval *
sizeof(
char*));
146 for (i = 0; i < nval; i++) {
147 frame = cpl_frameset_get_frame(*raw, i);
148 if (sinfo_file_exists((
char*) cpl_frame_get_filename(frame)) == 1) {
150 cfg->inFrameList[i] = cpl_strdup(cpl_frame_get_filename(frame));
157 strcpy(cfg->outName, STDSTAR_OUT_FILENAME);
159 frame = cpl_frameset_get_frame(*raw, 0);
161 sinfo_get_spatial_res(frame, spat_res);
162 switch (sinfo_frame_is_on(frame))
166 strcpy(lamp_status,
"on");
169 strcpy(lamp_status,
"off");
172 strcpy(lamp_status,
"undefined");
175 strcpy(lamp_status,
"undefined");
178 sinfo_get_band(frame, band);
179 sinfo_msg(
"Spatial resolution: %s lamp_status: %s band: %s", spat_res,
182 sinfo_get_ins_set(band, &ins_set);
187 parse_section_extraction(standstar_config * cfg, cpl_parameterlist* cpl_cfg)
190 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.std_star.low_rejection");
191 cfg->lo_reject = cpl_parameter_get_double(p);
193 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.std_star.high_rejection");
194 cfg->hi_reject = cpl_parameter_get_double(p);
201 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.std_star.fwhm_factor");
202 cfg->fwhm_factor = cpl_parameter_get_double(p);
204 cfg->backvariance = BKG_VARIANCE;
208 p = cpl_parameterlist_find(cpl_cfg,
"sinfoni.std_star.conversion_index");
209 cfg->convInd = cpl_parameter_get_bool(p);
211 strcpy(cfg->convName, STDSTAR_CONV_OUT_FILENAME);
219 sinfo_stdstar_free(standstar_config ** cfg)
221 if ((*cfg) != NULL ) {
222 for (
int i = 0; i < (*cfg)->nframes; i++) {
223 if ((*cfg)->inFrameList[i] != NULL ) {
224 cpl_free((*cfg)->inFrameList[i]);
225 (*cfg)->inFrameList[i] = NULL;
228 cpl_free((*cfg)->inFrameList);
229 (*cfg)->inFrameList = NULL;
230 sinfo_standstar_cfg_destroy(*cfg);
#define sinfo_msg_error(...)
Print an error message.