27#ifndef XSH_PARAMETERS_H
28#define XSH_PARAMETERS_H
98#define DETECT_CONTINUUM_POLYNOMIAL_DEGREE 5
142#define WAVECAL_RANGE_DEFAULT 13
143#define WAVECAL_MARGIN_DEFAULT 3
158#define DETECT_ARCLINES_POLYNOMIAL_DEGREE 5
200#define RECTIFY_KERNEL_PRINT(method)\
201 (method) == CPL_KERNEL_TANH ? "TANH" : \
202 (method) == CPL_KERNEL_SINC ? "SINC" : \
203 (method) == CPL_KERNEL_SINC2 ? "SINC2" : \
204 (method) == CPL_KERNEL_LANCZOS ? "LANCZOS" : \
205 (method) == CPL_KERNEL_HAMMING ? "HAMMING" : \
206 (method) == CPL_KERNEL_HANN ? "HANN" :"????"
209 char rectif_kernel[16] ;
240#define LOCALIZE_METHOD_PRINT(method)\
241 (method) == LOC_MANUAL_METHOD ? "MANUAL" : \
242 (method) == LOC_MAXIMUM_METHOD ? "MAXIMUM" : \
243 (method) == LOC_GAUSSIAN_METHOD ? "GAUSSIAN" :"????"
286#define EXTRACT_METHOD_PRINT(method)\
287 (method) == LOCALIZATION_METHOD ? "LOCALIZATION" : \
288 (method) == FULL_METHOD ? "FULL" : \
289 (method) == CLEAN_METHOD ? "CLEAN" : \
290 (method) == NOD_METHOD ? "NOD" : "????"
307#define MERGE_METHOD_PRINT(merge_method)\
308 (merge_method) == WEIGHTED_MERGE_METHOD ? "WEIGHT" : \
309 (merge_method) == FULL_METHOD ? "MEAN" : "????"
317#define SUBTRACT_SKY_SINGLE_NBKPTS 1000
336#define SKY_METHOD_PRINT(method)\
337 (method) == BSPLINE_METHOD ? "BSPLINE" : \
338 (method) == BSPLINE_METHOD1 ? "BSPLINE1" : \
339 (method) == BSPLINE_METHOD2 ? "BSPLINE2" : \
340 (method) == BSPLINE_METHOD3 ? "BSPLINE3" : \
341 (method) == BSPLINE_METHOD4 ? "BSPLINE4" : \
342 (method) == BSPLINE_METHOD5 ? "BSPLINE5" : \
343 (method) == MEDIAN_METHOD ? "MEDIAN" : "????"
346#define BSPLINE_SAMPLING_PRINT(method)\
347 (method) == UNIFORM ? "UNIFORM" : \
348 (method) == FINE ? "FINE" : "????"
386#define COMBINE_METHOD_PRINT(method)\
387 (method) == COMBINE_MEDIAN_METHOD ? "MEDIAN" : \
388 (method) == COMBINE_MEAN_METHOD ? "MEAN" : "????"
421#define OPTEXTRACT_METHOD_PRINT(method)\
422 (method) == GAUSS_METHOD ? "GAUSSIAN" : \
423 (method) == GENERAL_METHOD ? "GENERAL" : "????"
556#define BARY_CORR_METHOD_PRINT(corr_method)\
557 (corr_method) == BARY_CORR_BARY ? "bary" : \
558 (corr_method) == BARY_CORR_HELIO ? "helio" : \
559 (corr_method) == BARY_CORR_NONE ? "none" : "????"
565#define DECODE_BP_FLAG_MAX 2147483647
566#define DECODE_BP_FLAG_ALL 2146435071
568#define DECODE_BP_FLAG_DEF 2140143615
571#define DECODE_BP_FLAG_NOD 1737490431
586 const char* recipe_id,
const char* name);
620 cpl_parameterlist* list,
624 const char* recipe_id,
627 const char* comment);
630 const char* recipe_id,
633 const char* comment);
636 const char* recipe_id,
639 const char* comment);
642 const char* recipe_id,
const char* name,
int value,
const char* comment);
644 const char* recipe_id,
const char* name);
646 const char* recipe_id,
const char* name);
648 const char* recipe_id,
const char* name);
650 const char* recipe_id,
const char* name);
653 cpl_parameterlist * plist ) ;
655 cpl_parameterlist * plist ) ;
657 const cpl_parameterlist* list ) ;
659 const cpl_parameterlist* list ) ;
661 const cpl_parameterlist * list ) ;
663 const cpl_parameterlist * list ) ;
666 const cpl_parameterlist * list );
669 const cpl_parameterlist * list );
672 cpl_parameterlist * list ) ;
674 const cpl_parameterlist * list ) ;
679 cpl_parameterlist* list,
682 cpl_parameterlist* list);
686 cpl_parameterlist* list);
688 cpl_parameterlist* list);
690 cpl_parameterlist* list,
694 const char* recipe_id,
695 cpl_parameterlist* list) ;
699 const char* recipe_id, cpl_parameterlist* list);
705 cpl_parameterlist* list);
709 cpl_parameterlist* list);
711 cpl_parameterlist* list,cpl_parameterlist* drs);
713 cpl_parameterlist* list);
715 const char* recipe_id, cpl_parameterlist* list);
721 const char* recipe_id, cpl_parameterlist* list);
725 const char* recipe_id, cpl_parameterlist* list) ;
729 cpl_parameterlist* list);
731 const char* recipe_id, cpl_parameterlist* list);
735 cpl_parameterlist* list) ;
737 cpl_parameterlist* list) ;
739 cpl_parameterlist* list) ;
741 cpl_parameterlist* list) ;
744 cpl_parameterlist* list) ;
746 cpl_parameterlist* list) ;
748 cpl_parameterlist* list) ;
750 cpl_parameterlist* list);
752 cpl_parameterlist* list) ;
754 cpl_parameterlist* list) ;
757 cpl_parameterlist * plist,
760 const char* recipe_id,
761 cpl_parameterlist* list);
768 cpl_parameterlist * plist,
771 const char* recipe_id,
772 cpl_parameterlist* list);
774 cpl_parameterlist* list);
778 cpl_parameterlist * plist,
782 cpl_parameterlist * list) ;
788 const char* recipe_id, cpl_parameterlist* list);
794 const char* recipe_id, cpl_parameterlist* list);
798 cpl_parameterlist * plist,
803 cpl_parameterlist * plist,
806 const char* recipe_id, cpl_parameterlist* list);
812 const char* recipe_id, cpl_parameterlist* list);
816 cpl_parameterlist* list) ;
818 cpl_parameterlist* list) ;
821 cpl_parameterlist* list) ;
825 cpl_parameterlist* list) ;
829 cpl_parameterlist* list) ;
832 cpl_parameterlist *list,
833 cpl_frame* wavemap_frame,
834 cpl_frame* slitmap_frame,
835 int* dosky,
int* domap);
840 cpl_parameterlist * plist,
843 cpl_parameterlist* list) ;
847 cpl_parameterlist * plist,
850 cpl_parameterlist* list) ;
854 cpl_parameterlist* list) ;
857 cpl_parameterlist* list,
860 cpl_parameterlist* list);
864 cpl_parameterlist * list,
867 cpl_parameterlist * list);
871 cpl_parameterlist* list,
874 cpl_parameterlist* list);
879 cpl_parameterlist* list);
882void xsh_parameters_subtract_nod_create(
const char* recipe_id,
883 cpl_parameterlist* list,
888 cpl_parameterlist* list,
891 cpl_parameterlist* list ) ;
894 cpl_parameterlist* list ) ;
896 cpl_parameterlist* list) ;
static xsh_instrument * instrument
enum bary_corr_method corr_method
enum combine_method method
xsh_find_center_method find_center_method
double slitlet_low_factor
xsh_clipping_param * tilt_clipping
xsh_clipping_param * specres_clipping
double slitlow_edges_mask
enum localize_method method
const char * stack_method
enum bspline_sampling bspline_sampling
void xsh_parameters_prescan_create(const char *recipe_id, cpl_parameterlist *list, xsh_prescan_param p)
int xsh_parameters_time_stamp_get(const char *recipe_id, const cpl_parameterlist *list)
int xsh_parameters_rectify_fast_get(const char *recipe_id, cpl_parameterlist *list)
double xsh_parameters_wavecal_s_n_get(const char *recipe_id, cpl_parameterlist *list)
cpl_parameter * xsh_parameters_find(cpl_parameterlist *list, const char *recipe_id, const char *name)
find a parameter
xsh_detect_continuum_param * xsh_parameters_detect_continuum_get(const char *recipe_id, cpl_parameterlist *list)
Get the detect continuum parameters in a parameters list.
int xsh_parameters_get_temporary(const char *recipe_id, const cpl_parameterlist *list)
void xsh_parameters_ron_create(const char *recipe_id, cpl_parameterlist *list, xsh_ron_param p)
create the RON determination parameters in a parameters list
void xsh_parameters_subtract_sky_single_create(const char *recipe_id, cpl_parameterlist *plist, xsh_subtract_sky_single_param p)
double xsh_parameters_subtract_sky_single_get_kappa(const char *recipe_id, cpl_parameterlist *list)
void xsh_parameters_geom_ifu_mode_create(const char *recipe_id, cpl_parameterlist *list)
void xsh_parameters_pre_overscan(const char *recipe_id, cpl_parameterlist *plist)
int xsh_parameters_subtract_sky_single_get_true(const char *recipe_id, cpl_parameterlist *list)
void xsh_parameters_new_boolean(cpl_parameterlist *list, const char *recipe_id, const char *name, int value, const char *comment)
void xsh_parameters_wavecal_s_n_create(const char *recipe_id, cpl_parameterlist *list)
void xsh_parameters_clipping_detect_arclines_create(const char *recipe_id, cpl_parameterlist *list, xsh_clipping_param p)
Create the arclines clipping parameters in a parameters list.
void xsh_parameters_stack_create(const char *recipe_id, cpl_parameterlist *list, xsh_stack_param sp)
create the RON determination parameters in a parameters list
int xsh_parameters_get_boolean(const cpl_parameterlist *list, const char *recipe_id, const char *name)
void xsh_parameters_clipping_tilt_create(const char *recipe_id, cpl_parameterlist *list)
create the xsh_wavecal (function follow_arclines) clipping parameters in a parameters list
xsh_stack_param * xsh_stack_frames_get(const char *recipe_id, cpl_parameterlist *list)
get the detect arclines parameters in a parameters list
void xsh_parameters_clipping_noise_create(const char *recipe_id, cpl_parameterlist *list, xsh_clipping_param noise_clip_param)
create the crh noise clipping parameters in a parameters list
double xsh_parameters_get_double(const cpl_parameterlist *list, const char *recipe_id, const char *name)
cpl_error_code xsh_parameters_decode_bp(const char *recipe_id, cpl_parameterlist *plist, const int ival)
xsh_slit_limit_param * xsh_parameters_slit_limit_get(const char *recipe_id, cpl_parameterlist *list)
int xsh_parameters_geom_ifu_mode_get(const char *recipe_id, cpl_parameterlist *list)
void xsh_parameters_combine_nod_create(const char *recipe_id, cpl_parameterlist *list, xsh_combine_nod_param p)
create the crh clipping parameters in a parameters list
void xsh_parameters_hot_cold_pix_create(const char *recipe_id, cpl_parameterlist *list, xsh_hot_cold_pix_param p)
create the crh clipping parameters in a parameters list
xsh_localize_obj_param * xsh_parameters_localize_obj_get(const char *recipe_id, cpl_parameterlist *list)
xsh_clipping_param * xsh_parameters_clipping_tilt_get(const char *recipe_id, cpl_parameterlist *list)
get the xsh_wavecal (follow_arclines) clipping parameters in a parameters list
void xsh_parameters_wavecal_range_create(const char *recipe_id, cpl_parameterlist *list)
void xsh_parameters_new_double(cpl_parameterlist *list, const char *recipe_id, const char *name, double value, const char *comment)
int xsh_parameters_subtract_sky_single_get_second(const char *recipe_id, cpl_parameterlist *list)
void xsh_parameters_localize_obj_create(const char *recipe_id, cpl_parameterlist *plist, xsh_localize_obj_param p)
void xsh_parameters_localize_ifu_create(const char *recipe_id, cpl_parameterlist *plist, xsh_localize_ifu_param p)
void xsh_parameters_overscan_create(const char *recipe_id, cpl_parameterlist *list, xsh_overscan_param p)
void xsh_parameters_clipping_crh_create(const char *recipe_id, cpl_parameterlist *list, xsh_clipping_param p)
create the crh clipping parameters in a parameters list
xsh_extract_param * xsh_parameters_extract_get(const char *recipe_id, cpl_parameterlist *list)
xsh_clipping_param * xsh_parameters_clipping_specres_get(const char *recipe_id, cpl_parameterlist *list)
get the xsh_wavecal (follow_arclines) clipping parameters in a parameters list
void xsh_parameters_merge_ord_create(const char *recipe_id, cpl_parameterlist *plist, int p)
void xsh_parameters_slit_limit_create(const char *recipe_id, cpl_parameterlist *list, xsh_slit_limit_param p)
void xsh_parameters_opt_extract_create(const char *recipe_id, cpl_parameterlist *list, xsh_opt_extract_param opt_extract_par)
Create the optimal extraction parameters in a parameters list.
xsh_detect_arclines_param * xsh_parameters_detect_arclines_get(const char *recipe_id, cpl_parameterlist *list)
get the detect arclines parameters in a parameters list
xsh_interpolate_bp_param * xsh_parameters_interpolate_bp_get(const char *recipe_id, cpl_parameterlist *list)
void xsh_parameters_d2_detect_order_create(const char *recipe_id, cpl_parameterlist *list)
Create the d2 detect order parameters in a parameters list.
double xsh_parameters_optimal_extract_get_kappa(const char *recipe_id, cpl_parameterlist *list)
void xsh_parameters_rectify_create(const char *recipe_id, cpl_parameterlist *plist, xsh_rectify_param p)
void xsh_parameters_ref2_create(const char *recipe_id, cpl_parameterlist *list, xsh_ref_param p)
create the reference region definition parameters in a parameters list
void xsh_parameters_background_create(const char *recipe_id, cpl_parameterlist *list)
create the subtract background parameters in a parameters list
void xsh_parameters_fpn_create(const char *recipe_id, cpl_parameterlist *list, xsh_fpn_param p)
create the FPN parameters in a parameters list
xsh_clipping_param * xsh_parameters_clipping_dcn_get(const char *recipe_id, cpl_parameterlist *list)
Get the detectcontinuum clipping parameters in a parameters list.
void xsh_parameters_dispersol_create(const char *recipe_id, cpl_parameterlist *list, xsh_dispersol_param p)
Create the dispersol compute parameters in a parameters list.
xsh_opt_extract_param * xsh_parameters_opt_extract_get(const char *recipe_id, cpl_parameterlist *list)
Get the optimal extraction parameters in a parameters list.
void xsh_parameters_interpolate_bp_create(const char *recipe_id, cpl_parameterlist *plist, xsh_interpolate_bp_param p)
void xsh_parameters_extract_create(const char *recipe_id, cpl_parameterlist *plist, xsh_extract_param p, enum extract_method method)
void xsh_parameters_ron_dark_create(const char *recipe_id, cpl_parameterlist *list, xsh_ron_dark_param p)
create the RON determination parameters in a parameters list
int xsh_parameters_debug_level_get(const char *recipe_id, const cpl_parameterlist *list)
cpl_error_code xsh_parameters_decode_bp_set(const char *recipe_id, cpl_parameterlist *plist, const int ival)
void xsh_parameters_ref1_create(const char *recipe_id, cpl_parameterlist *list, xsh_ref_param p)
create the reference region definition parameters in a parameters list
xsh_bary_corr_param * xsh_parameters_bary_corr_get(const char *recipe_id, cpl_parameterlist *list)
get the barycentric correction parameters in a parameters list
xsh_rectify_param * xsh_parameters_rectify_get(const char *recipe_id, cpl_parameterlist *list)
void xsh_parameters_bary_corr_create(const char *recipe_id, cpl_parameterlist *list, xsh_bary_corr_param p)
create the barycentric correction parameters in a parameters list
void xsh_parameters_pd_noise_create(const char *recipe_id, cpl_parameterlist *list, xsh_pd_noise_param p)
create the FPN parameters in a parameters list
char * xsh_parameters_test_mode_get(const char *recipe_id, const cpl_parameterlist *list)
xsh_clipping_param * xsh_parameters_clipping_detect_arclines_get(const char *recipe_id, cpl_parameterlist *list)
Get the arclines clipping parameters in a parameters list.
cpl_error_code xsh_recipe_params_drs_check(cpl_parameterlist *parameters, xsh_instrument *instrument, const char *rec_id)
void xsh_parameters_remove_crh_single_create(const char *recipe_id, cpl_parameterlist *plist, xsh_remove_crh_single_param p)
int xsh_parameters_subtract_sky_single_get_niter(const char *recipe_id, cpl_parameterlist *list)
int xsh_parameters_wavecal_range_get(const char *recipe_id, cpl_parameterlist *list)
int xsh_parameters_wavecal_margin_get(const char *recipe_id, cpl_parameterlist *list)
void xsh_parameters_clipping_specres_create(const char *recipe_id, cpl_parameterlist *list)
create the xsh_wavecal (function follow_arclines) clipping parameters in a parameters list
int xsh_parameters_cut_uvb_spectrum_get(const char *recipe_id, const cpl_parameterlist *list)
xsh_remove_crh_single_param * xsh_parameters_remove_crh_single_get(const char *recipe_id, cpl_parameterlist *list)
int xsh_parameters_get_int(const cpl_parameterlist *list, const char *recipe_id, const char *name)
xsh_localize_ifu_param * xsh_parameters_localize_ifu_get(const char *recipe_id, cpl_parameterlist *list)
void xsh_parameters_struct_create(const char *recipe_id, cpl_parameterlist *list, xsh_struct_param p)
create the structX/Y region definition parameters in a parameters list
xsh_clipping_param * xsh_parameters_clipping_noise_get(const char *recipe_id, cpl_parameterlist *list)
get the noise clipping parameters in a parameters list
void xsh_parameters_detect_continuum_create(const char *recipe_id, cpl_parameterlist *list, xsh_detect_continuum_param par)
create the detect continuum parameter "window" in a parameters list
xsh_combine_nod_param * xsh_parameters_combine_nod_get(const char *recipe_id, cpl_parameterlist *list)
get the combine nod parameters in a parameters list
xsh_clipping_param * xsh_parameters_clipping_crh_get(const char *recipe_id, cpl_parameterlist *list)
get the crh clipping parameters in a parameters list
xsh_subtract_sky_single_param * xsh_parameters_subtract_sky_single_get(const char *recipe_id, cpl_parameterlist *list)
void xsh_parameters_optimal_extract_create(const char *recipe_id, cpl_parameterlist *plist, int p)
cpl_parameterlist * xsh_parameters_create_from_drs_table(const cpl_table *tab)
void xsh_parameters_generic(const char *recipe_id, cpl_parameterlist *plist)
void xsh_parameters_detect_arclines_create(const char *recipe_id, cpl_parameterlist *list, xsh_detect_arclines_param p)
create the detect arclines parameters in a parameters list
cpl_error_code xsh_recipe_params_check(cpl_parameterlist *parameters, xsh_instrument *instrument, const char *rec_id)
int xsh_parameters_subtract_sky_single_get_first(const char *recipe_id, cpl_parameterlist *list)
int xsh_parameters_use_model_get(const char *recipe_id, const cpl_parameterlist *list)
void xsh_parameters_new_string(cpl_parameterlist *list, const char *recipe_id, const char *name, const char *value, const char *comment)
void xsh_parameters_new_int(cpl_parameterlist *list, const char *recipe_id, const char *name, int value, const char *comment)
xsh_detect_order_param * xsh_parameters_detect_order_get(const char *recipe_id, cpl_parameterlist *list, cpl_parameterlist *drs)
Get the detect orders parameters in a parameters list.
void xsh_parameters_use_model_create(const char *recipe_id, cpl_parameterlist *list)
void xsh_parameters_dosky_domap_get(const char *recipe_id, cpl_parameterlist *list, cpl_frame *wavemap_frame, cpl_frame *slitmap_frame, int *dosky, int *domap)
xsh_d2_detect_order_param * xsh_parameters_d2_detect_order_get(const char *recipe_id, cpl_parameterlist *list)
Get the d2 detect orders parameters in a parameters list.
xsh_compute_response_param * xsh_parameters_compute_response_get(const char *recipe_id, cpl_parameterlist *list)
xsh_merge_param * xsh_parameters_merge_ord_get(const char *recipe_id, cpl_parameterlist *list)
XSH_ARM xsh_parameters_get_arm(const char *recipe_id, const cpl_parameterlist *list)
xsh_dispersol_param * xsh_parameters_dispersol_get(const char *recipe_id, cpl_parameterlist *list)
Get the dispersion solution compute parameters in a parameters list.
void xsh_parameters_compute_response_create(const char *recipe_id, cpl_parameterlist *plist, xsh_compute_response_param p)
void xsh_parameters_detect_order_create(const char *recipe_id, cpl_parameterlist *list)
Create the detect order parameters in a parameters list.
xsh_background_param * xsh_parameters_background_get(const char *recipe_id, cpl_parameterlist *list)
get the background parameters in a parameters list
void xsh_parameters_clipping_dcn_create(const char *recipe_id, cpl_parameterlist *list)
create the DetectContiNuum clipping parameters in a parameters list
void xsh_parameters_wavecal_margin_create(const char *recipe_id, cpl_parameterlist *list)
char * xsh_parameters_get_string(const cpl_parameterlist *list, const char *recipe_id, const char *name)