33 #include <casu_fits.h>
34 #include <casu_utils.h>
35 #include <casu_mods.h>
38 int status,retval,nbad,i,ilim,ind,ii,jj,isnull;
40 float badfrac,lim,ave,*idata,off;
41 casu_fits *fitslist[10];
42 cpl_image *im,*master = NULL;
46 cpl_test_init(PACKAGE_BUGREPORT,CPL_MSG_WARNING);
51 retval =
casu_genbpm(NULL,0,NULL,5.0,5.0,
"EXPTIME",&bpm_array,&nbad,
53 cpl_test_eq(status,CASU_FATAL);
54 cpl_test_eq(status,retval);
59 for (i = 0; i <= 10; i++) {
60 ave = 100.0*(float)(i+1);
61 im = cpl_image_new(100,100,CPL_TYPE_FLOAT);
62 lim = 10.0*(float)(i+1);
64 idata = cpl_image_get_data_float(im);
66 for (ii = 0; ii < 100; ii++) {
67 for (jj = 0; jj < 100; jj++) {
68 off = lim - (float)(rand() % ilim);
69 idata[ind++] = ave + off;
73 idata[5500] = 100*ave;
82 retval =
casu_genbpm(fitslist,10,master,3.0,3.0,
"EXPTIME",&bpm_array,
83 &nbad,&badfrac,&status);
84 cpl_test_eq(status,CASU_OK);
85 cpl_test_eq(status,retval);
87 cpl_test_rel(badfrac,1.0e-4,1.0e-6);
88 cpl_test_eq(cpl_array_get_int(bpm_array,5500,&isnull),1);
92 cpl_image_delete(master);
93 for (i = 0; i < 10; i++) {
98 cpl_array_delete(bpm_array);
101 return(cpl_test_end(0));
cpl_image * casu_fits_get_image(casu_fits *p)
casu_fits * casu_fits_wrap(cpl_image *im, casu_fits *model, cpl_propertylist *phu, cpl_propertylist *ehu)
void casu_fits_unwrap(casu_fits *p)
int casu_genbpm(casu_fits **flatlist, int nflatlist, cpl_image *master, float lthr, float hthr, const char *expkey, cpl_array **bpm_array, int *nbad, float *badfrac, int *status)
Generate a bad pixel mask from a list of dome flats.