36#include "irplib_utils.h"
37#include "visir_utils.h"
38#include "visir_pfits.h"
52static const char * visir_dfs_find_tag_from_dpr(
const char *,
const char *,
80 FOR_EACH_FRAMESET(frame, set) {
81 const char * tag = cpl_frame_get_tag(frame);
86 if (tag == NULL) cpl_msg_warning(cpl_func,
87 "Frame %d has no tag", i);
88 else if (!strcmp(tag, VISIR_IMG_ACHRO_RAW) ||
89 !strcmp(tag, VISIR_IMG_COMBINE_CN) ||
90 !strcmp(tag, VISIR_IMG_COMBINE_CN_BURST) ||
91 !strcmp(tag, VISIR_IMG_COMBINE_CNJ) ||
92 !strcmp(tag, VISIR_IMG_COMBINE_CNJ_BURST) ||
93 !strcmp(tag, VISIR_IMG_COMBINE_CJ) ||
94 !strcmp(tag, VISIR_IMG_COMBINE_NJ) ||
95 !strcmp(tag, VISIR_IMG_COMBINE_DJ) ||
96 !strcmp(tag, VISIR_IMG_CAL_PHOT) ||
97 !strcmp(tag, VISIR_IMG_CAL_PHOT_PP) ||
98 !strcmp(tag, VISIR_IMG_CAL_PHOT_BURST) ||
99 !strcmp(tag, VISIR_IMG_CAL_OBJ) ||
100 !strcmp(tag, VISIR_IMG_CAL_OBJ_BURST) ||
101 !strcmp(tag, VISIR_IMG_FF_RAW) ||
102 !strcmp(tag, VISIR_IMG_TECH_FF_RAW) ||
103 !strcmp(tag, VISIR_IMG_FOCFWHM_RAW) ||
104 !strcmp(tag, VISIR_IMG_ILLU_RAW) ||
105 !strcmp(tag, VISIR_IMG_PFOV_BIN) ||
106 !strcmp(tag, VISIR_IMG_PFOV_TEL) ||
107 !strcmp(tag, VISIR_IMG_PHOT_RAW) ||
108 !strcmp(tag, VISIR_IMG_PHOT_COMBINED_PROCATG) ||
109 !strcmp(tag, VISIR_IMG_COADDED_IMG) ||
110 !strcmp(tag, VISIR_IMG_PSF_RAW) ||
111 !strcmp(tag, VISIR_IMG_TRANS_RAW) ||
112 !strcmp(tag, VISIR_IMG_DARK_RAW) ||
113 !strcmp(tag, VISIR_ACQ_CNJ) ||
114 !strcmp(tag, VISIR_SPC_OBS_ECH_RAW) ||
115 !strcmp(tag, VISIR_SPC_OBS_RAW) ||
116 !strcmp(tag, VISIR_SPC_OBS_PP) ||
117 !strcmp(tag, VISIR_SPC_OBS_HR_RAW) ||
118 !strcmp(tag, VISIR_SPC_PHOT_RAW) ||
119 !strcmp(tag, VISIR_SPC_PHOT_PP) ||
120 !strcmp(tag, VISIR_SPC_PHOT_ECH_RAW) ||
121 !strcmp(tag, VISIR_SPC_PHOT_ECH_PP) ||
122 !strcmp(tag, VISIR_SPC_OBS_ECH_PP) ||
123 !strcmp(tag, VISIR_SPC_WCAL_ECH_RAW) ||
124 !strcmp(tag, VISIR_SPC_WCAL_RAW) ||
125 !strcmp(tag, VISIR_SPC_FF_RAW) ||
126 !strcmp(tag, VISIR_SPC_TECH_FF_RAW) ||
127 !strcmp(tag, VISIR_SPC_DARK_RAW) ||
128 !strcmp(tag, VISIR_SAM_CAL_N_RAW) ||
129 !strcmp(tag, VISIR_SAM_CAL_CN_RAW) ||
130 !strcmp(tag, VISIR_SAM_CAL_NJ_RAW) ||
131 !strcmp(tag, VISIR_SAM_CAL_CNJ_RAW) ||
132 !strcmp(tag, VISIR_CORO_CAL_CNJ_RAW) ||
133 !strcmp(tag, VISIR_SAM_OBS_N_RAW) ||
134 !strcmp(tag, VISIR_SAM_OBS_CN_RAW) ||
135 !strcmp(tag, VISIR_SAM_OBS_NJ_RAW) ||
136 !strcmp(tag, VISIR_SAM_OBS_CNJ_RAW) ||
137 !strcmp(tag, VISIR_CORO_OBS_CNJ_RAW) ||
138 !strcmp(tag, VISIR_UTIL_QC_PROCATG) ||
139 !strcmp(tag, VISIR_UTIL_REPACK_MEAN_PROCATG) ||
140 !strcmp(tag, VISIR_UTIL_REPACK_MEAN_A_PROCATG) ||
141 !strcmp(tag, VISIR_UTIL_REPACK_MEAN_B_PROCATG) ||
142 !strcmp(tag, VISIR_UTIL_REPACK_MEAN_A_ON_PROCATG) ||
143 !strcmp(tag, VISIR_UTIL_REPACK_MEAN_A_OFF_PROCATG) ||
144 !strcmp(tag, VISIR_UTIL_REPACK_MEAN_B_ON_PROCATG) ||
145 !strcmp(tag, VISIR_UTIL_REPACK_MEAN_B_OFF_PROCATG) ||
146 !strcmp(tag, VISIR_UTIL_REPACK_A_ON_PROCATG) ||
147 !strcmp(tag, VISIR_UTIL_REPACK_A_OFF_PROCATG) ||
148 !strcmp(tag, VISIR_UTIL_REPACK_B_ON_PROCATG) ||
149 !strcmp(tag, VISIR_UTIL_REPACK_B_OFF_PROCATG) ||
150 !strcmp(tag, VISIR_UTIL_DETECT_SHIFT_PROCATG) ||
151 !strcmp(tag, VISIR_UTIL_DETECT_SHIFT_TEMPLATE_PROCATG) ||
152 !strcmp(tag, VISIR_UTIL_INPUTS_RAW) ||
153 !strcmp(tag, VISIR_UTIL_CORRECTED) ||
154 !strcmp(tag, VISIR_UTIL_NODDED) ||
155 !strcmp(tag, VISIR_UTIL_CONVERT_RAW) ||
156 !strcmp(tag, VISIR_UTIL_CONVERT_TAB) ||
157 !strcmp(tag, VISIR_UTIL_CONVERT_INV) ||
158 !strcmp(tag, VISIR_UTIL_CONVERT_POS_AUX) ||
159 !strcmp(tag, VISIR_UTIL_CONVERT_INV_AUX) ||
160 !strcmp(tag, VISIR_UTIL_WEIGHT2ERROR) ||
161 !strcmp(tag, VISIR_IMG_BURST) ||
162 !strcmp(tag, VISIR_UTIL_DATA) ||
163 !strcmp(tag, VISIR_UTIL_UNDISTORT_RAW) ||
164 !strcmp(tag, VISIR_UTIL_REPACK_RAW))
165 cpl_frame_set_group(frame, CPL_FRAME_GROUP_RAW);
167 else if (!strcmp(tag, VISIR_CALIB_FLAT) ||
168 !strcmp(tag, VISIR_CALIB_BPM) ||
169 !strcmp(tag, VISIR_CALIB_STATIC_MASK) ||
170 !strcmp(tag, VISIR_CALIB_STDSTAR_IMG) ||
171 !strcmp(tag, VISIR_CALIB_STDSTAR_SPC) ||
172 !strcmp(tag, VISIR_CALIB_LINES_SPC) ||
173 !strcmp(tag, VISIR_CALIB_LIN) ||
174 !strcmp(tag, VISIR_SPC_OBS_SKYFRAME) ||
175 !strcmp(tag, VISIR_UTIL_WEIGHT2ERROR_PROCATG) ||
176 !strcmp(tag, VISIR_IMG_CLIPPED_MAP_PROCATG) ||
177 !strcmp(tag, VISIR_UTIL_WEIGHT2ERROR) ||
178 !strcmp(tag, VISIR_UTIL_WEIGHT_MAP) ||
179 !strcmp(tag, VISIR_UTIL_ERROR_MAP) ||
180 !strcmp(tag, VISIR_UTIL_VARIANCE_MAP) ||
181 !strcmp(tag, VISIR_SPC_CAT_ASCII) ||
182 !strcmp(tag, VISIR_IMG_LINES_ASCII) ||
183 !strcmp(tag, VISIR_SPC_LINES_ASCII) ||
184 !strcmp(tag, VISIR_SPC_QEFF_ASCII) ||
185 !strcmp(tag, VISIR_CALIB_QEFF_SPC))
186 cpl_frame_set_group(frame, CPL_FRAME_GROUP_CALIB);
187 else cpl_msg_warning(cpl_func,
188 "Frame %d has unknown tag: %s", i, tag);
193 if (cpl_error_get_code())
194 cpl_msg_error(cpl_func,
"Could not identify RAW and CALIB frames "
195 "(after processing %d frames)", i);
197 return cpl_error_get_code();
201visir_dfs_output_catg(
const char * inpcatg,
const char * pipecatg)
204 if (!strcmp(pipecatg, VISIR_IMG_PHOT_ONEBEAM_PROCATG) ||
205 !strcmp(pipecatg, VISIR_IMG_PHOT_COMBINED_PROCATG)) {
208 if (!strcmp(inpcatg, VISIR_ACQ_CNJ)) {
210 return "ACQ_IMG_PHOT_COMBINED";
213 return "ACQ_IMG_OBJ_COMBINED";
216 else if (!strcmp(inpcatg, VISIR_IMG_CAL_PHOT_BURST)) {
217 return VISIR_IMG_PHOT_COMBINED_PROCATG
"_BURST";
219 else if (!strcmp(inpcatg, VISIR_IMG_CAL_OBJ_BURST) ||
220 !strcmp(inpcatg, VISIR_IMG_COMBINE_CN_BURST) ||
221 !strcmp(inpcatg, VISIR_IMG_COMBINE_CNJ_BURST)) {
222 return VISIR_IMG_OBJ_COMBINED_PROCATG
"_BURST";
237 if (cpl_error_get_code())
return cpl_error_get_code();
239 cpl_ensure_code(self != NULL, CPL_ERROR_NULL_INPUT);
257static const char * visir_dfs_find_tag_from_dpr(
const char * catg,
261 const char * docatg = NULL;
264 if (cpl_error_get_code())
return NULL;
266 cpl_ensure(catg != NULL, CPL_ERROR_NULL_INPUT, NULL);
267 cpl_ensure(type != NULL, CPL_ERROR_NULL_INPUT, NULL);
268 cpl_ensure(tech != NULL, CPL_ERROR_NULL_INPUT, NULL);
270#include "visir_dfs_dpr.h"
285void visir_dfs_update_header(cpl_propertylist* plist)
287 const char *radecsys_hdr =
"RADECSYS";
288 const char *radesys_hdr =
"RADESYS";
289 const char *hdrver_hdr =
"HDRVER";
290 const char *func =
"update_header";
291 char *radec_str = NULL;
292 char *comment_str = NULL;
295 cpl_propertylist_erase(plist, hdrver_hdr);
297 radec_str = cpl_strdup(cpl_propertylist_get_string(plist, radecsys_hdr));
298 comment_str = cpl_strdup(cpl_propertylist_get_comment(plist, radecsys_hdr));
299 cpl_propertylist_erase(plist, radecsys_hdr);
300 cpl_propertylist_update_string(plist, radesys_hdr, radec_str);
301 cpl_propertylist_set_comment(plist, radesys_hdr, comment_str);
302 if (cpl_error_get_code() != CPL_ERROR_NONE) {
306 cpl_msg_warning(func,
"Error in updating header: %s",
307 cpl_error_get_message());
311 cpl_free(comment_str);
cpl_error_code irplib_dfs_check_framelist_tag(const irplib_framelist *self, const char *(*pfind)(const char *, const char *, const char *))
Check the tags in a frameset (group raw only)
cpl_error_code visir_dfs_check_framelist_tag(const irplib_framelist *self)
Check the tags in a frameset (group raw only)
int visir_dfs_set_groups(cpl_frameset *set)
Set the group as RAW or CALIB in a frameset.