Changeset 21508 for trunk/Ohana/src/relphot
- Timestamp:
- Feb 16, 2009, 11:33:52 AM (17 years ago)
- Location:
- trunk/Ohana/src/relphot
- Files:
-
- 10 edited
-
include/relphot.h (modified) (1 diff)
-
src/GridOps.c (modified) (1 diff)
-
src/ImageOps.c (modified) (9 diffs)
-
src/MosaicOps.c (modified) (11 diffs)
-
src/StarOps.c (modified) (12 diffs)
-
src/bcatalog.c (modified) (2 diffs)
-
src/plot_scatter.c (modified) (1 diff)
-
src/relphot_objects.c (modified) (1 diff)
-
src/select_images.c (modified) (1 diff)
-
src/setMrelFinal.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/relphot/include/relphot.h
r21153 r21508 23 23 short Xm; 24 24 float secz; 25 char code;25 char flags; 26 26 Coords coords; 27 27 } Mosaic; -
trunk/Ohana/src/relphot/src/GridOps.c
r20936 r21508 369 369 370 370 // skip stars marked as BAD 371 if (catalog[c].average[n]. code& STAR_BAD) {371 if (catalog[c].average[n].flags & STAR_BAD) { 372 372 Nrel ++; 373 373 continue; -
trunk/Ohana/src/relphot/src/ImageOps.c
r20936 r21508 244 244 if (i == -1) return (NAN); 245 245 246 if (image[i]. code& IMAGE_BAD) return (NAN);246 if (image[i].flags & IMAGE_BAD) return (NAN); 247 247 value = image[i].Mcal; 248 248 return (value); … … 285 285 /* on PoorImages run, skip good images */ 286 286 if (PoorImages) { 287 bad = image[i]. code& (ID_IMAGE_FEW | ID_IMAGE_POOR | ID_IMAGE_SKIP);287 bad = image[i].flags & (ID_IMAGE_FEW | ID_IMAGE_POOR | ID_IMAGE_SKIP); 288 288 if (!bad) continue; 289 289 } … … 331 331 mark = (N < IMAGE_TOOFEW) || (N < IMAGE_GOOD_FRACTION*Nlist[i]); 332 332 if (mark) { 333 image[i]. code|= ID_IMAGE_FEW;333 image[i].flags |= ID_IMAGE_FEW; 334 334 Nfew ++; 335 335 } else { 336 image[i]. code&= ~ID_IMAGE_FEW;336 image[i].flags &= ~ID_IMAGE_FEW; 337 337 } 338 338 } … … 373 373 374 374 for (i = N = 0; i < Nimage; i++) { 375 if (image[i]. code& IMAGE_BAD) continue;375 if (image[i].flags & IMAGE_BAD) continue; 376 376 mlist[N] = fabs (image[i].Mcal); 377 377 slist[N] = image[i].dMcal; … … 390 390 for (i = 0; i < Nimage; i++) { 391 391 mark = FALSE; 392 image[i]. code&= ~ID_IMAGE_POOR;392 image[i].flags &= ~ID_IMAGE_POOR; 393 393 mark = (image[i].dMcal > MaxScatter) || (fabs(image[i].Mcal - MedOffset) > MaxOffset); 394 394 if (mark) { 395 395 Nmark ++; 396 image[i]. code|= ID_IMAGE_POOR;396 image[i].flags |= ID_IMAGE_POOR; 397 397 } else { 398 image[i]. code&= ~ID_IMAGE_POOR;398 image[i].flags &= ~ID_IMAGE_POOR; 399 399 } 400 400 } … … 470 470 n = 0; 471 471 for (i = 0; i < Nimage; i++) { 472 if (image[i]. code& IMAGE_BAD) continue;472 if (image[i].flags & IMAGE_BAD) continue; 473 473 474 474 N = 0; … … 512 512 for (i = 0; i < Nimage; i++) { 513 513 514 if (image[i]. code& IMAGE_BAD) continue;514 if (image[i].flags & IMAGE_BAD) continue; 515 515 516 516 list[n] = pow (10.0, 0.01*image[i].Xm); … … 540 540 for (i = 0; i < Nimage; i++) { 541 541 542 if (image[i]. code& IMAGE_BAD) continue;542 if (image[i].flags & IMAGE_BAD) continue; 543 543 544 544 list[n] = image[i].Mcal; … … 568 568 for (i = 0; i < Nimage; i++) { 569 569 570 if (image[i]. code& IMAGE_BAD) continue;570 if (image[i].flags & IMAGE_BAD) continue; 571 571 572 572 list[n] = image[i].dMcal; -
trunk/Ohana/src/relphot/src/MosaicOps.c
r20323 r21508 68 68 mosaic[Nmosaic].dMcal = 0.0; 69 69 mosaic[Nmosaic].Xm = 0.0; 70 mosaic[Nmosaic]. code = image[i].code;70 mosaic[Nmosaic].flags = image[i].flags; 71 71 mosaic[Nmosaic].secz = image[i].secz; 72 72 … … 183 183 image[im].dMcal = mosaic[i].dMcal; 184 184 image[im].Xm = mosaic[i].Xm; 185 image[im]. code |= (mosaic[i].code& ID_IMAGE_FEW);186 image[im]. code |= (mosaic[i].code& ID_IMAGE_POOR);185 image[im].flags |= (mosaic[i].flags & ID_IMAGE_FEW); 186 image[im].flags |= (mosaic[i].flags & ID_IMAGE_POOR); 187 187 } 188 188 } … … 306 306 if (i == -1) return (NAN); 307 307 308 if (mosaic[i]. code& IMAGE_BAD) return (NAN);308 if (mosaic[i].flags & IMAGE_BAD) return (NAN); 309 309 value = mosaic[i].Mcal; 310 310 return (value); … … 343 343 /* on PoorImages run, skip good images */ 344 344 if (PoorImages) { 345 bad = mosaic[i]. code& (ID_IMAGE_FEW | ID_IMAGE_POOR | ID_IMAGE_SKIP);345 bad = mosaic[i].flags & (ID_IMAGE_FEW | ID_IMAGE_POOR | ID_IMAGE_SKIP); 346 346 if (!bad) continue; 347 347 } … … 393 393 if (mark) { 394 394 fprintf (stderr, "marked image %s (%d), (%d < %d) || (%d < %f*%d)\n", image[imlist[i][0]].name, i, N, IMAGE_TOOFEW, N, IMAGE_GOOD_FRACTION, Nlist[i]); 395 mosaic[i]. code|= ID_IMAGE_FEW;395 mosaic[i].flags |= ID_IMAGE_FEW; 396 396 Nfew ++; 397 397 } else { 398 mosaic[i]. code&= ~ID_IMAGE_FEW;398 mosaic[i].flags &= ~ID_IMAGE_FEW; 399 399 } 400 400 } … … 434 434 n = 0; 435 435 for (i = 0; i < Nmosaic; i++) { 436 if (mosaic[i]. code& IMAGE_BAD) continue;436 if (mosaic[i].flags & IMAGE_BAD) continue; 437 437 list[n] = mosaic[i].Mcal; 438 438 dlist[n] = 1; … … 462 462 for (i = 0; i < Nmosaic; i++) { 463 463 464 if (mosaic[i]. code& IMAGE_BAD) continue;464 if (mosaic[i].flags & IMAGE_BAD) continue; 465 465 list[n] = mosaic[i].dMcal; 466 466 dlist[n] = 1; … … 490 490 n = 0; 491 491 for (i = 0; i < Nmosaic; i++) { 492 if (mosaic[i]. code& IMAGE_BAD) continue;492 if (mosaic[i].flags & IMAGE_BAD) continue; 493 493 494 494 N = 0; … … 534 534 for (i = 0; i < Nmosaic; i++) { 535 535 536 if (mosaic[i]. code& IMAGE_BAD) continue;536 if (mosaic[i].flags & IMAGE_BAD) continue; 537 537 list[n] = pow(10.0, 0.01*mosaic[i].Xm); 538 538 dlist[n] = 1; … … 564 564 565 565 for (i = N = 0; i < Nmosaic; i++) { 566 if (mosaic[i]. code& IMAGE_BAD) continue;566 if (mosaic[i].flags & IMAGE_BAD) continue; 567 567 mlist[N] = mosaic[i].Mcal; 568 568 slist[N] = mosaic[i].dMcal; … … 584 584 if (mark) { 585 585 Nmark ++; 586 mosaic[i]. code|= ID_IMAGE_POOR;586 mosaic[i].flags |= ID_IMAGE_POOR; 587 587 } else { 588 mosaic[i]. code&= ~ID_IMAGE_POOR;588 mosaic[i].flags &= ~ID_IMAGE_POOR; 589 589 } 590 590 } -
trunk/Ohana/src/relphot/src/StarOps.c
r21153 r21508 26 26 27 27 ave = catalog[cat].measure[meas].averef; 28 if (catalog[cat].average[ave]. code& STAR_BAD) return (NAN);28 if (catalog[cat].average[ave].flags & STAR_BAD) return (NAN); 29 29 30 30 value = catalog[cat].secfilt[PhotNsec*ave+PhotSec].M; … … 44 44 45 45 /* calculate the average value for a single star */ 46 if (catalog[i].average[j]. code& STAR_BAD) continue;46 if (catalog[i].average[j].flags & STAR_BAD) continue; 47 47 m = catalog[i].average[j].measureOffset; 48 48 … … 89 89 90 90 if (N <= STAR_TOOFEW) { /* too few measurements */ 91 catalog[i].average[j]. code|= ID_STAR_FEW;91 catalog[i].average[j].flags |= ID_STAR_FEW; 92 92 Nfew ++; 93 93 } else { 94 catalog[i].average[j]. code&= ~ID_STAR_FEW;94 catalog[i].average[j].flags &= ~ID_STAR_FEW; 95 95 } 96 96 … … 208 208 209 209 // XXX this is a hack for the 2MASS search; better to save an average value? 210 if (catalog[i].measure[m]. qPSF< 0.85) continue;210 if (catalog[i].measure[m].psfQual < 0.85) continue; 211 211 212 212 list[N] = Msys - catalog[i].measure[m].Mcal; … … 280 280 for (i = Ntot = 0; i < Ncatalog; i++) { 281 281 for (j = 0; j < catalog[i].Naverage; j++) { 282 if (catalog[i].average[j]. code& STAR_BAD) continue;282 if (catalog[i].average[j].flags & STAR_BAD) continue; 283 283 Xm = catalog[i].secfilt[PhotNsec*j+PhotSec].Xm; 284 284 if (Xm == -1) continue; … … 306 306 mark = (dM > MaxScatter) || (Xm == NAN_S_SHORT) || (Chisq > MaxChisq); 307 307 if (mark) { 308 catalog[i].average[j]. code|= ID_STAR_POOR;308 catalog[i].average[j].flags |= ID_STAR_POOR; 309 309 Ndel ++; 310 310 } else { 311 catalog[i].average[j]. code&= ~ID_STAR_POOR;311 catalog[i].average[j].flags &= ~ID_STAR_POOR; 312 312 } 313 313 Nave ++; … … 351 351 352 352 /* skip bad stars to prevent them from becoming good (on inner sample) */ 353 if (catalog[i].average[j]. code& STAR_BAD) continue;353 if (catalog[i].average[j].flags & STAR_BAD) continue; 354 354 355 355 /* on final processing, skip stars already measured */ … … 448 448 449 449 /* calculate the average value for a single star */ 450 if (catalog[i].average[j]. code& STAR_BAD) continue;450 if (catalog[i].average[j].flags & STAR_BAD) continue; 451 451 m = catalog[i].average[j].measureOffset; 452 452 … … 493 493 494 494 /* calculate the average value for a single star */ 495 if (catalog[i].average[j]. code& STAR_BAD) continue;495 if (catalog[i].average[j].flags & STAR_BAD) continue; 496 496 497 497 Xm = catalog[i].secfilt[PhotNsec*j+PhotSec].Xm; … … 529 529 530 530 /* calculate the average value for a single star */ 531 if (catalog[i].average[j]. code& STAR_BAD) continue;531 if (catalog[i].average[j].flags & STAR_BAD) continue; 532 532 533 533 dM = catalog[i].secfilt[PhotNsec*j+PhotSec].dM; … … 559 559 for (i = 0; i < Ncatalog; i++) { 560 560 for (j = 0; j < catalog[i].Naverage; j++) { 561 if (catalog[i].average[j]. code& STAR_BAD) continue;561 if (catalog[i].average[j].flags & STAR_BAD) continue; 562 562 dMrel = catalog[i].secfilt[PhotNsec*j+PhotSec].dM; 563 563 bin = dMrel / 0.00025; … … 590 590 for (i = 0; i < Ncatalog; i++) { 591 591 for (j = 0; j < catalog[i].Naverage; j++) { 592 if (catalog[i].average[j]. code& STAR_BAD) continue;592 if (catalog[i].average[j].flags & STAR_BAD) continue; 593 593 xlist[N] = catalog[i].secfilt[PhotNsec*j+PhotSec].M; 594 594 value = catalog[i].secfilt[PhotNsec*j+PhotSec].Xm; -
trunk/Ohana/src/relphot/src/bcatalog.c
r20323 r21508 34 34 subcatalog[0].secfilt[PhotNsec*Naverage+PhotSec].M = NAN; 35 35 subcatalog[0].secfilt[PhotNsec*Naverage+PhotSec].dM = NAN; 36 subcatalog[0].average[Naverage]. code&= ~ID_STAR_FEW;37 subcatalog[0].average[Naverage]. code&= ~ID_STAR_POOR;36 subcatalog[0].average[Naverage].flags &= ~ID_STAR_FEW; 37 subcatalog[0].average[Naverage].flags &= ~ID_STAR_POOR; 38 38 } 39 39 … … 55 55 /* select measurements by quality */ 56 56 // XXX ignore this criterion for REF measurements? 57 if (DophotSelect && (catalog[0].measure[offset].dophot != DophotValue)) continue; 57 // XXX chnage this to select by bitflags 58 if (DophotSelect && ((catalog[0].measure[offset].photFlags >> 16) != DophotValue)) continue; 58 59 59 60 /* select measurements by mag limit */ -
trunk/Ohana/src/relphot/src/plot_scatter.c
r20193 r21508 23 23 24 24 /* calculate the average value for a single star */ 25 if (catalog[i].average[j]. code& STAR_BAD) continue;25 if (catalog[i].average[j].flags & STAR_BAD) continue; 26 26 m = catalog[i].average[j].measureOffset; 27 27 -
trunk/Ohana/src/relphot/src/relphot_objects.c
r21153 r21508 42 42 Nsecfilt = catalog.Nsecfilt; 43 43 for (j = 0; j < catalog.Naverage; j++) { 44 catalog.average[j]. code= 0;44 catalog.average[j].flags = 0; 45 45 for (k = 0; k < Nsecfilt; k++) { 46 catalog.secfilt[j*Nsecfilt + k].M = NAN; 47 catalog.secfilt[j*Nsecfilt + k].dM = NAN; 48 catalog.secfilt[j*Nsecfilt + k].Xm = NAN_S_SHORT; 46 catalog.secfilt[j*Nsecfilt + k].M = NAN; 47 catalog.secfilt[j*Nsecfilt + k].M_20 = NAN_S_SHORT; 48 catalog.secfilt[j*Nsecfilt + k].M_80 = NAN_S_SHORT; 49 catalog.secfilt[j*Nsecfilt + k].dM = NAN; 50 catalog.secfilt[j*Nsecfilt + k].Xm = NAN_S_SHORT; 49 51 catalog.secfilt[j*Nsecfilt + k].Ncode = 0; 50 52 catalog.secfilt[j*Nsecfilt + k].Nused = 0; 51 catalog.secfilt[j*Nsecfilt + k].dummy = 0;52 53 } 53 54 m = catalog.average[j].measureOffset; -
trunk/Ohana/src/relphot/src/select_images.c
r15509 r21508 133 133 image[nimage] = timage[i]; 134 134 /* always allow 'few' images to succeed, if possible */ 135 if (image[nimage]. code& ID_IMAGE_FEW) {136 image[nimage]. code&= ~(ID_IMAGE_FEW | ID_IMAGE_POOR);135 if (image[nimage].flags & ID_IMAGE_FEW) { 136 image[nimage].flags &= ~(ID_IMAGE_FEW | ID_IMAGE_POOR); 137 137 } 138 138 if (RESET) { 139 139 assignMcal (&image[nimage], (double *) NULL, -1); 140 140 image[nimage].dMcal = NAN; 141 image[nimage]. code&= ~ID_IMAGE_POOR;141 image[nimage].flags &= ~ID_IMAGE_POOR; 142 142 } 143 143 line_number[nimage] = i; -
trunk/Ohana/src/relphot/src/setMrelFinal.c
r17201 r21508 54 54 /* clear ID_STAR_POOR, ID_STAR_FEW, ID_MEAS_NOCAL values before writing ??? */ 55 55 for (i = 0; i < catalog[0].Naverage; i++) { 56 catalog[0].average[i]. code&= ~ID_STAR_FEW;57 catalog[0].average[i]. code&= ~ID_STAR_POOR;56 catalog[0].average[i].flags &= ~ID_STAR_FEW; 57 catalog[0].average[i].flags &= ~ID_STAR_POOR; 58 58 m = catalog[0].average[i].measureOffset; 59 59 for (j = 0; j < catalog[0].average[i].Nmeasure; j++, m++) { … … 102 102 103 103 /* skip measurements with sat. dophot values */ 104 if ((pass < 4) && (catalog[0].measure[m].dophot == 10)) goto skip; 104 // XXX we need to fix this: use the photFlags to ID saturation... 105 // if ((pass < 4) && (catalog[0].measure[m].dophot == 10)) goto skip; 105 106 106 107 /* skip measurements from BAD images and mosaics */ … … 116 117 } 117 118 118 d1 = (catalog[0].measure[m].dophot == 1); 119 d2 = (catalog[0].measure[m].dophot == 2); 119 // d1 = (catalog[0].measure[m].dophot == 1); 120 // d2 = (catalog[0].measure[m].dophot == 2); 121 fprintf (stderr, "fix the dophot / type selections!"); 122 abort (); 120 123 121 124 /* skip measurements by measurement error */
Note:
See TracChangeset
for help on using the changeset viewer.
