206 float momresults[8],parmall[NPAR];
207 float sxx,syy,srr,sxy,ecc,temp,xx,theta,radeg,ell;
208 float yy,sigma,peak,areal1,iso_flux;
209 float areal2,areal3,areal4,areal5,areal6,areal7,areal8;
210 int iareal[NAREAL],i,nr;
216 if (momresults[0] < 0)
223 if (iareal[0] < ap->ipnop || momresults[3] < ap->xintmin)
228 parmall[0] = momresults[3];
229 parmall[1] = momresults[1];
230 parmall[2] = momresults[2];
231 parmall[3] = ap->thresh;
232 for (i = 4; i < 8; i++)
233 parmall[i] = momresults[i];
234 for (i = 0; i < NAREAL; i++)
235 parmall[i+8] = (
float)iareal[i];
239 radeg = 180.0/CPL_MATH_PI;
244 sxy = MAX(1.0e-4,MIN(sxy,sqrtf(sxx*syy)));
246 sxy = MIN(-1.0e-4,MAX(sxy,-sqrtf(sxx*syy)));
248 srr = MAX(0.5,sxx+syy);
249 ecc = sqrtf((syy-sxx)*(syy-sxx)+4.0*sxy*sxy)/srr;
250 temp = MAX((1.0-ecc)/(1.0+ecc),0.0);
251 ell = 1.0 - sqrtf(temp);
252 ell = MIN(0.99,MAX(0.0,ell));
253 xx = 0.5*(1.0+ecc)*srr-sxx;
257 theta = 90.0-radeg*atanf(sxy/xx);
261 nrows = cpl_table_get_nrow(tab);
263 if (*nobjects > nrows)
264 (void)cpl_table_set_size(tab,nrows+INITROWS);
266 iso_flux = parmall[0];
273 areal3 = parmall[10];
274 areal4 = parmall[11];
275 areal5 = parmall[12];
276 areal6 = parmall[13];
277 areal7 = parmall[14];
278 areal8 = parmall[15];
282 cpl_table_set_int(tab,ttype[COL_NUMBER-1],nr,nr);
283 cpl_table_set_float(tab,ttype[COL_X-1],nr,xx);
284 cpl_table_set_float(tab,ttype[COL_Y-1],nr,yy);
285 cpl_table_set_float(tab,ttype[COL_FLUXISO-1],nr,iso_flux);
286 cpl_table_set_float(tab,ttype[COL_PEAKHEIGHT-1],nr,peak);
287 cpl_table_set_float(tab,ttype[COL_ELLIPT-1],nr,ell);
288 cpl_table_set_float(tab,ttype[COL_SIGMA-1],nr,sigma);
289 cpl_table_set_float(tab,ttype[COL_PA-1],nr,theta);
290 cpl_table_set_float(tab,ttype[COL_AREAL1-1],nr,areal1);
291 cpl_table_set_float(tab,ttype[COL_AREAL2-1],nr,areal2);
292 cpl_table_set_float(tab,ttype[COL_AREAL3-1],nr,areal3);
293 cpl_table_set_float(tab,ttype[COL_AREAL4-1],nr,areal4);
294 cpl_table_set_float(tab,ttype[COL_AREAL5-1],nr,areal5);
295 cpl_table_set_float(tab,ttype[COL_AREAL6-1],nr,areal6);
296 cpl_table_set_float(tab,ttype[COL_AREAL7-1],nr,areal7);
297 cpl_table_set_float(tab,ttype[COL_AREAL8-1],nr,areal8);