39 #include <irplib_utils.h>
41 #include <sinfo_tpl_utils.h>
42 #include <sinfo_pfits.h>
43 #include <sinfo_tpl_dfs.h>
44 #include <sinfo_utl_cube_test.h>
50 static int sinfo_utl_cube_test_create(cpl_plugin *) ;
51 static int sinfo_utl_cube_test_exec(cpl_plugin *) ;
52 static int sinfo_utl_cube_test_destroy(cpl_plugin *) ;
58 static char sinfo_utl_cube_test_description[] =
59 "This recipe perform cubes combination.\n"
60 "The input files are several cubeses\n"
61 "their associated tags should be CUBE.\n"
62 "The output is a cube PRO_CUBE resulting from the input cubes\n"
63 "accurding to the value of op where op indicates the operation to be \n"
64 "performed specified by the parameter sinfoni.sinfo_utl_cube_test.op\n"
87 cpl_recipe * recipe = cpl_calloc(1,
sizeof *recipe ) ;
88 cpl_plugin * plugin = &recipe->interface ;
90 cpl_plugin_init(plugin,
92 SINFONI_BINARY_VERSION,
93 CPL_PLUGIN_TYPE_RECIPE,
94 "sinfo_utl_cube_test",
95 "Combines a cube list in an output cube",
96 sinfo_utl_cube_test_description,
98 "Andrea.Modigliani@eso.org",
100 sinfo_utl_cube_test_create,
101 sinfo_utl_cube_test_exec,
102 sinfo_utl_cube_test_destroy) ;
104 cpl_pluginlist_append(list, plugin) ;
119 static int sinfo_utl_cube_test_create(cpl_plugin * plugin)
121 cpl_recipe * recipe ;
125 if (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
126 recipe = (cpl_recipe *)plugin ;
132 recipe->parameters = cpl_parameterlist_new() ;
136 p = cpl_parameter_new_value(
"sinfoni.sinfo_utl_cube_test.name_i",
139 "sinfoni.sinfo_utl_cube_test",
141 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI,
"name_i") ;
142 cpl_parameterlist_append(recipe->parameters, p) ;
145 p = cpl_parameter_new_value(
"sinfoni.sinfo_utl_cube_test.method",
148 "sinfoni.sinfo_utl_cube_test",
150 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI,
"method") ;
151 cpl_parameterlist_append(recipe->parameters, p) ;
153 p = cpl_parameter_new_value(
"sinfoni.sinfo_utl_cube_test.op",
155 "A possible operation",
156 "sinfoni.sinfo_utl_cube_test",
158 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI,
"op") ;
159 cpl_parameterlist_append(recipe->parameters, p) ;
162 p = cpl_parameter_new_value(
"sinfoni.sinfo_utl_cube_test.name_o",
165 "sinfoni.sinfo_utl_cube_test",
167 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI,
"name_o") ;
168 cpl_parameterlist_append(recipe->parameters, p) ;
170 p = cpl_parameter_new_value(
"sinfoni.sinfo_utl_cube_test.name_m",
173 "sinfoni.sinfo_utl_cube_test",
174 "out_maskcube.fits");
175 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI,
"name_m") ;
176 cpl_parameterlist_append(recipe->parameters, p) ;
179 p = cpl_parameter_new_value(
"sinfoni.sinfo_utl_cube_test.xsize",
181 "Output cube X size",
182 "sinfoni.sinfo_utl_cube_test",
184 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI,
"xsize") ;
185 cpl_parameterlist_append(recipe->parameters, p) ;
188 p = cpl_parameter_new_value(
"sinfoni.sinfo_utl_cube_test.ysize",
190 "Output cube Y size",
191 "sinfoni.sinfo_utl_cube_test",
193 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI,
"ysize") ;
194 cpl_parameterlist_append(recipe->parameters, p) ;
197 p = cpl_parameter_new_value(
"sinfoni.sinfo_utl_cube_test.sigma",
199 "Output cube Y size",
200 "sinfoni.sinfo_utl_cube_test",
202 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI,
"sigma") ;
203 cpl_parameterlist_append(recipe->parameters, p) ;
206 p = cpl_parameter_new_value(
"sinfoni.objnod.kappa",
208 "kappa value for kappa-sigma clipping "
213 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI,
"sinfo_objnod-kappa");
214 cpl_parameterlist_append(recipe->parameters, p);
228 static int sinfo_utl_cube_test_exec(cpl_plugin * plugin)
230 cpl_recipe * recipe ;
231 cpl_errorstate initial_errorstate = cpl_errorstate_get();
234 if (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
235 recipe = (cpl_recipe *)plugin ;
238 code=sinfo_utl_cube_test(recipe->parameters, recipe->frames) ;
239 if (!cpl_errorstate_is_equal(initial_errorstate)) {
242 cpl_errorstate_dump(initial_errorstate, CPL_FALSE, NULL);
255 static int sinfo_utl_cube_test_destroy(cpl_plugin * plugin)
257 cpl_recipe * recipe ;
260 if (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
261 recipe = (cpl_recipe *)plugin ;
264 cpl_parameterlist_delete(recipe->parameters) ;