Changeset 26769
- Timestamp:
- Feb 4, 2010, 3:18:46 PM (16 years ago)
- Location:
- branches/eam_branches/20091201
- Files:
-
- 8 edited
-
ippconfig/recipes/ppSub.config (modified) (2 diffs)
-
ppStack/src/ppStackMatch.c (modified) (3 diffs)
-
ppSub/src/ppSubMatchPSFs.c (modified) (3 diffs)
-
psModules/src/imcombine/pmStackReject.c (modified) (1 diff)
-
psModules/src/imcombine/pmSubtraction.c (modified) (4 diffs)
-
psModules/src/imcombine/pmSubtraction.h (modified) (1 diff)
-
psModules/src/imcombine/pmSubtractionMatch.c (modified) (7 diffs)
-
psModules/src/imcombine/pmSubtractionMatch.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/20091201/ippconfig/recipes/ppSub.config
r26763 r26769 2 2 3 3 KERNEL.TYPE STR ISIS # Kernel type to use (POIS|ISIS|SPAM|FRIES|GUNK|RINGS) 4 KERNEL.SIZE S32 35# Kernel half-size (pixels)4 KERNEL.SIZE S32 20 # Kernel half-size (pixels) 5 5 SPATIAL.ORDER S32 1 # Spatial polynomial order 6 6 REGION.SIZE F32 0 # Iso-kernel region size (pixels) 7 7 SOURCE.RADIUS F32 3.0 # Source matching radius (pixels) 8 8 STAMP.SPACING F32 300 # Typical spacing between stamps (pixels) 9 STAMP.FOOTPRINT S32 40# Size of stamps (pixels)9 STAMP.FOOTPRINT S32 25 # Size of stamps (pixels) 10 10 STAMP.THRESHOLD F32 5 # Flux threshold for stamps (stdev above background) 11 11 STRIDE S32 100 # Size of convolution patches (pixels) … … 16 16 SKY.ERR F32 0.0 # Relative systematic error in images 17 17 NORM.FRAC F32 0.03 # Fraction of window for normalisation window 18 COVAR.FRAC F32 0.01 # Fraction of kernel to truncate before calculating covariance 18 19 19 20 MASK.VAL STR MASK.VALUE,CONV.BAD # Mask value for input -
branches/eam_branches/20091201/ppStack/src/ppStackMatch.c
r26740 r26769 301 301 float sysError = psMetadataLookupF32(NULL, ppsub, "SYS.ERR"); // Relative systematic error in images 302 302 float skyErr = psMetadataLookupF32(NULL, ppsub, "SKY.ERR"); // Additional error in sky 303 float covarFrac = psMetadataLookupF32(NULL, ppsub, "COVAR.FRAC"); // Fraction for covariance calculation 303 304 304 305 const char *typeStr = psMetadataLookupStr(NULL, ppsub, "KERNEL.TYPE"); // Kernel type … … 412 413 if (kernel) { 413 414 if (!pmSubtractionMatchPrecalc(NULL, conv, fake, readout, readout->analysis, 414 stride, kernelError, maskVal, maskBad, maskPoor,415 stride, kernelError, covarFrac, maskVal, maskBad, maskPoor, 415 416 poorFrac, badFrac)) { 416 417 psError(PS_ERR_UNKNOWN, false, "Unable to convolve images."); … … 446 447 orders, inner, ringsOrder, binning, penalty, 447 448 optimum, optWidths, optOrder, optThresh, iter, rej, normFrac, 448 sysError, skyErr, kernelError, maskVal, maskBad, maskPoor,449 sysError, skyErr, kernelError, covarFrac, maskVal, maskBad, maskPoor, 449 450 poorFrac, badFrac, PM_SUBTRACTION_MODE_2)) { 450 451 psError(PS_ERR_UNKNOWN, false, "Unable to match images."); -
branches/eam_branches/20091201/ppSub/src/ppSubMatchPSFs.c
r26738 r26769 258 258 float sysErr = psMetadataLookupF32(NULL, recipe, "SYS.ERR"); // Relative systematic error in images 259 259 float skyErr = psMetadataLookupF32(NULL, recipe, "SKY.ERR"); // Additional error in sky 260 float covarFrac = psMetadataLookupF32(NULL, recipe, "COVAR.FRAC"); // Fraction for covariance calculation 260 261 261 262 float badFrac = psMetadataLookupF32(NULL, recipe, "BADFRAC"); // Maximum bad fraction … … 321 322 if (kernelRO) { 322 323 success = pmSubtractionMatchPrecalc(inConv, refConv, inRO, refRO, kernelRO->analysis, 323 stride, kernelErr, maskVal, maskBad, maskPoor, poorFrac, badFrac); 324 stride, kernelErr, covarFrac, maskVal, maskBad, maskPoor, 325 poorFrac, badFrac); 324 326 } else { 325 327 success = pmSubtractionMatch(inConv, refConv, inRO, refRO, footprint, stride, regionSize, … … 327 329 widths, orders, inner, ringsOrder, binning, penalty, optimum, 328 330 optWidths, optOrder, optThresh, iter, rej, normFrac, 329 sysErr, skyErr, kernelErr, maskVal, maskBad, maskPoor,331 sysErr, skyErr, kernelErr, covarFrac, maskVal, maskBad, maskPoor, 330 332 poorFrac, badFrac, subMode); 331 333 } -
branches/eam_branches/20091201/psModules/src/imcombine/pmStackReject.c
r26761 r26769 156 156 psRegion *region = subRegions->data[i]; // Region of interest 157 157 pmSubtractionKernels *kernels = subKernels->data[i]; // Kernel of interest 158 if (!pmSubtractionConvolve(NULL, convRO, NULL, inRO, NULL, stride, 0, 0, 1.0, 0.0, 158 if (!pmSubtractionConvolve(NULL, convRO, NULL, inRO, NULL, stride, 0, 0, 1.0, 0.0, 0.0, 159 159 region, kernels, false, true)) { 160 160 psError(PS_ERR_UNKNOWN, false, "Unable to convolve mask image in region %d.", i); -
branches/eam_branches/20091201/psModules/src/imcombine/pmSubtraction.c
r26759 r26769 1153 1153 bool pmSubtractionConvolve(pmReadout *out1, pmReadout *out2, const pmReadout *ro1, const pmReadout *ro2, 1154 1154 psImage *subMask, int stride, psImageMaskType maskBad, psImageMaskType maskPoor, 1155 float poorFrac, float kernelError, const psRegion *region,1155 float poorFrac, float kernelError, float covarFrac, const psRegion *region, 1156 1156 const pmSubtractionKernels *kernels, bool doBG, bool useFFT) 1157 1157 { … … 1195 1195 PS_ASSERT_FLOAT_LARGER_THAN_OR_EQUAL(kernelError, 0.0, false); 1196 1196 PS_ASSERT_FLOAT_LESS_THAN_OR_EQUAL(kernelError, 1.0, false); 1197 PS_ASSERT_FLOAT_LARGER_THAN_OR_EQUAL(covarFrac, 0.0, false); 1198 PS_ASSERT_FLOAT_LESS_THAN(covarFrac, 1.0, false); 1197 1199 if (region && psRegionIsNaN(*region)) { 1198 1200 psString string = psRegionToString(*region); … … 1327 1329 if (kernels->mode == PM_SUBTRACTION_MODE_1 || kernels->mode == PM_SUBTRACTION_MODE_DUAL) { 1328 1330 psKernel *kernel = pmSubtractionKernel(kernels, 0.0, 0.0, false); // Convolution kernel 1331 psKernelTruncate(kernel, covarFrac); 1329 1332 out1->covariance = psImageCovarianceCalculate(kernel, ro1->covariance); 1330 1333 psFree(kernel); … … 1333 1336 psKernel *kernel = pmSubtractionKernel(kernels, 0.0, 0.0, 1334 1337 kernels->mode == PM_SUBTRACTION_MODE_DUAL); // Conv. kernel 1338 psKernelTruncate(kernel, covarFrac); 1335 1339 out2->covariance = psImageCovarianceCalculate(kernel, ro2->covariance); 1336 1340 psFree(kernel); -
branches/eam_branches/20091201/psModules/src/imcombine/pmSubtraction.h
r26739 r26769 113 113 psImageMaskType maskPoor, ///< Mask value to give poor pixels 114 114 float poorFrac, ///< Fraction for "poor" 115 float sysError, ///< Relative systematic error 115 float kernelError, ///< Relative systematic error in kernel 116 float covarFrac, ///< Truncation fraction for kernel before covariance calculation 116 117 const psRegion *region, ///< Region to convolve (or NULL) 117 118 const pmSubtractionKernels *kernels, ///< Kernel parameters -
branches/eam_branches/20091201/psModules/src/imcombine/pmSubtractionMatch.c
r26741 r26769 121 121 float skyError, // Systematic error in images 122 122 float kernelError, // Systematic error in kernel 123 float covarFrac, // Fraction for kernel truncation before covariance 123 124 psImageMaskType maskVal, // Value to mask for input 124 125 psImageMaskType maskBad, // Mask for output bad pixels … … 181 182 PS_ASSERT_FLOAT_LESS_THAN(kernelError, 1.0, false); 182 183 } 184 PS_ASSERT_FLOAT_LARGER_THAN_OR_EQUAL(covarFrac, 0.0, false); 185 PS_ASSERT_FLOAT_LESS_THAN(covarFrac, 1.0, false); 183 186 // Don't care about maskVal 184 187 // Don't care about maskBad … … 246 249 247 250 bool pmSubtractionMatchPrecalc(pmReadout *conv1, pmReadout *conv2, const pmReadout *ro1, const pmReadout *ro2, 248 psMetadata *analysis, int stride, float kernelError, 251 psMetadata *analysis, int stride, float kernelError, float covarFrac, 249 252 psImageMaskType maskVal, psImageMaskType maskBad, psImageMaskType maskPoor, 250 253 float poorFrac, float badFrac) … … 316 319 } 317 320 318 if (!subtractionMatchCheck(conv1, conv2, ro1, ro2, stride, NAN, NAN, NAN, kernelError, 321 if (!subtractionMatchCheck(conv1, conv2, ro1, ro2, stride, NAN, NAN, NAN, kernelError, covarFrac, 319 322 maskVal, maskBad, maskPoor, poorFrac, badFrac, mode)) { 320 323 psFree(kernels); … … 357 360 358 361 if (!pmSubtractionConvolve(conv1, conv2, ro1, ro2, subMask, stride, maskBad, maskPoor, poorFrac, 359 kernelError, region, kernel, true, useFFT)) {362 kernelError, covarFrac, region, kernel, true, useFFT)) { 360 363 psError(PS_ERR_UNKNOWN, false, "Unable to convolve image."); 361 364 psFree(outAnalysis); … … 388 391 bool optimum, const psVector *optFWHMs, int optOrder, float optThreshold, 389 392 int iter, float rej, float normFrac, float sysError, float skyError, 390 float kernelError, psImageMaskType maskVal, psImageMaskType maskBad,393 float kernelError, float covarFrac, psImageMaskType maskVal, psImageMaskType maskBad, 391 394 psImageMaskType maskPoor, float poorFrac, float badFrac, pmSubtractionMode subMode) 392 395 { 393 396 if (!subtractionMatchCheck(conv1, conv2, ro1, ro2, stride, normFrac, sysError, skyError, kernelError, 394 maskVal, maskBad, maskPoor, poorFrac, badFrac, subMode)) {397 covarFrac, maskVal, maskBad, maskPoor, poorFrac, badFrac, subMode)) { 395 398 return false; 396 399 } … … 779 782 psTrace("psModules.imcombine", 2, "Convolving...\n"); 780 783 if (!pmSubtractionConvolve(conv1, conv2, ro1, ro2, subMask, stride, maskBad, maskPoor, poorFrac, 781 kernelError, region, kernels, true, useFFT)) {784 kernelError, covarFrac, region, kernels, true, useFFT)) { 782 785 psError(PS_ERR_UNKNOWN, false, "Unable to convolve image."); 783 786 goto MATCH_ERROR; -
branches/eam_branches/20091201/psModules/src/imcombine/pmSubtractionMatch.h
r26703 r26769 43 43 float skyError, ///< Relative systematic error in images 44 44 float kernelError, ///< Relative systematic error in kernel 45 float covarFrac, ///< Fraction for kernel truncation before covariance calculation 45 46 psImageMaskType maskVal, ///< Value to mask for input 46 47 psImageMaskType maskBad, ///< Mask for output bad pixels … … 59 60 int stride, ///< Size for convolution patches 60 61 float kernelError, ///< Relative systematic error in kernel 62 float covarFrac, ///< Fraction for kernel truncation before covariance calc. 61 63 psImageMaskType maskVal, ///< Value to mask for input 62 64 psImageMaskType maskBad, ///< Mask for output bad pixels
Note:
See TracChangeset
for help on using the changeset viewer.
