37 #include "irplib_detmon.h"
38 #include "irplib_detmon_lg.h"
42 #define DETMON_OPT_LG_ON_RAW "DETECTOR_CHECK_FLAT"
43 #define DETMON_OPT_LG_OFF_RAW "DETECTOR_CHECK_BIAS"
45 #define RECIPE_NAME "fors_detlin"
54 fors_detlin_fill_parlist(cpl_parameterlist *);
56 CPL_RECIPE_DEFINE(fors_detlin, FORS_BINARY_VERSION,
57 fors_detlin_fill_parlist(recipe->parameters),
58 "Lander de Bilbao",
"lbilbao@eso.org",
"2008",
59 "Linearity/Gain recipe for the optical domain",
60 irplib_detmon_lg_get_description(
"fors_detlin",
63 DETMON_OPT_LG_OFF_RAW));
74 static int fors_detlin(cpl_frameset *frameset,
75 const cpl_parameterlist *parlist)
77 cpl_propertylist * lintbl =
78 irplib_detmon_fill_prolist(
"DET_LIN_INFO", NULL, NULL, CPL_FALSE);
80 cpl_propertylist * gaintbl =
81 irplib_detmon_fill_prolist(
"GAIN_INFO", NULL, NULL, CPL_FALSE);
83 cpl_propertylist * coeffscube =
84 irplib_detmon_fill_prolist(
"COEFFS_CUBE", NULL, NULL, CPL_FALSE);
86 cpl_propertylist * bpm =
87 irplib_detmon_fill_prolist(
"BP_MAP_NL", NULL, NULL, CPL_FALSE);
89 cpl_propertylist * corr =
90 irplib_detmon_fill_prolist(
"AUTOCORR", NULL, NULL, CPL_FALSE);
92 cpl_propertylist * diff_flat =
93 irplib_detmon_fill_prolist(
"DIFF_FLAT", NULL, NULL, CPL_FALSE);
95 const cpl_error_code error = irplib_detmon_lg(frameset,
98 DETMON_OPT_LG_OFF_RAW,
102 lintbl, gaintbl, coeffscube,
103 bpm, corr, diff_flat,
104 PACKAGE
"/" PACKAGE_VERSION,
107 cpl_propertylist_delete(lintbl);
108 cpl_propertylist_delete(gaintbl);
109 cpl_propertylist_delete(coeffscube);
110 cpl_propertylist_delete(bpm);
111 cpl_propertylist_delete(corr);
112 cpl_propertylist_delete(diff_flat);
120 cpl_image *badpixmap;
122 PACKAGE_TARNAME
"." RECIPE_NAME
".llx");
124 PACKAGE_TARNAME
"." RECIPE_NAME
".lly");
126 badpixmap =
dfs_load_image(frameset,
"BP_MAP_NL", CPL_TYPE_FLOAT, 0, 1);
127 chipmap = cpl_image_new(2048, 1024, CPL_TYPE_FLOAT);
128 cpl_image_copy(chipmap, badpixmap, llx, lly - 5);
129 cpl_image_delete(badpixmap);
130 dfs_save_image(frameset, chipmap,
"BP_MAP_NL_FULL", NULL, parlist,
131 RECIPE_NAME, PACKAGE
"/" PACKAGE_VERSION);
132 cpl_image_delete(chipmap);
136 cpl_ensure_code(!error, error);
138 return CPL_ERROR_NONE;
141 static cpl_error_code
142 fors_detlin_fill_parlist(cpl_parameterlist * parlist)
144 cpl_error_code error;
147 error = irplib_detmon_lg_fill_parlist_opt_default(parlist,
148 "fors_detlin", PACKAGE_TARNAME);
150 cpl_ensure_code(!error, error);
153 p = cpl_parameterlist_find(parlist,
154 PACKAGE_TARNAME
"." RECIPE_NAME
".tolerance");
155 cpl_ensure_code(p != NULL, CPL_ERROR_DATA_NOT_FOUND);
156 error = cpl_parameter_set_default_double(p, 0.1);
157 cpl_ensure_code(!error, error);
159 p = cpl_parameterlist_find(parlist,
160 PACKAGE_TARNAME
"." RECIPE_NAME
".pix2pix");
161 cpl_ensure_code(p != NULL, CPL_ERROR_DATA_NOT_FOUND);
162 error = cpl_parameter_set_default_bool(p, 1);
163 cpl_ensure_code(!error, error);
165 p = cpl_parameterlist_find(parlist,
166 PACKAGE_TARNAME
"." RECIPE_NAME
".order");
167 cpl_ensure_code(p != NULL, CPL_ERROR_DATA_NOT_FOUND);
168 error = cpl_parameter_set_default_int(p, 2);
169 cpl_ensure_code(!error, error);
171 p = cpl_parameterlist_find(parlist,
172 PACKAGE_TARNAME
"." RECIPE_NAME
".kappa");
173 cpl_ensure_code(p != NULL, CPL_ERROR_DATA_NOT_FOUND);
174 error = cpl_parameter_set_default_double(p, 4.0);
175 cpl_ensure_code(!error, error);
178 p = cpl_parameterlist_find(parlist,
179 PACKAGE_TARNAME
"." RECIPE_NAME
".llx");
180 cpl_ensure_code(p != NULL, CPL_ERROR_DATA_NOT_FOUND);
181 error = cpl_parameter_set_default_int(p, 1);
182 cpl_ensure_code(!error, error);
184 p = cpl_parameterlist_find(parlist,
185 PACKAGE_TARNAME
"." RECIPE_NAME
".urx");
186 cpl_ensure_code(p != NULL, CPL_ERROR_DATA_NOT_FOUND);
187 error = cpl_parameter_set_default_int(p, 2048);
188 cpl_ensure_code(!error, error);
191 p = cpl_parameterlist_find(parlist,
192 PACKAGE_TARNAME
"." RECIPE_NAME
".lly");
193 cpl_ensure_code(p != NULL, CPL_ERROR_DATA_NOT_FOUND);
194 error = cpl_parameter_set_default_int(p, 6);
195 cpl_ensure_code(!error, error);
197 p = cpl_parameterlist_find(parlist,
198 PACKAGE_TARNAME
"." RECIPE_NAME
".ury");
199 cpl_ensure_code(p != NULL, CPL_ERROR_DATA_NOT_FOUND);
200 error = cpl_parameter_set_default_int(p, 1029);
201 cpl_ensure_code(!error, error);
cpl_image * dfs_load_image(cpl_frameset *frameset, const char *category, cpl_type type, int ext, int calib)
Loading image data of given category.
int dfs_get_parameter_int_const(const cpl_parameterlist *parlist, const char *name)
int dfs_save_image(cpl_frameset *frameset, const cpl_image *image, const char *category, cpl_propertylist *header, const cpl_parameterlist *parlist, const char *recipename, const char *version)
Saving image data of given category.