- Timestamp:
- Aug 22, 2007, 2:55:49 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branch_20070817/psModules/src/objects/pmPSF.c
r14544 r14612 6 6 * @author EAM, IfA 7 7 * 8 * @version $Revision: 1.25.6. 1$ $Name: not supported by cvs2svn $9 * @date $Date: 2007-08- 17 21:01:59 $8 * @version $Revision: 1.25.6.2 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2007-08-23 00:55:49 $ 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 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 … … 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 // allocate a new pmModel to hold the PSF version172 pmModel *modelPSF = pmModelAlloc (psf->type);173 174 // set model parameters for this source based on PSF information175 if (!modelEXT->modelFromPSF (modelPSF, modelEXT, psf)) {176 psError(PM_ERR_PSF, false, "Failed to set model params from PSF");177 psFree(modelPSF);178 return NULL;179 }180 // XXX note that model->residuals is just a reference181 modelPSF->residuals = psf->residuals;182 183 return (modelPSF);184 166 } 185 167 … … 333 315 pmPSF *psf = pmPSFAlloc (type, true, psfTrend); 334 316 335 psVector *par = psVectorAlloc (psf->params _NEW->n, PS_TYPE_F32);317 psVector *par = psVectorAlloc (psf->params->n, PS_TYPE_F32); 336 318 par->data.F32[PM_PAR_SXX] = sxx; 337 319 par->data.F32[PM_PAR_SYY] = syy; … … 342 324 // set the psf shape parameters 343 325 psPolynomial2D *poly = NULL; 344 poly = psf->params _NEW->data[PM_PAR_E0];326 poly = psf->params->data[PM_PAR_E0]; 345 327 poly->coeff[0][0] = pol.e0; 346 328 347 poly = psf->params _NEW->data[PM_PAR_E1];329 poly = psf->params->data[PM_PAR_E1]; 348 330 poly->coeff[0][0] = pol.e1; 349 331 350 poly = psf->params _NEW->data[PM_PAR_E2];332 poly = psf->params->data[PM_PAR_E2]; 351 333 poly->coeff[0][0] = pol.e2; 352 334 353 for (int i = PM_PAR_SXY + 1; i < psf->params _NEW->n; i++) {354 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]; 355 337 poly->coeff[0][0] = (psF32)va_arg(ap, psF64); 356 338 }
Note:
See TracChangeset
for help on using the changeset viewer.
