34#include <casu_tfits.h>
35#include <casu_utils.h>
42 int retval,i,nrow,ncol,nl;
44 cpl_image *im,*bkg,*cnf;
46 double sigma=2.0,norm2,tot[NTEST],sky=500.0,diff,val;
47 double xpos[] = {100.0,200.0,300.0,400.0,500.0,600.0,700.0,800.0,900.0,
49 double ypos[] = {100.0,200.0,300.0,400.0,500.0,600.0,700.0,800.0,900.0,
51 double norm[] = {1000.0,100.0,200.0,500.0,550.0,600.0,650.0,700.0,
53 casu_fits *inf,*inconf;
58 cpl_test_init(PACKAGE_BUGREPORT,CPL_MSG_WARNING);
62 bkg = cpl_image_new(1024,1024,CPL_TYPE_FLOAT);
63 im = cpl_image_new(1024,1024,CPL_TYPE_FLOAT);
64 cnf = cpl_image_new(1024,1024,CPL_TYPE_INT);
65 norm2 = 2.0*CPL_MATH_PI*sigma*sigma;
66 cpl_image_fill_noise_uniform(bkg,-10.0,10.0);
67 cpl_image_add_scalar(bkg,sky);
68 cpl_image_fill_noise_uniform(cnf,99.9,100.1);
69 for (i = 0; i < NTEST; i++) {
70 cpl_image_fill_gaussian(im,xpos[i],ypos[i],norm[i]*norm2,sigma,sigma);
71 tot[i] = cpl_image_get_flux(im);
72 cpl_image_add(bkg,im);
74 pl = cpl_propertylist_new();
78 cpl_propertylist_delete(pl);
83 cpl_propertylist_update_string(pl,
"CTYPE1",
"RA---TAN");
84 cpl_propertylist_update_string(pl,
"CTYPE2",
"DEC--TAN");
85 cpl_propertylist_update_double(pl,
"CRVAL1",30.0);
86 cpl_propertylist_update_double(pl,
"CRVAL2",12.0);
87 cpl_propertylist_update_double(pl,
"CRPIX1",512.0);
88 cpl_propertylist_update_double(pl,
"CRPIX2",512.0);
89 cpl_propertylist_update_double(pl,
"CD1_1",-1.0/3600);
90 cpl_propertylist_update_double(pl,
"CD1_2",0.0);
91 cpl_propertylist_update_double(pl,
"CD2_1",0.0);
92 cpl_propertylist_update_double(pl,
"CD2_2",1.0/3600);
96 retval =
imcore_conf(inf,inconf,5,1.5,0,5.0,64,6,3.0,1.0,&outtab);
97 cpl_test_eq(retval,CASU_OK);
98 cpl_test_nonnull(outtab);
104 cpl_test_nonnull(tab);
105 ncol = cpl_table_get_ncol(tab);
106 cpl_test_eq(ncol,80);
107 nrow = cpl_table_get_nrow(tab);
108 cpl_test_eq(nrow,NTEST);
109 pl = cpl_propertylist_new();
110 cpl_propertylist_append_bool(pl,
"X_coordinate",0);
111 cpl_table_sort(tab,pl);
112 cpl_propertylist_delete(pl);
116 for (i = 0; i < NTEST; i++) {
117 cpl_test_abs(xpos[i],cpl_table_get_float(tab,
"X_coordinate",(cpl_size)i,
119 cpl_test_abs(ypos[i],cpl_table_get_float(tab,
"Y_coordinate",(cpl_size)i,
121 diff = fabs(cpl_table_get_float(tab,
"Aper_flux_5",(cpl_size)i,&nl) -
123 diff /= cpl_table_get_float(tab,
"Aper_flux_5_err",(cpl_size)i,&nl);
124 cpl_test_lt(diff,1.5);
130 cpl_test_eq(retval,CASU_OK);
132 cpl_test_rel(cpl_propertylist_get_float(pl,
"ESO QC IMAGE_SIZE"),4.57,0.01);
133 cpl_test_eq(cpl_propertylist_get_bool(pl,
"ESO DRS CLASSIFD"),1);
134 cpl_test_abs(cpl_propertylist_get_float(pl,
"APCOR3"),0.145,0.05);
135 for (i = 0; i < NTEST; i++) {
138 cpl_test_rel(val,-1.0,0.001);
146 return(cpl_test_end(0));
casu_fits * casu_fits_wrap(cpl_image *im, casu_fits *model, cpl_propertylist *phu, cpl_propertylist *ehu)
void casu_fits_delete(casu_fits *p)
cpl_propertylist * casu_fits_get_ehu(casu_fits *p)
cpl_propertylist * casu_tfits_get_ehu(casu_tfits *p)
void casu_tfits_delete(casu_tfits *p)
cpl_table * casu_tfits_get_table(casu_tfits *p)
int imcore_conf(casu_fits *infile, casu_fits *conf, int ipix, float threshold, int icrowd, float rcore, int nbsize, int cattype, float filtfwhm, float gain, casu_tfits **outcat)
Do source extraction.
int imcore_classify(casu_tfits *catalogue, float minsize, int cattype)
Do star/galaxy classification.