Changeset 10204
- Timestamp:
- Nov 26, 2006, 12:39:23 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/psphot/src/psphotEvalPSF.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psphot/src/psphotEvalPSF.c
r10183 r10204 21 21 // floor for DS value 22 22 // XXX EAM : add to configuration? 23 # define MIN_DS 0.0124 23 25 24 static float SATURATION; 26 25 static float PSF_MIN_SN; 26 static float PSF_MIN_DS; 27 27 static float PSF_MAX_CHI; 28 28 static float PSF_SHAPE_NSIGMA; 29 static float PSF_DSX_MEAN; 30 static float PSF_DSY_MEAN; 31 static float PSF_DSX_STDEV; 32 static float PSF_DSY_STDEV; 29 33 30 34 bool psphotInitLimitsPSF (psMetadata *recipe) { … … 37 41 PSF_MAX_CHI = psMetadataLookupF32 (&status, recipe, "PSF_MAX_CHI"); 38 42 PSF_SHAPE_NSIGMA = psMetadataLookupF32 (&status, recipe, "PSF_SHAPE_NSIGMA"); 43 PSF_MIN_DS = psMetadataLookupF32 (&status, recipe, "PSF_MIN_DS"); 44 if (!status) PSF_MIN_DS = 0.01; 45 46 PSF_DSX_MEAN = psMetadataLookupF32 (&status, recipe, "DSX_MEAN"); 47 PSF_DSY_MEAN = psMetadataLookupF32 (&status, recipe, "DSY_MEAN"); 48 PSF_DSX_STDEV = psMetadataLookupF32 (&status, recipe, "DSX_STDV"); 49 PSF_DSY_STDEV = psMetadataLookupF32 (&status, recipe, "DSY_STDV"); 39 50 40 51 return true; … … 101 112 } 102 113 103 SN = model->params->data.F32[PM_PAR_I0]/model->dparams->data.F32[ 1];114 SN = model->params->data.F32[PM_PAR_I0]/model->dparams->data.F32[PM_PAR_I0]; 104 115 SX = model->params->data.F32[PM_PAR_SXX]; 105 116 SY = model->params->data.F32[PM_PAR_SYY]; … … 109 120 110 121 // swing of sigma_x,y in sigmas 111 nSx = dSX / hypot (MIN_DS, (SX / SN));112 nSy = dSY / hypot (MIN_DS, (SY / SN));122 nSx = (dSX - PSF_DSX_MEAN) / (PSF_DSX_STDEV * PS_MAX (PSF_MIN_DS, (SX / SN))); 123 nSy = (dSY - PSF_DSY_MEAN) / (PSF_DSY_STDEV * PS_MAX (PSF_MIN_DS, (SY / SN))); 113 124 114 125 // assign PM_SOURCE_MODE_GOODSTAR to bright objects within PSF region of dparams[] … … 118 129 keep &= (SN > PSF_MIN_SN); 119 130 keep &= (Chi < PSF_MAX_CHI); 120 if (keep) return true; 131 if (keep) { 132 if (source->mode & PM_SOURCE_MODE_PSFSTAR) { 133 psTrace ("psphot", 7, "PSFSTAR kept (%f, %f : %f %f : %f %f : %f %f)\n", 134 model->params->data.F32[PM_PAR_XPOS], model->params->data.F32[PM_PAR_YPOS], dSX, nSx, dSY, nSy, SN, Chi); 135 } 136 return true; 137 } 121 138 122 139 // this source is not a star, warn if it was a PSFSTAR 123 140 if (source->mode & PM_SOURCE_MODE_PSFSTAR) { 124 ps LogMsg ("psphot", 5, "PSFSTAR demoted based on fit quality (%f, %f : %f %f%f %f)\n",125 model->params->data.F32[PM_PAR_XPOS], model->params->data.F32[PM_PAR_YPOS], nSx, nSy, SN, Chi);141 psTrace ("psphot", 5, "PSFSTAR demoted based on fit quality (%f, %f : %f %f : %f %f : %f %f)\n", 142 model->params->data.F32[PM_PAR_XPOS], model->params->data.F32[PM_PAR_YPOS], dSX, nSx, dSY, nSy, SN, Chi); 126 143 } else { 127 psLogMsg ("psphot", 5, "fails PSF fit (%f, %f : %f %f %f %f)\n", 128 model->params->data.F32[PM_PAR_XPOS], model->params->data.F32[PM_PAR_YPOS], nSx, nSy, SN, Chi); 129 } 130 131 // object appears to be small, suspected defect 144 psTrace ("psphot", 5, "fails PSF fit (%f, %f : %f %f : %f %f : %f %f)\n", 145 model->params->data.F32[PM_PAR_XPOS], model->params->data.F32[PM_PAR_YPOS], dSX, nSx, dSY, nSy, SN, Chi); 146 } 147 148 // object appears to be small, suspected defect. this is a weak indication for a defect: a 149 // large positive or negative swing can also come from the bright sources for which we are 150 // more sensitive to the wings than for the faint sources. 151 // XXX allow -NSIGMA and +NSIGMA to have different values? 132 152 if ((nSx <= -PSF_SHAPE_NSIGMA) || (nSy <= -PSF_SHAPE_NSIGMA)) { 133 153 source->type = PM_SOURCE_TYPE_DEFECT;
Note:
See TracChangeset
for help on using the changeset viewer.
