#include <assert.h>
#include <stdarg.h>
#include <time.h>
#include <math.h>
#include <fcntl.h>
#include <sys/stat.h>
#include "xsh_utils.h"
#include <xsh_utils_wrappers.h>
#include <xsh_dfs.h>
#include <xsh_data_pre.h>
#include <xsh_dump.h>
#include <xsh_error.h>
#include <xsh_msg.h>
#include <xsh_parameters.h>
#include <xsh_data_spectrum.h>
#include <xsh_pfits.h>
#include <xsh_pfits_qc.h>
#include <cpl.h>
#include <ctype.h>
#include <stdbool.h>
Go to the source code of this file.
Data Structures | |
struct | FRAME_DATE_IDX |
Defines | |
#define | MAXIMUM(x, y) ((x) > (y)) ? (x) : (y) |
#define | DEV_BLOCKSIZE 4096 |
#define | XSH_ATM_EXT_UVB_WAV_MIN 310. |
#define | CPL_TYPE float |
#define | CPL_TYPE_T CPL_TYPE_FLOAT |
#define | CPL_IMAGE_GET_DATA cpl_image_get_data_float |
#define | CPL_IMAGE_GET_DATA_CONST cpl_image_get_data_float_const |
#define | CPL_IMAGE_GET_MEDIAN cpl_tools_get_median_float |
#define | XSH_DOUBLE_SWAP(a, b) { register double t=(a);(a)=(b);(b)=t; } |
#define | XSH_FLOAT_SWAP(a, b) { register float t=(a);(a)=(b);(b)=t; } |
#define | XSH_INT_SWAP(a, b) { register int t=(a);(a)=(b);(b)=t; } |
#define | XSH_PIX_STACK_SIZE 50 |
Functions | |
cpl_image * | xsh_imagelist_collapse_sigclip_iter_create (const cpl_imagelist *imlist, double sigma_low, double sigma_upp, const int niter) |
Average with sigma-clipping rejection an imagelist to a single image. | |
static double | xsh_hms2deg (const double hms) |
Convert a double from hours minute seconds to deg:. | |
static double | xsh_sess2deg (const double sess) |
Convert a double from ssessagesimal to deg: 203049.197= 20:30:49.197 = 20.5136658333. | |
cpl_error_code | xsh_check_input_is_unbinned (cpl_frame *in) |
Check if an input frame is not binned. | |
int | xsh_fileutils_copy (const char *srcpath, const char *dstpath) |
int | xsh_fileutils_move (const char *srcpath, const char *dstpath) |
char * | xsh_set_recipe_file_prefix (cpl_frameset *raw, const char *recipe) |
Set recipe frames prefix. | |
cpl_error_code | xsh_set_cd_matrix (cpl_propertylist *plist) |
Set CD matrix. | |
cpl_error_code | xsh_set_cd_matrix1d (cpl_propertylist *plist) |
Set CD matrix. | |
cpl_error_code | xsh_set_cd_matrix2d (cpl_propertylist *plist) |
Set CD matrix. | |
cpl_error_code | xsh_set_cd_matrix3d (cpl_propertylist *plist) |
Set CD matrix. | |
cpl_parameterlist * | xsh_parameterlist_duplicate (const cpl_parameterlist *pin) |
Extract frames with given tag from frameset. | |
static void | xsh_property_dump (cpl_property *property) |
Dump property. | |
cpl_frame * | xsh_frameset_average (cpl_frameset *set, const char *tag) |
Dump propertylist. | |
cpl_frame * | xsh_frameset_add (cpl_frameset *set, xsh_instrument *instr) |
coadd frames in a frameset | |
void | xsh_plist_dump (cpl_propertylist *plist) |
Dump propertylist. | |
cpl_error_code | xsh_frameset_dump (cpl_frameset *set) |
Dump frameset. | |
cpl_error_code | xsh_frameset_dump_nod_info (cpl_frameset *set) |
Dump frameset nod info. | |
void | xsh_init (void) |
Reset library state. | |
char * | xsh_get_basename (const char *filename) |
Return base filename. | |
const char * | xsh_get_license (void) |
Get the pipeline copyright and license. | |
cpl_error_code | xsh_begin (cpl_frameset *frames, const cpl_parameterlist *parameters, xsh_instrument **instrument, cpl_frameset **raws, cpl_frameset **calib, const char *tag_list[], int tag_list_size, const char *recipe_id, unsigned int binary_version, const char *short_descr) |
Recipe initialization. | |
void | xsh_add_temporary_file (const char *name) |
Add temporary file to temprary files list. | |
void | xsh_free_temporary_files (void) |
Free temprary files list. | |
void | xsh_add_product_file (const char *name) |
Add temporary file to temprary files list. | |
void | xsh_free_product_files (void) |
Free temprary files list. | |
cpl_error_code | xsh_end (const char *recipe_id, cpl_frameset *frames, cpl_parameterlist *parameters) |
Recipe termination. | |
cpl_error_code | xsh_get_property_value (const cpl_propertylist *plist, const char *keyword, cpl_type keywordtype, void *result) |
Read a property value from a property list. | |
char * | xsh_stringdup (const char *s) |
String duplication. | |
char * | xsh_sdate_utc (time_t *now) |
char * | xsh_stringcat (const char *s1, const char *s2) |
String concatenation. | |
char * | xsh_stringcat_3 (const char *s1, const char *s2, const char *s3) |
String concatenation. | |
char * | xsh_stringcat_4 (const char *s1, const char *s2, const char *s3, const char *s4) |
String concatenation. | |
char * | xsh_stringcat_5 (const char *s1, const char *s2, const char *s3, const char *s4, const char *s5) |
String concatenation. | |
char * | xsh_stringcat_6 (const char *s1, const char *s2, const char *s3, const char *s4, const char *s5, const char *s6) |
String concatenation. | |
char * | xsh_stringcat_any (const char *s,...) |
Concatenate an arbitrary number of strings. | |
int * | xsh_sort (void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *)) |
Sort an array and give is index table. | |
void | xsh_reindex (double *data, int *idx, int size) |
TO BE DESCRIBED. | |
void | xsh_reindex_float (float *data, int *idx, int size) |
TO BE DESCRIBED. | |
void | xsh_reindex_int (int *data, int *idx, int size) |
TO BE DESCRIBED. | |
void | xsh_free (const void *mem) |
Deallocate memory. | |
void | xsh_free_image (cpl_image **i) |
Deallocate an image and set the pointer to NULL. | |
void | xsh_free_table (cpl_table **t) |
Deallocate a table and set the pointer to NULL. | |
void | xsh_free_mask (cpl_mask **m) |
Deallocate an image mask and set the pointer to NULL. | |
void | xsh_free_imagelist (cpl_imagelist **i) |
Deallocate an image list and set the pointer to NULL. | |
void | xsh_free_propertylist (cpl_propertylist **p) |
Deallocate a property list and set the pointer to NULL. | |
void | xsh_free_polynomial (cpl_polynomial **p) |
Deallocate a polynomial and set the pointer to NULL. | |
void | xsh_free_matrix (cpl_matrix **m) |
Deallocate a matrix and set the pointer to NULL. | |
void | xsh_free_parameterlist (cpl_parameterlist **p) |
Deallocate a parameter list and set the pointer to NULL. | |
void | xsh_free_parameter (cpl_parameter **p) |
Deallocate a parameter and set the pointer to NULL. | |
void | xsh_free_frameset (cpl_frameset **f) |
Deallocate a frame set and set the pointer to NULL. | |
void | xsh_free_frame (cpl_frame **f) |
Deallocate a frame and set the pointer to NULL. | |
void | xsh_free_vector (cpl_vector **v) |
Deallocate a vector and set the pointer to NULL. | |
void | xsh_free_array (cpl_array **m) |
Deallocate an array and set the pointer to NULL. | |
void | xsh_free_stats (cpl_stats **s) |
Deallocate a stats object and set the pointer to NULL. | |
void | xsh_unwrap_image (cpl_image **i) |
Unwrap an image and set the pointer to NULL. | |
void | xsh_unwrap_vector (cpl_vector **v) |
Unwrap a vector and set the pointer to NULL. | |
void | xsh_unwrap_bivector_vectors (cpl_bivector **b) |
Unwrap a bi-vector and set the pointer to NULL. | |
void | xsh_show_time (const char *comment) |
show time | |
void | xsh_tools_get_statistics (double *tab, int size, double *median, double *mean, double *stdev) |
Compute median, stdev and mean for the tab. | |
cpl_error_code | xsh_tools_sort_double (double *pix_arr, int n) |
Sort a double array. | |
cpl_error_code | xsh_tools_sort_float (float *pix_arr, int n) |
Sort a float array. | |
cpl_error_code | xsh_tools_sort_int (int *pix_arr, int n) |
Sort an integer array. | |
double | xsh_tools_get_median_double (double *array, int size) |
Calculates the median value of an array of double. | |
int | xsh_tools_running_median_1d_get_max (double *tab, int size, int wsize) |
get max of a list of doubles after running median | |
void | xsh_tools_min_max (int size, double *tab, double *min, double *max) |
computes min & max in ab array | |
cpl_vector * | xsh_tools_tchebitchev_poly_eval (int n, double X) |
Compute tchebitchev Tn(X) first coefficient for tchebitchev polynomial. | |
void | xsh_tools_tchebitchev_transform_tab (int size, double *pos, double min, double max, double *tcheb_pos) |
computes Tchebitchev transformation | |
double | xsh_tools_tchebitchev_transform (double pos, double min, double max) |
computes Tchebitchev transformation | |
double | xsh_tools_tchebitchev_reverse_transform (double pos, double min, double max) |
computes reverse Tchebitchev transformation | |
void | xsh_image_fit_spline (cpl_image *img, xsh_grid *grid) |
perform spline fit | |
void | xsh_vector_fit_gaussian (cpl_vector *x, cpl_vector *y, XSH_GAUSSIAN_FIT *result) |
set debug level | |
int | xsh_debug_level_set (int level) |
set debug level | |
int | xsh_debug_level_get (void) |
get debug level | |
const char * | xsh_debug_level_tostring (void) |
set debug level | |
int | xsh_time_stamp_set (int ts) |
set timestamp | |
int | xsh_time_stamp_get (void) |
get timestamp | |
void | xsh_mem_dump (const char *prompt) |
double | convert_bin_to_data (double bin_data, int binning) |
double | convert_data_to_bin (double data, int binning) |
static double | date_to_double (const char *the_date) |
static int | compare_frame_date (const void *one, const void *two) |
cpl_frameset * | xsh_order_frameset_by_date (cpl_frameset *frameset) |
Order frameset by date. | |
polynomial * | xsh_polynomial_regression_2d (cpl_table *t, const char *X1, const char *X2, const char *Y, const char *sigmaY, int degree1, int degree2, const char *polynomial_fit, const char *residual_square, const char *variance_fit, double *mse, double *red_chisq, polynomial **variance, double kappa, double min_reject) |
Fit a 2d polynomial to three table columns. | |
int | xsh_select_table_rows (cpl_table *t, const char *column, cpl_table_select_operator operator, double value) |
Select table rows. | |
int | xsh_erase_table_rows (cpl_table *t, const char *column, cpl_table_select_operator operator, double value) |
Erase table rows. | |
cpl_frame * | xsh_frame_inv (cpl_frame *in, const char *filename, xsh_instrument *instr) |
Inverse the flux of a PRE frame. | |
cpl_frame * | xsh_frame_abs (cpl_frame *in, xsh_instrument *instr, cpl_frame **sign) |
Computes absolute value of a frame. | |
void | xsh_frame_image_save (cpl_frame *frm, const char *name_o) |
save an image frame | |
void | xsh_frame_table_save (cpl_frame *frame, const char *name_o) |
Save a table frame. | |
cpl_frame * | xsh_frame_mult (cpl_frame *in, xsh_instrument *instr, cpl_frame *sign) |
Computes product of two input frames. | |
cpl_error_code | xsh_monitor_flux (cpl_frame *frm_ima, const cpl_frame *frm_tab, xsh_instrument *instrument) |
Monitor Flux level along the orders traces given by an input table. | |
cpl_error_code | xsh_update_pheader_in_image_multi (cpl_frame *frame, const cpl_propertylist *pheader) |
Update FITS header. | |
double | xsh_vector_get_err_median (cpl_vector *vect) |
Computes median error on a data set. | |
double | xsh_vector_get_err_mean (cpl_vector *vect) |
Computes mean error on a data set. | |
long | xsh_round_double (double x) |
Computes round(x). | |
int | xsh_min_int (int x, int y) |
Minimum of two numbers. | |
int | xsh_max_int (int x, int y) |
Maximum of two numbers. | |
double | xsh_min_double (double x, double y) |
Minimum of two numbers. | |
double | xsh_max_double (double x, double y) |
Maximum of two numbers. | |
double | xsh_pow_int (double x, int y) |
Computes x^y. | |
const char * | xsh_string_tolower (char *s) |
Convert all uppercase characters in a string into lowercase characters. | |
const char * | xsh_string_toupper (char *s) |
Convert all lowercase characters in a string into uppercase characters. | |
double | xsh_spline_hermite (double xp, const double *x, const double *y, int n, int *istart) |
Spline interpolation based on Hermite polynomials. | |
double | xsh_spline_hermite_table (double xp, const cpl_table *t, const char *column_x, const char *column_y, int *istart) |
Spline interpolation based on Hermite polynomials. | |
xsh_image_to_vector() | |
cpl_vector * | xsh_image_to_vector (cpl_image *spectrum) |
cpl_image * | xsh_vector_to_image (const cpl_vector *vector, cpl_type type) |
Convert a vector to a 1d image. | |
cpl_frame * | xsh_util_multiply_by_response (cpl_frame *merged_sci, cpl_frame *response, const char *tag_o) |
Multiply input frame by response frame. | |
cpl_frame * | xsh_util_multiply_by_response_ord (cpl_frame *extracted_sci, cpl_frame *response, const char *tag_o) |
Multiply input frame by response frame. | |
static cpl_error_code | xsh_util_get_infsup (double *piw, double w, int i_start, int i_end, int *i_inf, int *i_sup) |
static double | xsh_spectrum_integrate (double *pif, double *piw, int i1_inf, int i1_sup, int i2_inf, int i2_sup, double wave, double wstep) |
cpl_frame * | xsh_spectrum_resample (cpl_frame *frame_inp, const double wstep, const double wmin, const double wmax, xsh_instrument *instr) |
resample a spectrum | |
cpl_frame * | xsh_util_frameset_collapse_mean (cpl_frameset *set, xsh_instrument *instrument) |
Compute mean frame from a list of (IMAGE) framesets. | |
cpl_error_code | xsh_normalize_spectrum_image_slice (const char *name_s, const char *tag_o, const int ext, const int binx, const double gain, const double exptime, const double airmass, const cpl_table *tbl_atm_ext) |
Normalize spectrum slice. | |
cpl_frame * | xsh_normalize_spectrum (const cpl_frame *obj_frame, const cpl_frame *atm_ext_frame, cpl_boolean correct_binning, xsh_instrument *instrument, const char *tag_o) |
Normalize a spectrum. | |
cpl_frame * | xsh_normalize_spectrum_ord (const cpl_frame *obj_frame, const cpl_frame *atm_ext_frame, cpl_boolean correct_binning, xsh_instrument *instrument, const char *tag_o) |
Normalize a spectrum. | |
cpl_image * | xsh_normalize_spectrum_image (const cpl_image *spectrum, const cpl_image *spectrum_error, const cpl_propertylist *spectrum_header, const int binx, const double gain, const double exptime, const double airmass, const int n_traces, const cpl_table *atm_extinction, cpl_image **scaled_error) |
Normalize a spectrum. | |
static double | xsh_iterpol_linear (double *data_x, double *data_y, int ndata, double x, int *i_inf, int *i_sup) |
cpl_frame * | xsh_spectrum_interpolate_linear (cpl_frame *table_frame, const double wstep, const double wmin, const double wmax) |
spectra interpolation | |
cpl_frame * | xsh_spectrum_interpolate (cpl_frame *table_frame, const double wstep, const double wmin, const double wmax) |
spectra interpolation | |
void | xsh_array_clip_mean (cpl_array *array, double kappa, int niter, double frac_min, double *mean, double *stdev) |
mean clip of an array | |
void | xsh_array_clip_median (cpl_array *array, double kappa, int niter, double frac_min, double *median, double *stdev) |
median clip of an array | |
void | xsh_array_clip_poly1d (cpl_vector *pos_vect, cpl_vector *val_vect, double kappa, int niter, double frac_min, int deg, cpl_polynomial **polyp, double *chisq, int **flagsp) |
clip outliers from a 1D poly fit | |
Variables | |
static int | XshDebugLevel = XSH_DEBUG_LEVEL_NONE |
static int | XshTimeStamp = FALSE |
static char ** | TempFiles = NULL |
static int | NbTemp = 0 |
static char ** | ProdFiles = NULL |
static int | NbProducts = 0 |
#define DEV_BLOCKSIZE 4096 |
Definition at line 72 of file xsh_utils.c.
Referenced by xsh_fileutils_copy().
Definition at line 69 of file xsh_utils.c.
Referenced by xsh_begin().
#define XSH_ATM_EXT_UVB_WAV_MIN 310. |
Definition at line 73 of file xsh_utils.c.
Referenced by xsh_spectrum_resample().
int XshDebugLevel = XSH_DEBUG_LEVEL_NONE [static] |
Definition at line 63 of file xsh_utils.c.
Referenced by xsh_debug_level_get(), xsh_debug_level_set(), and xsh_debug_level_tostring().
int XshTimeStamp = FALSE [static] |
Definition at line 64 of file xsh_utils.c.
Referenced by xsh_time_stamp_get(), and xsh_time_stamp_set().