IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Oct 6, 2008, 12:24:10 PM (18 years ago)
Author:
Paul Price
Message:

Don't put statistics on an FPA: too troublesome to get to, and it's ok to just carry around a psMetadata in ppImageLoop, passing it to functions that need it. Updated times for output statistics.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppImage/src/ppImageStatsOutput.c

    r18069 r19928  
    66
    77// write stats to output file
    8 bool ppImageStatsOutput (pmConfig *config, const ppImageOptions *options) {
    9 
     8bool ppImageStatsOutput(pmConfig *config, psMetadata *stats, const ppImageOptions *options)
     9{
    1010    bool mdok;
    1111
    1212    // measure statistics, or ignore?
    13     if (!options->doStats) return true;
    14 
    15     // PPIMAGE.STATS is stored on PPIMAGE.OUTPUT
    16     pmFPAfile *output = psMetadataLookupPtr(&mdok, config->files, "PPIMAGE.OUTPUT");
    17     if (!output) {
    18         psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to find PPIMAGE.OUTPUT entry in config file.\n");
    19         return false;
    20     }
    21 
    22     // select the fpa-level analysis stats metadata:
    23     psMetadata *stats = psMetadataLookupPtr (&mdok, output->fpa->analysis, "PPIMAGE.STATS");
    24     if (!stats) {
    25         psError(PS_ERR_UNEXPECTED_NULL, true, "Unable to find PPIMAGE.STATS entry in output fpa analysis.\n");
    26         return false;
    27     }
    28 
    29     // convert the stats MDC to a string
    30     char *statsMDC = psMetadataConfigFormat(stats);
    31     if (!statsMDC || strlen(statsMDC) == 0) {
    32         psError(PS_ERR_IO, false, "Unable to serialize stats metadata.\n");
    33         return false;
     13    if (!options->doStats) {
     14        return true;
    3415    }
    3516
     
    3718    const char *statsName = psMetadataLookupStr(&mdok, config->arguments, "STATS"); // Filename for statistics
    3819    if (!statsName && !strlen(statsName)) {
    39         psError (PS_ERR_UNEXPECTED_NULL, false, "missing STATS entry in arguments list.");
    40         psFree(statsMDC);
     20        psError(PS_ERR_UNEXPECTED_NULL, false, "missing STATS entry in arguments list.");
    4121        return false;
    4222    }
    4323
    44     // convert to a real UNIX filename
     24    // Write out
    4525    psString resolved = pmConfigConvertFilename(statsName, config, true, true); // Resolved filename
    46     FILE *statsFile = fopen (resolved, "w");
    47     if (!statsFile) {
    48         psError(PS_ERR_IO, true, "Unable to open statistics file %s for writing.\n", resolved);
    49         psFree(statsMDC);
     26    if (!psMetadataConfigWrite(stats, resolved)) {
     27        psError(PS_ERR_IO, false, "Unable to serialize stats metadata.\n");
    5028        psFree(resolved);
    5129        return false;
     
    5331    psFree(resolved);
    5432
    55     // write the stats MDC to a file
    56     // XXX why does this not call psMetadataConfigPrint?
    57     fprintf(statsFile, "%s", statsMDC);
    58 
    59     psFree(statsMDC);
    60     fclose(statsFile);
    6133    return true;
    6234}
Note: See TracChangeset for help on using the changeset viewer.