42#define XSH_PRE_DATA_TYPE CPL_TYPE_FLOAT
43#define XSH_PRE_DATA_BPP CPL_BPP_IEEE_FLOAT
44#define XSH_PRE_ERRS_TYPE CPL_TYPE_FLOAT
45#define XSH_PRE_ERRS_BPP CPL_BPP_IEEE_FLOAT
46#define XSH_PRE_QUAL_TYPE CPL_TYPE_INT
47#define XSH_PRE_QUAL_BPP CPL_BPP_32_SIGNED
58#define XSH_NIR_DEFAULT_CUT 4
59#define XSH_NIR_DEFAULT_CUT_X 4
60#define XSH_NIR_DEFAULT_CUT_Y 20
62#define XSH_WINDOW_MEDIAN_FRAC 0.3333
110 xsh_instrument* instr,
const int pre_overscan_corr,
const bool flag_neg_and_thresh_pix);
117cpl_frame*
xsh_pre_save(
const xsh_pre *pre,
const char *filename,
const char *tag,
int temp);
119 cpl_frameset* frameset,
const cpl_parameterlist* parameters,
120 const char* recipe_id,
const char *prefix );
150 const int clean_temp ) ;
154 int search_window_hsize,
int running_median_hsize,
int* xadj,
int* yadj);
156 int size_x,
int size_y,
double* tab,
int* status);
160 double * median,
double * stdev ) ;
163 double * median,
double * stdev,
164 const int llx,
const int lly,
165 const int urx,
const int ury );
void xsh_pre_add(xsh_pre *self, const xsh_pre *right)
Add two PRE images.
cpl_image * xsh_pre_get_data(xsh_pre *pre)
Get data.
xsh_pre * xsh_pre_duplicate(const xsh_pre *pre)
Copy a PRE structure.
void xsh_pre_flip(xsh_pre *pre, int angle)
Flip an image on a given miror line.
void xsh_pre_from_raw_get(xsh_pre *pre, double raw_x, double raw_y, double *x, double *y)
Get x, y coordinates in image from RAW coordinates.
double * xsh_pre_get_data_buffer(xsh_pre *pre)
Get data buffer.
double * xsh_pre_get_errs_buffer(xsh_pre *pre)
Get errs buffer.
cpl_frame * xsh_pre_save_product(xsh_pre *pre, cpl_frame *frame, cpl_frameset *frameset, const cpl_parameterlist *parameters, const char *recipe_id, const char *prefix)
Save PRE frame like a product on disk.
xsh_pre * xsh_pre_load(cpl_frame *frame, xsh_instrument *instr)
Load a xsh_pre structure from a frame.
void xsh_pre_extract(xsh_pre *pre, int xmin, int ymin, int xmax, int ymax)
Create a sub pre image.
cpl_mask * xsh_pre_get_bpmap(const xsh_pre *pre)
Get bpmap of pre structure.
cpl_frame_group xsh_pre_get_group(const xsh_pre *pre)
Get ny of pre structure.
const double * xsh_pre_get_errs_buffer_const(const xsh_pre *pre)
Get errs buffer.
void xsh_pre_divide(xsh_pre *self, const xsh_pre *right, const int is_flat, double threshold)
Divide a PRE image from another.
void xsh_pre_multiply_image(const xsh_pre *pre, cpl_image *img)
multiply a frame in PRE format by an image
cpl_image * xsh_pre_get_qual(xsh_pre *pre)
Get qual.
void xsh_pre_divide_scalar(const xsh_pre *pre, double x)
divides a frame in PRE format by a scalar
int xsh_pre_get_ny(const xsh_pre *pre)
Get ny of pre structure.
int xsh_pre_window_best_median_flux_pos(xsh_pre *pre, int xcen, int ycen, int search_window_hsize, int running_median_hsize, int *xadj, int *yadj)
Search pixel position of best running median flux in the search window.
void xsh_pre_multiply_scalar(const xsh_pre *pre, double x)
multiply a frame in PRE format by a scalar
cpl_image * xsh_pre_abs(const xsh_pre *pre)
computes absolute value of a frame in PRE format
float xsh_pre_get_pszx(const xsh_pre *pre)
Get pszx of pre structure.
void xsh_pre_add_scalar(const xsh_pre *pre, double x)
add a scalar to a frame in PRE format
int xsh_pre_get_binx(const xsh_pre *pre)
Get binx of pre structure.
void xsh_pre_turn(xsh_pre *pre, int rot)
cpl_frame * xsh_pre_frame_subtract(cpl_frame *one, cpl_frame *two, const char *fname, xsh_instrument *instr, const int clean_temp)
Subtract 2 frames (in XSH_PRE format) Just loads the 2 frames, subtract (xsh_pre_subtract) and save r...
xsh_pre * xsh_pre_new(int size_x, int size_y)
Create new PRE image.
void xsh_pre_normalize(xsh_pre *self)
Normalize data flux.
void xsh_pre_multiply(xsh_pre *self, const xsh_pre *right, double threshold)
Multiply a PRE image from another.
void xsh_pre_free(xsh_pre **pre)
Free a xsh_pre structure.
const cpl_image * xsh_pre_get_data_const(const xsh_pre *pre)
Get data.
int xsh_pre_get_biny(const xsh_pre *pre)
Get biny of pre structure.
xsh_pre * xsh_pre_create(cpl_frame *raw, cpl_frame *bpmap, cpl_image *bias, xsh_instrument *instr, const int pre_overscan_corr, const bool flag_neg_and_thresh_pix)
Create a XSH_PRE from a raw frame.
int xsh_pre_get_nx(const xsh_pre *pre)
Get nx of pre structure.
float xsh_pre_get_pszy(const xsh_pre *pre)
Get pszy of pre structure.
double xsh_compute_ron_nir(const double dit)
cpl_frame * xsh_frameset_average_pre(cpl_frameset *set, xsh_instrument *instr, const char *tag)
Average set of frames in PRE format.
xsh_pre * xsh_pre_subsample(xsh_pre *self, const int binx, const int biny, const int rescale, xsh_instrument *inst)
Subsample a PRE image of a bin factor binx X biny.
cpl_frameset * xsh_pre_frameset_subtract_frame(cpl_frameset *set, cpl_frame *sub, const char *spec, xsh_instrument *instr)
Subtract 2 frames (in XSH_PRE format) Just loads the 2 frames, subtract (xsh_pre_subtract) and save r...
void xsh_pre_subtract_scalar(const xsh_pre *pre, double x)
subtract a scalar from a frame in PRE format
double xsh_pre_data_window_median_flux_pa(xsh_pre *pre, int x, int y, int size_x, int size_y, double *tab, int *status)
compute median sample value on the data window with preallocated memory tab. Only good pixels codes a...
cpl_propertylist * xsh_pre_get_header(xsh_pre *pre)
Get header.
const cpl_propertylist * xsh_pre_get_header_const(const xsh_pre *pre)
Get header.
const double * xsh_pre_get_data_buffer_const(const xsh_pre *pre)
Get data buffer.
void xsh_pre_subtract(xsh_pre *self, const xsh_pre *right)
Subtract one PRE image from another The data units are subtracted data = data1 - data2 The error imag...
float xsh_pre_get_gain(const xsh_pre *pre)
Get gain of pre structure.
const cpl_image * xsh_pre_get_qual_const(const xsh_pre *pre)
Get QUAL.
cpl_image * xsh_pre_get_errs(xsh_pre *pre)
Get errs.
cpl_frame * xsh_pre_save(const xsh_pre *pre, const char *filename, const char *tag, int temp)
Save PRE on disk.
void xsh_pre_median_mean_stdev_window(xsh_pre *preFrame, double *mean, double *median, double *stdev, const int llx, const int lly, const int urx, const int ury)
const cpl_image * xsh_pre_get_errs_const(const xsh_pre *pre)
Get errs.
void xsh_pre_dump(const xsh_pre *pre, FILE *stream)
Dump image to stream.
void xsh_pre_median_mean_stdev(xsh_pre *preFrame, double *mean, double *median, double *stdev)
cpl_propertylist * qual_header
cpl_propertylist * errs_header
xsh_instrument * instrument
cpl_propertylist * data_header
xsh_pre * xsh_pre_wavemap_create(cpl_frame *raw, xsh_pre *sci, xsh_instrument *instr)
void xsh_pre_init_with_header(xsh_pre *pre, cpl_propertylist *header)