38 #include "irplib_detmon.h"
39 #include "irplib_detmon_lg.h"
40 #include "irplib_plugin.h"
43 #define ISAAC_IMG_LINGAIN_ON_RAW "CAL_LINGAIN_LAMP"
44 #define ISAAC_IMG_LINGAIN_OFF_RAW "CAL_LINGAIN_DARK"
46 #define RECIPE_NAME "isaac_img_lingain"
49 #define INSTREGEXP "ESO DET CHIP NAME|ESO DET MODE NAME"
51 #define PAFREGEXP "^(" REGEXP "|" INSTREGEXP ")$"
59 cpl_recipe_define(isaac_img_lingain, ISAAC_BINARY_VERSION,
60 "Lars Lundin", PACKAGE_BUGREPORT,
"2008",
61 "Linearity/Gain recipe for the IR domain",
62 irplib_detmon_lg_get_description(RECIPE_NAME,
"ISAAC",
63 ISAAC_IMG_LINGAIN_ON_RAW,
64 ISAAC_IMG_LINGAIN_OFF_RAW));
80 cpl_error_code isaac_img_lingain_fill_parameterlist(cpl_parameterlist *
self) {
82 return irplib_detmon_lg_fill_parlist_nir_default(
self, RECIPE_NAME,
84 ? cpl_error_set_where(cpl_func) : CPL_ERROR_NONE;
96 static int isaac_img_lingain(cpl_frameset * frameset,
97 const cpl_parameterlist * parlist)
99 cpl_propertylist * lintbl =
100 irplib_detmon_fill_prolist(
"DET_LIN_INFO",
"TYPE",
"TECH", CPL_TRUE);
102 cpl_propertylist * gaintbl =
103 irplib_detmon_fill_prolist(
"GAIN_INFO",
"TYPE",
"TECH", CPL_TRUE);
105 cpl_propertylist * coeffscube =
106 irplib_detmon_fill_prolist(
"COEFFS_CUBE",
"TYPE",
"TECH", CPL_TRUE);
108 cpl_propertylist * bpm =
109 irplib_detmon_fill_prolist(
"BP_MAP_NL",
"TYPE",
"TECH", CPL_TRUE);
111 cpl_propertylist * corr =
112 irplib_detmon_fill_prolist(
"AUTOCORR",
"TYPE",
"TECH", CPL_TRUE);
114 cpl_propertylist * diff_flat =
115 irplib_detmon_fill_prolist(
"DIFF_FLAT",
"TYPE",
"TECH", CPL_TRUE);
117 const cpl_error_code error = irplib_detmon_lg(frameset,
119 ISAAC_IMG_LINGAIN_ON_RAW,
120 ISAAC_IMG_LINGAIN_OFF_RAW,
124 lintbl, gaintbl, coeffscube,
125 bpm, corr, diff_flat,
126 PACKAGE
"/" PACKAGE_VERSION,
129 cpl_propertylist_delete(lintbl);
130 cpl_propertylist_delete(gaintbl);
131 cpl_propertylist_delete(coeffscube);
132 cpl_propertylist_delete(bpm);
133 cpl_propertylist_delete(corr);
134 cpl_propertylist_delete(diff_flat);
137 cpl_ensure_code(!error, error);
139 return CPL_ERROR_NONE;