34 #include "vircam_mods.h"
35 #include "vircam_utils.h"
36 #include "vircam_mask.h"
37 #include "vircam_stats.h"
38 #include "vircam_fits.h"
87 extern int vircam_mkconf(cpl_image *flat,
char *flatfile, vir_mask *bpm,
88 cpl_image **outconf, cpl_propertylist **drs,
94 const char *fctid =
"vircam_mkconf";
98 if (*status != VIR_OK)
103 nx = (int)cpl_image_get_size_x(flat);
104 ny = (int)cpl_image_get_size_y(flat);
107 cpl_msg_error(fctid,
"Input image sizes don't match!");
113 if ((fdata = cpl_image_get_data_float(flat)) == NULL) {
114 cpl_msg_error(fctid,
"Unable to map flat data!");
121 odata = cpl_malloc(npts*
sizeof(*odata));
130 for (i = 0; i < npts; i++) {
132 odata[i] = max(0,min(110,(
int)(100.0*fdata[i]/mean + 0.5)));
139 *outconf = cpl_image_wrap_int((cpl_size)nx,(cpl_size)ny,odata);
143 *drs = cpl_propertylist_new();
144 cpl_propertylist_update_string(*drs,
"ESO DRS FLATIN",flatfile);
145 cpl_propertylist_set_comment(*drs,
"ESO DRS FLATIN",
146 "Flat used to create this conf map");
148 cpl_propertylist_update_string(*drs,
"ESO DRS BPMIN",
151 cpl_propertylist_update_string(*drs,
"ESO DRS BPMIN",
"None available");
152 cpl_propertylist_set_comment(*drs,
"ESO DRS BPMIN",
153 "BPM used to create this conf map");
vir_fits * vircam_mask_get_fits(vir_mask *m)
float vircam_mean(float *data, unsigned char *bpm, long npts)
int vircam_mkconf(cpl_image *flat, char *flatfile, vir_mask *bpm, cpl_image **outconf, cpl_propertylist **drs, int *status)
Create a confidence map.
char * vircam_fits_get_fullname(vir_fits *p)
unsigned char * vircam_mask_get_data(vir_mask *m)
int vircam_mask_get_size_x(vir_mask *m)
int vircam_mask_get_type(vir_mask *m)
int vircam_mask_get_size_y(vir_mask *m)