X-shooter Pipeline Reference Manual 3.8.15
Macros | Functions | Variables
xsh_subtract_sky_single.c File Reference
#include <math.h>
#include <hdrl.h>
#include <cpl.h>
#include <gsl/gsl_bspline.h>
#include <gsl/gsl_linalg.h>
#include <gsl/gsl_rng.h>
#include <gsl/gsl_statistics_double.h>
#include <gsl/gsl_multifit.h>
#include <xsh_drl.h>
#include <xsh_drl_check.h>
#include <xsh_badpixelmap.h>
#include <xsh_data_pre.h>
#include <xsh_data_order.h>
#include <xsh_data_wavemap.h>
#include <xsh_data_localization.h>
#include <xsh_data_rec.h>
#include <xsh_dfs.h>
#include <xsh_pfits.h>
#include <xsh_error.h>
#include <xsh_utils.h>
#include <xsh_utils_image.h>
#include <xsh_utils_table.h>
#include <xsh_msg.h>
#include <xsh_fit.h>
#include <xsh_model_r250.h>
#include <xsh_efficiency_response.h>

Go to the source code of this file.

Macros

#define HAVE_INLINE   1
 
#define REGDEBUG_MEDIAN_SPLINE   0
 
#define REGDEBUG_BSPLINE   0
 

Functions

static xsh_wavemap_listxsh_wavemap_list_new (cpl_frame *wavemap_frame, cpl_frame *slitmap_frame, xsh_localization *list, cpl_frame *order_table_frame, xsh_pre *pre_sci, int nbkpts, cpl_frame *usr_def_sampl_points, cpl_frame *ref_sky_list, cpl_frame *sky_orders_chunks, xsh_subtract_sky_single_param *sky_par, xsh_instrument *instrument)
 
static xsh_rec_listxsh_wavemap_list_build_sky (xsh_wavemap_list *wave_list, xsh_instrument *instr)
 Build the sky spectrum list.
 
static int xsh_wave_compare (const void *un, const void *deux)
 
static cpl_frame * xsh_wavelist_subtract_sky (xsh_pre *pre_sci, xsh_rec_list *sky_list, xsh_wavemap_list *wave_list, xsh_instrument *instrument, const char *rec_prefix, xsh_subtract_sky_single_param *sky_par)
 subtract sky
 
static cpl_table * xsh_table_unique_wave (cpl_table *tab, const char *wname, const char *fname)
 
static cpl_table * xsh_model_to_table (const xsh_wavemap_list *wlist, const int order)
 determines sky outliers on a 1D spectrum via kappa-sigma clipping
 
static cpl_error_code xsh_table_column_smooth (cpl_table **tab, const char *name_i, const char *name_o, const int hsize)
 determines sky outliers on a 1D spectrum via kappa-sigma clipping
 
static cpl_error_code xsh_table_column_clip (cpl_table **tab, const char *name_d, const char *name_s, const double kappa, const int niter, const double gain, const double ron2, const int decode_bp)
 
static cpl_table * xsh_detect_raw_data_outliers_1d (const xsh_wavemap_list *wlist, const int hsize, const double ron2, const double gain, const int order, const int iter, const int decode_bp)
 determines sky outliers on a 1D spectrum via kappa-sigma clipping
 
static cpl_table * xsh_detect_raw_data_outliers_1d_slice (const xsh_wavemap_list *wlist, const int hsize, const double ron2, const double gain, const int order, const int iter, const int decode_bp, const double s1, const double s2, const int slice_id)
 determines sky outliers on a 1D spectrum via kappa-sigma clipping
 
static int xsh_get_edge_x_min (xsh_order_list *otab, const int iorder, const int iy)
 
static int xsh_get_edge_x_max (xsh_order_list *otab, const int iorder, const int iy)
 
static void xsh_dump_table_on_region_file (cpl_table *tab, const char *fname, const int symbol)
 
static cpl_table * xsh_create_sampl_table (const int iorder, double *wave_ref, const int nref, xsh_wavemap_list *wlist, const int nsampl_2, const char *prefix)
 
static cpl_table * xsh_create_sampl_uniform_continuum (const int iorder, xsh_wavemap_list *wlist, const int nsampl, const char *prefix)
 
static cpl_error_code xsh_wavemap_list_rms_sky_image_save (xsh_wavemap_list *smap, const double ron2, const double gain, xsh_instrument *instr, const int iter)
 
static double xsh_skycorr_rms (xsh_wavemap_list *wlist, const int iorder, const double ron2, const double gain)
 
static cpl_table * xsh_table_unique_column (cpl_table *tab_inp, const char *col_wav)
 
static cpl_table * xsh_skycorr_sample_continuum (xsh_wavemap_list *wlist, const int ord, const int n)
 
static cpl_table * xsh_skycorr_sampl_lines_from_static_tab (xsh_wavemap_list *wlist, const cpl_table *tab_ord, const int ord)
 
static cpl_table * xsh_model2tab (xsh_wavemap_list *wlist, int order)
 
static cpl_table * xsh_skycorr_wave_sampling_create (xsh_wavemap_list *wlist, const int ord, const int nbkpts_ord, const cpl_table *bkpts_tab)
 
static cpl_table * xsh_detect_outliers_thres_new (xsh_wavemap_list *wlist, const double kappa2, const double ron2, const double gain, const int order, const int iter, cpl_table **tab_line_res)
 
static cpl_error_code xsh_model_fill_fit (xsh_wavemap_list *wlist, const int order, cpl_table *stab, const float ron2, const float gain)
 
static cpl_error_code xsh_model_fill_obj (xsh_wavemap_list *wlist, const int order, const double s1, const double s2, cpl_table *stab, const float ron2, const float gain)
 
