IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 4, 2011, 1:12:39 PM (15 years ago)
Author:
eugene
Message:

use the smoothed image for footprint culling; use a more stringent culling for saturated stars; more tweaks to get sat stars to be fitted; various updates to psphotStack; unify psphotImageLoop varients; be a bit careful about number of stars in a PSF clump

Location:
trunk/psphot
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/psphot

  • trunk/psphot/src/psphotVisual.c

    r30624 r31154  
    3939    switch (channel) {
    4040      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;
    4943      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");
    5745        return kapa2;
    5846      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");
    6648        return kapa3;
    6749      default:
     
    7456
    7557    int myKapa = psphotKapaChannel (channel);
     58    if (myKapa == -1) return false;
     59
    7660    if (!(strcasecmp (overlay, "all"))) {
    7761        KiiEraseOverlay (myKapa, "red");
     
    218202}
    219203
    220 bool psphotVisualScaleImage (int kapaFD, psImage *inImage, psImage *inMask, const char *name, int channel) {
     204bool psphotVisualScaleImage (int kapaFD, psImage *inImage, psImage *inMask, const char *name, float factor, int channel) {
    221205
    222206    KiiImage image;
     
    239223    strcpy (data.name, name);
    240224    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;
    243229    data.logflux = 0;
    244230
     
    283269    if (kapa == -1) return false;
    284270
     271    float factor = 1.0;
     272    if (readout->covariance) {
     273        factor = psImageCovarianceFactorForAperture(readout->covariance, 10.0);
     274    }
     275
    285276    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);
    288279
    289280    pmVisualAskUser(NULL);
     
    292283
    293284bool psphotVisualShowBackground (pmConfig *config, const pmFPAview *view, pmReadout *readout) {
    294 
    295     pmReadout *backgnd;
    296285
    297286    if (!pmVisualTestLevel("psphot.image.backgnd", 2)) return true;
     
    303292    pmFPAfile *file = psMetadataLookupPtr (&status, config->files, "PSPHOT.BACKGND");
    304293
    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);
    313303
    314304    pmVisualAskUser(NULL);
     
    339329    psphotVisualRangeImage (kapa, lsig, "log-signif", 2, min, max);
    340330    psFree (lsig);
     331
     332    pmVisualAskUser(NULL);
     333    return true;
     334}
     335
     336// requires psphotVisualShowImage
     337bool 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);
    341372
    342373    pmVisualAskUser(NULL);
     
    839870
    840871        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        }
    842881
    843882        pmMoments *moments = source->moments;
     
    9741013
    9751014    // examine PSF sources in S/N order (brightest first)
    976     sources = psArraySort (sources, pmSourceSortBySN);
     1015    sources = psArraySort (sources, pmSourceSortByFlux);
    9771016
    9781017    // counters to track the size of the image and area used in a row
     
    11261165
    11271166    // examine PSF sources in S/N order (brightest first)
    1128     sources = psArraySort (sources, pmSourceSortBySN);
     1167    sources = psArraySort (sources, pmSourceSortByFlux);
    11291168
    11301169    // counters to track the size of the image and area used in a row
     
    12271266    }
    12281267
    1229     psphotVisualScaleImage (myKapa, outsat, NULL, "satstar", 2);
     1268    psphotVisualScaleImage (myKapa, outsat, NULL, "satstar", 1.0, 2);
    12301269
    12311270    pmVisualAskUser(NULL);
     
    13551394    graphdata.xmax = +30.05;
    13561395    graphdata.ymin = -0.05;
    1357     graphdata.ymax = +5.05;
     1396    graphdata.ymax = +8.05;
    13581397    KapaSetLimits (myKapa, &graphdata);
    13591398
     
    14151454    graphdata.xmax = +1.51;
    14161455    graphdata.ymin = -0.05;
    1417     graphdata.ymax = +5.05;
     1456    graphdata.ymax = +8.05;
    14181457    graphdata.color = KapaColorByName ("black");
    14191458    KapaSetLimits (myKapa, &graphdata);
     
    24962535    if (myKapa == -1) return false;
    24972536
     2537    float factor = 1.0;
     2538    if (readout->covariance) {
     2539        factor = psImageCovarianceFactorForAperture(readout->covariance, 10.0);
     2540    }
     2541
    24982542    if (reshow) {
    24992543        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);
    25032547
    25042548    pmVisualAskUser(NULL);
     
    26532697    graphdata.ymax = -32.0;
    26542698
    2655     FILE *f = fopen ("chisq.dat", "w");
    2656 
    26572699    // construct the plot vectors
    26582700    int n = 0;
     
    26722714        graphdata.ymin = PS_MIN(graphdata.ymin, y->data.F32[n]);
    26732715        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 
    26772716        n++;
    26782717    }
    26792718    x->n = y->n = n;
    2680     fclose (f);
    26812719
    26822720    float range;
Note: See TracChangeset for help on using the changeset viewer.