Changeset 26894 for trunk/psphot/src/psphotMakePSFReadout.c
- Timestamp:
- Feb 10, 2010, 7:36:29 PM (16 years ago)
- File:
-
- 1 edited
-
trunk/psphot/src/psphotMakePSFReadout.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psphot/src/psphotMakePSFReadout.c
r25982 r26894 19 19 20 20 // set the photcode for this image 21 if (!psphotAddPhotcode ( recipe, config, view, "PSPHOT.INPUT")) {21 if (!psphotAddPhotcode (config, view)) { 22 22 psError (PSPHOT_ERR_CONFIG, false, "trouble defining the photcode"); 23 23 return false; 24 24 } 25 26 // find the currently selected readout27 pmReadout *readout = pmFPAfileThisReadout (config->files, view, "PSPHOT.INPUT");28 PS_ASSERT_PTR_NON_NULL (readout, false);29 25 30 26 // optional break-point for processing … … 33 29 34 30 // Generate the mask and weight images, including the user-defined analysis region of interest 35 psphotSetMaskAndVariance (config, readout, recipe);31 psphotSetMaskAndVariance (config, view); 36 32 if (!strcasecmp (breakPt, "NOTHING")) { 37 return psphotReadoutCleanup(config, readout, recipe, NULL, NULL, NULL);33 return psphotReadoutCleanup(config, view); 38 34 } 39 35 40 // display the image, weight, mask (ch 1,2,3)41 psphotVisualShowImage (readout);42 43 36 // generate a background model (median, smoothed image) 44 if (!psphotModelBackground (config, view , "PSPHOT.INPUT")) {45 return psphotReadoutCleanup (config, readout, recipe, NULL, NULL, NULL);37 if (!psphotModelBackground (config, view)) { 38 return psphotReadoutCleanup (config, view); 46 39 } 47 if (!psphotSubtractBackground (config, view , "PSPHOT.INPUT")) {48 return psphotReadoutCleanup (config, readout, recipe, NULL, NULL, NULL);40 if (!psphotSubtractBackground (config, view)) { 41 return psphotReadoutCleanup (config, view); 49 42 } 50 43 if (!strcasecmp (breakPt, "BACKMDL")) { 51 return psphotReadoutCleanup (config, readout, recipe, NULL, NULL, NULL);44 return psphotReadoutCleanup (config, view); 52 45 } 53 46 54 // display the backsub and backgnd images 55 psphotVisualShowBackground (config, view, readout); 47 psphotLoadExtSources (config, view); 56 48 57 pmDetections *detections = NULL; 58 59 // If sources have been supplied, then these should be used to measure the PSF 60 // include externally-supplied sources 61 62 // XXX sources loaded from a text file have no valid SN values, but psphotChoosePSF 63 // selected the top PSF_MAX_NSTARS to generate the PSF, excluding an arbitrary subset. 64 psArray *sources = psArrayAllocEmpty(100); 65 psphotLoadExtSources (config, view, sources); 66 if (sources->n) { 67 // the user wants to make the psf from these stars; define them as psf stars: 68 for (int i = 0; i < sources->n; i++) { 69 pmSource *source = sources->data[i]; 70 source->mode |= PM_SOURCE_MODE_PSFSTAR; 71 } 72 // force psphotChoosePSF to use all loaded sources 73 psMetadataAddS32 (recipe, PS_LIST_TAIL, "PSF_MAX_NSTARS", PS_META_REPLACE, "fit radius", sources->n); 74 75 // measure stats of externally specified sources 76 if (!psphotSourceStatsUpdate (sources, config, readout)) { 77 psError(PSPHOT_ERR_CONFIG, false, "failure to measure stats of existing sources"); 78 return false; 79 } 80 81 } else { 82 // find the detections (by peak and/or footprint) in the image. 83 detections = psphotFindDetections (NULL, readout, recipe); 84 if (!detections) { 85 psLogMsg ("psphot", 3, "unable to find detections in this image"); 86 return psphotReadoutCleanup (config, readout, recipe, detections, NULL, sources); 87 } 88 89 // construct sources and measure basic stats 90 psFree (sources); 91 sources = psphotSourceStats (config, readout, detections, true); 92 if (!sources) return false; 93 94 // find blended neighbors of very saturated stars 95 // XXX merge this with Basic Deblend? 96 psphotDeblendSatstars (readout, sources, recipe); 97 98 // mark blended peaks PS_SOURCE_BLEND 99 if (!psphotBasicDeblend (sources, recipe)) { 100 psLogMsg ("psphot", 3, "failed on deblend analysis"); 101 return psphotReadoutCleanup (config, readout, recipe, detections, NULL, sources); 102 } 103 104 // classify sources based on moments, brightness 105 if (!psphotRoughClass (readout, sources, recipe, false)) { 106 psLogMsg ("psphot", 3, "failed to find a valid PSF clump for image"); 107 return psphotReadoutCleanup (config, readout, recipe, detections, NULL, sources); 108 } 49 // If sources have been supplied, then these should be used to measure the PSF include 50 // externally-supplied sources; if not, we need to generate a set of possible PSF sources. 51 // This function updates the SN entries for the loaded sources or generates a set of 52 // detections from the image, if no external ones have been supplied. Sources loaded from 53 // a text file have no valid SN values, but psphotChoosePSF needs to select the top 54 // PSF_MAX_NSTARS to generate the PSF. 55 if (!psphotCheckExtSources (config, view)) { 56 psLogMsg ("psphot", 3, "failure to select possible PSF sources (external or internal)"); 57 return psphotReadoutCleanup (config, view); 109 58 } 110 59 111 // use bright stellar objects to measure PSF 112 // XXX if we do not have enough stars to generate the PSF, build one 113 // from the SEEING guess and model class 114 pmPSF *psf = psphotChoosePSF (readout, sources, recipe); 115 if (psf == NULL) { 60 // Use bright stellar objects to measure PSF. If we do not have enough stars to generate 61 // the PSF, build one from the SEEING guess and model class 62 if (!psphotChoosePSF (config, view)) { 116 63 psLogMsg ("psphot", 3, "failure to construct a psf model"); 117 return psphotReadoutCleanup (config, readout, recipe, detections, psf, sources);64 return psphotReadoutCleanup (config, view); 118 65 } 119 psphotVisualShowPSFModel (readout, psf);120 return psphotReadoutCleanup (config, readout, recipe, detections, psf, sources);121 }122 66 123 67 // measure aperture photometry corrections 124 // XXX isn't this part of the PSF?? 125 // if (!psphotApResid (config, readout, sources, psf)) { 126 // psLogMsg ("psphot", 3, "failed on psphotApResid"); 127 // return psphotReadoutCleanup (config, readout, recipe, detections, psf, sources); 128 // } 68 # if 0 69 if (!psphotApResid (config, view)) { 70 psLogMsg ("psphot", 3, "failed on psphotApResid"); 71 return psphotReadoutCleanup (config, view); 72 } 73 # endif 74 75 return psphotReadoutCleanup (config, view); 76 }
Note:
See TracChangeset
for help on using the changeset viewer.
