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 #ifndef XSH_PARAMETERS_H
00028 #define XSH_PARAMETERS_H
00029
00030
00031
00032
00033
00034 #include <cpl.h>
00035 #include <xsh_data_instrument.h>
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045 typedef struct {
00046
00047 double sigma ;
00048
00049 int niter ;
00050
00051 double frac ;
00052
00053 double diff ;
00054
00055 double res_max ;
00056 } xsh_clipping_param ;
00057
00058
00059
00060
00061 typedef struct {
00062
00063 int search_window_hsize;
00064
00065 double flux_thresh;
00066
00067 double min_sn;
00068
00069 int min_order_size_x;
00070
00071 int chunk_hsize;
00072
00073 double slitlet_low_factor;
00074 double slitlet_up_factor;
00075
00076 int fixed_slice;
00077
00078 const char* method;
00079
00080
00081
00082
00083
00084
00085
00086 int qc_mode;
00087 } xsh_detect_order_param;
00088
00089
00090
00091
00092 typedef struct {
00093
00094 double min_sn;
00095 }xsh_d2_detect_order_param;
00096
00097
00098 #define DETECT_CONTINUUM_POLYNOMIAL_DEGREE 5
00099
00100 typedef struct {
00101 int search_window ;
00102 int running_window ;
00103 int fit_window ;
00105 int poly_degree ;
00106 int poly_step ;
00107 double fit_threshold ;
00108 int fmtchk_window ;
00109 int fmtchk_step ;
00110 double fmtchk_search_sn ;
00111 double fmtchk_follow_sn ;
00112 int dist_order ;
00113 } xsh_detect_continuum_param ;
00114
00115
00116
00117
00118 typedef struct {
00119
00120 int sampley;
00121
00122 int radius_x;
00123
00124 int radius_y;
00125
00126 double max_frac_grid;
00127
00128 const char* method;
00129
00130 int smooth_x;
00131
00132 int smooth_y;
00133 int poly_deg_x;
00134 int poly_deg_y;
00135 double poly_kappa;
00136
00137 int debug;
00138 #if 1
00139 double min_frac_grid ;
00141 #endif
00142 } xsh_background_param;
00143
00144
00145
00146
00147 #define WAVECAL_RANGE_DEFAULT 6
00148 #define WAVECAL_MARGIN_DEFAULT 3
00149
00150 typedef struct {
00151 int range ;
00153 int margin ;
00155 xsh_clipping_param *tilt_clipping ;
00156 xsh_clipping_param *specres_clipping ;
00157 double s_n_min ;
00158 } xsh_follow_arclines_param ;
00159
00160
00161
00162
00163 #define DETECT_ARCLINES_POLYNOMIAL_DEGREE 5
00164
00165 typedef enum {
00166 XSH_GAUSSIAN_METHOD,
00167 XSH_BARYCENTER_METHOD
00168 } xsh_find_center_method;
00169
00170 typedef struct {
00171
00172 int fit_window_hsize;
00173
00174 int search_window_hsize;
00175
00176 int running_median_hsize;
00177
00178 int wavesol_deg_lambda;
00179
00180 int wavesol_deg_order;
00181
00182 int wavesol_deg_slit;
00183
00184 int ordertab_deg_y ;
00185
00186 double min_sn;
00187
00188 xsh_find_center_method find_center_method;
00189 int mode_iterative;
00190 } xsh_detect_arclines_param;
00191
00192
00193
00194
00195 typedef struct {
00196 double crh_frac_max ;
00197 double sigma_lim;
00198 double f_lim;
00199 int nb_iter ;
00200 } xsh_remove_crh_single_param ;
00201
00202
00203
00204
00205 #define RECTIFY_KERNEL_PRINT(method)\
00206 (method) == CPL_KERNEL_TANH ? "TANH" : \
00207 (method) == CPL_KERNEL_SINC ? "SINC" : \
00208 (method) == CPL_KERNEL_SINC2 ? "SINC2" : \
00209 (method) == CPL_KERNEL_LANCZOS ? "LANCZOS" : \
00210 (method) == CPL_KERNEL_HAMMING ? "HAMMING" : \
00211 (method) == CPL_KERNEL_HANN ? "HANN" :"????"
00212
00213 typedef struct {
00214 char rectif_kernel[16] ;
00223 cpl_kernel kernel_type ;
00224 double rectif_radius ;
00225 double rectif_bin_lambda ;
00226 double rectif_bin_space ;
00227 int rectify_full_slit ;
00229 int conserve_flux;
00230 double slit_offset ;
00234
00235 } xsh_rectify_param ;
00236
00237
00238
00239
00240 enum localize_method {
00241 LOC_MANUAL_METHOD,
00242 LOC_MAXIMUM_METHOD,
00243 LOC_GAUSSIAN_METHOD
00244 };
00245 #define LOCALIZE_METHOD_PRINT(method)\
00246 (method) == LOC_MANUAL_METHOD ? "MANUAL" : \
00247 (method) == LOC_MAXIMUM_METHOD ? "MAXIMUM" : \
00248 (method) == LOC_GAUSSIAN_METHOD ? "GAUSSIAN" :"????"
00249
00250 typedef struct {
00251 int loc_chunk_nb ;
00252 double loc_thresh;
00253 int loc_deg_poly;
00254 double nod_step ;
00256 enum localize_method method;
00257 double slit_position;
00258 double slit_hheight;
00259 double kappa;
00260 int niter;
00262 int use_skymask;
00263 } xsh_localize_obj_param ;
00264
00265
00266
00267
00268 typedef struct {
00269 int smooth_hsize;
00270 int nscales;
00271 int HF_skip;
00272 double cut_sigma_low;
00273 double cut_sigma_up;
00274 double cut_snr_low;
00275 double cut_snr_up;
00276 double slitup_edges_mask;
00277 double slitlow_edges_mask;
00278 int use_skymask;
00279 int box_hsize;
00280 int bckg_deg;
00281 } xsh_localize_ifu_param ;
00282
00283
00284 enum extract_method {
00285 LOCALIZATION_METHOD,
00286 FULL_METHOD,
00287 NOD_METHOD
00288 };
00289 #define EXTRACT_METHOD_PRINT(method)\
00290 (method) == LOCALIZATION_METHOD ? "LOCALIZATION" : \
00291 (method) == FULL_METHOD ? "FULL" : \
00292 (method) == NOD_METHOD ? "NOD" : "????"
00293
00294 typedef struct {
00295 enum extract_method method;
00296 } xsh_extract_param;
00297
00298
00299 #define MERGE_METHOD_PRINT(method)\
00300 (method) == WEIGHTED_MERGE_METHOD ? "WEIGHT" : \
00301 (method) == FULL_METHOD ? "MEAN" : "????"
00302
00303
00304 enum merge_method {
00305 WEIGHTED_MERGE_METHOD,
00306 MEAN_MERGE_METHOD
00307 };
00308
00309 typedef struct {
00310 enum merge_method method;
00311 } xsh_merge_param;
00312
00313
00314
00315 #define SUBTRACT_SKY_SINGLE_NBKPTS 1000
00316
00317 enum sky_method {
00318 BSPLINE_METHOD,
00319 MEDIAN_METHOD
00320 };
00321
00322
00323 enum bspline_sampling {
00324 UNIFORM,
00325 FINE
00326 };
00327
00328
00329 #define SKY_METHOD_PRINT(method)\
00330 (method) == BSPLINE_METHOD ? "BSPLINE" : \
00331 (method) == MEDIAN_METHOD ? "MEDIAN" : "????"
00332
00333
00334 #define BSPLINE_SAMPLING_PRINT(method)\
00335 (method) == UNIFORM ? "UNIFORM" : \
00336 (method) == FINE ? "FINE" : "????"
00337
00338
00339 typedef struct {
00340 int nbkpts1;
00341
00342 int nbkpts2;
00343
00344 int bezier_spline_order;
00345 int niter;
00346 double kappa;
00347 double ron;
00348 double gain;
00349 enum sky_method method;
00350 enum bspline_sampling bspline_sampling;
00351 int median_hsize;
00352 double slit_edges_mask;
00353 double pos1;
00354 double hheight1;
00355 double pos2;
00356 double hheight2;
00357 } xsh_subtract_sky_single_param ;
00358
00359
00360
00361
00362
00363 typedef struct {
00364 int deg_x;
00365 int deg_y;
00366 } xsh_dispersol_param ;
00367
00368
00369 enum combine_method {
00370 COMBINE_MEDIAN_METHOD,
00371 COMBINE_MEAN_METHOD
00372 };
00373
00374 #define COMBINE_METHOD_PRINT(method)\
00375 (method) == COMBINE_MEDIAN_METHOD ? "MEDIAN" : \
00376 (method) == COMBINE_MEAN_METHOD ? "MEAN" : "????"
00377
00378
00379 typedef struct {
00380 int nod_min ;
00382 int nod_clip ;
00383 double nod_clip_sigma ;
00384 int nod_clip_niter ;
00385 double nod_clip_diff ;
00386 char* throwname;
00389 enum combine_method method;
00390
00391 } xsh_combine_nod_param ;
00392
00393 typedef struct {
00394 int sub_med ;
00396 double sub_hsigma ;
00397 int sub_niter ;
00398 double sub_diff ;
00399 } xsh_subtract_nod_param ;
00400
00401
00402
00403
00404
00405 enum optextract_method {
00406 GAUSS_METHOD,
00407 GENERAL_METHOD,
00408 };
00409 #define OPTEXTRACT_METHOD_PRINT(method)\
00410 (method) == GAUSS_METHOD ? "GAUSSIAN" : \
00411 (method) == GENERAL_METHOD ? "GENERAL" : "????"
00412
00413 typedef struct {
00414 int oversample;
00415 int box_hsize;
00416 int chunk_size;
00417 double lambda_step;
00418 double clip_kappa ;
00419 double clip_frac;
00420 int clip_niter;
00421 int niter;
00422 enum optextract_method method;
00423 } xsh_opt_extract_param;
00424
00425
00426 typedef struct {
00427 int hot_cold_pix_search;
00428 double cold_pix_kappa;
00429 int cold_pix_niter;
00430 double hot_pix_kappa;
00431 int hot_pix_niter;
00432 }xsh_hot_cold_pix_param;
00433
00434 typedef struct {
00435 int fpn_llx;
00436 int fpn_lly;
00437 int fpn_urx;
00438 int fpn_ury;
00439 int fpn_hsize;
00440 int fpn_nsamples;
00441 }xsh_fpn_param;
00442
00443
00444 typedef struct {
00445 const char* ron_method;
00446 int ron_random_sizex;
00447 int ron_random_nsamples;
00449 int ron_prescan_llx;
00450 int ron_prescan_lly;
00451 int ron_prescan_urx;
00452 int ron_prescan_ury;
00454 int ron_overscan_llx;
00455 int ron_overscan_lly;
00456 int ron_overscan_urx;
00457 int ron_overscan_ury;
00459 int ron_ref_llx;
00460 int ron_ref_lly;
00461 int ron_ref_urx;
00462 int ron_ref_ury;
00464 int stacking_ks_low;
00465 int stacking_ks_iter;
00466 }xsh_ron_param;
00467
00468
00469
00470 typedef struct {
00471 const char* stack_method;
00473 double klow;
00474 double khigh;
00475 int niter;
00476 }xsh_stack_param;
00477
00478
00479 typedef struct {
00480 int prescan_llx;
00481 int prescan_lly;
00482 int prescan_urx;
00483 int prescan_ury;
00485 }xsh_prescan_param;
00486
00487 typedef struct {
00488 int overscan_llx;
00489 int overscan_lly;
00490 int overscan_urx;
00491 int overscan_ury;
00493 }xsh_overscan_param;
00494
00495 typedef struct {
00496 int ref_llx;
00497 int ref_lly;
00498 int ref_urx;
00499 int ref_ury;
00501 }xsh_ref_param;
00502
00503 typedef struct {
00504 int ref_x;
00505 int ref_y;
00507 }xsh_struct_param;
00508
00509 typedef struct {
00510 int ron_llx;
00511 int ron_lly;
00512 int ron_urx;
00513 int ron_ury;
00514 int ron_hsize;
00515 int ron_nsamp;
00517 }xsh_ron_dark_param;
00518
00519
00520 typedef struct {
00521 double min_slit ;
00522 double max_slit ;
00523 int min_slit_idx ;
00524 int max_slit_idx ;
00525 } xsh_slit_limit_param ;
00526
00527
00528 typedef struct {
00529 double lambda_bin ;
00530 } xsh_compute_response_param ;
00531
00532
00533
00534
00535
00536
00537
00538
00539
00540
00541
00542
00543 cpl_parameter*
00544 xsh_parameters_find( cpl_parameterlist* list,
00545 const char* recipe_id, const char* name);
00546
00547
00548 void
00549 xsh_parameters_ron_dark_create(const char* recipe_id,cpl_parameterlist* list,
00550 xsh_ron_dark_param p);
00551
00552 void
00553 xsh_parameters_prescan_create(const char* recipe_id,cpl_parameterlist* list,
00554 xsh_prescan_param p);
00555 void
00556 xsh_parameters_overscan_create(const char* recipe_id,cpl_parameterlist* list,
00557 xsh_overscan_param p);
00558 void
00559 xsh_parameters_struct_create(const char* recipe_id,cpl_parameterlist* list,
00560 xsh_struct_param p);
00561 void
00562 xsh_parameters_ref1_create(const char* recipe_id,cpl_parameterlist* list,
00563 xsh_ref_param p);
00564 void
00565 xsh_parameters_ref2_create(const char* recipe_id,cpl_parameterlist* list,
00566 xsh_ref_param p);
00567 void
00568 xsh_parameters_ron_create(const char* recipe_id,cpl_parameterlist* list,
00569 xsh_ron_param p);
00570
00571 void
00572 xsh_parameters_fpn_create(const char* recipe_id,cpl_parameterlist* list,
00573 xsh_fpn_param p);
00574
00575 void
00576 xsh_parameters_hot_cold_pix_create(const char* recipe_id,
00577 cpl_parameterlist* list,
00578 xsh_hot_cold_pix_param p);
00579 void
00580 xsh_parameters_new_int( cpl_parameterlist* list,
00581 const char* recipe_id,
00582 const char* name,
00583 int value,
00584 const char* comment);
00585 void
00586 xsh_parameters_new_double( cpl_parameterlist* list,
00587 const char* recipe_id,
00588 const char* name,
00589 double value,
00590 const char* comment);
00591
00592
00593 void xsh_parameters_new_boolean( cpl_parameterlist* list,
00594 const char* recipe_id, const char* name,int value, const char* comment);
00595 int xsh_parameters_get_boolean( const cpl_parameterlist* list,
00596 const char* recipe_id, const char* name);
00597 int xsh_parameters_get_int( cpl_parameterlist* list,
00598 const char* recipe_id, const char* name);
00599 double xsh_parameters_get_double( cpl_parameterlist* list,
00600 const char* recipe_id, const char* name);
00601 char * xsh_parameters_get_string( const cpl_parameterlist* list,
00602 const char* recipe_id, const char* name);
00603
00604 void xsh_parameters_generic( const char *recipe_id,
00605 cpl_parameterlist * plist ) ;
00606 void xsh_parameters_pre_overscan( const char *recipe_id,
00607 cpl_parameterlist * plist ) ;
00608 int xsh_parameters_get_temporary( const char* recipe_id,
00609 const cpl_parameterlist* list ) ;
00610 int xsh_parameters_debug_level_get( const char* recipe_id,
00611 const cpl_parameterlist* list ) ;
00612 char * xsh_parameters_test_mode_get( const char * recipe_id,
00613 const cpl_parameterlist * list ) ;
00614 int xsh_parameters_time_stamp_get( const char * recipe_id,
00615 const cpl_parameterlist * list ) ;
00616 XSH_ARM xsh_parameters_get_arm( const char * recipe_id,
00617 const cpl_parameterlist * list );
00618
00619 void xsh_parameters_use_model_create( const char * recipe_id,
00620 cpl_parameterlist * list ) ;
00621 int xsh_parameters_use_model_get( const char * recipe_id,
00622 const cpl_parameterlist * list ) ;
00623
00624
00625
00626 void xsh_parameters_clipping_noise_create(const char* recipe_id,
00627 cpl_parameterlist* list,
00628 xsh_clipping_param noise_clip_param);
00629 xsh_clipping_param* xsh_parameters_clipping_noise_get(const char* recipe_id,
00630 cpl_parameterlist* list);
00631
00632
00633 void xsh_parameters_clipping_dcn_create(const char* recipe_id,
00634 cpl_parameterlist* list);
00635 xsh_clipping_param* xsh_parameters_clipping_dcn_get( const char* recipe_id,
00636 cpl_parameterlist* list);
00637 void xsh_parameters_detect_continuum_create( const char* recipe_id,
00638 cpl_parameterlist* list,
00639 xsh_detect_continuum_param par ) ;
00640 xsh_detect_continuum_param *
00641 xsh_parameters_detect_continuum_get(
00642 const char* recipe_id,
00643 cpl_parameterlist* list) ;
00644
00645
00646 void xsh_parameters_clipping_crh_create(const char* recipe_id,
00647 cpl_parameterlist* list, xsh_clipping_param p);
00648 xsh_clipping_param* xsh_parameters_clipping_crh_get(const char* recipe_id,
00649 cpl_parameterlist* list);
00650
00651
00652 void xsh_parameters_detect_order_create(const char* recipe_id,
00653 cpl_parameterlist* list);
00654 xsh_detect_order_param* xsh_parameters_detect_order_get(const char* recipe_id,
00655 cpl_parameterlist* list,cpl_parameterlist* drs);
00656 void xsh_parameters_d2_detect_order_create(const char* recipe_id,
00657 cpl_parameterlist* list);
00658 xsh_d2_detect_order_param* xsh_parameters_d2_detect_order_get(
00659 const char* recipe_id, cpl_parameterlist* list);
00660
00661
00662 void xsh_parameters_clipping_detect_arclines_create(const char* recipe_id,
00663 cpl_parameterlist* list, xsh_clipping_param p);
00664 xsh_clipping_param* xsh_parameters_clipping_detect_arclines_get(
00665 const char* recipe_id, cpl_parameterlist* list);
00666 void xsh_parameters_detect_arclines_create(const char* recipe_id,
00667 cpl_parameterlist* list, xsh_detect_arclines_param p);
00668 xsh_detect_arclines_param* xsh_parameters_detect_arclines_get(
00669 const char* recipe_id, cpl_parameterlist* list) ;
00670
00671
00672 void xsh_parameters_background_create(const char* recipe_id,
00673 cpl_parameterlist* list);
00674 xsh_background_param* xsh_parameters_background_get(
00675 const char* recipe_id, cpl_parameterlist* list);
00676
00677
00678 void xsh_parameters_clipping_tilt_create(const char* recipe_id,
00679 cpl_parameterlist* list) ;
00680 xsh_clipping_param* xsh_parameters_clipping_tilt_get(const char* recipe_id,
00681 cpl_parameterlist* list) ;
00682 void xsh_parameters_clipping_specres_create(const char* recipe_id,
00683 cpl_parameterlist* list) ;
00684 xsh_clipping_param* xsh_parameters_clipping_specres_get(const char* recipe_id,
00685 cpl_parameterlist* list) ;
00686
00687 void xsh_parameters_wavecal_range_create(const char* recipe_id,
00688 cpl_parameterlist* list) ;
00689 int xsh_parameters_wavecal_range_get( const char* recipe_id,
00690 cpl_parameterlist* list) ;
00691 int xsh_parameters_wavecal_margin_get( const char* recipe_id,
00692 cpl_parameterlist* list) ;
00693 void xsh_parameters_wavecal_margin_create(const char* recipe_id,
00694 cpl_parameterlist* list);
00695 void xsh_parameters_wavecal_s_n_create(const char* recipe_id,
00696 cpl_parameterlist* list) ;
00697 double xsh_parameters_wavecal_s_n_get( const char* recipe_id,
00698 cpl_parameterlist* list) ;
00699
00700 void xsh_parameters_remove_crh_single_create( const char * recipe_id,
00701 cpl_parameterlist * plist,
00702 xsh_remove_crh_single_param p );
00703 xsh_remove_crh_single_param * xsh_parameters_remove_crh_single_get(
00704 const char* recipe_id,
00705 cpl_parameterlist* list);
00706
00707 void
00708 xsh_parameters_stack_create(const char* recipe_id,
00709 cpl_parameterlist* list, xsh_stack_param sp);
00710
00711 void xsh_parameters_rectify_create( const char * recipe_id,
00712 cpl_parameterlist * plist,
00713 xsh_rectify_param p ) ;
00714 xsh_rectify_param * xsh_parameters_rectify_get(
00715 const char* recipe_id,
00716 cpl_parameterlist* list);
00717 int xsh_parameters_rectify_fast_get( const char* recipe_id,
00718 cpl_parameterlist* list);
00719
00720
00721 void xsh_parameters_compute_response_create( const char * recipe_id,
00722 cpl_parameterlist * plist,
00723 xsh_compute_response_param p ) ;
00724 xsh_compute_response_param *
00725 xsh_parameters_compute_response_get( const char * recipe_id,
00726 cpl_parameterlist * list) ;
00727
00728
00729 void xsh_parameters_localize_obj_create( const char * recipe_id,
00730 cpl_parameterlist * plist, xsh_localize_obj_param p ) ;
00731 xsh_localize_obj_param * xsh_parameters_localize_obj_get(
00732 const char* recipe_id, cpl_parameterlist* list);
00733
00734
00735 void xsh_parameters_localize_ifu_create( const char * recipe_id,
00736 cpl_parameterlist * plist, xsh_localize_ifu_param p ) ;
00737 xsh_localize_ifu_param * xsh_parameters_localize_ifu_get(
00738 const char* recipe_id, cpl_parameterlist* list);
00739
00740
00741 void xsh_parameters_extract_create( const char * recipe_id,
00742 cpl_parameterlist * plist,
00743 xsh_extract_param p,
00744 enum extract_method method) ;
00745
00746 xsh_extract_param * xsh_parameters_extract_get(
00747 const char* recipe_id, cpl_parameterlist* list);
00748
00749
00750 void xsh_parameters_subtract_sky_single_create( const char * recipe_id,
00751 cpl_parameterlist * plist, xsh_subtract_sky_single_param p);
00752 xsh_subtract_sky_single_param* xsh_parameters_subtract_sky_single_get(
00753 const char* recipe_id, cpl_parameterlist* list);
00754
00755
00756 int xsh_parameters_subtract_sky_single_get_first( const char* recipe_id,
00757 cpl_parameterlist* list) ;
00758 int xsh_parameters_subtract_sky_single_get_second( const char* recipe_id,
00759 cpl_parameterlist* list) ;
00760
00761 int xsh_parameters_subtract_sky_single_get_niter( const char* recipe_id,
00762 cpl_parameterlist* list) ;
00763
00764
00765 double xsh_parameters_subtract_sky_single_get_kappa( const char* recipe_id,
00766 cpl_parameterlist* list) ;
00767
00768 double xsh_parameters_subtract_sky_single_get_ron( const char* recipe_id,
00769 cpl_parameterlist* list) ;
00770
00771 double xsh_parameters_subtract_sky_single_get_gain( const char* recipe_id,
00772 cpl_parameterlist* list) ;
00773
00774 int xsh_parameters_subtract_sky_single_get_true( const char* recipe_id,
00775 cpl_parameterlist* list) ;
00776
00777 void xsh_parameters_dosky_domap_get( const char *recipe_id,
00778 cpl_parameterlist *list,
00779 cpl_frame* wavemap_frame,
00780 cpl_frame* slitmap_frame,
00781 int* dosky, int* domap);
00782
00783
00784
00785 void xsh_parameters_merge_ord_create( const char * recipe_id,
00786 cpl_parameterlist * plist,
00787 int p ) ;
00788 xsh_merge_param * xsh_parameters_merge_ord_get( const char* recipe_id,
00789 cpl_parameterlist* list) ;
00790
00791
00792 void xsh_parameters_optimal_extract_create( const char * recipe_id,
00793 cpl_parameterlist * plist,
00794 int p ) ;
00795 double xsh_parameters_optimal_extract_get_kappa( const char* recipe_id,
00796 cpl_parameterlist* list) ;
00797 void xsh_parameters_dispersol_create(const char* recipe_id,
00798 cpl_parameterlist* list, xsh_dispersol_param p) ;
00799 xsh_dispersol_param* xsh_parameters_dispersol_get( const char* recipe_id,
00800 cpl_parameterlist* list) ;
00801
00802 void xsh_parameters_combine_nod_create( const char * recipe_id,
00803 cpl_parameterlist* list,
00804 xsh_combine_nod_param p) ;
00805 xsh_combine_nod_param * xsh_parameters_combine_nod_get( const char * recipe_id,
00806 cpl_parameterlist* list);
00807
00808 void xsh_parameters_opt_extract_create( const char* recipe_id,
00809 cpl_parameterlist* list, xsh_opt_extract_param opt_extract_par);
00810 xsh_opt_extract_param* xsh_parameters_opt_extract_get( const char* recipe_id,
00811 cpl_parameterlist* list);
00812
00813 #if 0
00814 void xsh_parameters_subtract_nod_create( const char* recipe_id,
00815 cpl_parameterlist* list,
00816 xsh_subtract_nod_param p) ;
00817 #endif
00818
00819 void xsh_parameters_slit_limit_create( const char* recipe_id,
00820 cpl_parameterlist* list,
00821 xsh_slit_limit_param p ) ;
00822 xsh_slit_limit_param * xsh_parameters_slit_limit_get( const char * recipe_id,
00823 cpl_parameterlist* list ) ;
00824
00825 void xsh_parameters_geom_ifu_mode_create( const char* recipe_id,
00826 cpl_parameterlist* list ) ;
00827 int xsh_parameters_geom_ifu_mode_get( const char * recipe_id,
00828 cpl_parameterlist* list) ;
00829 cpl_parameterlist*
00830 xsh_parameters_create_from_drs_table(const cpl_table* tab);
00831
00832 cpl_error_code
00833 xsh_recipe_params_check(cpl_parameterlist * parameters,xsh_instrument* instrument,const char* rec_id);
00834
00835 cpl_error_code
00836 xsh_recipe_params_drs_check(cpl_parameterlist * parameters,xsh_instrument* instrument,const char* rec_id);
00837
00838 xsh_stack_param*
00839 xsh_stack_frames_get(const char* recipe_id, cpl_parameterlist* list);
00840
00841 #endif