IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 19643


Ignore:
Timestamp:
Sep 22, 2008, 12:31:54 PM (18 years ago)
Author:
Paul Price
Message:

Adding additional output statistics for QA

Location:
trunk/ppStack/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppStack/src/ppStackLoop.c

    r19565 r19643  
    179179{
    180180    assert(config);
     181
     182    psTimerStart("PPSTACK_TOTAL");
    181183
    182184    psMetadata *recipe = psMetadataLookupMetadata(NULL, config->recipes, PPSTACK_RECIPE); // ppStack recipe
     
    429431        psArray *regions = NULL, *kernels = NULL; // Regions and kernels used in subtraction
    430432        psArray *sources = haveSources ? globalSources : indSources->data[i]; // Sources for matching
     433        psTimerStart("PPSTACK_MATCH");
    431434        if (!ppStackMatch(readout, &regions, &kernels, &matchChi2->data.F32[i],
    432435                          sources, targetPSF, rng, config)) {
     
    436439            continue;
    437440        }
     441
     442        if (stats) {
     443            float stampMean = psMetadataLookupF32(NULL, readout->analysis,
     444                                                  PM_SUBTRACTION_ANALYSIS_STAMPS_MEAN); // Mean deviation
     445            float stampRMS = psMetadataLookupF32(NULL, readout->analysis,
     446                                                 PM_SUBTRACTION_ANALYSIS_STAMPS_RMS);  // RMS deviation
     447            psMetadataAddF32(stats, PS_LIST_TAIL, "TIME_MATCH", PS_META_DUPLICATE_OK,
     448                             "Time to match PSF", psTimerMark("PPSTACK_MATCH"));
     449            psMetadataAddF32(stats, PS_LIST_TAIL, "STAMP.MEAN", PS_META_DUPLICATE_OK,
     450                             "Mean deviation for stamps", stampMean);
     451            psMetadataAddF32(stats, PS_LIST_TAIL, "STAMP.RMS", PS_META_DUPLICATE_OK,
     452                             "RMS deviation for stamps", stampRMS);
     453
     454        }
     455        psLogMsg("ppStack", PS_LOG_INFO, "Time to match image %d: %f sec", i, psTimerClear("PPSTACK_MATCH"));
    438456
    439457        subRegions->data[i] = regions;
     
    477495    ppStackThreadInit();
    478496    ppStackThreadData *stack = ppStackThreadDataSetup(cells, imageNames, maskNames, weightNames, config);
     497
     498    psTimerStart("PPSTACK_INITIAL");
    479499
    480500    memDump("preinitial");
     
    640660    }
    641661
     662    if (stats) {
     663        psMetadataAddF32(stats, PS_LIST_TAIL, "TIME_INITIAL", 0,
     664                         "Time to make initial stack", psTimerMark("PPSTACK_INITIAL"));
     665    }
     666    psLogMsg("ppStack", PS_LOG_INFO, "Time to make initial stack: %f sec", psTimerClear("PPSTACK_INITIAL"));
     667
     668    psTimerStart("PPSTACK_REJECT");
     669
    642670    // Pixel rejection
    643671    psArray *rejected = psArrayAlloc(num);
     
    696724        // Reject bad pixels
    697725        for (int i = 0; i < num; i++) {
     726            psTimerStart("PPSTACK_REJECT");
    698727
    699728#ifdef TESTING
     
    751780            }
    752781            rejected->data[i] = reject;
     782
     783            if (stats) {
     784                psMetadataAddF32(stats, PS_LIST_TAIL, "TIME_REJECT", PS_META_DUPLICATE_OK,
     785                                 "Time to perform rejection", psTimerMark("PPSTACK_REJECT"));
     786                psMetadataAddS32(stats, PS_LIST_TAIL, "REJECT_PIXELS", PS_META_DUPLICATE_OK,
     787                                 "Number of pixels rejected", reject ? reject->n : 0);
     788            }
     789            psLogMsg("ppStack", PS_LOG_INFO, "Time to perform rejection on image %d: %f sec", i,
     790                     psTimerClear("PPSTACK_REJECT"));
    753791        }
    754792
     
    767805            return false;
    768806        }
    769     }
     807
     808        if (stats) {
     809            psMetadataAddF32(stats, PS_LIST_TAIL, "TIME_REJECT", PS_META_DUPLICATE_OK,
     810                             "Time to perform rejection", psTimerMark("PPSTACK_REJECT"));
     811            psMetadataAddS32(stats, PS_LIST_TAIL, "REJECT_IMAGES", 0,
     812                             "Number of images rejected completely", numRejected);
     813        }
     814   }
     815
     816    psTimerStart("PPSTACK_FINAL");
    770817
    771818    memDump("reject");
     
    828875
    829876    memDump("final");
     877
     878    if (stats) {
     879        psMetadataAddF32(stats, PS_LIST_TAIL, "TIME_FINAL", 0,
     880                         "Time to make final stack", psTimerMark("PPSTACK_FINAL"));
     881    }
     882    psLogMsg("ppStack", PS_LOG_INFO, "Time to make final stack: %f sec", psTimerClear("PPSTACK_FINAL"));
    830883
    831884    psTrace("ppStack", 2, "Cleaning up after combination....\n");
     
    904957        psTrace("ppStack", 1, "Photometering stacked image....\n");
    905958
     959        psTimerStart("PPSTACK_PHOT");
     960
    906961        fileActivation(config, combineFiles, false);
    907962        fileActivation(config, photFiles, true);
     
    916971
    917972        fileActivation(config, combineFiles, true);
     973
     974        if (stats) {
     975            pmFPAfile *photFile = psMetadataLookupPtr(NULL, config->files, "PSPHOT.INPUT"); // File
     976            pmReadout *photRO = pmFPAviewThisReadout(view, photFile->fpa); // Readout with the sources
     977            psArray *sources = psMetadataLookupPtr(NULL, photRO->analysis, "PSPHOT.SOURCES"); // Sources
     978            psMetadataAddS32(stats, PS_LIST_TAIL, "NUM_SOURCES", 0, "Number of sources detected", sources->n);
     979            psMetadataAddF32(stats, PS_LIST_TAIL, "TIME_PHOT", 0,
     980                             "Time to do photometry", psTimerMark("PPSTACK_PHOT"));
     981        }
     982        psLogMsg("ppStack", PS_LOG_INFO, "Time to do photometry: %f sec", psTimerClear("PPSTACK_PHOT"));
    918983    }
    919984
     
    9521017    // Write out summary statistics
    9531018    if (stats) {
     1019        psMetadataAddF32(stats, PS_LIST_TAIL, "TIME_STACK", 0,
     1020                         "Time to do photometry", psTimerClear("PPSTACK_TOTAL"));
     1021
    9541022        const char *statsMDC = psMetadataConfigFormat(stats);
    9551023        if (!statsMDC || strlen(statsMDC) == 0) {
  • trunk/ppStack/src/ppStackMatch.c

    r19600 r19643  
    266266            readout->mask   = psMemIncrRefCounter(output->mask);
    267267            readout->weight = psMemIncrRefCounter(output->weight);
     268
     269            psMetadataCopy(readout->analysis, output->analysis);
    268270        } else {
    269271            // Fake the convolution
Note: See TracChangeset for help on using the changeset viewer.