36#include "catalogue/casu_utils.h"
37#include "catalogue/casu_fits.h"
86extern int casu_darkcor(casu_fits *infile, casu_fits *darksrc,
float darkscl,
91 cpl_propertylist *oplist;
92 const char *fctid =
"casu_darkcor";
96 if (*status != CASU_OK)
102 if (cpl_propertylist_has(oplist,
"ESO DRS DARKCOR"))
110 cpl_msg_error(fctid,
"Object and dark data array dimensions don't match");
117 if (darkscl == 1.0) {
118 if (cpl_image_subtract(im,dm) != CPL_ERROR_NONE)
124 idata = cpl_image_get_data_float(im);
125 ddata = cpl_image_get_data_float(dm);
126 if (idata == NULL || ddata == NULL)
128 n = (long)cpl_image_get_size_x(im)*(long)cpl_image_get_size_y(im);
129 for (i = 0; i < n; i++)
130 idata[i] -= darkscl*ddata[i];
136 if (oplist != NULL) {
138 cpl_propertylist_update_string(oplist,
"ESO DRS DARKCOR",
141 cpl_propertylist_update_string(oplist,
"ESO DRS DARKCOR",
143 cpl_propertylist_set_comment(oplist,
"ESO DRS DARKCOR",
144 "Image used for dark correction");
145 cpl_propertylist_update_float(oplist,
"ESO DRS DARKSCL",darkscl);
146 cpl_propertylist_set_comment(oplist,
"ESO DRS DARKSCL",
147 "Scaling factor used in dark correction");
cpl_image * casu_fits_get_image(casu_fits *p)
char * casu_fits_get_fullname(casu_fits *p)
cpl_propertylist * casu_fits_get_ehu(casu_fits *p)
int casu_darkcor(casu_fits *infile, casu_fits *darksrc, float darkscl, int *status)
Correct input data for dark current.
int casu_compare_dims(cpl_image *im1, cpl_image *im2)
Compare dimensions of two 2d images.