28#ifndef XSH_BADPIXELMAP_H
29#define XSH_BADPIXELMAP_H
50#define QFLAG_GOOD_PIXEL 0
51#define QFLAG_TELLURIC_CORRECTED 1
52#define QFLAG_TELLURIC_UNCORRECTED 0x2
53#define QFLAG_GHOST_STRAY_LIGHT 0x4
54#define QFLAG_ELECTRONIC_PICKUP 0x8
55#define QFLAG_COSMIC_RAY_REMOVED 0x10
58#define XSH_GOOD_PIXEL_LEVEL QFLAG_COSMIC_RAY_REMOVED
59#define XSH_BAD_PIXEL XSH_GOOD_PIXEL_LEVEL+1
63#define QFLAG_COSMIC_RAY_UNREMOVED 0x20
64#define QFLAG_LOW_QE_PIXEL 0x40
65#define QFLAG_CALIB_FILE_DEFECT 0x80
66#define QFLAG_HOT_PIXEL 0x100
67#define QFLAG_DARK_PIXEL 0x200
68#define QFLAG_QUESTIONABLE_PIXEL 0x400
69#define QFLAG_WELL_SATURATION 0x800
70#define QFLAG_ADC_SATURATION 0x1000
71#define QFLAG_CAMERA_DEFECT 0x2000
72#define QFLAG_OTHER_BAD_PIXEL 0x4000
74#define QFLAG_NON_LINEAR_PIXEL 0x8000
75#define QFLAG_NON_SPATIAL_UNIFORMITY 0x10000
76#define QFLAG_DIVISOR_ZERO 0x20000
77#define QFLAG_OUT_OF_NOD 0x40000
80#define QFLAG_MISSING_DATA 0x80000
81#define QFLAG_SATURATED_DATA 0x100000
82#define QFLAG_NEGATIVE_DATA 0x200000
83#define QFLAG_INTERPOL_FLUX 0x400000
84#define QFLAG_SKY_MODEL_BAD_FIT 0x800000
85#define QFLAG_SKY_MODEL_BAD_PIX 0x1000000
86#define QFLAG_ALL_PIX_BAD 0x2000000
87#define QFLAG_INCOMPLETE_DATA 0x4000000
88#define QFLAG_INCOMPLETE_NOD 0x8000000
89#define QFLAG_SCALED_NOD 0x10000000
90#define QFLAG_OUTSIDE_DATA_RANGE 0x40000000
111 const cpl_mask * input_mask,
122 cpl_image *bpmap,
const int decode_bp ) ;
142 const int cold_niter,
143 const double ks_high,
145 cpl_frame** cpix_frm,
146 cpl_frame** hpix_frm);
170 const double cor_val,
const int flag,
const int is_flat,
int* nsat);
179 const double thresh_min,
180 const double thresh_max,
181 const double cor_val,
static xsh_instrument * instrument
cpl_error_code xsh_count_crh(xsh_pre *pre, xsh_instrument *instr, const int datancom)
cpl_mask * xsh_qual_to_cpl_mask(cpl_image *qual, const int decode_bp)
void xsh_badpixelmap_or(xsh_pre *self, const xsh_pre *right)
cpl_mask * xsh_code_is_in_qual(cpl_image *qual, const int code)
cpl_error_code xsh_frame_qual_update(cpl_frame *frame, const cpl_frame *bpmap, xsh_instrument *instrument)
cpl_error_code xsh_image_clean_mask_pixs(cpl_image **ima, cpl_image *msk, const int r)
cpl_error_code xsh_image_get_hot_cold_pixs(cpl_frame *frame_image, xsh_instrument *instrument, const double ks_low, const int cold_niter, const double ks_high, const int hot_niter, cpl_frame **cpix_frm, cpl_frame **hpix_frm)
cpl_image * xsh_image_flag_bptype_with_crox(cpl_image *ima)
cpl_image * xsh_bpmap_collapse_bpmap_create(cpl_imagelist *list, const int decode_bp)
cpl_error_code xsh_badpixelmap_flag_saturated_pixels(xsh_pre *pre, xsh_instrument *instr, const double cor_val, const int flag, const int is_flat, int *nsat)
cpl_mask * xsh_bpm_filter(const cpl_mask *input_mask, cpl_size kernel_nx, cpl_size kernel_ny, cpl_filter_mode filter)
Allows the growing and shrinking of bad pixel masks. It can be used to e.g. set pixels to bad if the ...
void xsh_image_flag_bp(cpl_image *image, cpl_image *mask, xsh_instrument *inst)
void xsh_bpmap_collapse_mean(cpl_image *mean, cpl_imagelist *list, cpl_mask *mask)
void xsh_bpmap_collapse_median(cpl_image *median, cpl_imagelist *list, cpl_mask *mask)
void xsh_bpmap_bitwise_to_flag(cpl_image *bpmap, int flag)
int xsh_bpmap_count(cpl_image *bpmap, int nx, int ny)
cpl_error_code xsh_badpixelmap_image_coadd(cpl_image **self, const cpl_image *right, const int mode)
void xsh_bpmap_set_bad_pixel(cpl_image *bpmap, int ix, int iy, int flag)
cpl_frame * xsh_image_local_cold_pixs(cpl_image *ima, const double kappa, const int r, xsh_instrument *instr)
cpl_frame * xsh_badpixelmap_crea_master_from_bpmap(cpl_frame *bpmap, xsh_instrument *inst)
cpl_error_code xsh_badpixelmap_count_range_pixels(xsh_pre *pre, const double thresh_min, const double thresh_max, const double cor_val, int *nrange, double *frange)
cpl_error_code xsh_badpixelmap_coadd(cpl_frame *self, const cpl_frame *right, const int mode)
cpl_error_code xsh_count_satpix(xsh_pre *pre, xsh_instrument *instr, const int datancom)
void xsh_bpmap_mask_bad_pixel(cpl_image *bpmap, cpl_mask *mask, int flag)
void xsh_set_image_cpl_bpmap(cpl_image *image, cpl_image *bpmap, const int decode_bp)
cpl_frame * xsh_image_local_hot_pixs(cpl_image *ima, const double kappa, const int r, xsh_instrument *instr)
cpl_frame * xsh_badpixelmap_extract(cpl_frame *frame, int xmin, int ymin, int xmax, int ymax)
This function create a sub bad pixel map frame from input bad pixel map frame. the sub frame is descr...
cpl_error_code xsh_badpixelmap_fill_bp_pattern_holes(cpl_frame *frm)
cpl_error_code xsh_badpixel_flag_rejected(cpl_image *qual, cpl_image *image)
double cpl_tools_get_median_double(double *, int)
cpl_error_code xsh_image_clean_badpixel(cpl_frame *in)