Data Structures | |
struct | _fors_image |
Defines | |
#define | FORS_IMAGE_TYPE_MAX FLT_MAX |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | cleanup |
#define | LIST_DEFINE |
#define | LIST_ELEM fors_image |
Functions | |
static int | max_filter (const float *ibuffer, float *obuffer, int length, int size) |
fors_image * | fors_image_new (cpl_image *data, cpl_image *variance) |
Create image. | |
fors_image * | fors_image_duplicate (const fors_image *image) |
Copy constructor. | |
void | fors_image_delete (fors_image **image) |
Deallocate image and set pointer to NULL. | |
void | fors_image_delete_const (const fors_image **image) |
Deallocate image and set pointer to NULL. | |
fors_image_list * | fors_image_load_list (const cpl_frameset *frames, const fors_image *bias, const fors_setting *setting, double *saturated) |
Load imagelist. | |
const fors_image_list * | fors_image_load_list_const (const cpl_frameset *frames, const fors_image *bias, const fors_setting *setting, double *saturated) |
Load imagelist. | |
fors_image * | fors_image_load (const cpl_frame *frame, const fors_image *bias, const fors_setting *setting, double *saturated) |
Load image. | |
void | fors_image_save (const fors_image *image, const cpl_propertylist *header, const char *filename) |
Save image. | |
void | fors_image_save_sex (const fors_image *image, const cpl_propertylist *header, const char *filename_dat, const char *filename_var, int radius) |
Save image in format useable by SExtractor. | |
int | fors_image_get_size_x (const fors_image *image) |
Get image width. | |
int | fors_image_get_size_y (const fors_image *image) |
Get image height. | |
const float * | fors_image_get_data_const (const fors_image *image) |
Get pointer to data buffer. | |
void | fors_image_abs (fors_image *image) |
Absolute value. | |
void | fors_image_square (fors_image *image) |
Squared. | |
void | fors_image_subtract (fors_image *left, const fors_image *right) |
Subtract images. | |
void | fors_image_multiply_noerr (fors_image *left, const cpl_image *right) |
Multiply images. | |
void | fors_image_divide_noerr (fors_image *left, cpl_image *right) |
Divide images. | |
void | fors_image_divide (fors_image *left, const fors_image *right) |
Divide images. | |
void | fors_image_multiply (fors_image *left, const fors_image *right) |
Multiply images. | |
void | fors_image_subtract_scalar (fors_image *image, double s, double ds) |
Subtract scalar. | |
void | fors_image_divide_scalar (fors_image *image, double s, double ds) |
Divide by scalar. | |
void | fors_image_multiply_scalar (fors_image *image, double s, double ds) |
Multiply by scalar. | |
void | fors_image_exponential (fors_image *image, double b, double db) |
Exponential. | |
double | fors_image_get_min (const fors_image *image) |
Get min data value. | |
double | fors_image_get_max (const fors_image *image) |
Get max data value. | |
double | fors_image_get_mean (const fors_image *image, double *dmean) |
Get mean data value. | |
double | fors_image_get_median (const fors_image *image, double *dmedian) |
Get median data value. | |
void | fors_image_crop (fors_image *image, int xlo, int ylo, int xhi, int yhi) |
Crop image. | |
cpl_image * | fors_image_filter_median_create (const fors_image *image, int xradius, int yradius, int xstart, int ystart, int xend, int yend, int xstep, int ystep, bool use_data) |
Smooth image. | |
cpl_image * | fors_image_flat_fit_create (fors_image *image, int step, int degree, float level) |
cpl_image * | fors_image_filter_max_create (const fors_image *image, int xradius, int yradius, bool use_data) |
Max filter image. | |
double | fors_image_get_stdev (const fors_image *image, double *dstdev) |
Get empirical stdev of data. | |
double | fors_image_get_stdev_robust (const fors_image *image, double cut, double *dstdev) |
Get robust empirical stdev of data. | |
double | fors_image_get_error_mean (const fors_image *image, double *dmean) |
Get mean of error bars. | |
fors_image * | fors_image_collapse_create (const fors_image_list *images) |
Average collapse. | |
fors_image * | fors_image_collapse_minmax_create (const fors_image_list *images, int low, int high) |
Minmax collapse. | |
fors_image * | fors_image_collapse_ksigma_create (const fors_image_list *images, int low, int high, int iter) |
Ksigma collapse. | |
fors_image * | fors_image_collapse_median_create (const fors_image_list *images) |
Median collapse. | |
void | fors_image_draw (fors_image *image, int type, double x, double y, int radius, double color) |
Draw on image. | |
Variables | |
const cpl_type | FORS_IMAGE_TYPE = CPL_TYPE_FLOAT |
Image data type. |
For efficiency+convenience the error bars are internally represented as sigma^2 to avoid the repeated conversion between sigma <-> variance
#define cleanup |
Value:
do { \ double_list_delete(&sat_percent, double_delete); \ } while (0)
Definition at line 1890 of file fors_image.c.
#define cleanup |
Value:
do { \ cpl_propertylist_delete(header); \ cpl_table_delete(overscans); \ cpl_image_delete(temp); \ cpl_mask_delete(non_saturated); \ fors_setting_delete(&frame_setting); \ } while (0)
Definition at line 1890 of file fors_image.c.
#define cleanup |
#define cleanup |
Value:
do { \ cpl_image_delete(var_bkg); \ cpl_image_delete(sigma_bkg); \ } while(0)
Definition at line 1890 of file fors_image.c.
#define cleanup |
#define cleanup |
#define cleanup |
#define cleanup |
#define cleanup |
#define cleanup |
Value:
do { \ cpl_mask_delete(rejected); \ cpl_image_delete(im); \ } while (0)
Definition at line 1890 of file fors_image.c.
#define cleanup |
Value:
do { \ cpl_imagelist_delete(datlist); \ cpl_imagelist_delete(varlist); \ } while (0)
Definition at line 1890 of file fors_image.c.
#define cleanup |
Value:
do { \ cpl_imagelist_delete(datlist); \ cpl_imagelist_delete(varlist); \ } while (0)
Definition at line 1890 of file fors_image.c.
fors_image* fors_image_new | ( | cpl_image * | data, | |
cpl_image * | variance | |||
) |
Create image.
data | image data | |
variance | image data error bars on the form sigma^2 |
Definition at line 128 of file fors_image.c.
References assure, FORS_IMAGE_TYPE, and fors_type_get_string().
Referenced by create_bias(), create_dark(), create_screen_flat(), create_sky_flat(), extract_sex(), fors_image_collapse_create(), fors_image_collapse_ksigma_create(), fors_image_collapse_median_create(), fors_image_collapse_minmax_create(), fors_image_duplicate(), fors_image_load(), fors_photometry(), test_divide(), test_exponential(), test_image(), test_median_filter(), and test_subtract().
fors_image* fors_image_duplicate | ( | const fors_image * | image | ) |
Copy constructor.
image | to duplicate |
Definition at line 172 of file fors_image.c.
References assure, _fors_image::data, fors_image_new(), and _fors_image::variance.
Referenced by extract_sex(), fors_fixed_pattern_noise(), fors_fixed_pattern_noise_bias(), fors_image_divide(), fors_img_screen_flat(), and write_qc().
void fors_image_delete | ( | fors_image ** | image | ) |
Deallocate image and set pointer to NULL.
image | to delete |
Definition at line 185 of file fors_image.c.
Referenced by extract_sex(), fors_image_delete_const(), fors_img_science(), fors_zeropoint(), test_image(), test_median_filter(), test_stack(), and write_qc().
void fors_image_delete_const | ( | const fors_image ** | image | ) |
Deallocate image and set pointer to NULL.
image | to delete |
Definition at line 200 of file fors_image.c.
References fors_image_delete().
Referenced by fors_img_science(), and fors_zeropoint().
fors_image_list* fors_image_load_list | ( | const cpl_frameset * | frames, | |
const fors_image * | bias, | |||
const fors_setting * | setting, | |||
double * | saturated | |||
) |
Load imagelist.
frames | all provided frames are loaded | |
bias | master bias image, or NULL | |
setting | expected instrument setting | |
saturated | (output) if non-NULL, overall saturation percentage. Defined as > 65534.4 or < 0.5 |
See also fors_image_load().
Definition at line 257 of file fors_image.c.
References assure, cleanup, and fors_image_load().
Referenced by fors_image_load_list_const(), fors_img_sky_flat(), and test_stack().
const fors_image_list* fors_image_load_list_const | ( | const cpl_frameset * | frames, | |
const fors_image * | bias, | |||
const fors_setting * | setting, | |||
double * | saturated | |||
) |
Load imagelist.
frames | see fors_image_load_list() | |
bias | see fors_image_load_list() | |
setting | see fors_image_load_list() | |
saturated | see fors_image_load_list() |
Definition at line 313 of file fors_image.c.
References fors_image_load_list().
Referenced by fors_bias(), fors_dark(), and fors_img_screen_flat().
fors_image* fors_image_load | ( | const cpl_frame * | frame, | |
const fors_image * | bias, | |||
const fors_setting * | setting, | |||
double * | saturated | |||
) |
Load image.
frame | to load | |
bias | master bias image, or NULL | |
setting | expected instrument setting | |
saturated | (output) If non-NULL, percentage of saturated pixels in the raw frame (before bias subtraction), defined as > 65534.4 or < 0.5 |
This function currently does not do overscan area correction.
Definition at line 349 of file fors_image.c.
References assure, _fors_setting::average_gain, cleanup, conad, _fors_image::data, fors_frame_get_group_string(), fors_image_new(), fors_image_subtract(), fors_image_subtract_scalar(), FORS_IMAGE_TYPE, fors_setting_verify(), mos_load_overscans_fors(), and _fors_setting::ron.
Referenced by fors_dark(), fors_image_load_list(), fors_img_science(), fors_img_screen_flat(), fors_img_sky_flat(), fors_photometry(), fors_zeropoint(), test_bias(), test_dark(), test_image(), test_img_screen_flat(), and test_img_sky_flat().
void fors_image_save | ( | const fors_image * | image, | |
const cpl_propertylist * | header, | |||
const char * | filename | |||
) |
Save image.
image | to save | |
header | primary FITS header, or NULL | |
filename | filename |
Definition at line 584 of file fors_image.c.
References assure, cleanup, _fors_image::data, and _fors_image::variance.
Referenced by create_bias(), create_dark(), create_screen_flat(), create_sky_flat(), dfs_save(), test_image(), and test_stack().
void fors_image_save_sex | ( | const fors_image * | image, | |
const cpl_propertylist * | header, | |||
const char * | filename_dat, | |||
const char * | filename_var, | |||
int | radius | |||
) |
Save image in format useable by SExtractor.
image | to save | |
header | primary FITS header, or NULL | |
filename_dat | filename of data values | |
filename_var | filename of variances | |
radius | median filter radius used to determine background error map |
Definition at line 630 of file fors_image.c.
References assure, cleanup, _fors_image::data, fors_image_filter_median_create(), fors_image_get_size_x(), and fors_image_get_size_y().
Referenced by extract_sex().
int fors_image_get_size_x | ( | const fors_image * | image | ) |
Get image width.
image | image |
Definition at line 703 of file fors_image.c.
References assure, and _fors_image::data.
Referenced by extract_sex(), fors_fixed_pattern_noise(), fors_fixed_pattern_noise_bias(), fors_image_crop(), fors_image_save_sex(), fors_photometry(), remove_large_scale(), test_image(), and write_qc().
int fors_image_get_size_y | ( | const fors_image * | image | ) |
Get image height.
image | image |
Definition at line 716 of file fors_image.c.
References assure, and _fors_image::data.
Referenced by extract_sex(), fors_fixed_pattern_noise(), fors_fixed_pattern_noise_bias(), fors_image_crop(), fors_image_save_sex(), fors_photometry(), remove_large_scale(), test_image(), and write_qc().
const float* fors_image_get_data_const | ( | const fors_image * | image | ) |
Get pointer to data buffer.
image | image |
Definition at line 728 of file fors_image.c.
References assure, _fors_image::data, and FORS_IMAGE_TYPE.
Referenced by write_qc().
void fors_image_abs | ( | fors_image * | image | ) |
Absolute value.
image | image |
Definition at line 749 of file fors_image.c.
References assure, and _fors_image::data.
void fors_image_square | ( | fors_image * | image | ) |
Squared.
image | image |
Definition at line 768 of file fors_image.c.
References assure, _fors_image::data, and _fors_image::variance.
Referenced by write_qc().
void fors_image_subtract | ( | fors_image * | left, | |
const fors_image * | right | |||
) |
Subtract images.
left | image to be subtracted from | |
right | image to subtract |
Definition at line 797 of file fors_image.c.
References assure, cleanup, _fors_image::data, and _fors_image::variance.
Referenced by fors_fixed_pattern_noise(), fors_fixed_pattern_noise_bias(), fors_image_load(), test_subtract(), and write_qc().
void fors_image_multiply_noerr | ( | fors_image * | left, | |
const cpl_image * | right | |||
) |
Multiply images.
left | image to be change | |
right | factor |
data_i := data_i * factor_i sigma_i := sigma_i * factor_i
Definition at line 825 of file fors_image.c.
References assure, _fors_image::data, and _fors_image::variance.
void fors_image_divide_noerr | ( | fors_image * | left, | |
cpl_image * | right | |||
) |
Divide images.
left | image to be divided | |
right | divisor (modified! zero values are set to one) |
Data values and error bars change according to
data_i := data_i / divisor_i sigma_i := sigma_i / divisor_i for divisor_i != 0
data_i := 1 sigma_i := infinity for divisor_i == 0
Definition at line 863 of file fors_image.c.
References assure, _fors_image::data, FORS_IMAGE_TYPE_MAX, and _fors_image::variance.
Referenced by remove_large_scale(), and remove_large_scale_fit().
void fors_image_divide | ( | fors_image * | left, | |
const fors_image * | right | |||
) |
Divide images.
left | image to be divided | |
right | divisor |
data := data1 / data2 sigma^2 := sigma1^2 / data2^2 + sigma2^2 data1^2 / data2^4
left and right may point to the same image, note however that the error propagation formula assumes uncorrelated noise
Division by zero does is not an error but is handled by setting
data_i := 1 sigma_i := infinity
Definition at line 925 of file fors_image.c.
References assure, cleanup, _fors_image::data, fors_image_duplicate(), FORS_IMAGE_TYPE_MAX, and _fors_image::variance.
Referenced by fors_img_science(), fors_zeropoint(), test_divide(), and write_qc().
void fors_image_multiply | ( | fors_image * | left, | |
const fors_image * | right | |||
) |
Multiply images.
left | 1st factor (changed) | |
right | 2nd factor |
data1 := data1 * data2 sigma1^2 := sigma1^2 data2^2 + sigma2^2 data1^2
Definition at line 987 of file fors_image.c.
References assure, cleanup, _fors_image::data, and _fors_image::variance.
Referenced by fors_photometry().
void fors_image_subtract_scalar | ( | fors_image * | image, | |
double | s, | |||
double | ds | |||
) |
Subtract scalar.
image | to be divided | |
s | scalar | |
ds | error (one sigma) of s, a positive error bar is unsupported |
data_i := data_i - s sigma_i := sigma_i
Definition at line 1023 of file fors_image.c.
References assure, and _fors_image::data.
Referenced by fors_image_load(), and write_qc().
void fors_image_divide_scalar | ( | fors_image * | image, | |
double | s, | |||
double | ds | |||
) |
Divide by scalar.
image | to be divided | |
s | scalar | |
ds | error (one sigma) of s, a positive error bar is unsupported for now |
data_i := data_i / s sigma_i := sigma_i / s
Definition at line 1048 of file fors_image.c.
References assure, _fors_image::data, and _fors_image::variance.
Referenced by fors_img_science(), fors_img_sky_flat(), fors_photometry(), fors_zeropoint(), and write_qc().
void fors_image_multiply_scalar | ( | fors_image * | image, | |
double | s, | |||
double | ds | |||
) |
Multiply by scalar.
image | to be multiplied | |
s | scalar | |
ds | error (one sigma) of s, a positive error bar is unsupported for now |
data_i := data_i * s sigma_i := sigma_i * s
Definition at line 1074 of file fors_image.c.
References assure, _fors_image::data, and _fors_image::variance.
Referenced by fors_photometry(), and write_qc().
void fors_image_exponential | ( | fors_image * | image, | |
double | b, | |||
double | db | |||
) |
Exponential.
image | to be exponentiated | |
b | base | |
db | error (one sigma) of b, a positive error bar is unsupported |
data_i := b ^ data_i sigma_i := b ^ data_i ln(b) sigma_i
Definition at line 1103 of file fors_image.c.
References assure, _fors_image::data, and _fors_image::variance.
Referenced by fors_photometry(), and test_exponential().
double fors_image_get_min | ( | const fors_image * | image | ) |
Get min data value.
image | image |
Definition at line 1131 of file fors_image.c.
References assure, and _fors_image::data.
Referenced by fors_zeropoint(), and test_image().
double fors_image_get_max | ( | const fors_image * | image | ) |
Get max data value.
image | image |
Definition at line 1146 of file fors_image.c.
References assure, and _fors_image::data.
Referenced by test_image().
double fors_image_get_mean | ( | const fors_image * | image, | |
double * | dmean | |||
) |
Get mean data value.
image | image | |
dmean | (output) error of estimate |
Definition at line 1162 of file fors_image.c.
References assure, and _fors_image::data.
Referenced by test_bias(), test_dark(), test_divide(), test_exponential(), test_image(), test_img_screen_flat(), test_img_sky_flat(), test_stack(), test_subtract(), and write_qc().
double fors_image_get_median | ( | const fors_image * | image, | |
double * | dmedian | |||
) |
Get median data value.
image | image | |
dmedian | (output) error of estimate |
Definition at line 1179 of file fors_image.c.
References assure, and _fors_image::data.
Referenced by fors_image_get_stdev_robust(), fors_img_science(), fors_img_sky_flat(), fors_photometry(), fors_zeropoint(), remove_large_scale_fit(), test_bias(), test_img_screen_flat(), and write_qc().
void fors_image_crop | ( | fors_image * | image, | |
int | xlo, | |||
int | ylo, | |||
int | xhi, | |||
int | yhi | |||
) |
Crop image.
image | image | |
xlo | lower left x | |
ylo | lower left y | |
xhi | upper right x | |
yhi | upper right y |
Coordinates are inclusive, counting from 1
Definition at line 1204 of file fors_image.c.
References assure, _fors_image::data, fors_image_get_size_x(), fors_image_get_size_y(), and _fors_image::variance.
Referenced by extract_sex(), fors_fixed_pattern_noise(), fors_fixed_pattern_noise_bias(), test_image(), and write_qc().
cpl_image* fors_image_filter_median_create | ( | const fors_image * | image, | |
int | xradius, | |||
int | yradius, | |||
int | xstart, | |||
int | ystart, | |||
int | xend, | |||
int | yend, | |||
int | xstep, | |||
int | ystep, | |||
bool | use_data | |||
) |
Smooth image.
image | to filter | |
xradius | half x window size | |
yradius | half y window size | |
xstart | x start | |
ystart | y start | |
xend | x end | |
yend | y end | |
xstep | x-distance between kernel sampling positions The value 1 gives a normal median filter. The center of the kernel is always sampled, therefore edge locations are conserved Note: periodic structure on the scale xstep is *not* smoothed out | |
ystep | see xstep | |
use_data | if true, the data values are filtered, otherwise the variance map is filtered |
At the image border, the median is computed using the available (fewer) pixels
Definition at line 1261 of file fors_image.c.
References assure, _fors_image::data, FORS_IMAGE_TYPE, fors_tools_get_median_float(), and _fors_image::variance.
Referenced by fors_image_save_sex(), remove_large_scale(), and test_median_filter().
cpl_image* fors_image_filter_max_create | ( | const fors_image * | image, | |
int | xradius, | |||
int | yradius, | |||
bool | use_data | |||
) |
Max filter image.
image | to filter | |
xradius | half x window size | |
yradius | half y window size | |
use_data | if true, the data values are filtered, otherwise the variance map is filtered |
At the image border, the max value is computed repeating the last found at half window size from the edge.
Definition at line 1494 of file fors_image.c.
References assure, _fors_image::data, FORS_IMAGE_TYPE, max_filter(), and _fors_image::variance.
Referenced by extract_sex().
double fors_image_get_stdev | ( | const fors_image * | image, | |
double * | dstdev | |||
) |
Get empirical stdev of data.
image | image | |
dstdev | (output) error of estimate |
Definition at line 1569 of file fors_image.c.
References assure, and _fors_image::data.
Referenced by fors_fixed_pattern_noise(), test_bias(), test_image(), test_stack(), and write_qc().
double fors_image_get_stdev_robust | ( | const fors_image * | image, | |
double | cut, | |||
double * | dstdev | |||
) |
Get robust empirical stdev of data.
image | image | |
cut | pixels outside median +- cut are ignored | |
dstdev | (output) error of estimate |
Definition at line 1590 of file fors_image.c.
References assure, cleanup, _fors_image::data, and fors_image_get_median().
Referenced by fors_fixed_pattern_noise_bias(), and write_qc().
double fors_image_get_error_mean | ( | const fors_image * | image, | |
double * | dmean | |||
) |
Get mean of error bars.
image | image | |
dmean | (output) error of estimate |
(1/N * sum_i sigma_i^2)^(1/2)
Definition at line 1633 of file fors_image.c.
References assure, and _fors_image::variance.
Referenced by test_bias(), test_dark(), test_divide(), test_img_screen_flat(), test_img_sky_flat(), test_stack(), and test_subtract().
fors_image* fors_image_collapse_create | ( | const fors_image_list * | images | ) |
Average collapse.
images | list of images to collapse |
Definition at line 1665 of file fors_image.c.
References assure, cleanup, _fors_image::data, fors_image_new(), fors_imagelist_collapse_create(), and _fors_image::variance.
Referenced by fors_stack_const().
fors_image* fors_image_collapse_minmax_create | ( | const fors_image_list * | images, | |
int | low, | |||
int | high | |||
) |
Minmax collapse.
images | list of images to collapse | |
low | number of low rejected values | |
high | number of high rejected values |
Definition at line 1731 of file fors_image.c.
References assure, cleanup, _fors_image::data, fors_image_new(), and _fors_image::variance.
Referenced by fors_stack_const().
fors_image* fors_image_collapse_ksigma_create | ( | const fors_image_list * | images, | |
int | low, | |||
int | high, | |||
int | iter | |||
) |
Ksigma collapse.
images | list of images to collapse | |
low | lower number of sigmas | |
high | higher number of sigmas | |
iter | max number of iterations |
Definition at line 1787 of file fors_image.c.
References assure, cleanup, _fors_image::data, fors_image_new(), mos_ksigma_stack(), and _fors_image::variance.
Referenced by fors_stack_const().
fors_image* fors_image_collapse_median_create | ( | const fors_image_list * | images | ) |
Median collapse.
images | list of images to collapse |
where f(N) is given by fors_utils_median_corr()
Definition at line 1839 of file fors_image.c.
References assure, cleanup, _fors_image::data, fors_image_new(), fors_imagelist_collapse_create(), fors_imagelist_collapse_median_create(), fors_utils_median_corr(), and _fors_image::variance.
Referenced by fors_stack_const().
void fors_image_draw | ( | fors_image * | image, | |
int | type, | |||
double | x, | |||
double | y, | |||
int | radius, | |||
double | color | |||
) |
Draw on image.
image | to draw on | |
type | type of thing to draw | |
x | position | |
y | position | |
radius | size of thing to draw | |
color | pixel value used for drawing |
type 0: horizontal line type 1: vertical line type 2: circle
Definition at line 1908 of file fors_image.c.
References assure, _fors_image::data, and _fors_image::variance.
Referenced by fors_zeropoint().