39 #include <irplib_utils.h>
40 #include <sinfo_msg.h>
41 #include <sinfo_tpl_utils.h>
42 #include <sinfo_pfits.h>
43 #include <sinfo_tpl_dfs.h>
44 #include <sinfo_utl_cube2ima.h>
49 static int sinfo_utl_cube2ima_create(cpl_plugin *) ;
50 static int sinfo_utl_cube2ima_exec(cpl_plugin *) ;
51 static int sinfo_utl_cube2ima_destroy(cpl_plugin *) ;
57 static char sinfo_utl_cube2ima_description[] =
58 "This recipe performs cube to image comversion.\n"
59 "The input file is a cube which is contained in the sof file\n"
60 "Its tag should be CUBE.\n"
61 "The output is an image resulting from the average of the \n"
62 "cube over a wavelength rage which can be set by parameters \n"
63 "sinfoni.sinfo_utl_cube2ima.ws sinfoni.sinfo_utl_cube2ima.we\n"
64 "having aliases 'ws' 'we'\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,
95 "Cube to image conversion",
96 sinfo_utl_cube2ima_description,
98 "Andrea.Modigliani@eso.org",
100 sinfo_utl_cube2ima_create,
101 sinfo_utl_cube2ima_exec,
102 sinfo_utl_cube2ima_destroy) ;
104 cpl_pluginlist_append(list, plugin) ;
119 static int sinfo_utl_cube2ima_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() ;
138 p = cpl_parameter_new_value(
"sinfoni.sinfo_utl_cube2ima.ws",
140 "starting wavelength",
141 "sinfoni.sinfo_utl_cube2ima",
143 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI,
"ws") ;
144 cpl_parameterlist_append(recipe->parameters, p) ;
148 p = cpl_parameter_new_value(
"sinfoni.sinfo_utl_cube2ima.we",
150 "starting wavelength",
151 "sinfoni.sinfo_utl_cube2ima",
153 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI,
"we") ;
154 cpl_parameterlist_append(recipe->parameters, p) ;
167 static int sinfo_utl_cube2ima_exec(cpl_plugin * plugin)
169 cpl_recipe * recipe ;
171 cpl_errorstate initial_errorstate = cpl_errorstate_get();
174 if (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
175 recipe = (cpl_recipe *)plugin ;
178 sinfo_msg(
"Welcome to SINFONI Pipeline release %d.%d.%d",
179 SINFONI_MAJOR_VERSION,SINFONI_MINOR_VERSION,SINFONI_MICRO_VERSION);
181 result=sinfo_utl_cube2ima(recipe->parameters, recipe->frames) ;
183 if (!cpl_errorstate_is_equal(initial_errorstate)) {
186 cpl_errorstate_dump(initial_errorstate, CPL_FALSE, NULL);
199 static int sinfo_utl_cube2ima_destroy(cpl_plugin * plugin)
201 cpl_recipe * recipe ;
204 if (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
205 recipe = (cpl_recipe *)plugin ;
208 cpl_parameterlist_delete(recipe->parameters) ;