static cpl_error_code xsh_model_fill_fit_bfit (xsh_wavemap_list *wlist, const int order, cpl_table *stab, const float ron2, const float gain)
 
static cpl_error_code xsh_model_fill_fit_slice (xsh_wavemap_list *wlist, const int order, const double s1, const double s2, cpl_table *stab, const float ron2, const float gain)
 
static cpl_error_code xsh_model_fill_fit_slice_bfit (xsh_wavemap_list *wlist, const int order, const double s1, const double s2, cpl_table *stab, const float ron2, const float gain)
 
static void test_gsl_example (double *data_x, double *data_y, double *data_e, double *yfit, const int i_start, const size_t n, const size_t ncoeffs)
 
static void xsh_gsl_bspline_non_uniform (double *data_x, double *data_y, double *data_e, double *bkpts, double *yfit, const int i_start, const size_t n, const size_t ncoeffs)
 
cpl_error_code xsh_bspline_smooth_uniform_sl (cpl_table **tab, xsh_instrument *instrument, const double s1, const double s2)
 
cpl_error_code xsh_bspline_smooth_uniform (cpl_table **tab, xsh_instrument *instrument)
 
static cpl_error_code xsh_bspline_smooth_non_uniform2 (cpl_table *bkpts, cpl_frame *sky_orders_chunks, cpl_table **tab, const int iorder, xsh_instrument *instrument)
 
static cpl_table * xsh_fit_spline1 (xsh_wavemap_list *wlist, int order, cpl_table *sampl_tab, cpl_frame *sky_orders_chunks, int sampl_pts_no, int iter_no, xsh_subtract_sky_single_param *sky_par, float ron2, float gain, cpl_table **tab_line_res)
 This routine performs the B-SPLINE fit of a set of sky data non-uniformly sampled.
 
static cpl_table * xsh_fit_spline2 (xsh_wavemap_list *wlist, int order, cpl_table *sampl_tab, cpl_frame *sky_orders_chunks, int sampl_pts_no, int iter_no, xsh_subtract_sky_single_param *sky_par, float ron2, float gain, cpl_table **tab_line_res)
 This routine performs the B-SPLINE fit of a set of sky data non-uniformly sampled.
 
static cpl_error_code xsh_get_obj_and_sky_extraction_slits (xsh_subtract_sky_single_param *sky_par, xsh_localization *list, const double smap_min, const double smap_max, double *obj_slit_min, double *obj_slit_max, double *sky_slit_min, double *sky_slit_max)
 
static cpl_error_code xsh_get_sky_edges_min_max_and_size (xsh_subtract_sky_single_param *sky_par, const int miny, const int maxy, const int iorder, const int order, const int nx, const int wmap_xsize_diff, xsh_order_list *ord_tab, cpl_image *slitmap, double *sky_slit_min, double *sky_slit_max, int *max_size, int *max_size_x)
 
static cpl_error_code xsh_wavecal_list_pupulate (xsh_pre *pre_sci, const int iorder, const int miny, const int maxy, const int wmap_xsize_diff, const int decode_bp, const double obj_slit_min, const double obj_slit_max, const double sky_slit_min, const double sky_slit_max, const int order, xsh_wavemap_list *wave_list, int *sky_size, xsh_order_list *ord_tab, cpl_image *wavemap, cpl_image *slitmap)
 
static cpl_error_code xsh_skycor_def_nbkpts_ord (const int iorder, const int nbkpts, cpl_frame *break_pts_frame, xsh_instrument *inst, int bspline_sampling_method, int *nbkpts_ord)
 
cpl_error_code xsh_wavemap_list_full_sky_save (xsh_wavemap_list *wave_list, xsh_instrument *instr)
 
static void xsh_obj_fit_dump (int iorder, xsh_wavemap_list *wave_list)
 
static cpl_error_code xsh_subtract_sky_at_pix2 (const int all_size, const int sky_size, const int nx, wavemap_item *pall, wavemap_item *psky, float *pflux, float *pflat, float *perrs, int *pqual)
 
static cpl_error_code xsh_subtract_sky_at_pix (const int sky_size, const int nx, wavemap_item *psky, float *pflux, float *pflat, float *perrs, int *pqual)
 
static cpl_error_code xsh_subtract_sky_on_obj_at_pix (xsh_rec_list *sky_list, const int iorder, const int object_size, const int nx, wavemap_item **pobject, float *pflux, float *perrs, int *pqual)
 
cpl_frame * xsh_subtract_sky_single (cpl_frame *sci_frame, cpl_frame *order_table_frame, cpl_frame *slitmap_frame, cpl_frame *wavemap_frame, cpl_frame *loc_table_frame, cpl_frame *ref_sky_list, cpl_frame *ref_sky_orders_chunks, cpl_frame *usr_def_sampl_points, xsh_instrument *instrument, int nbkpts, xsh_subtract_sky_single_param *sky_par, cpl_frame **sky_spectrum, cpl_frame **sky_spectrum_eso, const char *rec_prefix, const int clean_tmp)
 Subtract the sky background for single frame. If sky_spectrum is NOT NULL it is saved as a product, of type REC.
 
cpl_frame * xsh_save_sky_model (cpl_frame *obj_frame, cpl_frame *sub_sky_frame, const char *sky_tag, xsh_instrument *instrument)
 
cpl_frame * xsh_add_sky_model (cpl_frame *subsky_frame, cpl_frame *sky_frame, xsh_instrument *instrument, const char *prefix)
 

Variables

double xsh_nbkpts_uvb [XSH_ORDERS_UVB]
 Create the wavemap list.
 
double xsh_nbkpts_vis [XSH_ORDERS_VIS]
 
double xsh_nbkpts_nir [XSH_ORDERS_NIR]