32 #include <fors_image.h>
33 #include <fors_stack.h>
35 #include <fors_utils.h>
37 #include <test_simulate.h>
49 cpl_frameset_delete(raw); \
50 fors_stack_method_delete(&sm); \
51 fors_setting_delete(&setting); \
52 cpl_parameterlist_delete(parameters); \
53 fors_image_list_delete_const(&ilist, fors_image_delete); \
63 const fors_image_list *ilist = NULL;
64 cpl_frameset *raw = cpl_frameset_new();
66 stack_method *sm = NULL;
68 const char *master_filename = NULL;
69 cpl_parameterlist *parameters = NULL;
70 const char *filename[] = {
"stack_bias_1.fits",
74 const char *method[] = {
"average",
81 for (i = 0; i < N; i++) {
84 bias =
create_bias(filename[i], BIAS, CPL_FRAME_GROUP_RAW);
86 assure( !cpl_error_get_code(),
return,
87 "Create bias %s failed", filename[i] );
89 cpl_frameset_insert(raw, bias);
95 assure( ilist != NULL,
return,
"Loading list failed" );
97 test_eq( fors_image_list_size(ilist), 3 );
100 for (i = 0; i < 2; i++) {
102 const char *
const context =
"test";
104 parameters = cpl_parameterlist_new();
107 assure( !cpl_error_get_code(),
return,
108 "Define parameters" );
110 cpl_parameter_set_string(cpl_parameterlist_find(
111 parameters,
"test.stack_method"),
119 assure( !cpl_error_get_code(),
return,
120 "Could not stack images using method %s", method[i]);
132 i == 1 ? 0.1 : 0.01);
136 master_filename = cpl_sprintf(
"stack_master_bias_%s.fits", method[i]);
139 assure( !cpl_error_get_code(),
return,
140 "Error saving stacked image to %s", master_filename);
144 cpl_parameterlist_delete(parameters); parameters = NULL;
146 cpl_free((
void *)master_filename); master_filename = NULL;
cpl_frame * create_bias(const char *filename, const char *tag, cpl_frame_group group)
Simulate bias image.
fors_setting * fors_setting_new(const cpl_frame *raw)
Create setting from FITS header.
int main(void)
Test of image stacking module.
static void test_stack(void)
Test image i/o + stacking.
double fors_image_get_stdev(const fors_image *image, double *dstdev)
Get empirical stdev of data.
void fors_image_delete(fors_image **image)
Deallocate image and set pointer to NULL.
double fors_image_get_mean(const fors_image *image, double *dmean)
Get mean data value.
void fors_stack_define_parameters(cpl_parameterlist *parameters, const char *context, const char *default_method)
Define recipe parameters.
fors_image_list * fors_image_load_list(const cpl_frameset *frames)
Load imagelist.
void fors_stack_method_delete(stack_method **sm)
Destructor.
stack_method * fors_stack_method_new(const cpl_parameterlist *parameters, const char *context)
Get stack method from parameter list.
double fors_image_get_error_mean(const fors_image *image, double *dmean)
Get mean of error bars.
fors_image * fors_stack_const(const fors_image_list *images, const stack_method *sm)
Stack images.
void fors_image_save(const fors_image *image, const cpl_propertylist *header, const cpl_propertylist *err_header, const char *filename)
Save image.