Changeset 9775 for trunk/psModules/src/objects/models/pmModel_PGAUSS.c
- Timestamp:
- Oct 29, 2006, 5:02:59 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/objects/models/pmModel_PGAUSS.c
r9770 r9775 6 6 * specifics of the model. All models which are used a PSF representations share a few 7 7 * parameters, for which # define names are listed in pmModel.h: 8 9 Gaussian taylor expansion 10 1 / (1 + z + z^2/2 + z^3/6) 8 11 9 12 * PM_PAR_SKY 0 - local sky : note that this is unused and may be dropped in the future … … 115 118 shape.sx = PAR[PM_PAR_SXX] / sqrt(2.0); 116 119 shape.sy = PAR[PM_PAR_SYY] / sqrt(2.0); 117 shape.sxy = PAR[PM_PAR_SXY] / sqrt(2.0);120 shape.sxy = PAR[PM_PAR_SXY]; 118 121 119 122 // Area is equivalent to 2 pi sigma^2 … … 146 149 psF64 PM_MODEL_RADIUS (const psVector *params, psF64 flux) 147 150 { 151 psEllipseShape shape; 152 153 psF32 *PAR = params->data.F32; 154 148 155 if (flux <= 0) 149 156 return (1.0); 150 if ( params->data.F32[PM_PAR_I0] <= 0)157 if (PAR[PM_PAR_I0] <= 0) 151 158 return (1.0); 152 if (flux >= params->data.F32[PM_PAR_I0])159 if (flux >= PAR[PM_PAR_I0]) 153 160 return (1.0); 154 155 psF32 *PAR = params->data.F32;156 161 157 162 shape.sx = PAR[PM_PAR_SXX] / sqrt(2.0); 158 163 shape.sy = PAR[PM_PAR_SYY] / sqrt(2.0); 159 shape.sxy = PAR[PM_PAR_SXY] / sqrt(2.0);164 shape.sxy = PAR[PM_PAR_SXY]; 160 165 161 166 // this estimates the radius assuming f(z) is roughly exp(-z) 162 167 psEllipseAxes axes = psEllipseShapeToAxes (shape); 163 psF64 radius = axes.major * sqrt (2.0 * log( params->data.F32[PM_PAR_I0] / flux));168 psF64 radius = axes.major * sqrt (2.0 * log(PAR[PM_PAR_I0] / flux)); 164 169 165 170 if (isnan(radius)) 166 psAbort ("psphot.model", "error in code: never return invalid radius");171 psAbort ("psphot.model", "error in code: radius is NaN"); 167 172 if (radius < 0) 168 psAbort ("psphot.model", "error in code: never return invalid radius");173 psAbort ("psphot.model", "error in code: radius is negative"); 169 174 170 175 return (radius); … … 215 220 status &= ((dPAR[PM_PAR_I0]/PAR[PM_PAR_I0]) < 0.5); 216 221 217 if (status) 218 return true; 219 return false; 222 return status; 220 223 } 221 224
Note:
See TracChangeset
for help on using the changeset viewer.
