- Timestamp:
- Jan 6, 2009, 7:13:34 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branch_20081230/psphot/src/psphotSourceSize.c
r20938 r21087 3 3 4 4 static float psphotModelContour(const psImage *image, const psImage *weight, const psImage *mask, 5 ps MaskType maskVal, const pmModel *model, float Ro);6 7 bool psphotMaskCosmicRay_Old (pmSource *source, ps MaskType maskVal, psMaskType crMask);8 bool psphotMaskCosmicRay_New (psImage *mask, pmSource *source, ps MaskType maskVal, psMaskType crMask);5 psImageMaskType maskVal, const pmModel *model, float Ro); 6 7 bool psphotMaskCosmicRay_Old (pmSource *source, psImageMaskType maskVal, psImageMaskType crMask); 8 bool psphotMaskCosmicRay_New (psImage *mask, pmSource *source, psImageMaskType maskVal, psImageMaskType crMask); 9 9 10 10 // we need to call this function after sources have been fitted to the PSF model and … … 21 21 22 22 // user-defined masks to test for good/bad pixels (build from recipe list if not yet set) 23 ps MaskType maskVal = psMetadataLookupU8(&status, recipe, "MASK.PSPHOT"); // Mask value for bad pixels23 psImageMaskType maskVal = psMetadataLookupImageMask(&status, recipe, "MASK.PSPHOT"); // Mask value for bad pixels 24 24 assert (maskVal); 25 25 26 26 // bit to mask the cosmic-ray pixels 27 ps MaskType crMask = pmConfigMaskGet("CR", config); // Mask value for cosmic rays27 psImageMaskType crMask = pmConfigMaskGet("CR", config); // Mask value for cosmic rays 28 28 29 29 float CR_NSIGMA_LIMIT = psMetadataLookupF32 (&status, recipe, "PSPHOT.CR.NSIGMA.LIMIT"); … … 63 63 psF32 **resid = source->pixels->data.F32; 64 64 psF32 **weight = source->weight->data.F32; 65 ps U8 **mask = source->maskObj->data.U8;65 psImageMaskType **mask = source->maskObj->data.PS_TYPE_IMAGE_MASK_DATA; 66 66 67 67 // check for extendedness: measure the delta flux significance at the 1 sigma contour … … 191 191 // deviations? 192 192 static float psphotModelContour(const psImage *image, const psImage *weight, const psImage *mask, 193 ps MaskType maskVal, const pmModel *model, float Ro)193 psImageMaskType maskVal, const pmModel *model, float Ro) 194 194 { 195 195 psF32 *PAR = model->params->data.F32; // Model parameters … … 260 260 } 261 261 262 bool psphotMaskCosmicRay_New (psImage *mask, pmSource *source, ps MaskType maskVal, psMaskType crMask) {262 bool psphotMaskCosmicRay_New (psImage *mask, pmSource *source, psImageMaskType maskVal, psImageMaskType crMask) { 263 263 264 264 // replace the source flux … … 294 294 295 295 for (int ix = xs; ix < xe; ix++) { 296 mask->data. U8[iy][ix] |= crMask;296 mask->data.PS_TYPE_IMAGE_MASK_DATA[iy][ix] |= crMask; 297 297 } 298 298 } … … 300 300 } 301 301 302 bool psphotMaskCosmicRay_Old (pmSource *source, ps MaskType maskVal, psMaskType crMask) {302 bool psphotMaskCosmicRay_Old (pmSource *source, psImageMaskType maskVal, psImageMaskType crMask) { 303 303 304 304 source->mode |= PM_SOURCE_MODE_CR_LIMIT; … … 320 320 float SN = pixels->data.F32[yo][ix] / sqrt(weight->data.F32[yo][ix]); 321 321 if (SN > SN_LIMIT) { 322 mask->data. U8[yo][ix] |= crMask;322 mask->data.PS_TYPE_IMAGE_MASK_DATA[yo][ix] |= crMask; 323 323 } 324 324 } … … 326 326 float SN = pixels->data.F32[yo][ix] / sqrt(weight->data.F32[yo][ix]); 327 327 if (SN > SN_LIMIT) { 328 mask->data. U8[yo][ix] |= crMask;328 mask->data.PS_TYPE_IMAGE_MASK_DATA[yo][ix] |= crMask; 329 329 } 330 330 } … … 339 339 340 340 bool valid = false; 341 valid |= (mask->data. U8[iy+1][ix] & crMask);342 valid |= (ix > 0) ? (mask->data. U8[iy+1][ix-1] & crMask) : 0;343 valid |= (ix <= mask->numCols) ? (mask->data. U8[iy+1][ix+1] & crMask) : 0;341 valid |= (mask->data.PS_TYPE_IMAGE_MASK_DATA[iy+1][ix] & crMask); 342 valid |= (ix > 0) ? (mask->data.PS_TYPE_IMAGE_MASK_DATA[iy+1][ix-1] & crMask) : 0; 343 valid |= (ix <= mask->numCols) ? (mask->data.PS_TYPE_IMAGE_MASK_DATA[iy+1][ix+1] & crMask) : 0; 344 344 345 345 if (!valid) continue; 346 mask->data. U8[iy][ix] |= crMask;346 mask->data.PS_TYPE_IMAGE_MASK_DATA[iy][ix] |= crMask; 347 347 } 348 348 } … … 355 355 356 356 bool valid = false; 357 valid |= (mask->data. U8[iy-1][ix] & crMask);358 valid |= (ix > 0) ? (mask->data. U8[iy-1][ix-1] & crMask) : 0;359 valid |= (ix <= mask->numCols) ? (mask->data. U8[iy-1][ix+1] & crMask) : 0;357 valid |= (mask->data.PS_TYPE_IMAGE_MASK_DATA[iy-1][ix] & crMask); 358 valid |= (ix > 0) ? (mask->data.PS_TYPE_IMAGE_MASK_DATA[iy-1][ix-1] & crMask) : 0; 359 valid |= (ix <= mask->numCols) ? (mask->data.PS_TYPE_IMAGE_MASK_DATA[iy-1][ix+1] & crMask) : 0; 360 360 361 361 if (!valid) continue; 362 mask->data. U8[iy][ix] |= crMask;362 mask->data.PS_TYPE_IMAGE_MASK_DATA[iy][ix] |= crMask; 363 363 } 364 364 }
Note:
See TracChangeset
for help on using the changeset viewer.
