- Timestamp:
- Apr 26, 2011, 5:54:39 PM (15 years ago)
- Location:
- branches/eam_branches/ipp-20110404/psModules/src/objects
- Files:
-
- 8 edited
-
pmGrowthCurve.c (modified) (1 diff)
-
pmPSF.c (modified) (3 diffs)
-
pmPSF.h (modified) (4 diffs)
-
pmPeaks.c (modified) (3 diffs)
-
pmPeaks.h (modified) (2 diffs)
-
pmSource.c (modified) (7 diffs)
-
pmSource.h (modified) (2 diffs)
-
pmSourceIO_CMF_PS1_SV1.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20110404/psModules/src/objects/pmGrowthCurve.c
r31361 r31384 96 96 growth->refRadius = refRadius; 97 97 growth->maxRadius = maxRadius; 98 growth->apLoss = 0.0; 99 growth->fitMag = 0.0; 98 growth->fitMag = NAN; 99 growth->apRef = NAN; 100 growth->apLoss = NAN; 101 100 102 return growth; 101 103 } -
branches/eam_branches/ipp-20110404/psModules/src/objects/pmPSF.c
r31153 r31384 73 73 74 74 options->type = 0; 75 76 75 options->stats = NULL; 77 options->fitOptions = NULL; // XXX this has to be set before calling pmPSF fit functions78 76 79 77 options->psfTrendMode = PM_TREND_NONE; … … 90 88 91 89 options->chiFluxTrend = true; 92 90 options->fitOptions = NULL; // XXX this has to be set before calling pmPSF fit functions 91 92 options->fitRadius = NAN; 93 options->apRadius = NAN; 93 94 return options; 94 95 } … … 141 142 142 143 psf->type = options->type; 144 143 145 psf->chisq = 0.0; 144 146 psf->ApResid = 0.0; -
branches/eam_branches/ipp-20110404/psModules/src/objects/pmPSF.h
r31361 r31384 31 31 struct pmPSF { 32 32 pmModelType type; ///< PSF Model in use 33 psArray *params; ///< Model parameters (psPolynomial2D) 34 psStats *psfTrendStats; ///< psf parameter trend clipping stats 35 pmTrend2DMode psfTrendMode; 36 psPolynomial1D *ChiTrend; ///< Chisq vs flux fit (correction for systematic errors) 37 pmTrend2D *ApTrend; ///< ApResid vs (x,y) 38 pmTrend2D *FluxScale; ///< Flux for PSF at (x,y) for normalization = 1.0 33 34 float chisq; ///< PSF goodness statistic (unused??) 39 35 float ApResid; ///< apMag - psfMag (for PSF stars) 40 36 float dApResid; ///< scatter of ApResid 41 37 float skyBias; ///< implied residual sky offset from ApResid fit 42 38 float skySat; ///< roll-over of ApResid fit 43 float chisq; ///< PSF goodness statistic (unused??)44 39 int nPSFstars; ///< number of stars used to measure PSF 45 40 int nApResid; ///< number of stars used to measure ApResid 41 42 bool poissonErrorsPhotLMM; ///< use poission errors for non-linear model fitting 43 bool poissonErrorsPhotLin; ///< use poission errors for linear model fitting 44 bool poissonErrorsParams; ///< use poission errors for model parameter fitting 45 46 pmTrend2D *ApTrend; ///< ApResid vs (x,y) 47 pmTrend2D *FluxScale; ///< Flux for PSF at (x,y) for normalization = 1.0 48 psPolynomial1D *ChiTrend; ///< Chisq vs flux fit (correction for systematic errors) 49 50 pmGrowthCurve *growth; ///< apMag vs Radius 51 pmResiduals *residuals; ///< normalized residual image (no spatial variation) 52 53 psArray *params; ///< Model parameters (psPolynomial2D) 54 psStats *psfTrendStats; ///< psf parameter trend clipping stats 55 56 pmTrend2DMode psfTrendMode; 46 57 int trendNx; 47 58 int trendNy; … … 50 61 int fieldXo; 51 62 int fieldYo; 52 bool poissonErrorsPhotLMM; ///< use poission errors for non-linear model fitting53 bool poissonErrorsPhotLin; ///< use poission errors for linear model fitting54 bool poissonErrorsParams; ///< use poission errors for model parameter fitting55 pmGrowthCurve *growth; ///< apMag vs Radius56 pmResiduals *residuals; ///< normalized residual image (no spatial variation)57 63 }; 58 64 … … 60 66 pmModelType type; 61 67 psStats *stats; // psfTrend clipping stats 68 62 69 pmTrend2DMode psfTrendMode; 63 70 int psfTrendNx; … … 67 74 int psfFieldXo; 68 75 int psfFieldYo; 76 69 77 bool poissonErrorsPhotLMM; ///< use poission errors for non-linear model fitting 70 78 bool poissonErrorsPhotLin; ///< use poission errors for linear model fitting 71 79 bool poissonErrorsParams; ///< use poission errors for model parameter fitting 80 81 bool chiFluxTrend; // Fit a trend in Chi2 as a function of flux? 82 pmSourceFitOptions *fitOptions; 83 72 84 float fitRadius; 73 85 float apRadius; 74 bool chiFluxTrend; // Fit a trend in Chi2 as a function of flux?75 pmSourceFitOptions *fitOptions;76 86 } pmPSFOptions; 77 87 -
branches/eam_branches/ipp-20110404/psModules/src/objects/pmPeaks.c
r31153 r31384 150 150 tmp->x = x; 151 151 tmp->y = y; 152 tmp->xf = x; 153 tmp->yf = y; 154 tmp->dx = NAN; 155 tmp->dy = NAN; 152 156 tmp->detValue = value; 153 157 tmp->rawFlux = value; // set this by default: it is up to the user to supply a better value … … 155 159 tmp->smoothFlux = value; // set this by default: it is up to the user to supply a better value 156 160 tmp->smoothFluxStdev = NAN; 157 // tmp->SN = 0;158 tmp->xf = x;159 tmp->yf = y;160 161 tmp->assigned = false; 161 162 tmp->type = type; … … 166 167 psTrace("psModules.objects", 10, "---- %s() end ----\n", __func__); 167 168 return(tmp); 169 } 170 171 // copy to an already allocated peak 172 bool pmPeakCopy(pmPeak *out, pmPeak *in) 173 { 174 out->x = in->x; 175 out->y = in->y; 176 out->xf = in->xf; 177 out->yf = in->yf; 178 out->dx = in->dx; 179 out->dy = in->dy; 180 out->detValue = in->detValue; 181 out->rawFlux = in->rawFlux; 182 out->rawFluxStdev = in->rawFluxStdev; 183 out->smoothFlux = in->smoothFlux; 184 out->smoothFluxStdev = in->smoothFluxStdev; 185 out->assigned = in->assigned; 186 out->type = in->type; 187 188 return true; 168 189 } 169 190 -
branches/eam_branches/ipp-20110404/psModules/src/objects/pmPeaks.h
r31153 r31384 69 69 float smoothFlux; ///< peak flux in smoothed signal image 70 70 float smoothFluxStdev; ///< peak stdev in smoothed signal image 71 // float SNestimated; ///< S/N estimated from the detection image72 71 bool assigned; ///< is peak assigned to a source? 73 72 pmPeakType type; ///< Description of peak. … … 89 88 90 89 bool psMemCheckPeak(psPtr ptr); 90 91 bool pmPeakCopy(pmPeak *out, pmPeak *in); 91 92 92 93 /** pmPeaksInVector() -
branches/eam_branches/ipp-20110404/psModules/src/objects/pmSource.c
r31360 r31384 116 116 source->psfImage = NULL; 117 117 source->moments = NULL; 118 source->blends = NULL;119 118 source->modelPSF = NULL; 120 119 source->modelEXT = NULL; … … 124 123 source->mode2 = PM_SOURCE_MODE_DEFAULT; 125 124 source->tmpFlags = 0; 126 source->extpars = NULL;127 source->diffStats = NULL;128 source->radialAper = NULL;129 source->parent = NULL;130 131 source->region = psRegionSet(NAN, NAN, NAN, NAN);132 psMemSetDeallocator(source, (psFreeFunc) sourceFree);133 125 134 126 // default values are NAN 135 127 source->psfMag = NAN; 128 source->psfMagErr = NAN; 136 129 source->psfFlux = NAN; 137 130 source->psfFluxErr = NAN; 138 131 source->extMag = NAN; 139 source->psfMagErr = NAN;140 132 source->apMag = NAN; 141 133 source->apMagRaw = NAN; … … 143 135 source->apFlux = NAN; 144 136 source->apFluxErr = NAN; 145 source->sky = NAN; 146 source->skyErr = NAN; 137 147 138 source->pixWeightNotBad = NAN; 148 139 source->pixWeightNotPoor = NAN; … … 151 142 source->crNsigma = NAN; 152 143 source->extNsigma = NAN; 144 source->sky = NAN; 145 source->skyErr = NAN; 146 147 source->region = psRegionSet(NAN, NAN, NAN, NAN); 148 source->blends = NULL; 149 source->extpars = NULL; 150 source->diffStats = NULL; 151 source->radialAper = NULL; 152 source->parent = NULL; 153 source->imageID = -1; 154 155 psMemSetDeallocator(source, (psFreeFunc) sourceFree); 153 156 154 157 psTrace("psModules.objects", 10, "---- end ----\n"); … … 172 175 if (in->peak != NULL) { 173 176 source->peak = pmPeakAlloc (in->peak->x, in->peak->y, in->peak->detValue, in->peak->type); 174 source->peak->xf = in->peak->xf; 175 source->peak->yf = in->peak->yf; 176 source->peak->rawFlux = in->peak->rawFlux; 177 source->peak->rawFluxStdev = in->peak->rawFluxStdev; 178 source->peak->smoothFlux = in->peak->smoothFlux; 179 source->peak->smoothFluxStdev = in->peak->smoothFluxStdev; 180 // source->peak->SN = in->peak->SN; 177 pmPeakCopy(source->peak, in->peak); 181 178 } 182 179 … … 195 192 196 193 // the maskObj is a unique mask array; create a new mask image 197 source->maskObj = in->maskObj ? psImageCopy (NULL, in->maskObj, PS_TYPE_IMAGE_MASK) : NULL; 198 199 source->type = in->type; 200 source->mode = in->mode; 201 source->mode2 = in->mode2; 202 source->tmpFlags = in->tmpFlags; 203 source->imageID = in->imageID; 204 205 source->psfMag = in->psfMag; 206 source->psfFlux = in->psfFlux; 207 source->psfFluxErr = in->psfFluxErr; 208 source->extMag = in->extMag; 209 source->psfMagErr = in->psfMagErr; 210 source->apMag = in->apMag; 211 source->apMagRaw = in->apMagRaw; 212 source->apRadius = in->apRadius; 213 source->apFlux = in->apFlux; 214 source->apFluxErr = in->apFluxErr; 215 source->pixWeightNotBad = in->pixWeightNotBad; 216 source->pixWeightNotPoor = in->pixWeightNotPoor; 217 source->psfChisq = in->psfChisq; 218 source->crNsigma = in->crNsigma; 219 source->extNsigma = in->extNsigma; 220 source->sky = in->sky; 221 source->skyErr = in->skyErr; 194 source->maskObj = in->maskObj ? psImageCopy (NULL, in->maskObj, PS_TYPE_IMAGE_MASK) : NULL; 195 196 // NOTE : because of the const id element, we cannot just assign *source = *in 197 198 source->type = in->type; 199 source->mode = in->mode; 200 source->mode2 = in->mode2; 201 source->tmpFlags = in->tmpFlags; 202 source->psfMag = in->psfMag; 203 source->psfMagErr = in->psfMagErr; 204 source->psfFlux = in->psfFlux; 205 source->psfFluxErr = in->psfFluxErr; 206 source->extMag = in->extMag; 207 source->apMag = in->apMag; 208 source->apMagRaw = in->apMagRaw; 209 source->apRadius = in->apRadius; 210 source->apFlux = in->apFlux; 211 source->apFluxErr = in->apFluxErr; 212 source->pixWeightNotBad = in->pixWeightNotBad; 213 source->pixWeightNotPoor = in->pixWeightNotPoor; 214 source->psfChisq = in->psfChisq; 215 source->crNsigma = in->crNsigma; 216 source->extNsigma = in->extNsigma; 217 source->sky = in->sky; 218 source->skyErr = in->skyErr; 219 220 source->region = in->region; 222 221 223 222 return(source); … … 1195 1194 if (!source->moments) return false; // can't if there are no moments 1196 1195 if (!source->moments->nPixels) return false; // can't if the moments were not measured 1197 if (source->mode & &PM_SOURCE_MODE_MOMENTS_FAILURE) return false; // can't if the moments failed...1196 if (source->mode & PM_SOURCE_MODE_MOMENTS_FAILURE) return false; // can't if the moments failed... 1198 1197 1199 1198 if (source->mode & PM_SOURCE_MODE_SATSTAR) return true; // moments are best for SATSTARs -
branches/eam_branches/ipp-20110404/psModules/src/objects/pmSource.h
r31361 r31384 80 80 pmSourceMode2 mode2; ///< analysis flags set for object. 81 81 pmSourceTmpF tmpFlags; ///< internal-only flags 82 psArray *blends; ///< collection of sources thought to be confused with object 82 83 83 float psfMag; ///< calculated from flux in modelPSF 84 84 float psfMagErr; ///< error in psfMag … … 98 98 float crNsigma; ///< Nsigma deviation from PSF to CR 99 99 float extNsigma; ///< Nsigma deviation from PSF to EXT 100 float sky, skyErr; ///< The sky and its error at the center of the object 100 float sky; ///< The sky at the center of the object 101 float skyErr; ///< The sky error at the center of the object 102 101 103 psRegion region; ///< area on image covered by selected pixels 104 psArray *blends; ///< collection of sources thought to be confused with object 102 105 pmSourceExtendedPars *extpars; ///< extended source parameters 103 106 pmSourceDiffStats *diffStats; ///< extra parameters for difference detections -
branches/eam_branches/ipp-20110404/psModules/src/objects/pmSourceIO_CMF_PS1_SV1.c
r31360 r31384 720 720 sprintf (keyword1, "RMIN_%02d", i); 721 721 sprintf (keyword2, "RMAX_%02d", i); 722 psMetadataAddF32 ( imageHeader, PS_LIST_TAIL, keyword1, PS_META_REPLACE, "min radius for SB profile", radMin->data.F32[i]);723 psMetadataAddF32 ( imageHeader, PS_LIST_TAIL, keyword2, PS_META_REPLACE, "min radius for SB profile", radMax->data.F32[i]);722 psMetadataAddF32 (outhead, PS_LIST_TAIL, keyword1, PS_META_REPLACE, "min radius for SB profile", radMin->data.F32[i]); 723 psMetadataAddF32 (outhead, PS_LIST_TAIL, keyword2, PS_META_REPLACE, "min radius for SB profile", radMax->data.F32[i]); 724 724 } 725 725
Note:
See TracChangeset
for help on using the changeset viewer.
