- Timestamp:
- May 26, 2009, 1:59:32 PM (17 years ago)
- Location:
- branches/cnb_branches/cnb_branch_20090301
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/cnb_branches/cnb_branch_20090301
- Property svn:mergeinfo changed
-
branches/cnb_branches/cnb_branch_20090301/ppSub
- Property svn:mergeinfo changed
-
branches/cnb_branches/cnb_branch_20090301/ppSub/src
- Property svn:ignore
-
old new 10 10 stamp-h1 11 11 ppSubKernel 12 ppSubErrorCodes.h 13 ppSubErrorCodes.c 14 ppSubVersionDefinitions.h
-
- Property svn:ignore
-
branches/cnb_branches/cnb_branch_20090301/ppSub/src/ppSubMatchPSFs.c
r23594 r24244 22 22 #include "ppSub.h" 23 23 24 bool ppSubMatchPSFs(p mConfig *config, const pmFPAview *view)24 bool ppSubMatchPSFs(ppSubData *data) 25 25 { 26 psAssert(data, "Require processing data"); 27 pmConfig *config = data->config; // Configuration 26 28 psAssert(config, "Require configuration"); 27 psAssert(view, "Require view");28 29 29 30 // Look up recipe values 30 31 psMetadata *recipe = psMetadataLookupMetadata(NULL, config->recipes, PPSUB_RECIPE); // Recipe for ppSim 31 32 psAssert(recipe, "We checked this earlier, so it should be here."); 33 34 pmFPAview *view = ppSubViewReadout(); // View to readout 32 35 33 36 // Input images … … 52 55 pmReadout *kernelRO = pmFPAfileThisReadout(config->files, view, "PPSUB.OUTPUT.KERNELS"); // RO with kernel 53 56 57 psFree(view); 58 54 59 // Sources in image, used for stamps: these must be loaded from previous analysis stages 55 psArray *inSources = psMetadataLookupPtr(&mdok, inRO->analysis, "PSPHOT.SOURCES"); // Input source list 56 psArray *refSources = psMetadataLookupPtr(&mdok, refRO->analysis, "PSPHOT.SOURCES"); // Ref source list 60 pmReadout *inSourceRO = pmFPAfileThisReadout(config->files, view, "PPSUB.INPUT.SOURCES"); 61 pmReadout *refSourceRO = pmFPAfileThisReadout(config->files, view, "PPSUB.REF.SOURCES"); 62 psArray *inSources = inSourceRO ? psMetadataLookupPtr(&mdok, inSourceRO->analysis, "PSPHOT.SOURCES") : 63 NULL; // Source list from input image 64 psArray *refSources = refSourceRO ? psMetadataLookupPtr(&mdok, refSourceRO->analysis, "PSPHOT.SOURCES") : 65 NULL ; // Source list from reference image 57 66 58 67 psArray *sources = NULL; // Merged list of sources … … 85 94 float spacing = psMetadataLookupF32(NULL, recipe, "STAMP.SPACING"); // Typical stamp spacing 86 95 float threshold = psMetadataLookupF32(NULL, recipe, "STAMP.THRESHOLD"); // Threshold for stmps 87 const char *stampsName = psMetadataLookupStr(&mdok, config->arguments, "STAMPS"); // Filename for stamps88 96 89 97 const char *typeStr = psMetadataLookupStr(NULL, recipe, "KERNEL.TYPE"); // Kernel type … … 136 144 137 145 // Match the PSFs 146 bool success = false; // Operation was successful? 138 147 if (kernelRO) { 139 if (!pmSubtractionMatchPrecalc(inConv, refConv, inRO, refRO, kernelRO->analysis, 140 stride, sys, maskVal, maskBad, maskPoor, poorFrac, badFrac)) { 141 psError(PS_ERR_UNKNOWN, false, "Unable to convolve images."); 142 return false; 143 } 148 success = pmSubtractionMatchPrecalc(inConv, refConv, inRO, refRO, kernelRO->analysis, 149 stride, sys, maskVal, maskBad, maskPoor, poorFrac, badFrac); 144 150 } else { 145 if (!pmSubtractionMatch(inConv, refConv, inRO, refRO, footprint, stride, regionSize, spacing, 146 threshold, sources, stampsName, type, size, order, widths, orders, inner, 147 ringsOrder, binning, penalty, optimum, optWidths, optOrder, optThresh, iter, 148 rej, sys, maskVal, maskBad, maskPoor, poorFrac, badFrac, subMode)) { 151 success = pmSubtractionMatch(inConv, refConv, inRO, refRO, footprint, stride, regionSize, 152 spacing, threshold, sources, data->stamps, type, size, order, 153 widths, orders, inner, ringsOrder, binning, penalty, optimum, 154 optWidths, optOrder, optThresh, iter, rej, sys, maskVal, 155 maskBad, maskPoor, poorFrac, badFrac, subMode); 156 } 157 158 psFree(optWidths); 159 pmSubtractionThreadsFinalize(inRO, refRO); 160 161 if (!success) { 162 psErrorCode error = psErrorCodeLast(); // Error code 163 if (error == PM_ERR_STAMPS) { 164 psErrorStackPrint(stderr, "Unable to find stamps"); 165 psWarning("Unable to find stamps --- suspect bad data quality."); 166 ppSubDataQuality(data, error, PPSUB_FILES_ALL); 167 return true; 168 } else { 149 169 psError(PS_ERR_UNKNOWN, false, "Unable to match images."); 150 170 return false; … … 152 172 } 153 173 154 psFree(optWidths); 155 156 pmSubtractionThreadsFinalize(inRO, refRO); 174 pmConceptsCopyFPA(inConv->parent->parent->parent, inRO->parent->parent->parent, true, true); 175 pmConceptsCopyFPA(refConv->parent->parent->parent, refRO->parent->parent->parent, true, true); 157 176 158 177 psImageCovarianceTransfer(inConv->variance, inConv->covariance); 159 178 psImageCovarianceTransfer(refConv->variance, refConv->covariance); 160 179 161 // XXX drop the pixels associated with inRO and refRO (now that we have inConv and refConf)162 #ifdef TESTING163 psphotSaveImage (NULL, inRO->image, "inRO.fits");164 psphotSaveImage (NULL, refRO->image, "refRO.fits");165 psphotSaveImage (NULL, inConv->image, "inConv.fits");166 psphotSaveImage (NULL, refConv->image, "refConv.fits");167 #endif168 169 180 return true; 170 181 }
Note:
See TracChangeset
for help on using the changeset viewer.
