34 #include <casu_tfits.h>
35 #include <casu_utils.h>
36 #include <casu_mods.h>
41 int status,retval,i,nrow,ncol,nl;
43 cpl_image *im,*bkg,*cnf;
45 double sigma=2.0,norm2,tot[NTEST],sky=500.0,diff;
46 double xpos[] = {100.0,200.0,300.0,400.0,500.0,600.0,700.0,800.0,900.0,
48 double ypos[] = {100.0,200.0,300.0,400.0,500.0,600.0,700.0,800.0,900.0,
50 double norm[] = {1000.0,100.0,200.0,500.0,550.0,600.0,650.0,700.0,
52 casu_fits *inf,*inconf;
57 cpl_test_init(PACKAGE_BUGREPORT,CPL_MSG_WARNING);
62 retval =
casu_imcore(NULL,NULL,5,1.5,1,3.5,64,6,1.0,&outtab,2.0,
64 cpl_test_eq(status,CASU_FATAL);
65 cpl_test_eq(status,retval);
66 cpl_test_null(outtab);
70 bkg = cpl_image_new(1024,1024,CPL_TYPE_FLOAT);
71 im = cpl_image_new(1024,1024,CPL_TYPE_FLOAT);
72 cnf = cpl_image_new(1024,1024,CPL_TYPE_INT);
73 norm2 = 2.0*CPL_MATH_PI*sigma*sigma;
74 cpl_image_fill_noise_uniform(bkg,-10.0,10.0);
75 cpl_image_add_scalar(bkg,sky);
76 cpl_image_fill_noise_uniform(cnf,99.9,100.1);
77 for (i = 0; i < NTEST; i++) {
78 cpl_image_fill_gaussian(im,xpos[i],ypos[i],norm[i]*norm2,sigma,sigma);
79 tot[i] = cpl_image_get_flux(im);
80 cpl_image_add(bkg,im);
82 pl = cpl_propertylist_new();
86 cpl_propertylist_delete(pl);
91 cpl_propertylist_update_string(pl,
"CTYPE1",
"RA---TAN");
92 cpl_propertylist_update_string(pl,
"CTYPE2",
"DEC--TAN");
93 cpl_propertylist_update_double(pl,
"CRVAL1",30.0);
94 cpl_propertylist_update_double(pl,
"CRVAL2",12.0);
95 cpl_propertylist_update_double(pl,
"CRPIX1",512.0);
96 cpl_propertylist_update_double(pl,
"CRPIX2",512.0);
97 cpl_propertylist_update_double(pl,
"CD1_1",-1.0/3600);
98 cpl_propertylist_update_double(pl,
"CD1_2",0.0);
99 cpl_propertylist_update_double(pl,
"CD2_1",0.0);
100 cpl_propertylist_update_double(pl,
"CD2_2",1.0/3600);
105 retval =
casu_imcore(inf,inconf,5,1.5,0,5.0,64,6,3.0,&outtab,1.0,&status);
106 cpl_test_eq(status,CASU_OK);
107 cpl_test_eq(status,retval);
108 cpl_test_nonnull(outtab);
116 cpl_test_nonnull(tab);
117 ncol = cpl_table_get_ncol(tab);
118 cpl_test_eq(ncol,80);
119 nrow = cpl_table_get_nrow(tab);
120 cpl_test_eq(nrow,NTEST);
121 pl = cpl_propertylist_new();
122 cpl_propertylist_append_bool(pl,
"X_coordinate",0);
123 cpl_table_sort(tab,pl);
124 cpl_propertylist_delete(pl);
128 for (i = 0; i < NTEST; i++) {
129 cpl_test_abs(xpos[i],cpl_table_get_float(tab,
"X_coordinate",(cpl_size)i,
131 cpl_test_abs(ypos[i],cpl_table_get_float(tab,
"Y_coordinate",(cpl_size)i,
133 diff = fabs(cpl_table_get_float(tab,
"Aper_flux_5",(cpl_size)i,&nl) -
135 diff /= cpl_table_get_float(tab,
"Aper_flux_5_err",(cpl_size)i,&nl);
136 cpl_test_lt(diff,1.5);
137 cpl_test_eq(cpl_table_get_float(tab,
"Classification",(cpl_size)i,&nl),
144 cpl_test_rel(cpl_propertylist_get_float(pl,
"ESO QC IMAGE_SIZE")/2.355,sigma,
150 return(cpl_test_end(0));
void casu_fits_delete(casu_fits *p)
casu_fits * casu_fits_wrap(cpl_image *im, casu_fits *model, cpl_propertylist *phu, cpl_propertylist *ehu)
cpl_propertylist * casu_fits_get_ehu(casu_fits *p)
int casu_imcore(casu_fits *infile, casu_fits *conf, int ipix, float threshold, int icrowd, float rcore, int nbsize, int cattype, float filtfwhm, casu_tfits **outtab, float gainloc, int *status)
Generate object catalogues from input images.
void casu_tfits_delete(casu_tfits *p)
cpl_table * casu_tfits_get_table(casu_tfits *p)
cpl_propertylist * casu_tfits_get_ehu(casu_tfits *p)