Changeset 31154 for trunk/psphot/src/psphotVisual.c
- Timestamp:
- Apr 4, 2011, 1:12:39 PM (15 years ago)
- Location:
- trunk/psphot
- Files:
-
- 2 edited
-
. (modified) (2 props)
-
src/psphotVisual.c (modified) (17 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psphot
- Property svn:ignore
-
old new 19 19 psphot-config 20 20 Doxyfile 21 a.out.dSYM
-
- Property svn:mergeinfo changed
- Property svn:ignore
-
trunk/psphot/src/psphotVisual.c
r30624 r31154 39 39 switch (channel) { 40 40 case 1: 41 if (kapa1 == -1) { 42 kapa1 = KapaOpenNamedSocket ("kapa", "psphot:images"); 43 if (kapa1 == -1) { 44 fprintf (stderr, "failure to open kapa; visual mode disabled\n"); 45 pmVisualSetVisual(false); 46 } 47 } 48 return kapa1; 41 pmVisualInitWindow (&kapa1, "psphot:images"); 42 return kapa1; 49 43 case 2: 50 if (kapa2 == -1) { 51 kapa2 = KapaOpenNamedSocket ("kapa", "psphot:plots"); 52 if (kapa2 == -1) { 53 fprintf (stderr, "failure to open kapa; visual mode disabled\n"); 54 pmVisualSetVisual(false); 55 } 56 } 44 pmVisualInitWindow (&kapa2, "psphot:plots"); 57 45 return kapa2; 58 46 case 3: 59 if (kapa3 == -1) { 60 kapa3 = KapaOpenNamedSocket ("kapa", "psphot:stamps"); 61 if (kapa3 == -1) { 62 fprintf (stderr, "failure to open kapa; visual mode disabled\n"); 63 pmVisualSetVisual(false); 64 } 65 } 47 pmVisualInitWindow (&kapa3, "psphot:stamps"); 66 48 return kapa3; 67 49 default: … … 74 56 75 57 int myKapa = psphotKapaChannel (channel); 58 if (myKapa == -1) return false; 59 76 60 if (!(strcasecmp (overlay, "all"))) { 77 61 KiiEraseOverlay (myKapa, "red"); … … 218 202 } 219 203 220 bool psphotVisualScaleImage (int kapaFD, psImage *inImage, psImage *inMask, const char *name, int channel) {204 bool psphotVisualScaleImage (int kapaFD, psImage *inImage, psImage *inMask, const char *name, float factor, int channel) { 221 205 222 206 KiiImage image; … … 239 223 strcpy (data.name, name); 240 224 strcpy (data.file, name); 241 data.zero = stats->robustMedian - stats->robustStdev; 242 data.range = 5*stats->robustStdev; 225 data.zero = stats->robustMedian - factor*stats->robustStdev; 226 227 // XXX I we have a smoothed image, this make a much-too-tight display range 228 data.range = 5*factor*stats->robustStdev; 243 229 data.logflux = 0; 244 230 … … 283 269 if (kapa == -1) return false; 284 270 271 float factor = 1.0; 272 if (readout->covariance) { 273 factor = psImageCovarianceFactorForAperture(readout->covariance, 10.0); 274 } 275 285 276 psphotVisualShowMask (kapa, readout->mask, "mask", 2); 286 psphotVisualScaleImage (kapa, readout->variance, readout->mask, "variance", 1 );287 psphotVisualScaleImage (kapa, readout->image, readout->mask, "image", 0);277 psphotVisualScaleImage (kapa, readout->variance, readout->mask, "variance", 1.0, 1); 278 psphotVisualScaleImage (kapa, readout->image, readout->mask, "image", sqrt(factor), 0); 288 279 289 280 pmVisualAskUser(NULL); … … 292 283 293 284 bool psphotVisualShowBackground (pmConfig *config, const pmFPAview *view, pmReadout *readout) { 294 295 pmReadout *backgnd;296 285 297 286 if (!pmVisualTestLevel("psphot.image.backgnd", 2)) return true; … … 303 292 pmFPAfile *file = psMetadataLookupPtr (&status, config->files, "PSPHOT.BACKGND"); 304 293 305 if (file->mode == PM_FPA_MODE_INTERNAL) { 306 backgnd = file->readout; 307 } else { 308 backgnd = pmFPAviewThisReadout (view, file->fpa); 309 } 310 311 psphotVisualScaleImage (kapa, backgnd->image, readout->mask, "backgnd", 2); 312 psphotVisualScaleImage (kapa, readout->image, readout->mask, "backsub", 0); 294 pmReadout *backgnd = READOUT_OR_INTERNAL(view, file); 295 296 float factor = 1.0; 297 if (readout->covariance) { 298 factor = psImageCovarianceFactorForAperture(readout->covariance, 10.0); 299 } 300 301 psphotVisualScaleImage (kapa, backgnd->image, readout->mask, "backgnd", 1.0, 2); 302 psphotVisualScaleImage (kapa, readout->image, readout->mask, "backsub", sqrt(factor), 0); 313 303 314 304 pmVisualAskUser(NULL); … … 339 329 psphotVisualRangeImage (kapa, lsig, "log-signif", 2, min, max); 340 330 psFree (lsig); 331 332 pmVisualAskUser(NULL); 333 return true; 334 } 335 336 // requires psphotVisualShowImage 337 bool psphotVisualShowSources (psArray *sources) { 338 339 int Noverlay; 340 KiiOverlay *overlay; 341 342 if (!pmVisualTestLevel("psphot.objects.sources", 1)) return true; 343 344 int kapa = psphotKapaChannel (1); 345 if (kapa == -1) return false; 346 347 // note: this uses the Ohana allocation tools: 348 // ALLOCATE (overlay, KiiOverlay, 3*peaks->n + 1); 349 ALLOCATE (overlay, KiiOverlay, sources->n + 2); 350 351 Noverlay = 0; 352 for (int i = 0; i < sources->n; i++) { 353 354 pmSource *source = sources->data[i]; 355 if (!source) continue; 356 357 pmPeak *peak = source->peak; 358 if (!peak) continue; 359 360 overlay[Noverlay].type = KII_OVERLAY_BOX; 361 overlay[Noverlay].x = peak->xf; 362 overlay[Noverlay].y = peak->yf; 363 overlay[Noverlay].dx = 4.0; 364 overlay[Noverlay].dy = 4.0; 365 overlay[Noverlay].angle = 0.0; 366 overlay[Noverlay].text = NULL; 367 Noverlay ++; 368 } 369 370 KiiLoadOverlay (kapa, overlay, Noverlay, "blue"); 371 FREE (overlay); 341 372 342 373 pmVisualAskUser(NULL); … … 839 870 840 871 if (source->type != type) continue; 841 if (mode && !(source->mode & mode)) continue; 872 873 if (mode == PM_SOURCE_MODE_PSFSTAR) { 874 bool keep = false; 875 keep |= (source->tmpFlags & PM_SOURCE_TMPF_CANDIDATE_PSFSTAR); 876 keep |= (source->mode & PM_SOURCE_MODE_PSFSTAR); 877 if (!keep) continue; 878 } else { 879 if (mode && !(source->mode & mode)) continue; 880 } 842 881 843 882 pmMoments *moments = source->moments; … … 974 1013 975 1014 // examine PSF sources in S/N order (brightest first) 976 sources = psArraySort (sources, pmSourceSortBy SN);1015 sources = psArraySort (sources, pmSourceSortByFlux); 977 1016 978 1017 // counters to track the size of the image and area used in a row … … 1126 1165 1127 1166 // examine PSF sources in S/N order (brightest first) 1128 sources = psArraySort (sources, pmSourceSortBy SN);1167 sources = psArraySort (sources, pmSourceSortByFlux); 1129 1168 1130 1169 // counters to track the size of the image and area used in a row … … 1227 1266 } 1228 1267 1229 psphotVisualScaleImage (myKapa, outsat, NULL, "satstar", 2);1268 psphotVisualScaleImage (myKapa, outsat, NULL, "satstar", 1.0, 2); 1230 1269 1231 1270 pmVisualAskUser(NULL); … … 1355 1394 graphdata.xmax = +30.05; 1356 1395 graphdata.ymin = -0.05; 1357 graphdata.ymax = + 5.05;1396 graphdata.ymax = +8.05; 1358 1397 KapaSetLimits (myKapa, &graphdata); 1359 1398 … … 1415 1454 graphdata.xmax = +1.51; 1416 1455 graphdata.ymin = -0.05; 1417 graphdata.ymax = + 5.05;1456 graphdata.ymax = +8.05; 1418 1457 graphdata.color = KapaColorByName ("black"); 1419 1458 KapaSetLimits (myKapa, &graphdata); … … 2496 2535 if (myKapa == -1) return false; 2497 2536 2537 float factor = 1.0; 2538 if (readout->covariance) { 2539 factor = psImageCovarianceFactorForAperture(readout->covariance, 10.0); 2540 } 2541 2498 2542 if (reshow) { 2499 2543 psphotVisualShowMask (myKapa, readout->mask, "mask", 2); 2500 psphotVisualScaleImage (myKapa, readout->variance, readout->mask, "variance", 1 );2501 } 2502 psphotVisualScaleImage (myKapa, readout->image, readout->mask, "resid", 0);2544 psphotVisualScaleImage (myKapa, readout->variance, readout->mask, "variance", 1.0, 1); 2545 } 2546 psphotVisualScaleImage (myKapa, readout->image, readout->mask, "resid", sqrt(factor), 0); 2503 2547 2504 2548 pmVisualAskUser(NULL); … … 2653 2697 graphdata.ymax = -32.0; 2654 2698 2655 FILE *f = fopen ("chisq.dat", "w");2656 2657 2699 // construct the plot vectors 2658 2700 int n = 0; … … 2672 2714 graphdata.ymin = PS_MIN(graphdata.ymin, y->data.F32[n]); 2673 2715 graphdata.ymax = PS_MAX(graphdata.ymax, y->data.F32[n]); 2674 2675 fprintf (f, "%d %d %f %f\n", i, n, x->data.F32[n], y->data.F32[n]);2676 2677 2716 n++; 2678 2717 } 2679 2718 x->n = y->n = n; 2680 fclose (f);2681 2719 2682 2720 float range;
Note:
See TracChangeset
for help on using the changeset viewer.
