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