32 #include <fors_img_screen_flat_impl.h>
34 #include <fors_pfits.h>
35 #include <fors_utils.h>
37 #include <test_simulate.h>
52 cpl_frameset_delete(frames); \
53 cpl_parameterlist_delete(parameters); \
54 fors_image_delete(&raw_sflat); \
55 fors_image_delete(&master_sflat); \
56 fors_image_delete(&master_bias); \
57 fors_setting_delete(&setting); \
58 cpl_propertylist_delete(product_header); \
68 cpl_frameset *frames = cpl_frameset_new();
69 cpl_parameterlist *parameters = cpl_parameterlist_new();
76 cpl_propertylist *product_header = NULL;
79 const char *screen_flat_filename[] = {
"img_screen_flat_1.fits",
80 "img_screen_flat_2.fits",
81 "img_screen_flat_3.fits"};
82 const unsigned N =
sizeof(screen_flat_filename)/
sizeof(
char *);
87 for (i = 0; i < N; i++) {
91 SCREEN_FLAT_IMG, CPL_FRAME_GROUP_RAW));
95 cpl_frameset_insert(frames,
97 MASTER_BIAS, CPL_FRAME_GROUP_CALIB));
100 fors_img_screen_flat_define_parameters(parameters);
102 assure( !cpl_error_get_code(),
return,
103 "Create parameters failed");
107 cpl_parameter_set_int(cpl_parameterlist_find(parameters,
108 "fors.fors_img_screen_flat.xradius"),
110 cpl_parameter_set_int(cpl_parameterlist_find(parameters,
111 "fors.fors_img_screen_flat.yradius"),
114 cpl_parameter_set_int(cpl_parameterlist_find(parameters,
115 "fors.fors_img_screen_flat.degree"),
119 fors_img_screen_flat(frames, parameters);
120 assure( !cpl_error_get_code(),
return,
126 const char *
const product_tags[] = {MASTER_SCREEN_FLAT_IMG,
127 MASTER_NORM_FLAT_IMG};
128 const char *
const qc[] = {
"QC OVEREXPO",
136 product_tags,
sizeof product_tags /
sizeof *product_tags,
137 MASTER_NORM_FLAT_IMG,
138 qc,
sizeof qc /
sizeof *qc);
146 test( cpl_frameset_find(frames, MASTER_SCREEN_FLAT_IMG) != NULL );
147 test( cpl_frameset_find(frames, MASTER_NORM_FLAT_IMG) != NULL );
148 test( cpl_frameset_find(frames, MASTER_BIAS) != NULL );
149 test( cpl_frameset_find(frames, SCREEN_FLAT_IMG) != NULL );
152 cpl_frameset_find(frames, MASTER_NORM_FLAT_IMG));
154 cpl_frameset_find(frames, MASTER_BIAS));
157 cpl_frameset_find(frames, SCREEN_FLAT_IMG));
158 cpl_image_subtract_scalar(raw_sflat->data, 200);
174 cpl_propertylist_load(cpl_frame_get_filename(
175 cpl_frameset_find(frames,
176 MASTER_NORM_FLAT_IMG)),
178 assure( product_header != NULL,
return, NULL );
181 test_rel( cpl_propertylist_get_double(product_header,
199 test_rel( cpl_propertylist_get_double(product_header,
200 "ESO QC FLAT CONAD"),
201 cpl_propertylist_get_double(product_header,
202 FORS_PFITS_CONAD[0]),
206 test( cpl_propertylist_get_double(product_header,
207 "ESO QC FLAT CONADERR") <
208 0.1 * cpl_propertylist_get_double(product_header,
209 "ESO QC FLAT CONAD") );
fors_setting * fors_setting_new(const cpl_frame *raw)
Create setting from FITS header.
cpl_frame * create_master_bias(const char *filename, const char *tag, cpl_frame_group group)
Simulate master bias image.
fors_image * fors_image_load(const cpl_frame *frame)
Load image.
double fors_image_get_mean(const fors_image *image, double *dmean)
Get mean data value.
int main(void)
Test of image module.
cpl_frame * create_screen_flat(const char *filename, const char *tag, cpl_frame_group group)
Simulate screen flat image.
void test_recipe_output(const cpl_frameset *frames, const char *const product_tags[], int n_prod, const char *main_product, const char *const qc[], int n_qc)
Test existence of recipe products.
static void test_img_screen_flat(void)
Test screen flat recipe.
double fors_image_get_median(const fors_image *image, double *dmedian)
Get median data value.
void fors_parameterlist_set_defaults(cpl_parameterlist *parlist)
Set unset parameters to default value.
double fors_image_get_error_mean(const fors_image *image, double *dmean)
Get mean of error bars.