Changeset 21183 for trunk/ppSub
- Timestamp:
- Jan 26, 2009, 8:40:07 PM (17 years ago)
- Location:
- trunk/ppSub/src
- Files:
-
- 3 edited
-
ppSubArguments.c (modified) (1 diff)
-
ppSubBackground.c (modified) (3 diffs)
-
ppSubReadout.c (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ppSub/src/ppSubArguments.c
r20568 r21183 216 216 psMetadataAddF32(arguments, PS_LIST_TAIL, "-rej", 0, "Rejection thresold (sigma)", NAN); 217 217 psMetadataAddF32(arguments, PS_LIST_TAIL, "-sys", 0, "Relative systematic error in kernel", NAN); 218 psMetadataAdd U8(arguments, PS_LIST_TAIL, "-mask-bad", 0, "Mask value for bad pixels", 0);219 psMetadataAdd U8(arguments, PS_LIST_TAIL, "-mask-poor", 0, "Mask value for poor pixels", 0);218 psMetadataAddImageMask(arguments, PS_LIST_TAIL, "-mask-bad", 0, "Mask value for bad pixels", 0); 219 psMetadataAddImageMask(arguments, PS_LIST_TAIL, "-mask-poor", 0, "Mask value for poor pixels", 0); 220 220 psMetadataAddF32(arguments, PS_LIST_TAIL, "-poor-frac", 0, "Fraction of weight for poor pixels", NAN); 221 221 psMetadataAddF32(arguments, PS_LIST_TAIL, "-badfrac", 0, "Maximum fraction of bad pixels to accept", 1.0); -
trunk/ppSub/src/ppSubBackground.c
r20775 r21183 30 30 31 31 psString maskBadStr = psMetadataLookupStr(NULL, ppSubRecipe, "MASK.BAD"); // Name of bits to mask for bad 32 ps MaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels32 psImageMaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels 33 33 34 34 // user-defined masks to test for good/bad pixels (build from recipe list if not yet set) 35 psMetadataAdd U8(psphotRecipe, PS_LIST_TAIL, "MASK.PSPHOT", PS_META_REPLACE, "user-defined mask", maskBad);35 psMetadataAddImageMask(psphotRecipe, PS_LIST_TAIL, "MASK.PSPHOT", PS_META_REPLACE, "user-defined mask", maskBad); 36 36 37 37 psImage *image = ro->image, *mask = ro->mask; // Image and mask of interest … … 59 59 for (int y = 0; y < numRows; y++) { 60 60 for (int x = 0; x < numCols; x++) { 61 if (mask && mask->data.PS_TYPE_ MASK_DATA[y][x] & maskBad) {61 if (mask && mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x] & maskBad) { 62 62 image->data.F32[y][x] = 0.0; 63 63 } else { … … 65 65 if (!isfinite(value)) { 66 66 image->data.F32[y][x] = NAN; 67 mask->data.PS_TYPE_ MASK_DATA[y][x] |= maskBad;67 mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x] |= maskBad; 68 68 } else { 69 69 image->data.F32[y][x] -= value; -
trunk/ppSub/src/ppSubReadout.c
r21024 r21183 103 103 float penalty = psMetadataLookupF32(NULL, recipe, "PENALTY"); // Penalty for wideness 104 104 psString maskValStr = psMetadataLookupStr(NULL, recipe, "MASK.IN"); // Name of bits to mask going in 105 ps MaskType maskVal = pmConfigMaskGet(maskValStr, config); // Bits to mask going in to pmSubtractionMatch105 psImageMaskType maskVal = pmConfigMaskGet(maskValStr, config); // Bits to mask going in to pmSubtractionMatch 106 106 psString maskPoorStr = psMetadataLookupStr(NULL, recipe, "MASK.POOR"); // Name of bits to mask for poor 107 ps MaskType maskPoor = pmConfigMaskGet(maskPoorStr, config); // Bits to mask for poor pixels107 psImageMaskType maskPoor = pmConfigMaskGet(maskPoorStr, config); // Bits to mask for poor pixels 108 108 psString maskBadStr = psMetadataLookupStr(NULL, recipe, "MASK.BAD"); // Name of bits to mask for bad 109 ps MaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels109 psImageMaskType maskBad = pmConfigMaskGet(maskBadStr, config); // Bits to mask for bad pixels 110 110 float badFrac = psMetadataLookupF32(NULL, recipe, "BADFRAC"); // Maximum bad fraction 111 111 const char *stampsName = psMetadataLookupStr(&mdok, config->arguments, "STAMPS"); // Filename for stamps … … 146 146 pmReadoutSetMask(inRO, pmConfigMaskGet("SAT", config), pmConfigMaskGet("BAD", config)); 147 147 } else { 148 inRO->mask = psImageAlloc(numCols, numRows, PS_TYPE_ MASK);148 inRO->mask = psImageAlloc(numCols, numRows, PS_TYPE_IMAGE_MASK); 149 149 psImageInit(inRO->mask, 0); 150 150 } … … 154 154 pmReadoutSetMask(refRO, pmConfigMaskGet("SAT", config), pmConfigMaskGet("BAD", config)); 155 155 } else { 156 refRO->mask = psImageAlloc(numCols, numRows, PS_TYPE_ MASK);156 refRO->mask = psImageAlloc(numCols, numRows, PS_TYPE_IMAGE_MASK); 157 157 psImageInit(refRO->mask, 0); 158 158 } … … 363 363 } 364 364 if (minuend->mask) { 365 outRO->mask = psImageCopy(outRO->mask, minuend->mask, PS_TYPE_ MASK);365 outRO->mask = psImageCopy(outRO->mask, minuend->mask, PS_TYPE_IMAGE_MASK); 366 366 } 367 367 outRO->data_exists = outCell->data_exists = outCell->parent->data_exists = true; 368 368 369 369 if (psMetadataLookupBool(&mdok, recipe, "RENORM")) { 370 ps MaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask370 psImageMaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask 371 371 if (!pmReadoutWeightRenormPhot(outRO, maskValue, renormNum, renormWidth, 372 372 renormMean, renormStdev, NULL)) { … … 399 399 400 400 // set maskValue and markValue in the psphot recipe 401 ps MaskType maskValue = maskVal;402 ps MaskType markValue = pmConfigMaskGet("MARK.VALUE", config); // Bits to use for marking403 psMetadataAdd U8(psphotRecipe, PS_LIST_TAIL, "MASK.PSPHOT", PS_META_REPLACE, "Bits to mask", maskValue);404 psMetadataAdd U8(psphotRecipe, PS_LIST_TAIL, "MARK.PSPHOT", PS_META_REPLACE, "Bits to use for marking",401 psImageMaskType maskValue = maskVal; 402 psImageMaskType markValue = pmConfigMaskGet("MARK.VALUE", config); // Bits to use for marking 403 psMetadataAddImageMask(psphotRecipe, PS_LIST_TAIL, "MASK.PSPHOT", PS_META_REPLACE, "Bits to mask", maskValue); 404 psMetadataAddImageMask(psphotRecipe, PS_LIST_TAIL, "MARK.PSPHOT", PS_META_REPLACE, "Bits to use for marking", 405 405 markValue); 406 406 … … 477 477 for (int y = 0; y < outRO->image->numRows; y++) { 478 478 for (int x = 0; x < outRO->image->numCols; x++) { 479 if (isnan(outRO->image->data.F32[y][x]) && !(outRO->mask->data. U8[y][x] & maskVal)) {480 printf("Unmasked NAN at %d %d --> %d\n", x, y, outRO->mask->data. U8[y][x]);479 if (isnan(outRO->image->data.F32[y][x]) && !(outRO->mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x] & maskVal)) { 480 printf("Unmasked NAN at %d %d --> %d\n", x, y, outRO->mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x]); 481 481 } 482 482 } … … 568 568 569 569 if (psMetadataLookupBool(&mdok, recipe, "RENORM")) { 570 ps MaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask570 psImageMaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask 571 571 if (!pmReadoutWeightRenormPhot(outRO, maskValue, renormNum, renormWidth, 572 572 renormMean, renormStdev, NULL)) { … … 669 669 // Renormalising for pixels, because that's what magic desires 670 670 if (psMetadataLookupBool(&mdok, recipe, "RENORM")) { 671 ps MaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask671 psImageMaskType maskValue = pmConfigMaskGet("BLANK", config); // Bits to mask 672 672 if (!pmReadoutWeightRenormPixels(outRO, maskValue, renormMean, renormStdev, NULL)) { 673 673 psError(PS_ERR_UNKNOWN, false, "Unable to renormalise variances.");
Note:
See TracChangeset
for help on using the changeset viewer.
