Changeset 14652 for trunk/psModules/src/objects/pmPSF.c
- Timestamp:
- Aug 23, 2007, 2:11:02 PM (19 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/objects/pmPSF.c (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/objects/pmPSF.c
r13898 r14652 6 6 * @author EAM, IfA 7 7 * 8 * @version $Revision: 1.2 5$ $Name: not supported by cvs2svn $9 * @date $Date: 2007-0 6-20 02:22:26$8 * @version $Revision: 1.26 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2007-08-24 00:11:02 $ 10 10 * 11 11 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 28 28 #include "pmMoments.h" 29 29 #include "pmResiduals.h" 30 #include "pmGrowthCurve.h" 31 #include "pmPSF.h" 30 32 #include "pmModel.h" 31 33 #include "pmSource.h" 32 #include "pmGrowthCurve.h" 33 #include "pmPSF.h" 34 #include "pmModelGroup.h" 34 #include "pmModelClass.h" 35 #include "pmModelUtils.h" 35 36 #include "pmSourcePhotometry.h" 36 37 #include "pmFPAMaskWeight.h" … … 74 75 psFree (psf->ApTrend); 75 76 psFree (psf->growth); 76 psFree (psf->params _NEW);77 psFree (psf->params); 77 78 psFree (psf->residuals); 78 79 return; … … 103 104 psf->skyBias = 0.0; 104 105 psf->skySat = 0.0; 106 psf->nPSFstars = 0; 107 psf->nApResid = 0; 105 108 psf->poissonErrors = poissonErrors; 106 109 … … 124 127 psf->residuals = NULL; 125 128 126 Nparams = pmModel ParameterCount (type);129 Nparams = pmModelClassParameterCount (type); 127 130 if (!Nparams) { 128 131 psError(PS_ERR_UNKNOWN, true, "Undefined pmModelType"); 129 132 return(NULL); 130 133 } 131 psf->params _NEW= psArrayAlloc(Nparams);134 psf->params = psArrayAlloc(Nparams); 132 135 133 136 // the order of the PSF parameter (X,Y) fits is determined by the psfTrendMask polynomial … … 139 142 140 143 if (psfTrendMask) { 141 for (int i = 0; i < psf->params _NEW->n; i++) {144 for (int i = 0; i < psf->params->n; i++) { 142 145 if (i == PM_PAR_SKY) 143 146 continue; … … 155 158 } 156 159 } 157 psf->params _NEW->data[i] = param;160 psf->params->data[i] = param; 158 161 } 159 162 } … … 161 164 psMemSetDeallocator(psf, (psFreeFunc) pmPSFFree); 162 165 return(psf); 163 }164 165 /*****************************************************************************166 pmModelFromPSF (*modelEXT, *psf): use the model position parameters to167 construct a realization of the PSF model at the object coordinates168 *****************************************************************************/169 pmModel *pmModelFromPSF (pmModel *modelEXT, pmPSF *psf)170 {171 172 // need to define the relationship between the modelEXT and modelPSF ?173 174 // find function used to set the model parameters175 pmModelFromPSFFunc modelFromPSFFunc = pmModelFromPSFFunc_GetFunction (psf->type);176 177 // allocate a new pmModel to hold the PSF version178 pmModel *modelPSF = pmModelAlloc (psf->type);179 180 // set model parameters for this source based on PSF information181 if (!modelFromPSFFunc (modelPSF, modelEXT, psf)) {182 psError(PM_ERR_PSF, false, "Failed to set model params from PSF");183 psFree(modelPSF);184 return NULL;185 }186 // XXX note that model->residuals is just a reference187 modelPSF->residuals = psf->residuals;188 189 return (modelPSF);190 166 } 191 167 … … 335 311 va_start(ap, sxy); 336 312 337 pmModelType type = pmModel SetType (typeName);313 pmModelType type = pmModelClassGetType (typeName); 338 314 psPolynomial2D *psfTrend = psPolynomial2DAlloc (PS_POLYNOMIAL_ORD, 0, 0); 339 315 pmPSF *psf = pmPSFAlloc (type, true, psfTrend); 340 316 341 psVector *par = psVectorAlloc (psf->params _NEW->n, PS_TYPE_F32);317 psVector *par = psVectorAlloc (psf->params->n, PS_TYPE_F32); 342 318 par->data.F32[PM_PAR_SXX] = sxx; 343 319 par->data.F32[PM_PAR_SYY] = syy; … … 348 324 // set the psf shape parameters 349 325 psPolynomial2D *poly = NULL; 350 poly = psf->params _NEW->data[PM_PAR_E0];326 poly = psf->params->data[PM_PAR_E0]; 351 327 poly->coeff[0][0] = pol.e0; 352 328 353 poly = psf->params _NEW->data[PM_PAR_E1];329 poly = psf->params->data[PM_PAR_E1]; 354 330 poly->coeff[0][0] = pol.e1; 355 331 356 poly = psf->params _NEW->data[PM_PAR_E2];332 poly = psf->params->data[PM_PAR_E2]; 357 333 poly->coeff[0][0] = pol.e2; 358 334 359 for (int i = PM_PAR_SXY + 1; i < psf->params _NEW->n; i++) {360 poly = psf->params _NEW->data[i];335 for (int i = PM_PAR_SXY + 1; i < psf->params->n; i++) { 336 poly = psf->params->data[i]; 361 337 poly->coeff[0][0] = (psF32)va_arg(ap, psF64); 362 338 }
Note:
See TracChangeset
for help on using the changeset viewer.
