40 #include <irplib_utils.h>
41 #include <sinfo_msg.h>
43 #include <sinfo_tpl_utils.h>
44 #include <sinfo_pfits.h>
45 #include <sinfo_tpl_dfs.h>
46 #include <sinfo_utl_spectrum_wavelength_shift.h>
51 static int sinfo_utl_spectrum_wavelength_shift_create(cpl_plugin *) ;
52 static int sinfo_utl_spectrum_wavelength_shift_exec(cpl_plugin *) ;
53 static int sinfo_utl_spectrum_wavelength_shift_destroy(cpl_plugin *) ;
59 static char sinfo_utl_spectrum_wavelength_shift_description1[] =
60 "This recipe shifts a spectrum in wavelength using a given \n"
61 "interpolation method. The input file is a spectrum.\n"
62 "Its associated tag should be SPECTRUM.\n"
63 "The output is a spectrum shifted by a given amount. \n";
65 static char sinfo_utl_spectrum_wavelength_shift_description2[] =
67 "sinfoni.sinfo_utl_spectrum_arith.method\n"
68 "sinfoni.sinfo_utl_spectrum_wavelength_shift.shift\n"
69 "having aliases 'method' and 'shift' \n"
72 static char sinfo_utl_spectrum_wavelength_shift_description[900];
96 cpl_recipe * recipe = cpl_calloc(1,
sizeof *recipe ) ;
97 cpl_plugin * plugin = &recipe->interface ;
99 strcpy(sinfo_utl_spectrum_wavelength_shift_description,
100 sinfo_utl_spectrum_wavelength_shift_description1);
101 strcat(sinfo_utl_spectrum_wavelength_shift_description,
102 sinfo_utl_spectrum_wavelength_shift_description2);
104 cpl_plugin_init(plugin,
106 SINFONI_BINARY_VERSION,
107 CPL_PLUGIN_TYPE_RECIPE,
108 "sinfo_utl_spectrum_wavelength_shift",
109 "Spectrum wavelength shift",
110 sinfo_utl_spectrum_wavelength_shift_description,
112 "Andrea.Modigliani@eso.org",
114 sinfo_utl_spectrum_wavelength_shift_create,
115 sinfo_utl_spectrum_wavelength_shift_exec,
116 sinfo_utl_spectrum_wavelength_shift_destroy) ;
118 cpl_pluginlist_append(list, plugin) ;
133 static int sinfo_utl_spectrum_wavelength_shift_create(cpl_plugin * plugin)
135 cpl_recipe * recipe ;
139 if (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
140 recipe = (cpl_recipe *)plugin ;
146 recipe->parameters = cpl_parameterlist_new() ;
150 p = cpl_parameter_new_value(
"sinfoni.sinfo_utl_spectrum_arith.method",
152 "A spectral shift method: "
153 "'S' (Spline),'P' (Polynomial)",
154 "sinfoni.sinfo_utl_spectrum_arith",
"S");
155 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI,
"method") ;
156 cpl_parameterlist_append(recipe->parameters, p) ;
159 p = cpl_parameter_new_value(
"sinfoni.sinfo_utl_spectrum_wavelength_shift.shift",
161 "wavelength shift in micron",
162 "sinfoni.sinfo_utl_spectrum_wavelength_shift",
164 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI,
"shift") ;
165 cpl_parameterlist_append(recipe->parameters, p) ;
178 static int sinfo_utl_spectrum_wavelength_shift_exec(cpl_plugin * plugin)
180 cpl_recipe * recipe ;
182 cpl_errorstate initial_errorstate = cpl_errorstate_get();
185 if (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
186 recipe = (cpl_recipe *)plugin ;
188 sinfo_msg(
"Welcome to SINFONI Pipeline release %d.%d.%d",
189 SINFONI_MAJOR_VERSION,SINFONI_MINOR_VERSION,SINFONI_MICRO_VERSION);
190 code = sinfo_utl_spectrum_wavelength_shift(recipe->parameters,
192 if (!cpl_errorstate_is_equal(initial_errorstate)) {
195 cpl_errorstate_dump(initial_errorstate, CPL_FALSE, NULL);
207 static int sinfo_utl_spectrum_wavelength_shift_destroy(cpl_plugin * plugin)
209 cpl_recipe * recipe ;
212 if (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
213 recipe = (cpl_recipe *)plugin ;
216 cpl_parameterlist_delete(recipe->parameters) ;
int cpl_plugin_get_info(cpl_pluginlist *list)
Build the list of available plugins, for this module.
void irplib_reset(void)
Reset IRPLIB state.