FORS Pipeline Reference Manual
4.12.5
|
Data Structures | |
struct | _fors_image |
Functions | |
fors_image * | fors_image_new (cpl_image *data, cpl_image *weights) |
Create image. More... | |
fors_image * | fors_image_duplicate (const fors_image *image) |
Copy constructor. More... | |
void | fors_image_delete (fors_image **image) |
Deallocate image and set pointer to NULL. More... | |
void | fors_image_delete_const (const fors_image **image) |
Deallocate image and set pointer to NULL. More... | |
fors_image * | fors_image_load (const cpl_frame *frame) |
Load image. More... | |
fors_image_list * | fors_image_load_list (const cpl_frameset *frames) |
Load imagelist. More... | |
const fors_image_list * | fors_image_load_list_const (const cpl_frameset *frames) |
Load imagelist. More... | |
void | fors_image_save (const fors_image *image, const cpl_propertylist *header, const char *filename) |
Save image. More... | |
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. More... | |
cpl_size | fors_image_get_size_x (const fors_image *image) |
Get image width. More... | |
cpl_size | fors_image_get_size_y (const fors_image *image) |
Get image height. More... | |
const float * | fors_image_get_data_const (const fors_image *image) |
Get pointer to data buffer. More... | |
void | fors_image_draw (fors_image *image, int type, double x, double y, int radius, double color) |
Draw on image. More... | |
void | fors_image_crop (fors_image *image, int xlo, int ylo, int xhi, int yhi) |
Crop image. More... | |
void | fors_image_subtract (fors_image *left, const fors_image *right) |
Subtract images. More... | |
void | fors_image_multiply (fors_image *left, const fors_image *right) |
Multiply images. More... | |
void | fors_image_multiply_noerr (fors_image *left, const cpl_image *right) |
Multiply images. More... | |
void | fors_image_divide (fors_image *left, const fors_image *right) |
Divide images. More... | |
void | fors_image_divide_noerr (fors_image *left, cpl_image *right) |
Divide images. More... | |
void | fors_image_abs (fors_image *image) |
Absolute value. More... | |
void | fors_image_square (fors_image *image) |
Squared. More... | |
void | fors_image_exponential (fors_image *image, double b, double db) |
Exponential. More... | |
void | fors_image_multiply_scalar (fors_image *image, double s, double ds) |
Multiply by scalar. More... | |
void | fors_image_divide_scalar (fors_image *image, double s, double ds) |
Divide by scalar. More... | |
void | fors_image_subtract_scalar (fors_image *image, double s, double ds) |
Subtract scalar. More... | |
fors_image * | fors_image_collapse_create (const fors_image_list *images) |
Average collapse. More... | |
fors_image * | fors_image_collapse_median_create (const fors_image_list *images) |
Median collapse. More... | |
fors_image * | fors_image_collapse_minmax_create (const fors_image_list *images, int low, int high) |
Minmax collapse. More... | |
fors_image * | fors_image_collapse_ksigma_create (const fors_image_list *images, int low, int high, int iter) |
Ksigma collapse. More... | |
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. More... | |
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. More... | |
double | fors_image_get_mean (const fors_image *image, double *dmean) |
Get mean data value. More... | |
double | fors_image_get_median (const fors_image *image, double *dmedian) |
Get median data value. More... | |
double | fors_image_get_stdev (const fors_image *image, double *dstdev) |
Get empirical stdev of data. More... | |
double | fors_image_get_stdev_robust (const fors_image *image, double cut, double *dstdev) |
Get robust empirical stdev of data. More... | |
double | fors_image_get_error_mean (const fors_image *image, double *dmean) |
Get mean of error bars. More... | |
double | fors_image_get_min (const fors_image *image) |
Get min data value. More... | |
double | fors_image_get_max (const fors_image *image) |
Get max data value. More... | |
hdrl_imagelist * | fors_image_list_to_hdrl (const fors_image_list *imalist) |
fors_image * | fors_image_from_hdrl (const hdrl_image *image) |
Variables | |
cpl_image * | _fors_image::data |
cpl_image * | _fors_image::variance |
This object contains
For efficiency+convenience the error bars are internally represented as sigma^2 to avoid the repeated conversion between sigma <-> variance
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 |
Note: The ownership of the provided images is transferred to the new image object. The input images must therefore not be deallocated
Definition at line 102 of file fors_image.c.
References assure.
Referenced by create_bias(), create_dark(), create_master_bias(), create_master_sky_flat(), 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(), 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 149 of file fors_image.c.
References assure, and fors_image_new().
Referenced by extract_sex(), fors_fixed_pattern_noise(), fors_fixed_pattern_noise_bias(), and fors_image_divide().
void fors_image_delete | ( | fors_image ** | image | ) |
Deallocate image and set pointer to NULL.
image | to delete |
Definition at line 162 of file fors_image.c.
Referenced by extract_sex(), fors_image_delete_const(), test_image(), test_median_filter(), and test_stack().
void fors_image_delete_const | ( | const fors_image ** | image | ) |
Deallocate image and set pointer to NULL.
image | to delete |
Definition at line 177 of file fors_image.c.
References fors_image_delete().
fors_image* fors_image_load | ( | const cpl_frame * | frame | ) |
Load image.
frame | to load |
setting | expected instrument setting |
The image is loaded The provided bias image is subtracted and used to define the raw frame error bars. If NULL, the input frame is assumed to be a raw bias and the error bars are given by the read-out-noise as defined in the FITS header. If non-NULL, this bias image is subtracted and the residual flux is used to estimate the photonic noise.
This function currently does not do overscan area correction.
Definition at line 298 of file fors_image.c.
References assure, and fors_image_new().
Referenced by fors_image_load_list(), test_bias(), test_dark(), test_image(), test_img_screen_flat(), and test_img_sky_flat().
fors_image_list* fors_image_load_list | ( | const cpl_frameset * | frames | ) |
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 |
The frameset must contain a uniform set of frames.
See also fors_image_load().
Definition at line 234 of file fors_image.c.
References assure, and fors_image_load().
Referenced by fors_image_load_list_const(), and test_stack().
const fors_image_list* fors_image_load_list_const | ( | const cpl_frameset * | frames | ) |
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() |
This function is the same as fors_image_load_list(), but returns an array of const images.
Definition at line 271 of file fors_image.c.
References fors_image_load_list().
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 |
The image is saved to a FITS file in the format expected by fors_image_load()
Definition at line 383 of file fors_image.c.
References assure.
Referenced by create_bias(), create_dark(), create_master_bias(), create_master_sky_flat(), 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 |
The image is saved to two separate FITS files
Definition at line 432 of file fors_image.c.
References assure, fors_image_filter_median_create(), fors_image_get_size_x(), and fors_image_get_size_y().
Referenced by extract_sex().
cpl_size fors_image_get_size_x | ( | const fors_image * | image | ) |
Get image width.
image | image |
Definition at line 505 of file fors_image.c.
References assure.
Referenced by extract_sex(), fors_fixed_pattern_noise(), fors_fixed_pattern_noise_bias(), fors_image_crop(), fors_image_save_sex(), and test_image().
cpl_size fors_image_get_size_y | ( | const fors_image * | image | ) |
Get image height.
image | image |
Definition at line 518 of file fors_image.c.
References assure.
Referenced by extract_sex(), fors_fixed_pattern_noise(), fors_fixed_pattern_noise_bias(), fors_image_crop(), fors_image_save_sex(), and test_image().
const float* fors_image_get_data_const | ( | const fors_image * | image | ) |
Get pointer to data buffer.
image | image |
Definition at line 530 of file fors_image.c.
References assure.
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 |
This function might be used for debugging purposes.
type 0: horizontal line type 1: vertical line type 2: circle
Definition at line 1716 of file fors_image.c.
References assure.
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 |
This function does a locale image extraction, that is the parts outside the rectangular region (xlo, ylo) - (xhi, yhi) are removed.
Coordinates are inclusive, counting from 1
Definition at line 1012 of file fors_image.c.
References assure, fors_image_get_size_x(), and fors_image_get_size_y().
Referenced by extract_sex(), fors_fixed_pattern_noise(), fors_fixed_pattern_noise_bias(), and test_image().
void fors_image_subtract | ( | fors_image * | left, |
const fors_image * | right | ||
) |
Subtract images.
left | image to be subtracted from |
right | image to subtract |
New variance image is computed as sigma_left**2 + sigma_right**2
Definition at line 599 of file fors_image.c.
References assure.
Referenced by fors_fixed_pattern_noise(), fors_fixed_pattern_noise_bias(), and test_subtract().
void fors_image_multiply | ( | fors_image * | left, |
const fors_image * | right | ||
) |
Multiply images.
left | 1st factor (changed) |
right | 2nd factor |
Data values and error bars change according to
data1 := data1 * data2 sigma1^2 := sigma1^2 data2^2 + sigma2^2 data1^2
Definition at line 795 of file fors_image.c.
References assure.
void fors_image_multiply_noerr | ( | fors_image * | left, |
const cpl_image * | right | ||
) |
Multiply images.
left | image to be change |
right | factor |
Data values and error bars change according to
data_i := data_i * factor_i sigma_i := sigma_i * factor_i
Definition at line 627 of file fors_image.c.
References assure.
void fors_image_divide | ( | fors_image * | left, |
const fors_image * | right | ||
) |
Divide images.
left | image to be divided |
right | divisor |
Data values and error bars change according to
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 733 of file fors_image.c.
References assure, and fors_image_duplicate().
Referenced by test_divide().
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) |
This function does not propagate the divisor error bars
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 668 of file fors_image.c.
References assure.
void fors_image_abs | ( | fors_image * | image | ) |
Absolute value.
image | image |
Every pixel in the data image is set to its absolute value. The variance image is not touched
Definition at line 551 of file fors_image.c.
References assure.
void fors_image_square | ( | fors_image * | image | ) |
Squared.
image | image |
Every pixel in the data image is set to p_i := p_i^2
Definition at line 570 of file fors_image.c.
References assure.
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 |
If ds is negative, data values and error bars change according to
data_i := b ^ data_i sigma_i := b ^ data_i ln(b) sigma_i
Definition at line 911 of file fors_image.c.
References assure.
Referenced by test_exponential().
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 |
If ds is negative, data values and error bars change according to
data_i := data_i * s sigma_i := sigma_i * s
Definition at line 882 of file fors_image.c.
References assure.
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 |
If ds is negative, data values and error bars change according to
data_i := data_i / s sigma_i := sigma_i / s
Definition at line 856 of file fors_image.c.
References assure.
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 |
If ds is negative, data values and error bars change according to
data_i := data_i - s sigma_i := sigma_i
Definition at line 831 of file fors_image.c.
References assure.
fors_image* fors_image_collapse_create | ( | const fors_image_list * | images | ) |
Average collapse.
images | list of images to collapse |
Variance is computed as (sum_i var_i) / N*N
Definition at line 1473 of file fors_image.c.
References assure, fors_image_new(), and fors_imagelist_collapse_create().
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 |
Variance is computed as f(N)^2 (sum_i var_i) / N*N
where f(N) is given by fors_utils_median_corr()
Definition at line 1647 of file fors_image.c.
References assure, fors_image_new(), fors_imagelist_collapse_create(), fors_imagelist_collapse_median_create(), and fors_utils_median_corr().
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 |
Variance is computed as (sum_i var_i) / N*N
Definition at line 1539 of file fors_image.c.
References assure, and fors_image_new().
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 |
Variance is computed as (sum_i var_i) / N_i*N_i, where N_i is from the contribution map.
Definition at line 1595 of file fors_image.c.
References assure, fors_image_new(), and mos_ksigma_stack().
Referenced by fors_stack_const().
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 |
Window size is (2 * xradius + 1) * (2 * yradius + 1)
At the image border, the median is computed using the available (fewer) pixels
Definition at line 1069 of file fors_image.c.
References assure, and fors_tools_get_median_float().
Referenced by fors_image_save_sex(), 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 |
Window size is (2 * xradius + 1) * (2 * yradius + 1)
At the image border, the max value is computed repeating the last found at half window size from the edge.
Definition at line 1302 of file fors_image.c.
References assure.
Referenced by extract_sex().
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 970 of file fors_image.c.
References assure.
Referenced by test_bias(), test_dark(), test_divide(), test_exponential(), test_image(), test_img_screen_flat(), test_img_sky_flat(), test_stack(), and test_subtract().
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 987 of file fors_image.c.
References assure.
Referenced by fors_image_get_stdev_robust(), test_bias(), and test_img_screen_flat().
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 1377 of file fors_image.c.
References assure.
Referenced by fors_fixed_pattern_noise(), test_bias(), test_image(), and test_stack().
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 1398 of file fors_image.c.
References assure, and fors_image_get_median().
Referenced by fors_fixed_pattern_noise_bias().
double fors_image_get_error_mean | ( | const fors_image * | image, |
double * | dmean | ||
) |
Get mean of error bars.
image | image |
dmean | (output) error of estimate |
The average is computed as
(1/N * sum_i sigma_i^2)^(1/2)
Definition at line 1441 of file fors_image.c.
References assure.
Referenced by test_bias(), test_dark(), test_divide(), test_img_screen_flat(), test_img_sky_flat(), test_stack(), and test_subtract().
double fors_image_get_min | ( | const fors_image * | image | ) |
Get min data value.
image | image |
Definition at line 939 of file fors_image.c.
References assure.
Referenced by test_image().
double fors_image_get_max | ( | const fors_image * | image | ) |
Get max data value.
image | image |
Definition at line 954 of file fors_image.c.
References assure.
Referenced by test_image().