38 #include "irplib_detmon_lg.h"
39 #include "irplib_detmon.h"
40 #include "irplib_plugin.h"
42 #include "hawki_dfs.h"
44 #define RECIPE_NAME "hawki_cal_lingain"
47 #define INSTREGEXP "ESO INS SETUP ID"
48 #define PAFREGEXP "^(" REGEXP "|" INSTREGEXP ")$"
57 cpl_error_code hawki_cal_lingain_fill_parlist_default(cpl_parameterlist * parlist);
59 IRPLIB_RECIPE_DEFINE(hawki_cal_lingain, HAWKI_BINARY_VERSION,
60 hawki_cal_lingain_fill_parlist_default(recipe->parameters),
61 "Enrique Garcia", PACKAGE_BUGREPORT,
"2009",
62 "Linearity/Gain recipe for the IR domain",
63 irplib_detmon_lg_get_description(RECIPE_NAME,
"HAWKI",
64 HAWKI_CAL_LINGAIN_LAMP_RAW,
65 HAWKI_CAL_LINGAIN_DARK_RAW));
75 static int hawki_cal_lingain(cpl_frameset * frameset,
76 const cpl_parameterlist * parlist)
78 cpl_error_code error ;
79 cpl_propertylist * pro_lintbl ;
80 cpl_propertylist * pro_gaintbl ;
81 cpl_propertylist * pro_coeffscube ;
82 cpl_propertylist * pro_bpm ;
83 cpl_propertylist * pro_corr ;
84 cpl_propertylist * pro_diff ;
87 pro_lintbl = cpl_propertylist_new() ;
88 cpl_propertylist_append_string(pro_lintbl, CPL_DFS_PRO_CATG,
89 HAWKI_CALPRO_LINGAIN_LIN) ;
90 cpl_propertylist_append_string(pro_lintbl, CPL_DFS_PRO_TYPE,
91 HAWKI_PROTYPE_LIN_STATS) ;
93 pro_gaintbl = cpl_propertylist_new() ;
94 cpl_propertylist_append_string(pro_gaintbl, CPL_DFS_PRO_CATG,
95 HAWKI_CALPRO_LINGAIN_GAIN) ;
96 cpl_propertylist_append_string(pro_gaintbl, CPL_DFS_PRO_TYPE,
97 HAWKI_PROTYPE_GAIN_STATS) ;
99 pro_coeffscube = cpl_propertylist_new() ;
100 cpl_propertylist_append_string(pro_coeffscube, CPL_DFS_PRO_CATG,
101 HAWKI_CALPRO_LINGAIN_COEFFS) ;
102 cpl_propertylist_append_string(pro_coeffscube, CPL_DFS_PRO_TYPE,
103 HAWKI_PROTYPE_LIN_COEFFS) ;
105 pro_bpm = cpl_propertylist_new() ;
106 cpl_propertylist_append_string(pro_bpm, CPL_DFS_PRO_CATG,
107 HAWKI_CALPRO_LINGAIN_BPM) ;
108 cpl_propertylist_append_string(pro_bpm, CPL_DFS_PRO_TYPE,
109 HAWKI_PROTYPE_BPM_LEVELS) ;
111 pro_corr = cpl_propertylist_new() ;
112 cpl_propertylist_append_string(pro_corr, CPL_DFS_PRO_CATG,
113 HAWKI_CALPRO_LINGAIN_CORR) ;
114 cpl_propertylist_append_string(pro_corr, CPL_DFS_PRO_TYPE,
115 HAWKI_PROTYPE_LINGAIN_CORR) ;
117 pro_diff = cpl_propertylist_new() ;
118 cpl_propertylist_append_string(pro_diff, CPL_DFS_PRO_CATG,
119 HAWKI_CALPRO_LINGAIN_DIFF) ;
120 cpl_propertylist_append_string(pro_diff, CPL_DFS_PRO_TYPE,
121 HAWKI_PROTYPE_LINGAIN_DIFF) ;
124 error = irplib_detmon_lg(frameset,
126 HAWKI_CAL_LINGAIN_LAMP_RAW,
127 HAWKI_CAL_LINGAIN_DARK_RAW,
137 PACKAGE
"/" PACKAGE_VERSION,
141 cpl_propertylist_delete(pro_lintbl) ;
142 cpl_propertylist_delete(pro_gaintbl) ;
143 cpl_propertylist_delete(pro_coeffscube) ;
144 cpl_propertylist_delete(pro_bpm) ;
145 cpl_propertylist_delete(pro_corr) ;
146 cpl_propertylist_delete(pro_diff) ;
149 cpl_ensure_code(!error, error);
152 if (cpl_error_get_code())
154 cpl_msg_error(__func__,
155 "HAWK-I pipeline could not recover from previous errors");
162 hawki_cal_lingain_fill_parlist_default(cpl_parameterlist * parlist)
165 cpl_error_code error ;
167 error=irplib_detmon_lg_fill_parlist_nir_default(parlist,
168 RECIPE_NAME, PACKAGE_TARNAME);
169 cpl_ensure_code(!error, error);
172 p = cpl_parameterlist_find(parlist, PACKAGE_TARNAME
"." RECIPE_NAME
174 cpl_ensure_code(p != NULL, CPL_ERROR_DATA_NOT_FOUND);
175 error = cpl_parameter_set_default_int(p, -1);
176 cpl_ensure_code(!error, error);
179 return CPL_ERROR_NONE;