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 XSH_DRL_H
00029 #define XSH_DRL_H
00030
00031
00032
00033
00034 #include <cpl.h>
00035 #include <xsh_error.h>
00036 #include <xsh_dfs.h>
00037 #include <xsh_utils.h>
00038 #include <xsh_data_pre.h>
00039 #include <xsh_data_rec.h>
00040 #include <xsh_data_instrument.h>
00041 #include <xsh_data_order.h>
00042 #include <xsh_data_dispersol.h>
00043 #include <xsh_data_slice_offset.h>
00044 #include <xsh_parameters.h>
00045 #include <xsh_qc_handling.h>
00046
00047
00048
00049 #define XSH_CONCAT(A,B) A ## B
00050 #define XSH_STRING(A) # A
00051
00052 #define PICKUP_NOISE_HOT_PIXEL_MAP
00053
00054
00055
00056
00057
00058
00059
00060
00061 #define REGDEBUG_OPTEXTRACT 1
00062 cpl_frame*
00063 xsh_bpmap_2pre(cpl_frame* bpmap,const char* prefix, xsh_instrument* inst);
00064
00065 void
00066 xsh_prepare( cpl_frameset* frames, cpl_frame* bpmap, cpl_frame* mbias,
00067 const char* prefix, xsh_instrument* instr,
00068 const int pre_overscan_corr);
00069 cpl_frame * xsh_preframe_extract( cpl_frame* frame, int xmin, int ymin,
00070 int xmax, int ymax, const char* name, xsh_instrument *instr);
00071
00072 cpl_frame *
00073 xsh_remove_crh_multiple( cpl_frameset* rawFrames,
00074 const char * name,
00075 xsh_clipping_param *crh_clipping,
00076 xsh_instrument* inst ,
00077 cpl_imagelist **,
00078 cpl_image** ) ;
00079
00080 #if defined(PICKUP_NOISE_HOT_PIXEL_MAP)
00081 cpl_frame *
00082 xsh_compute_noise_map( cpl_imagelist *, cpl_frame * bpmap,
00083 xsh_clipping_param *,
00084 xsh_instrument* instr,
00085 cpl_frame ** noisemap ) ;
00086 #else
00087 cpl_frame *
00088 xsh_compute_noise_map( cpl_imagelist *,
00089 cpl_frame * bpmap,
00090 xsh_clipping_param *,
00091 xsh_instrument* instr ) ;
00092 #endif
00093
00094 cpl_frame *
00095 xsh_create_master_dark( cpl_frame* bpMap,
00096 xsh_instrument* instr,
00097 cpl_parameterlist* parameters,
00098 cpl_parameterlist* drs_params,
00099 cpl_frame* crh_frm,cpl_frame* bp_map_frm);
00100
00101
00102 cpl_frame *
00103 xsh_create_master_bias (cpl_frameset* raws,
00104 cpl_frame * frame,
00105 xsh_instrument* instr,
00106 cpl_parameterlist* parameters);
00107
00108
00109 cpl_frame * xsh_create_master_flat( cpl_frame* frame,xsh_instrument * instr);
00110
00111 cpl_frame * xsh_create_master_bpmap( cpl_frame* frame,xsh_instrument * instr);
00112
00113
00114 cpl_frame * xsh_compute_linearity( cpl_frameset *, xsh_instrument *,
00115 xsh_clipping_param * ) ;
00116
00117 int
00118 xsh_linear_group_by_exptime( cpl_frameset *,
00119 xsh_instrument *,
00120 double ,
00121 cpl_frameset ** ) ;
00122
00123 cpl_frame*
00124 xsh_subtract_bias(cpl_frame* frame,
00125 cpl_frame* bias,
00126 xsh_instrument* instr,
00127 const char* type,
00128 const int pre_overscan_corr);
00129
00130 cpl_frameset*
00131 xsh_subtract_nir_on_off(cpl_frameset* on,
00132 cpl_frameset* off,
00133 xsh_instrument* instr);
00134 cpl_frame*
00135 xsh_subtract_dark(cpl_frame * frame,
00136 cpl_frame * dark,
00137 const char* filename,
00138 xsh_instrument* instr);
00139
00140 #define XSH_DIVIDE_FLAT_THRESH 1e-10
00141 cpl_frame* xsh_divide_flat(cpl_frame * frame, cpl_frame * flat,
00142 const char* filename, xsh_instrument* instr);
00143
00144 #define XSH_MULTIPLY_FLAT_THRESH 1e+30
00145 cpl_frame* xsh_multiply_flat(cpl_frame * frame, cpl_frame * flat,
00146 const char* filename, xsh_instrument* instr);
00147
00148
00149 cpl_frame*
00150 xsh_subtract_background(cpl_frame * frame,
00151 cpl_frame* ordertable,
00152 xsh_background_param* bckg,
00153 xsh_instrument* instr,
00154 const char* prefix,
00155 cpl_frame** grid_frame,
00156 cpl_frame** frame_backg);
00157 cpl_frame*
00158 xsh_detect_order_edge(cpl_frame* frame,
00159 cpl_frame* order_table,
00160 xsh_detect_order_param * det_param,
00161 xsh_instrument* instr);
00162
00163 cpl_frame *
00164 xsh_detect_continuum( cpl_frame* frame,
00165 cpl_frame* order_table,
00166 cpl_frame * spectral_format,
00167 xsh_detect_continuum_param * param,
00168 xsh_clipping_param * dcn_clipping,
00169 xsh_instrument* instr,
00170 cpl_frame** resid_frame) ;
00171
00172 cpl_frame *
00173 xsh_order_table_from_fmtchk( xsh_pre * pre,
00174 cpl_frame * spectral_frame,
00175 xsh_detect_continuum_param * detect_param,
00176 xsh_instrument * instrument ) ;
00177
00178
00179 #define WAVELENGTH_PRECISION 0.00001
00180 #define SLIT_PRECISION 0.00001
00181 #define SLIT_PRECISION_IFU 0.21
00182
00183 void xsh_create_map( cpl_frame *dispsol_frame, cpl_frame *ordertab_frame,
00184 cpl_frame *pre_frame, xsh_instrument *instrument, cpl_frame **wavemap_frame,
00185 cpl_frame **slitmap_frame,const char* rec_prefix);
00186
00187 cpl_frame *
00188 xsh_create_wavemap( cpl_frame * in_frame,
00189 cpl_frame * resid_frame,
00190 cpl_frame * order_frame,
00191 xsh_dispersol_param * dispersol_param,
00192 xsh_instrument * instrument );
00193
00194 cpl_frame * xsh_create_poly_wavemap( cpl_frame *pre_frame,
00195 cpl_frame *wave_tab_2d_frame, cpl_frame *order_tab_frame,
00196 cpl_frame *spectral_format_frame, xsh_dispersol_param *dispsol_par,
00197 xsh_instrument * instrument, const char * filename,
00198 cpl_frame **dispersol_frame, cpl_frame **slitmap_frame);
00199
00200 void
00201 xsh_create_model_map( cpl_frame* model_frame, xsh_instrument* instrument,
00202 const char* wave_map_tag, const char* slit_map_tag,
00203 cpl_frame **wavemap_frame, cpl_frame **slitmap_frame);
00204
00205 cpl_frame *
00206 xsh_create_order_table( cpl_frame * in_frame,
00207 cpl_frame * spectralformat_frame,
00208 cpl_frame * resid_frame,
00209 cpl_frame * arclines,
00210 xsh_detect_arclines_param * da,
00211 xsh_clipping_param * dac,
00212 xsh_instrument * instrument ) ;
00213
00214 #define XSH_DETECT_ARCLINES_TYPE_POLY 0
00215 #define XSH_DETECT_ARCLINES_TYPE_MODEL 1
00216 #define XSH_DETECT_ARCLINES_MODE_NORMAL 0
00217 #define XSH_DETECT_ARCLINES_MODE_CORRECTED 1
00218 #define XSH_DETECT_ARCLINES_MODE_RECOVER 2
00219
00220 typedef enum {
00221 XSH_SOLUTION_ABSOLUTE,
00222 XSH_SOLUTION_RELATIVE
00223 } xsh_sol_wavelength;
00224
00225 void
00226 xsh_detect_arclines( cpl_frame *frame,
00227 cpl_frame *theo_tab_frame,
00228 cpl_frame *arc_lines_tab_frame,
00229 cpl_frame* wave_tab_guess_frame,
00230 cpl_frame *order_tab_recov_frame,
00231 cpl_frame *config_model_frame,
00232 cpl_frame *spectralformat_frame,
00233 cpl_frame **resid_tab_orders_frame,
00234 cpl_frame **arc_lines_clean_tab_frame,
00235 cpl_frame **wave_tab_frame,
00236 cpl_frame **resid_tab_frame,
00237 xsh_sol_wavelength type,
00238 xsh_detect_arclines_param *da,
00239 xsh_clipping_param *dac,
00240 xsh_instrument *instr,const char* rec_id);
00241
00242 void
00243 xsh_follow_arclines_slit( cpl_frame *inframe,
00244 cpl_frame *arclines,
00245 cpl_frame *wavesol,
00246 cpl_frame *order_table,
00247 cpl_frame *spectralformat_frame,
00248 cpl_frame *model_config_frame,
00249 cpl_frame *wavemap_frame,
00250 cpl_frame *slitmap_frame,
00251 cpl_frame *disptab_frame,
00252 xsh_follow_arclines_param *param,
00253 xsh_instrument * instrument,
00254 cpl_frame ** tilt_list,
00255 cpl_frame ** shift_frame);
00256 void
00257 xsh_follow_arclines( cpl_frame *inframe,
00258 cpl_frame *arclines,
00259 cpl_frame *wavesol,
00260 cpl_frame *order_table,
00261 cpl_frame *spectralformat_frame,
00262 cpl_frame *model_config_frame,
00263 cpl_frame *wavemap_frame,
00264 cpl_frame *disptab_frame,
00265 xsh_follow_arclines_param *param,
00266 double slit,
00267 double slit_min,
00268 double slit_max,
00269 const char *tag_id,
00270 int ifu_flag,
00271 xsh_instrument * instrument,
00272 cpl_frame ** tilt_list,
00273 cpl_frame ** shift_frame ) ;
00274
00275 void
00276 xsh_follow_arclines_ifu( cpl_frame *inframe,
00277 cpl_frame *arclines,
00278 cpl_frame *wavesol,
00279 cpl_frame *order_table,
00280 cpl_frame *spectralformat_frame,
00281 cpl_frame *model_config_frame,
00282 cpl_frame *wavemap_frame,
00283 cpl_frame *slitmap_frame,
00284 cpl_frame *disptab_frame,
00285 xsh_follow_arclines_param *follow_param,
00286 xsh_instrument * instrument,
00287 cpl_frameset *tilt_set,
00288 cpl_frame **shift_frame);
00289
00290
00291 void xsh_rec_slit_size( xsh_rectify_param *rectify_par, double *slit_min,
00292 int *nslit, XSH_MODE mode);
00293
00294 cpl_frame* xsh_rectify_orders( cpl_frame *sci_frame,
00295 xsh_order_list *orderlist_frame,
00296 cpl_frame *wavesol_frame, cpl_frame *model_frame, xsh_instrument *instrument,
00297 xsh_rectify_param *rectify_par, cpl_frame *spectralformat_frame,
00298 cpl_frame *disp_tab_frame, const char * res_name, const char* tag,
00299 cpl_frame** res_frame_ext,cpl_frame** res_frame_tab,
00300 int min_index, int max_index, double slit_min, int nslit, double slit_shift);
00301
00302 cpl_frameset * xsh_rectify_orders_ifu(cpl_frame *sci_frame,
00303 xsh_order_list *orderlist, cpl_frameset *wavesol_frameset,
00304 cpl_frame *model_frame, xsh_instrument *instrument,
00305 xsh_rectify_param *rectify_par, cpl_frame *spectralformat_frame,
00306 cpl_frame *sliceoffset_frame,
00307 cpl_frame * slitmap_frame,cpl_frameset ** rec_frameset_ext, cpl_frameset ** rec_frameset_tab,
00308 int min_index, int max_index, const char* rec_prefix);
00309
00310 cpl_frame *
00311 xsh_rectify (cpl_frame * sci_frame, cpl_frame * order_table_frame,
00312 cpl_frame * wavesol_frame,
00313 cpl_frame * model_config_frame,
00314 xsh_instrument *instrument,
00315 xsh_rectify_param * rectify_par,
00316 cpl_frame *spectral_format,
00317 cpl_frame *disp_tab_frame,
00318 const char * fname,
00319 cpl_frame** res_frame_ext,cpl_frame ** res_frame_tab,
00320 const char* prefix);
00321
00322 cpl_frame * shift_with_kw( cpl_frame * rec_frame,
00323 xsh_instrument *instrument,
00324 xsh_rectify_param * rectify_par,
00325 const char * fname,
00326 cpl_frame** res_frame_ext,
00327 double **ref_ra, double **ref_dec, int flag);
00328
00329
00330 cpl_frame * xsh_rectify_and_shift( cpl_frame *sci_frame,
00331 cpl_frame * orderlist_frame,
00332 cpl_frame *wavesol_frame,
00333 cpl_frame * model_frame,
00334 xsh_instrument *instrument,
00335 xsh_rectify_param *rectify_par,
00336 cpl_frame *spectralformat_frame,
00337 cpl_frame * loc_frame,
00338 cpl_frame * loc0_frame,
00339 double *throw_shift,
00340 cpl_frame *disp_tab_frame,
00341 const char * res_name,
00342 cpl_frame** res_frame_ext,
00343 cpl_frame** res_frame_tab);
00344
00345 cpl_frameset *
00346 xsh_rectify_ifu(cpl_frame * sci_frame,
00347 cpl_frame * order_table_frame,
00348 cpl_frameset * wavesol_frame_set,
00349 cpl_frame * model_config_frame,
00350 xsh_instrument *instrument,
00351 xsh_rectify_param * rectify_par,
00352 cpl_frame * spectral_format,
00353 cpl_frame * slice_offset_frame,
00354 cpl_frame * slitmap_frame,
00355 cpl_frameset** rec_frameset_ext,
00356 cpl_frameset** rec_frameset_tab,
00357 const char* rec_prefix) ;
00358
00359 #define XSH_RECTIFY_TYPE_POLY 0
00360 #define XSH_RECTIFY_TYPE_MODEL 1
00361 cpl_frame *
00362 xsh_shift_rectified( cpl_frame * rec_frame,
00363 cpl_frame * loc_frame,
00364 cpl_frame * loc0_frame,
00365 const char * file_name,
00366 xsh_combine_nod_param * combine_nod_param,
00367 xsh_rectify_param * rectif_par,
00368 xsh_instrument * instrument,cpl_frame** res_frame_ext ) ;
00369
00370 void xsh_compute_slitlet_center( xsh_order_list * order_list,
00371 cpl_frame * slitmap_frame,
00372 double * down, double * cen,
00373 double * up,
00374 XSH_ARM arm ) ;
00375
00376
00377
00378 void xsh_get_slit_edges( cpl_frame *slitmap_frame, double *sdown, double *sup,
00379 double *sldown, double *slup, xsh_instrument *instrument);
00380
00381 cpl_frame *
00382 xsh_subtract_sky_single (cpl_frame * sci_frame,
00383 cpl_frame * order_table_frame,
00384 cpl_frame * slitmap_frame,
00385 cpl_frame * wavemap_frame,
00386 cpl_frame * locTable_frame,
00387 cpl_frame * mflat_frame,cpl_frame* usr_defined_break_points_frame,
00388 xsh_instrument * instrument,
00389 int nbkpts,
00390 xsh_subtract_sky_single_param* sky_par,
00391 cpl_frame ** sky_spectrum,
00392 cpl_frame ** sky_spectrum_eso,const char* rec_prefix ) ;
00393
00394 cpl_frame*
00395 xsh_save_sky_model(cpl_frame* obj_frame,
00396 cpl_frame* sub_sky_frame,
00397 const char* sky_tag,
00398 xsh_instrument* instrument);
00399
00400 cpl_frame * xsh_add_sky_model( cpl_frame *sub_sky_frame, cpl_frame *sky_frame,
00401 xsh_instrument * instrument, const char* rec_prefix );
00402
00403 cpl_frame*
00404 xsh_localize_obj( cpl_frame * sci_frame,
00405 cpl_frame *skymask_frame,
00406 xsh_instrument *instrument,
00407 xsh_localize_obj_param * loc_obj_par,
00408 xsh_slit_limit_param * slit_limit_param,
00409 const char * fname );
00410
00411 cpl_frameset *
00412 xsh_localize_obj_ifu( cpl_frameset * sci_frame,
00413 cpl_frame *skymask_frame,
00414 xsh_instrument *instrument,
00415 xsh_localize_obj_param * loc_obj_par,
00416 xsh_slit_limit_param * slit_limit_param);
00417
00418 cpl_frame* xsh_extract ( cpl_frame * rec_frame,
00419 cpl_frame* loc_frame,
00420 xsh_instrument* instrument,
00421 xsh_extract_param* extract_par,
00422 cpl_frame** res_frame_ext,
00423 const char* rec_prefix);
00424
00425 cpl_frameset *
00426 xsh_extract_ifu(cpl_frameset * rec_frame_set,
00427 cpl_frameset * loc_frame_set,
00428 xsh_instrument* instrument,
00429 xsh_extract_param * extract_par,
00430 const char* rec_prefix) ;
00431
00432 cpl_frame * xsh_abs_remove_crh_single( cpl_frame *sci_frame,
00433 cpl_frame* wavemap_frame,
00434 xsh_instrument * instrument,
00435 xsh_remove_crh_single_param * single_par,
00436 const char * res_tag);
00437
00438 cpl_frame *
00439 xsh_remove_crh_single( cpl_frame * sci_frame,cpl_frame * wave_frame,
00440 xsh_instrument * instrument,
00441 xsh_remove_crh_single_param * single_par,
00442 const char * name );
00443
00444 cpl_frame * xsh_merge_ord_slitlet( cpl_frame * rec_frame,
00445 xsh_instrument* instrument,
00446 xsh_merge_param* merge_par, int slitlet,
00447 const char* rec_prefix);
00448
00449 cpl_frame *
00450 xsh_merge_ord (cpl_frame * sci_frame, xsh_instrument * instrument,
00451 xsh_merge_param* merge,const char* rec_prefix) ;
00452
00453 cpl_frameset *
00454 xsh_merge_ord_ifu(cpl_frameset * rec_frameset,
00455 xsh_instrument* instrument,
00456 xsh_merge_param* merge_par,const char* rec_prefix) ;
00457
00458 cpl_frameset *
00459 xsh_subtract_sky_nod( cpl_frameset * raws, xsh_instrument * instrument,
00460 int mode_fast);
00461
00462 void
00463 xsh_flat_merge_qth_d2( cpl_frame *qth_frame,
00464 cpl_frame *qth_order_tab_frame,
00465 cpl_frame *d2_frame,
00466 cpl_frame *d2_order_tab_frame,
00467 cpl_frame *qth_bkg_frame,
00468 cpl_frame *d2_bkg_frame,
00469 cpl_frame **qth_d2_flat_frame,
00470 cpl_frame **qth_d2_bkg_frame,
00471 cpl_frame **qth_d2_order_tab_frame,
00472 xsh_instrument *instrument);
00473
00474 #define XSH_MATH_SQRT_2 1.4142135623730951
00475 void xsh_opt_extract( cpl_frame *sci_frame, cpl_frame *order_table_frame,
00476 cpl_frame *wavesol_frame, cpl_frame *model_frame, cpl_frame *wavemap_frame,
00477 cpl_frame *slitmap_frame, cpl_frame *loc_frame,
00478 cpl_frame *spectralformat_frame, cpl_frame *masterflat_frame,
00479 xsh_instrument *instrument, xsh_opt_extract_param *opt_extract_par,
00480 const char* rec_prefix,
00481 cpl_frame **orderext1d_frame, cpl_frame **orderoxt1d_frame);
00482
00483 #define REGDEBUG_GAUSSIAN 0
00484 #define REGDEBUG_MODEL 0
00485 #define REGDEBUG_BLAZE 0
00486 #define REGDEBUG_EXTRACT 0
00487 #define REGDEBUG_EXTRACT_XY 0
00488 #define REGDEBUG_SUBEXTRACT 0
00489 #define REGDEBUG_SUBEXTRACT_XY 0
00490 #define REGDEBUG_EXTRACT_STD 1
00491 #define REGDEBUG_WEIGHT 0
00492 #define REGDEBUG_EXTRACT_OPT 0
00493 #define REGDEBUG_N 0
00494
00495 void xsh_opt_extract_orders( cpl_frame *sci_frame,
00496 cpl_frame *orderlist_frame,
00497 cpl_frame *wavesol_frame,
00498 cpl_frame *model_frame,
00499 cpl_frame *wavemap_frame,
00500 cpl_frame *slitmap_frame,
00501 cpl_frame *loc_frame,
00502 cpl_frame *spectralformat_frame,
00503 cpl_frame *masterflat_frame,
00504 xsh_instrument *instrument,
00505 xsh_opt_extract_param* opt_extract_par,
00506 int min_index, int max_index,
00507 const char* rec_refix,
00508 cpl_frame** orderext1d_frame,
00509 cpl_frame** orderoxt1d_frame);
00510
00511 cpl_frame *
00512 xsh_combine_nod( cpl_frameset * frames,
00513 xsh_combine_nod_param * param,
00514 const char * fname,
00515 xsh_instrument * instrument,
00516 cpl_frame** res_frame_ext ) ;
00517
00518
00519 cpl_frame*
00520 xsh_create_master_bias2(cpl_frameset* rawFrames,
00521 xsh_instrument* instr,
00522 const char* result_name);
00523
00524 cpl_frame* xsh_compute_slice_dist( cpl_frameset *loc_frame_set,
00525 cpl_frame *order_tab, cpl_frame *slitmap_frame,
00526 cpl_frameset *merge_frameset, double lambda, xsh_instrument *instrument);
00527
00528 cpl_frame *
00529 xsh_format( cpl_frameset * rect_frame_set,
00530 const char * result_name,
00531 xsh_instrument * instrument, const char* rec_prefix ) ;
00532
00533 cpl_frameset *
00534 xsh_subtract_sky_offset( cpl_frameset * object_raws,
00535 cpl_frameset * sky_raws,
00536 int nraws,
00537 xsh_instrument * instrument ) ;
00538
00539 cpl_frame *
00540 xsh_combine_offset (cpl_frameset * rawFrames,
00541 const char *result_name,
00542 xsh_clipping_param * crh_clipping,
00543 xsh_instrument* instr,
00544 cpl_imagelist ** list,
00545 cpl_image** crh_ima) ;
00546
00547 cpl_frame *
00548 xsh_compute_response( cpl_frame * rect_frame,
00549 cpl_frame * std_star_flux_frame,
00550 cpl_frame * atmos_ext_frame,
00551 cpl_frame * high_abs_tab_frame,
00552 xsh_instrument * instrument,
00553 double exptime ) ;
00554
00555 cpl_frame *
00556 xsh_compute_response_ord( cpl_frame * rect_frame,
00557 cpl_frame * std_star_flux_frame,
00558 cpl_frame * atmos_ext_frame,
00559 cpl_frame * high_abs_tab_frame,
00560 xsh_instrument * instrument,
00561 double exptime) ;
00562
00563 void xsh_data_check_spectralformat( cpl_frame *spectralformat_frame,
00564 cpl_frame *orderlist_frame, cpl_frame *wavesol_frame,
00565 cpl_frame *model_config,
00566 xsh_instrument *instr);
00567
00568 cpl_error_code
00569 xsh_wavemap_qc(cpl_frame* frm_map,const cpl_frame* frm_tab);
00570
00571 cpl_error_code
00572 xsh_wavetab_qc(cpl_frame* frm_tab,const int is_poly);
00573
00574 cpl_frame*
00575 xsh_flexcor( cpl_frame* afc_frame,
00576 cpl_frame *wave_tab_frame,
00577 cpl_frame *model_config_frame,
00578 cpl_frame *order_tab_frame,
00579 cpl_frame *attresidtab_frame,
00580 int afc_xmin, int afc_ymin, xsh_instrument *instr,
00581 cpl_frame **afc_order_tab_frame,
00582 cpl_frame **afc_model_config_frame);
00583
00584 cpl_frame* xsh_afcthetab_create( cpl_frame *wave_tab_frame,
00585 cpl_frame *model_config_frame, int order,
00586 cpl_frame *spectralformat_frame,cpl_frame *arclines_frame,
00587 int xmin, int ymin, xsh_instrument *instr);
00588
00589 cpl_frameset* xsh_ifu_wavetab_create( cpl_frame *wave_tab_frame,
00590 cpl_frame *shift_tab_frame, xsh_instrument *instr);
00591
00592 cpl_frame * xsh_calibrate_flux( cpl_frame * spectrum_frame,
00593 cpl_frame * respon_frame,
00594 cpl_frame * atmos_ext_frame,
00595 const char * fname,
00596 xsh_instrument * instrument ) ;
00597
00598 cpl_frame*
00599 xsh_create_dispersol_physmod(cpl_frame* pre_frame,
00600 cpl_frame *order_tab_frame,
00601 cpl_frame* mod_cfg_frame,
00602 cpl_frame* wave_map_frame,
00603 cpl_frame* slit_map_frame,
00604 xsh_dispersol_param *dispsol_param,
00605 cpl_frame* spectral_format_frame,
00606 xsh_instrument* instrument);
00607
00608 #endif