FORS Pipeline Reference Manual  4.12.5
Data Structures | Functions | Variables
Image with error bars

Data Structures

struct  _fors_image
 

Functions

fors_imagefors_image_new (cpl_image *data, cpl_image *weights)
 Create image. More...
 
fors_imagefors_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_imagefors_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_imagefors_image_collapse_create (const fors_image_list *images)
 Average collapse. More...
 
fors_imagefors_image_collapse_median_create (const fors_image_list *images)
 Median collapse. More...
 
fors_imagefors_image_collapse_minmax_create (const fors_image_list *images, int low, int high)
 Minmax collapse. More...
 
fors_imagefors_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_imagefors_image_from_hdrl (const hdrl_image *image)
 

Variables

cpl_image * _fors_image::data
 
cpl_image * _fors_image::variance
 

Detailed Description

This object contains

For efficiency+convenience the error bars are internally represented as sigma^2 to avoid the repeated conversion between sigma <-> variance

Function Documentation

fors_image* fors_image_new ( cpl_image *  data,
cpl_image *  variance 
)

Create image.

Parameters
dataimage data
varianceimage data error bars on the form sigma^2
Returns
newly allocated image

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.

Parameters
imageto duplicate
Returns
newly allocated copy of input

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.

Parameters
imageto 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.

Parameters
imageto 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.

Parameters
frameto load
settingexpected instrument setting
Returns
Newly allocated image

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.

Parameters
framesall provided frames are loaded
biasmaster bias image, or NULL
settingexpected instrument setting
saturated(output) if non-NULL, overall saturation percentage. Defined as > 65534.4 or < 0.5
Returns
Newly allocated list of images

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.

Parameters
framessee fors_image_load_list()
biassee fors_image_load_list()
settingsee fors_image_load_list()
saturatedsee fors_image_load_list()
Returns
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.

Parameters
imageto save
headerprimary FITS header, or NULL
filenamefilename

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.

Parameters
imageto save
headerprimary FITS header, or NULL
filename_datfilename of data values
filename_varfilename of variances
radiusmedian 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.

Parameters
imageimage
Returns
width

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.

Parameters
imageimage
Returns
width

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.

Parameters
imageimage

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.

Parameters
imageto draw on
typetype of thing to draw
xposition
yposition
radiussize of thing to draw
colorpixel 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.

Parameters
imageimage
xlolower left x
ylolower left y
xhiupper right x
yhiupper 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.

Parameters
leftimage to be subtracted from
rightimage 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.

Parameters
left1st factor (changed)
right2nd 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.

Parameters
leftimage to be change
rightfactor

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.

Parameters
leftimage to be divided
rightdivisor

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.

Parameters
leftimage to be divided
rightdivisor (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.

Parameters
imageimage

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.

Parameters
imageimage

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.

Parameters
imageto be exponentiated
bbase
dberror (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.

Parameters
imageto be multiplied
sscalar
dserror (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.

Parameters
imageto be divided
sscalar
dserror (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.

Parameters
imageto be divided
sscalar
dserror (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.

Parameters
imageslist of images to collapse
Returns
newly allocated stacked image

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.

Parameters
imageslist of images to collapse
Returns
newly allocated stacked image

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.

Parameters
imageslist of images to collapse
lownumber of low rejected values
highnumber of high rejected values
Returns
newly allocated stacked image

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.

Parameters
imageslist of images to collapse
lowlower number of sigmas
highhigher number of sigmas
itermax number of iterations
Returns
newly allocated stacked image

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.

Parameters
imageto filter
xradiushalf x window size
yradiushalf y window size
xstartx start
ystarty start
xendx end
yendy end
xstepx-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
ystepsee xstep
use_dataif true, the data values are filtered, otherwise the variance map is filtered
Returns
Newly allocated image, no error bars are provided

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.

Parameters
imageto filter
xradiushalf x window size
yradiushalf y window size
use_dataif true, the data values are filtered, otherwise the variance map is filtered
Returns
Newly allocated image, no error bars are provided

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.

Parameters
imageimage
dmean(output) error of estimate
Returns
arithmetic average

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.

Parameters
imageimage
dmedian(output) error of estimate
Returns
median of values

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.

Parameters
imageimage
dstdev(output) error of estimate
Returns
empirical stdev (scatter around mean)

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.

Parameters
imageimage
cutpixels outside median +- cut are ignored
dstdev(output) error of estimate
Returns
empirical stdev (scatter around median, not mean)

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.

Parameters
imageimage
dmean(output) error of estimate
Returns
average of error bars

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.

Parameters
imageimage
Returns
min data value

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.

Parameters
imageimage
Returns
max data value

Definition at line 954 of file fors_image.c.

References assure.

Referenced by test_image().