IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 18591 for trunk/ppStack


Ignore:
Timestamp:
Jul 16, 2008, 5:36:56 PM (18 years ago)
Author:
Paul Price
Message:

First attempt to switch over to new mask setup.

Location:
trunk/ppStack/src
Files:
3 edited

Legend:

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

    r18508 r18591  
    204204
    205205    bool mdok;                          // Status of MD lookup
    206     psMaskType maskBlank = psMetadataLookupU8(NULL, config->arguments, "MASK.BLANK"); // Mask for blank reg.
    207206    bool tempDelete = psMetadataLookupBool(&mdok, config->arguments, "TEMP.DELETE"); // Delete temporary files?
    208207    const char *tempImage = psMetadataLookupStr(NULL, config->arguments, "TEMP.IMAGE"); // Suffix for temporary images
     
    242241    psMetadata *ppsub = psMetadataLookupMetadata(NULL, config->recipes, "PPSUB"); // PPSUB recipe
    243242    int overlap = 2 * psMetadataLookupS32(NULL, ppsub, "KERNEL.SIZE"); // Overlap by kernel size between consecutive scans
     243
     244    if (!pmConfigMaskSetBits(NULL, NULL, config)) {
     245        psError(PS_ERR_UNKNOWN, false, "Unable to determine mask value.");
     246        return false;
     247    }
    244248
    245249    memDump("start");
     
    790794        if (stats) {
    791795            psTrace("ppStack", 1, "Gathering statistics on stacked image....\n");
    792             ppStatsFPA(stats, outCell->parent->parent, view, maskBlank, config);
     796            ppStatsFPA(stats, outCell->parent->parent, view, pmConfigMaskGet("BLANK", config), config);
    793797        }
    794798
  • trunk/ppStack/src/ppStackMatch.c

    r18559 r18591  
    3030    psMetadata *recipe = psMetadataLookupMetadata(NULL, config->recipes, "PPSUB"); // PPSUB recipe
    3131    int size = psMetadataLookupS32(NULL, recipe, "KERNEL.SIZE"); // Kernel half-size
    32     psMaskType maskBad = pmConfigMaskGet(psMetadataLookupStr(NULL, recipe, "MASK.BAD"), config); // Value to mask
     32
     33    psMaskType maskIn = pmConfigMaskGet("MASK.VALUE", config); // Bits to mask going in to pmSubtractionMatch
     34    psMaskType maskOut = pmConfigMaskGet("BLANK", config); // Bits to mask after pmSubtractionMatch
     35
    3336    bool mdok;                          // Status of MD lookup
    3437    bool renorm = psMetadataLookupBool(&mdok, config->arguments, "RENORM"); // Renormalise variances?
     
    4144    float penalty = psMetadataLookupF32(NULL, config->arguments, "PENALTY"); // Penalty for wideness
    4245
    43     if (!pmReadoutMaskNonfinite(readout, maskBad)) {
     46    if (!pmReadoutMaskNonfinite(readout, maskIn)) {
    4447        psError(PS_ERR_UNKNOWN, false, "Unable to mask non-finite pixels in readout.");
    4548        return false;
     
    6467        int ringsOrder = psMetadataLookupS32(NULL, recipe, "RINGS.ORDER"); // RINGS polynomial order
    6568        int binning = psMetadataLookupS32(NULL, recipe, "SPAM.BINNING"); // Binning for SPAM kernel
    66         psMaskType maskBlank = pmConfigMaskGet(psMetadataLookupStr(NULL, recipe, "MASK.BLANK"),
    67                                             config); // Mask for blank reg.
    6869        float badFrac = psMetadataLookupF32(NULL, recipe, "BADFRAC"); // Maximum bad fraction
    6970        bool optimum = psMetadataLookupBool(&mdok, recipe, "OPTIMUM"); // Derive optimum parameters?
     
    114115                                sources, stampsName, type, size, order, widths, orders, inner, ringsOrder,
    115116                                binning, penalty, optimum, optWidths, optOrder, optThresh, iter, rej,
    116                                 maskBad, maskBlank, badFrac, PM_SUBTRACTION_MODE_1)) {
     117                                maskIn, maskOut, badFrac, PM_SUBTRACTION_MODE_1)) {
    117118            psError(PS_ERR_UNKNOWN, false, "Unable to match images.");
    118119            psFree(fake);
     
    200201    if (renorm) {
    201202        psLogMsg("ppStack", PS_LOG_INFO, "Renormalising variance map.");
    202         if (!pmReadoutWeightRenorm(readout, maskBad, renormMean, renormStdev, renormWidth, rng)) {
     203        if (!pmReadoutWeightRenorm(readout, maskOut, renormMean, renormStdev, renormWidth, rng)) {
    203204            psError(PS_ERR_UNKNOWN, false, "Unable to renormalise variances.");
    204205            psFree(output);
     
    209210    // Ensure the background value is zero
    210211    psStats *bg = psStatsAlloc(PS_STAT_ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV); // Statistics for background
    211     if (!psImageBackground(bg, NULL, readout->image, readout->mask, maskBad, rng)) {
     212    if (!psImageBackground(bg, NULL, readout->image, readout->mask, maskOut, rng)) {
    212213        psWarning("Can't measure background for image.");
    213214        psErrorClear();
  • trunk/ppStack/src/ppStackReadout.c

    r18435 r18591  
    3232    int iter = psMetadataLookupS32(NULL, config->arguments, "ITER"); // Rejection iterations
    3333    float combineRej = psMetadataLookupF32(NULL, config->arguments, "COMBINE.REJ"); // Combination threshold
    34     psMaskType maskBad = psMetadataLookupU8(NULL, config->arguments, "MASK.BAD"); // Value to mask
    35     psMaskType maskBlank = psMetadataLookupU8(NULL, config->arguments, "MASK.BLANK"); // Mask for blank reg.
    36 //    float threshold = psMetadataLookupF32(NULL, config->arguments, "THRESHOLD.MASK"); // Threshold for mask deconvolution
     34    psMaskType maskVal = pmConfigMaskGet("BLANK", config); // Value to mask
    3735    bool useVariance = psMetadataLookupBool(&mdok, config->arguments, "VARIANCE"); // Use variance for rejection?
    3836    bool safe = psMetadataLookupBool(&mdok, config->arguments, "SAFE"); // Play safe when combining small numbers of pixels?
     
    6765    }
    6866
    69     if (!pmStackCombine(outRO, stack, maskBad, maskBlank, kernelSize, iter, combineRej, true,
     67    if (!pmStackCombine(outRO, stack, maskVal, maskVal, kernelSize, iter, combineRej, true,
    7068                        useVariance, safe)) {
    7169        psError(PS_ERR_UNKNOWN, false, "Unable to combine input readouts with rejection.");
     
    9391                                            psRegionSet(0, outRO->image->numCols - 1,
    9492                                                        0, outRO->image->numRows - 1),
    95                                             maskBlank);
     93                                            maskVal);
    9694        psString name = NULL;           // Name of image
    9795        psStringAppend(&name, "inspect_%03d_%03d.fits", sectionNum, i);
     
    140138    // Get the recipe values
    141139    bool mdok;                          // Status of MD lookup
    142     psMaskType maskBad = psMetadataLookupU8(NULL, config->arguments, "MASK.BAD"); // Value to mask
    143     psMaskType maskBlank = psMetadataLookupU8(NULL, config->arguments, "MASK.BLANK"); // Mask for blank reg.
     140    psMaskType maskVal = pmConfigMaskGet("BLANK", config); // Value to mask
    144141    bool useVariance = psMetadataLookupBool(&mdok, config->arguments, "VARIANCE"); // Use variance for rejection?
    145142
     
    208205                                             psRegionSet(0, outRO->image->numCols - 1,
    209206                                                         0, outRO->image->numRows - 1),
    210                                              maskBlank);
     207                                             maskVal);
    211208            psString name = NULL;           // Name of image
    212209            psStringAppend(&name, "reject_%03d.fits", i);
     
    220217#endif
    221218
    222     if (!pmStackCombine(outRO, stack, maskBad, maskBlank, 0, 0, NAN, numGood != num, useVariance, false)) {
     219    if (!pmStackCombine(outRO, stack, maskVal, maskVal, 0, 0, NAN, numGood != num, useVariance, false)) {
    223220        psError(PS_ERR_UNKNOWN, false, "Unable to combine input readouts.");
    224221        psFree(fpaList);
Note: See TracChangeset for help on using the changeset viewer.