Changeset 34749 for trunk/Ohana/src/relphot
- Timestamp:
- Nov 30, 2012, 10:06:05 AM (14 years ago)
- Location:
- trunk/Ohana/src/relphot/src
- Files:
-
- 3 edited
-
ConfigInit.c (modified) (3 diffs)
-
StarOps.c (modified) (13 diffs)
-
setMrelFinal.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/relphot/src/ConfigInit.c
r33963 r34749 6 6 char *config, *file; 7 7 char CatdirPhotcodeFile[256]; 8 char MasterPhotcodeFile[256];9 8 10 9 /*** load configuration info ***/ … … 45 44 ScanConfig (config, "CATMODE", "%s", 0, CATMODE); 46 45 ScanConfig (config, "CATFORMAT", "%s", 0, CATFORMAT); 47 ScanConfig (config, "PHOTCODE_FILE", "%s", 0, MasterPhotcodeFile);48 46 49 s printf (ImageCat, "%s/Images.dat", CATDIR);47 snprintf (ImageCat, DVO_MAX_PATH, "%s/Images.dat", CATDIR); 50 48 51 49 if (!ScanConfig (config, "SKY_DEPTH", "%d", 0, &SKY_DEPTH)) { … … 69 67 /* XXX this does not yet write out the master photcode table */ 70 68 sprintf (CatdirPhotcodeFile, "%s/Photcodes.dat", CATDIR); 71 if (!LoadPhotcodes (CatdirPhotcodeFile, MasterPhotcodeFile, TRUE)) {72 fprintf (stderr, "error loading photcode table %s or master file %s\n", CatdirPhotcodeFile, MasterPhotcodeFile);69 if (!LoadPhotcodes (CatdirPhotcodeFile, NULL, FALSE)) { 70 fprintf (stderr, "error loading photcode table %s\n", CatdirPhotcodeFile); 73 71 exit (1); 74 72 } -
trunk/Ohana/src/relphot/src/StarOps.c
r34621 r34749 356 356 357 357 for (j = 0; j < catalog[Nc].Naverage; j++) { 358 // XXX accumulate all secfilt values in a single pass?359 360 358 // option for a test print 361 359 if (FALSE && (catalog[Nc].average[j].objID == 0x7146) && (catalog[Nc].average[j].catID == 0x49d8)) { … … 376 374 377 375 int Nmeas = 0; // number of meas used for psfqf, psfqfperf, and stargal 376 377 int NstackGood = 0; 378 int NstackSuspect = 0; 379 380 int haveStackObject = FALSE; 378 381 379 382 int Ns; … … 401 404 402 405 float stackCenterOffsetMin = 1e9; 403 // int stackCenterIDmin = -1;404 406 off_t stackCenterMeasureMin = -1; 405 407 406 408 float stackPrimaryOffsetMin = 1e9; 407 // int stackPrimaryIDmin = -1;408 409 off_t stackPrimaryMeasureMin = -1; 409 410 … … 415 416 int minUbercalDist = 1000; 416 417 418 int isBad = FALSE; 419 int isSuspect = FALSE; 420 417 421 N = 0; 418 422 m = catalog[Nc].averageT[j].measureOffset; … … 447 451 if (isnan(Msys)) SKIP_THIS_MEAS(Nsys); 448 452 449 list[N] = Msys - Mcal - Mmos - Mgrid;450 451 453 int myUbercalDist = getUbercalDist(m,Nc); 452 454 minUbercalDist = MIN(minUbercalDist, myUbercalDist); 453 455 454 456 if (isSetMrelFinal) { 455 // Map (aplist) and Mkron (kronlist,dkronlist) are used to calculate mean mags per filter456 float Map = PhotAper (&catalog[Nc].measure[m]);457 aplist[N] = Map - Mcal - Mmos - Mgrid;458 459 float Mkron = PhotKron (&catalog[Nc].measure[m]);460 kronlist[N] = Mkron - Mcal - Mmos - Mgrid;461 dkronlist[N] = catalog[Nc].measure[m].dMkron;462 463 // mean psfQF, psfQFperf, and stargal values are calculated per object (all filters)464 psfqf_list[Nmeas] = catalog[Nc].measure[m].psfQF;465 psfqfperf_list[Nmeas] = catalog[Nc].measure[m].psfQF;466 stargal_list[Nmeas] = catalog[Nc].measure[m].extNsigma;467 468 457 // special options for PS1 data 469 458 if ((catalog[Nc].measure[m].photcode >= 10000) && (catalog[Nc].measure[m].photcode <= 10500)) { … … 484 473 havePS1 = TRUE; 485 474 } 475 486 476 // gpc1 stack data 487 477 if ((catalog[Nc].measure[m].photcode >= 11000) && (catalog[Nc].measure[m].photcode <= 11400)) { 488 // if (pass < 2) continue;489 478 haveStack = TRUE; 479 haveStackObject = TRUE; 490 480 491 481 unsigned int stackImageID; … … 509 499 stackCenterMeasureMin = m; 510 500 } 501 502 // data quality assessment 503 isBad |= (catalog[Nc].measure[m].photFlags & code->photomBadMask); 504 isBad |= (catalog[Nc].measure[m].psfQF < 0.85); 505 isBad |= isnan(catalog[Nc].measure[m].psfQF); 506 isBad |= catalog[Nc].measure[m].dM > 0.2; // S/N < 5.0 507 508 isSuspect |= (catalog[Nc].measure[m].photFlags & code->photomPoorMask); 509 isSuspect |= (catalog[Nc].measure[m].psfQFperf < 0.85); 510 511 // mean psfQF, psfQFperf, and stargal values are calculated per object (all filters, stacks and exposures) 512 psfqf_list[Nmeas] = catalog[Nc].measure[m].psfQF; 513 psfqfperf_list[Nmeas] = catalog[Nc].measure[m].psfQFperf; 514 stargal_list[Nmeas] = catalog[Nc].measure[m].extNsigma; 515 Nmeas++; 516 517 continue; // do not include stack measurements in the per-exposure statistics 511 518 } 512 519 … … 523 530 // detections without one of these bits should only be used in PASS_1 524 531 SKIP_THIS_MEAS(Nbad); 525 continue;526 532 } 527 533 } … … 557 563 if (pass < 4) { 558 564 SKIP_THIS_MEAS(Nbad); 559 continue;560 565 } 561 566 haveSynth = TRUE; 562 567 } 563 568 } 569 570 // Map (aplist) and Mkron (kronlist,dkronlist) are used to calculate mean mags per filter 571 float Map = PhotAper (&catalog[Nc].measure[m]); 572 aplist[N] = Map - Mcal - Mmos - Mgrid; 573 574 float Mkron = PhotKron (&catalog[Nc].measure[m]); 575 kronlist[N] = Mkron - Mcal - Mmos - Mgrid; 576 dkronlist[N] = catalog[Nc].measure[m].dMkron; 577 578 // mean psfQF, psfQFperf, and stargal values are calculated per object (all filters, stacks and exposures) 579 psfqf_list[Nmeas] = catalog[Nc].measure[m].psfQF; 580 psfqfperf_list[Nmeas] = catalog[Nc].measure[m].psfQFperf; 581 stargal_list[Nmeas] = catalog[Nc].measure[m].extNsigma; 582 Nmeas++; 564 583 } 565 584 … … 572 591 dlist[N] = MAX (hypot(catalog[Nc].measureT[m].dM, code->photomErrSys), MIN_ERROR); 573 592 wlist[N] = 1.0; 593 list[N] = Msys - Mcal - Mmos - Mgrid; 574 594 575 595 // up-weight the ubercal values (or convergence can take a long time...) … … 588 608 } 589 609 N++; 590 Nmeas++;591 610 } 592 611 … … 595 614 if (haveStack && (N > 1)) { 596 615 // fprintf (stderr, "multiple stack values for %10.6f %10.6f\n", catalog[Nc].averageT[j].R, catalog[Nc].averageT[j].D); 616 } 617 618 if (haveStack) { 619 if (!isSuspect && !isBad) { 620 NstackGood ++; 621 } 622 if (isSuspect && !isBad) { 623 NstackSuspect ++; 624 } 597 625 } 598 626 … … 764 792 } 765 793 794 if (NstackGood >= 2) { 795 catalog[Nc].average[j].flags |= ID_OBJ_GOOD_STACK; 796 } else if (NstackGood + NstackSuspect >= 2) { 797 catalog[Nc].average[j].flags |= ID_OBJ_SUSPECT_STACK; 798 } else if (haveStackObject) { 799 catalog[Nc].average[j].flags |= ID_OBJ_BAD_STACK; 800 } 801 766 802 // use NAN values for catalog[Nc].average[j].psfQF as signal 767 803 if (!isfinite(catalog[Nc].average[j].psfQF)) { -
trunk/Ohana/src/relphot/src/setMrelFinal.c
r34642 r34749 40 40 for (i = 0; i < catalog[0].Naverage; i++) { 41 41 off_t N = Nsecfilt*i+Nsec; 42 catalog[0].secfilt[N].M = NAN; 43 catalog[0].secfilt[N].Map = NAN; 44 catalog[0].secfilt[N].dM = NAN; 45 catalog[0].secfilt[N].Mstdev = NAN_S_SHORT; 46 catalog[0].secfilt[N].Xm = NAN; 47 catalog[0].secfilt[N].M_20 = NAN_S_SHORT; 48 catalog[0].secfilt[N].M_80 = NAN_S_SHORT; 49 catalog[0].secfilt[N].Ncode = 0; 50 catalog[0].secfilt[N].Nused = 0; 51 catalog[0].secfilt[N].flags = 0; // XXX there are no *astrometry* bits in secfilt.flags 52 catalog[0].secfilt[N].ubercalDist = 1000; 42 dvo_secfilt_init (&catalog[0].secfilt[N]); 53 43 54 44 off_t m = catalog[0].average[i].measureOffset; … … 247 237 } 248 238 249 // PASS 2 : accept stack measurements239 // PASS 2 : (no additional cut) 250 240 251 241 // PASS 1 : accept poor measurements as well (eg, POOR FIT, etc)
Note:
See TracChangeset
for help on using the changeset viewer.
