giwavecalib.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef GIWAVECALIB_H
00029 #define GIWAVECALIB_H
00030
00031 #include <cpl_parameterlist.h>
00032
00033 #include "gilocalization.h"
00034 #include "giextraction.h"
00035 #include "giwavecalib_types.h"
00036
00037
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041
00049 struct GiWcalConfig {
00050
00055 cpl_matrix *line_widths;
00056
00062 cxdouble flux_ratio;
00063
00071 cxdouble bright_threshold;
00072
00080 cxint32 bright_count;
00081
00087 cxdouble line_threshold;
00088
00093 cxdouble line_offset;
00094
00100 cxint32 line_niter;
00101
00107 cxint32 line_ntest;
00108
00116 lmrq_model_id line_model;
00117
00123 cxdouble line_dchsq;
00124
00130 cxdouble line_reswidratio;
00131
00137 cxdouble line_widexpo;
00138
00144 cxbool opt_solution;
00145
00150 cxint opt_direction;
00151
00159 lmrq_model_id opt_model;
00160
00166 cxbool fit_subslits;
00167
00173 cxint opt_mod_niter;
00174
00180 cxint opt_mod_ntest;
00181
00187 cxdouble opt_mod_dchsq;
00188
00194 cxdouble xws_clip_level;
00195
00201 cxint xws_clip_niter;
00202
00208 cxdouble xws_clip_mfrac;
00209
00215 cxdouble pxw_clip_level;
00216
00222 cxint pxw_clip_niter;
00223
00229 cxdouble pxw_clip_mfrac;
00230
00235 cxint32 pxw_poly_x_deg;
00236
00241 cxint32 pxw_poly_y_deg;
00242
00247 cxint32 xws_poly_x_deg;
00248
00253 cxint32 xws_poly_y_deg;
00254
00259 cxdouble range_wlen_min;
00260
00265 cxdouble range_wlen_max;
00266
00267 };
00268
00269 typedef struct GiWcalConfig GiWcalConfig;
00270
00271
00272 cxint giraffe_wavelength_calibration(GiTable *result, GiExtraction *extraction,
00273 GiLocalization *localization,
00274 GiTable *grating, GiTable *slitgeo,
00275 GiTable *wavelengths,
00276 GiWcalConfig *wcalib_config,
00277 GiWcalSolution *wavcoeff);
00278
00279 cpl_image *giraffe_compute_pixel_abcissa(cpl_matrix *m_wavelengths,
00280 GiSlitGeometry *fiber_slit_position,
00281 cpl_matrix *m_opt_mod_params,
00282 lmrq_model lmrq_opt_mod_x);
00283
00284 GiWcalConfig *giraffe_wavecalibration_config_create(cpl_parlist *);
00285 void giraffe_wavecalibration_config_destroy(GiWcalConfig *);
00286 void giraffe_wavecalibration_config_add(cpl_parlist* );
00287
00288 #ifdef __cplusplus
00289 }
00290 #endif
00291
00292 #endif