IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 12, 2009, 6:51:33 PM (17 years ago)
Author:
Paul Price
Message:

Put analysis metadata into header as well, useful for conveying quality information to clients.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psModules/src/imcombine/pmSubtractionAnalysis.c

    r25044 r25060  
    1717
    1818
    19 bool pmSubtractionAnalysis(psMetadata *analysis, pmSubtractionKernels *kernels, psRegion *region,
     19bool pmSubtractionAnalysis(psMetadata *analysis, psMetadata *header,
     20                           pmSubtractionKernels *kernels, psRegion *region,
    2021                           int numCols, int numRows)
    2122{
    22     if (analysis) {
    23         PS_ASSERT_METADATA_NON_NULL(analysis, false);
    24     }
     23    PS_ASSERT_METADATA_NON_NULL(analysis, false);
     24    PS_ASSERT_METADATA_NON_NULL(header, false);
    2525    PM_ASSERT_SUBTRACTION_KERNELS_NON_NULL(kernels, false);
    2626    PM_ASSERT_SUBTRACTION_KERNELS_SOLUTION(kernels, false);
     
    3838                         PS_DATA_REGION | PS_META_DUPLICATE_OK,
    3939                         "Region over which subtraction was performed", subRegion);
     40
     41        psString string = psRegionToString(*subRegion);
    4042        psFree(subRegion);
     43
     44        psMetadataAddPtr(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_REGION,
     45                         PS_DATA_REGION | PS_META_DUPLICATE_OK,
     46                         "Region over which subtraction was performed", string);
     47        psFree(string);
    4148    }
    4249
     
    4552                     PS_DATA_UNKNOWN | PS_META_DUPLICATE_OK, "Subtraction kernels", kernels);
    4653    psMetadataAddS32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_MODE,
    47                      PS_META_DUPLICATE_OK, "Subtraction kernels", kernels->mode);
     54                     PS_META_DUPLICATE_OK, "Subtraction mode", kernels->mode);
     55    psMetadataAddS32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_MODE,
     56                     PS_META_DUPLICATE_OK, "Subtraction mode", kernels->mode);
    4857
    4958    // Realisations of kernel
     
    163172        psFree(image);
    164173
    165         psMetadataItem *item = psMetadataLookup(analysis, PM_SUBTRACTION_ANALYSIS_DECONV_MAX); // Previous
    166         if (item) {
    167             item->data.F32 = PS_MAX(item->data.F32, max);
    168         } else {
    169             psMetadataAddF32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_DECONV_MAX, 0,
    170                              "Maximum deconvolution fraction", max);
     174        {
     175            psMetadataItem *item = psMetadataLookup(analysis, PM_SUBTRACTION_ANALYSIS_DECONV_MAX); // Previous
     176            if (item) {
     177                max = item->data.F32 = PS_MAX(item->data.F32, max);
     178            } else {
     179                psMetadataAddF32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_DECONV_MAX, 0,
     180                                 "Maximum deconvolution fraction", max);
     181            }
     182        }
     183
     184        {
     185            psMetadataItem *item = psMetadataLookup(header, PM_SUBTRACTION_ANALYSIS_DECONV_MAX); // Previous
     186            if (item) {
     187                item->data.F32 = max;
     188            } else {
     189                psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_DECONV_MAX, 0,
     190                                 "Maximum deconvolution fraction", max);
     191            }
    171192        }
    172193    }
     
    216237        psMetadataAddF32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_MYY,
    217238                         PS_META_DUPLICATE_OK, "Moment in yy", m02);
     239
     240        psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_NORM,
     241                         PS_META_DUPLICATE_OK, "Normalisation", m00);
     242        psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_MX,
     243                         PS_META_DUPLICATE_OK, "Moment in x", m10);
     244        psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_MY,
     245                         PS_META_DUPLICATE_OK, "Moment in y", m01);
     246        psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_MXX,
     247                         PS_META_DUPLICATE_OK, "Moment in xx", m20);
     248        psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_MXY,
     249                         PS_META_DUPLICATE_OK, "Moment in xy", m11);
     250        psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_MYY,
     251                         PS_META_DUPLICATE_OK, "Moment in yy", m02);
    218252    }
    219253
     
    225259
    226260        psMetadataAddF32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_BGDIFF,
     261                         PS_META_DUPLICATE_OK, "Background difference", bg);
     262        psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_BGDIFF,
    227263                         PS_META_DUPLICATE_OK, "Background difference", bg);
    228264        psFree(polyValues);
     
    237273        psMetadataAddF32(analysis, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_DEV_RMS, 0, "RMS stamp deviation",
    238274                         kernels->rms);
     275
     276        psMetadataAddS32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_STAMPS, 0, "Number of stamps",
     277                         kernels->numStamps);
     278        psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_DEV_MEAN, 0, "Mean stamp deviation",
     279                         kernels->mean);
     280        psMetadataAddF32(header, PS_LIST_TAIL, PM_SUBTRACTION_ANALYSIS_DEV_RMS, 0, "RMS stamp deviation",
     281                         kernels->rms);
    239282    }
    240283
Note: See TracChangeset for help on using the changeset viewer.