Changeset 13983
- Timestamp:
- Jun 26, 2007, 9:43:28 AM (19 years ago)
- Location:
- trunk/psphot/src
- Files:
-
- 7 added
- 4 edited
-
Makefile.am (modified) (1 diff)
-
psphot.h (modified) (1 diff)
-
psphotAnnuli.c (added)
-
psphotExtendedSources.c (added)
-
psphotIsophotal.c (added)
-
psphotKernelFromPSF.c (added)
-
psphotKron.c (added)
-
psphotModelWithPSF.c (modified) (12 diffs)
-
psphotPSFConvModel.c (added)
-
psphotPetrosian.c (added)
-
psphotReadout.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psphot/src/Makefile.am
r13225 r13983 17 17 18 18 libpsphot_la_SOURCES = \ 19 psphotErrorCodes.c \20 pmFootprint.c \21 psphotVersion.c \22 psphotModelGroupInit.c \23 psphotMaskReadout.c \24 psphotDefineFiles.c \25 psphotReadout.c \26 psphotImageMedian.c \27 psphotFindPeaks.c \28 psphotSourceStats.c \29 psphotRoughClass.c \30 psphotBasicDeblend.c \31 psphotChoosePSF.c \32 psphotGuessModels.c \19 psphotErrorCodes.c \ 20 pmFootprint.c \ 21 psphotVersion.c \ 22 psphotModelGroupInit.c \ 23 psphotMaskReadout.c \ 24 psphotDefineFiles.c \ 25 psphotReadout.c \ 26 psphotImageMedian.c \ 27 psphotFindPeaks.c \ 28 psphotSourceStats.c \ 29 psphotRoughClass.c \ 30 psphotBasicDeblend.c \ 31 psphotChoosePSF.c \ 32 psphotGuessModels.c \ 33 33 psphotFitSourcesLinear.c \ 34 psphotBlendFit.c \ 35 psphotReplaceUnfit.c \ 36 psphotApResid.c \ 37 psphotMagnitudes.c \ 38 psphotSkyReplace.c \ 39 psphotEvalPSF.c \ 40 psphotEvalFLT.c \ 41 psphotSourceFits.c \ 42 psphotRadiusChecks.c \ 43 psphotSortBySN.c \ 44 psphotOutput.c \ 45 psphotGrowthCurve.c \ 46 psphotFakeSources.c \ 47 psphotModelTest.c \ 48 psphotFitSet.c \ 34 psphotBlendFit.c \ 35 psphotReplaceUnfit.c \ 36 psphotApResid.c \ 37 psphotMagnitudes.c \ 38 psphotSkyReplace.c \ 39 psphotEvalPSF.c \ 40 psphotEvalFLT.c \ 41 psphotSourceFits.c \ 42 psphotRadiusChecks.c \ 43 psphotSortBySN.c \ 44 psphotOutput.c \ 45 psphotGrowthCurve.c \ 46 psphotFakeSources.c \ 47 psphotModelWithPSF.c \ 48 psphotExtendedSources.c \ 49 psphotPetrosian.c \ 50 psphotIsophotal.c \ 51 psphotAnnuli.c \ 52 psphotKron.c \ 53 psphotKernelFromPSF.c \ 54 psphotPSFConvModel.c \ 55 psphotModelTest.c \ 56 psphotFitSet.c \ 49 57 psphotSourceFreePixels.c \ 50 58 psphotSummaryPlots.c \ 51 59 psphotMergeSources.c \ 52 psphotLoadPSF.c \60 psphotLoadPSF.c \ 53 61 psphotReadoutCleanup.c \ 54 62 psphotSourcePlots.c \ -
trunk/psphot/src/psphot.h
r13900 r13983 114 114 bool psphotMakeResiduals (psArray *sources, psMetadata *recipe, pmPSF *psf, psMaskType maskVal); 115 115 116 bool psphotExtendedSources (pmReadout *readout, psArray *sources, psMetadata *recipe, psMaskType maskVal); 117 bool psphotPSFConvModel (pmSource *source, psMetadata *recipe, psMaskType maskVal); 118 psKernel *psphotKernelFromPSF (pmSource *source); 119 120 bool psphotPetrosian (pmSource *source, psMetadata *recipe, psMaskType maskVal); 121 bool psphotIsophotal (pmSource *source, psMetadata *recipe, psMaskType maskVal); 122 bool psphotAnnuli (pmSource *source, psMetadata *recipe, psMaskType maskVal); 123 bool psphotKron (pmSource *source, psMetadata *recipe, psMaskType maskVal); 124 125 // psf-convolved model fitting 126 bool psphotModelWithPSF_LMM ( 127 psMinimization *min, 128 psImage *covar, 129 psVector *params, 130 psMinConstraint *constraint, 131 const pmSource *source, 132 const psKernel *psf, 133 psMinimizeLMChi2Func func); 134 135 psF32 psphotModelWithPSF_SetABX( 136 psImage *alpha, 137 psVector *beta, 138 const psVector *params, 139 const psVector *paramMask, 140 const pmSource *source, 141 const psKernel *psf, 142 psMinimizeLMChi2Func func); 143 144 116 145 #endif -
trunk/psphot/src/psphotModelWithPSF.c
r13976 r13983 1 1 # include "psphot.h" 2 3 // XXX elevate the p_psMinLM_ functions to psMinLM_...4 5 2 6 3 bool psphotModelWithPSF_LMM ( … … 69 66 70 67 // set a new guess for Alpha, Beta, Params 71 if (!p _psMinLM_GuessABP(Alpha, Beta, Params, alpha, beta, params, paramMask, checkLimits, lambda)) {68 if (!psMinLM_GuessABP(Alpha, Beta, Params, alpha, beta, params, paramMask, checkLimits, lambda)) { 72 69 min->iter ++; 73 70 lambda *= 10.0; … … 76 73 77 74 // measure linear model prediction 78 psF32 dLinear = p _psMinLM_dLinear(Beta, beta, lambda);75 psF32 dLinear = psMinLM_dLinear(Beta, beta, lambda); 79 76 80 77 // dump some useful info if trace is defined … … 88 85 89 86 // calculate Chisq for new guess, update Alpha & Beta 90 Chisq = p _psMinLM_SetABX(Alpha, Beta, Params, paramMask, source, func);87 Chisq = psphotModelWithPSF_SetABX(Alpha, Beta, Params, paramMask, source, psf, func); 91 88 if (isnan(Chisq)) { 92 89 min->iter ++; … … 112 109 /* if (Chisq < min->value) { */ 113 110 if (rho > 0.0) { 114 min->lastDelta = (min->value - Chisq) / ( dy->n- params->n);111 min->lastDelta = (min->value - Chisq) / (source->pixels->numCols*source->pixels->numRows - params->n); 115 112 min->value = Chisq; 116 113 alpha = psImageCopy(alpha, Alpha, PS_TYPE_F32); … … 127 124 // construct & return the covariance matrix (if requested) 128 125 if (covar != NULL) { 129 if (!p _psMinLM_GuessABP(covar, Beta, Params, alpha, beta, params, paramMask, NULL, 0.0)) {126 if (!psMinLM_GuessABP(covar, Beta, Params, alpha, beta, params, paramMask, NULL, 0.0)) { 130 127 psTrace ("psLib.math", 5, "failure to calculate covariance matrix\n"); 131 128 } … … 172 169 } 173 170 174 psF32 chisq;175 psF32 delta;176 psF32 weight;177 psF32 ymodel;178 171 psVector *deriv = psVectorAlloc(params->n, PS_TYPE_F32); 179 172 … … 191 184 192 185 // fill in the coordinate and value entries 193 nPix = 0;194 186 for (psS32 i = 0; i < source->pixels->numRows; i++) { 195 187 for (psS32 j = 0; j < source->pixels->numCols; j++) { … … 239 231 psImageInit (alpha, 0.0); 240 232 psVectorInit (beta, 0.0); 241 chisq = 0.0;233 float chisq = 0.0; 242 234 243 235 for (psS32 i = 0; i < source->pixels->numRows; i++) { … … 257 249 } 258 250 259 ymodel = modelConv->data.F32[i][j];260 yweight = 1.0 / source->weight->data.F32[i][j];261 delta = ymodel - source->pixels->data.F32[i][j];262 263 chisq += PS_SQR(delta) * var;251 float ymodel = modelConv->data.F32[i][j]; 252 float yweight = 1.0 / source->weight->data.F32[i][j]; 253 float delta = ymodel - source->pixels->data.F32[i][j]; 254 255 chisq += PS_SQR(delta) * yweight; 264 256 265 257 if (isnan(delta)) … … 273 265 } 274 266 psImage *dmodel = dmodelsConv->data[n1]; 275 weight = dmodel->data.F32[i][j] * yweight;267 float weight = dmodel->data.F32[i][j] * yweight; 276 268 for (psS32 n2 = 0; n2 <= n1; n2++) { 277 269 if ((paramMask != NULL) && (paramMask->data.U8[n2])) { … … 281 273 alpha->data.F32[n1][n2] += weight * dmodel->data.F32[i][j]; 282 274 } 283 beta->data.F32[ jn] += weight * delta;275 beta->data.F32[n1] += weight * delta; 284 276 } 285 277 } -
trunk/psphot/src/psphotReadout.c
r13900 r13983 246 246 if (dump) psphotSaveImage (NULL, readout->image, "image.v6.fits"); 247 247 248 psphotExtendedSources (readout, sources, recipe, maskVal); 249 248 250 finish: 249 251
Note:
See TracChangeset
for help on using the changeset viewer.
