Changeset 28185
- Timestamp:
- Jun 1, 2010, 4:41:14 PM (16 years ago)
- File:
-
- 1 edited
-
trunk/Ohana/src/relphot/src/StarOps.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/relphot/src/StarOps.c
r27790 r28185 391 391 } 392 392 393 # define NSIGMA_CLIP 3.0 394 # define NSIGMA_REJECT 5.0 393 395 void clean_measures (Catalog *catalog, int Ncatalog, int final) { 394 396 … … 396 398 int i, N, image_bad, TOOFEW; 397 399 off_t *ilist; 398 double *tlist, *list, *dlist , Ns;400 double *tlist, *list, *dlist; 399 401 float Msys, Mcal, Mmos, Mgrid; 400 402 StatType stats; 403 int Ncal, Nmos, Ngrid, Nfew; 401 404 402 405 if (VERBOSE) fprintf (stderr, "marking poor measures\n"); … … 416 419 TOOFEW = MAX (5, STAR_TOOFEW); 417 420 418 Ns = 3;419 421 Ndel = Nave = 0; 422 Ncal = Nmos = Ngrid = Nfew = 0; 420 423 for (i = 0; i < Ncatalog; i++) { 421 424 for (j = 0; j < catalog[i].Naverage; j++) { … … 433 436 /* if (catalog[i].measure[m].dbFlags & MEAS_BAD) continue; */ 434 437 Mcal = getMcal (m, i); 435 if (isnan(Mcal)) continue;438 if (isnan(Mcal)) { Ncal ++; continue; } 436 439 Mmos = getMmos (m, i); 437 if (isnan(Mmos)) continue;440 if (isnan(Mmos)) { Nmos ++; continue; } 438 441 Mgrid = getMgrid (m, i); 439 if (isnan(Mgrid)) continue;442 if (isnan(Mgrid)) { Ngrid ++; continue; } 440 443 441 444 Msys = PhotSys (&catalog[i].measure[m], &catalog[i].average[j], &catalog[i].secfilt[j*PhotNsec]); … … 444 447 N++; 445 448 } 446 if (N <= TOOFEW) continue;449 if (N <= TOOFEW) { Nfew ++; continue; } 447 450 448 451 /* 3-sigma clip based on stats of inner 50% */ 452 453 // calculated mean of inner 50% 449 454 initstats ("INNER_MEAN"); 450 455 liststats (list, dlist, N, &stats); 451 456 stats.sigma = MAX (MIN_ERROR, stats.sigma); /* if measurements agree too well, sigma -> 0.0 */ 457 458 // ignore entries > 3sigma from inner mean 452 459 for (k = m = 0; k < N; k++) { 453 if (fabs (list[k] - stats.median) < N s*stats.sigma) {460 if (fabs (list[k] - stats.median) < NSIGMA_CLIP*stats.sigma) { 454 461 list[m] = list[k]; 455 462 m++; 456 463 } 457 464 } 465 // recalculate the mean & sigma of the accepted measurements 458 466 initstats ("MEAN"); 459 467 liststats (list, dlist, m, &stats); … … 483 491 if (N < TOOFEW) continue; 484 492 485 /* mark bad measures */493 /* mark bad measures (> 3 sigma deviant) */ 486 494 for (k = 0; k < N; k++) { 487 if (fabs (list[k] - stats.median) > N s*stats.sigma) {495 if (fabs (list[k] - stats.median) > NSIGMA_REJECT*stats.sigma) { 488 496 catalog[i].measure[ilist[k]].dbFlags |= ID_MEAS_POOR_PHOTOM; 489 497 Ndel ++;
Note:
See TracChangeset
for help on using the changeset viewer.
