Changeset 6715 for trunk/psphot/src/psphotSourceFits.c
- Timestamp:
- Mar 27, 2006, 4:31:17 PM (20 years ago)
- File:
-
- 1 edited
-
trunk/psphot/src/psphotSourceFits.c (modified) (16 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psphot/src/psphotSourceFits.c
r6481 r6715 1 1 # include "psphot.h" 2 # include "psEllipse.h"3 2 4 3 // given a source with an existing modelPSF, attempt a full PSF fit, subtract if successful … … 18 17 19 18 // fit PSF model (set/unset the pixel mask) 20 psImageKeepCircle (source->mask, x, y, PSF->radius, "OR", P SPHOT_MASK_MARKED);19 psImageKeepCircle (source->mask, x, y, PSF->radius, "OR", PM_SOURCE_MASK_MARKED); 21 20 pmSourceFitModel (source, PSF, true); 22 psImageKeepCircle (source->mask, x, y, PSF->radius, "AND", ~P SPHOT_MASK_MARKED);21 psImageKeepCircle (source->mask, x, y, PSF->radius, "AND", ~PM_SOURCE_MASK_MARKED); 23 22 24 23 // does the PSF model succeed? … … 29 28 30 29 psTrace ("psphot.blend", 5, "fitted as PSF\n"); 31 pm SourceSubModel(source->pixels, source->mask, PSF, false, false);30 pmModelSub (source->pixels, source->mask, PSF, false, false); 32 31 33 32 // free old model, save new model … … 35 34 source->modelPSF = PSF; 36 35 37 source->mode |= PM_SOURCE_ SUBTRACTED;38 source->mode &= ~PM_SOURCE_ TEMPSUB;36 source->mode |= PM_SOURCE_MODE_SUBTRACTED; 37 source->mode &= ~PM_SOURCE_MODE_TEMPSUB; 39 38 return true; 40 39 } … … 67 66 68 67 // skip the source if we don't think it is extended 69 if (source->type == PM_SOURCE_ UNKNOWN) return false;70 if (source->type == PM_SOURCE_ DEFECT) return false;71 if (source->type == PM_SOURCE_ SATURATED) return false;68 if (source->type == PM_SOURCE_TYPE_UNKNOWN) return false; 69 if (source->type == PM_SOURCE_TYPE_DEFECT) return false; 70 if (source->type == PM_SOURCE_TYPE_SATURATED) return false; 72 71 if (source->moments->SN < EXT_MIN_SN) return false; 73 72 … … 110 109 // sub EXT 111 110 psFree (DBL); 112 pm SourceSubModel(source->pixels, source->mask, EXT, false, false);111 pmModelSub (source->pixels, source->mask, EXT, false, false); 113 112 psTrace ("psphot.blend", 5, "blob as EXT: %f %f\n", EXT->params->data.F32[2], EXT->params->data.F32[3]); 114 113 115 114 // save new model 116 115 source->modelEXT = EXT; 117 source->mode |= PM_SOURCE_ SUBTRACTED;118 source->mode &= ~PM_SOURCE_ TEMPSUB;116 source->mode |= PM_SOURCE_MODE_SUBTRACTED; 117 source->mode &= ~PM_SOURCE_MODE_TEMPSUB; 119 118 return true; 120 119 … … 122 121 // sub DLB 123 122 psFree (EXT); 124 pm SourceSubModel(source->pixels, source->mask, (pmModel *) DBL->data[0], false, false);125 pm SourceSubModel(source->pixels, source->mask, (pmModel *) DBL->data[1], false, false);123 pmModelSub (source->pixels, source->mask, (pmModel *) DBL->data[0], false, false); 124 pmModelSub (source->pixels, source->mask, (pmModel *) DBL->data[1], false, false); 126 125 psTrace ("psphot.blend", 5, "blob as DBL: %f %f\n", ONE->params->data.F32[2], ONE->params->data.F32[3]); 127 126 … … 129 128 psFree (source->modelPSF); 130 129 source->modelPSF = psMemCopy (DBL->data[0]); 131 source->mode |= PM_SOURCE_ SUBTRACTED;132 source->mode |= PM_SOURCE_ PAIR;133 source->mode &= ~PM_SOURCE_ TEMPSUB;130 source->mode |= PM_SOURCE_MODE_SUBTRACTED; 131 source->mode |= PM_SOURCE_MODE_PAIR; 132 source->mode &= ~PM_SOURCE_MODE_TEMPSUB; 134 133 135 134 // copy most data from the primary source (modelEXT, blends stay NULL) … … 155 154 pmModel *DBL; 156 155 pmModel *PSF; 157 EllipseAxes axes;158 EllipseMoments moments;156 psEllipseAxes axes; 157 psEllipseMoments moments; 159 158 psArray *modelSet; 160 159 … … 163 162 moments.y2 = source->moments->Sy; 164 163 moments.xy = source->moments->Sxy; 165 axes = EllipseMomentsToAxes (moments);164 axes = psEllipseMomentsToAxes (moments); 166 165 167 166 dx = 2 * cos (axes.theta); … … 190 189 191 190 // fit EXT (not PSF) model (set/unset the pixel mask) 192 psImageKeepCircle (source->mask, x, y, PSF->radius, "OR", P SPHOT_MASK_MARKED);191 psImageKeepCircle (source->mask, x, y, PSF->radius, "OR", PM_SOURCE_MASK_MARKED); 193 192 pmSourceFitSet (source, modelSet, true); 194 psImageKeepCircle (source->mask, x, y, PSF->radius, "AND", ~P SPHOT_MASK_MARKED);193 psImageKeepCircle (source->mask, x, y, PSF->radius, "AND", ~PM_SOURCE_MASK_MARKED); 195 194 196 195 return (modelSet); … … 210 209 211 210 // fit EXT (not PSF) model (set/unset the pixel mask) 212 psImageKeepCircle (source->mask, x, y, EXT->radius, "OR", P SPHOT_MASK_MARKED);211 psImageKeepCircle (source->mask, x, y, EXT->radius, "OR", PM_SOURCE_MASK_MARKED); 213 212 pmSourceFitModel (source, EXT, false); 214 psImageKeepCircle (source->mask, x, y, EXT->radius, "AND", ~P SPHOT_MASK_MARKED);213 psImageKeepCircle (source->mask, x, y, EXT->radius, "AND", ~PM_SOURCE_MASK_MARKED); 215 214 216 215 return (EXT); … … 222 221 223 222 // if this source is not a possible blend, just fit as PSF 224 if ((source->blends == NULL) || (source->mode & PM_SOURCE_ SATSTAR)) {223 if ((source->blends == NULL) || (source->mode & PM_SOURCE_MODE_SATSTAR)) { 225 224 bool status = psphotFitPSF (readout, source); 226 225 return status; … … 273 272 274 273 // fit PSF model (set/unset the pixel mask) 275 psImageKeepCircle (source->mask, x, y, PSF->radius, "OR", P SPHOT_MASK_MARKED);274 psImageKeepCircle (source->mask, x, y, PSF->radius, "OR", PM_SOURCE_MASK_MARKED); 276 275 pmSourceFitSet (source, modelSet, true); 277 psImageKeepCircle (source->mask, x, y, PSF->radius, "AND", ~P SPHOT_MASK_MARKED);276 psImageKeepCircle (source->mask, x, y, PSF->radius, "AND", ~PM_SOURCE_MASK_MARKED); 278 277 279 278 // evaluate the blend objects, subtract if good, free otherwise … … 291 290 292 291 psTrace ("psphot.blend", 5, "fitted blend as PSF\n"); 293 pm SourceSubModel(source->pixels, source->mask, model, false, false);294 src->mode |= PM_SOURCE_ SUBTRACTED;295 src->mode &= ~PM_SOURCE_ TEMPSUB;292 pmModelSub (source->pixels, source->mask, model, false, false); 293 src->mode |= PM_SOURCE_MODE_SUBTRACTED; 294 src->mode &= ~PM_SOURCE_MODE_TEMPSUB; 296 295 } 297 296 psFree (modelSet); … … 305 304 306 305 psTrace ("psphot.blend", 5, "fitted primary as PSF\n"); 307 pm SourceSubModel(source->pixels, source->mask, PSF, false, false);306 pmModelSub (source->pixels, source->mask, PSF, false, false); 308 307 psFree (source->modelPSF); 309 308 source->modelPSF = PSF; 310 source->mode |= PM_SOURCE_ SUBTRACTED;311 source->mode &= ~PM_SOURCE_ TEMPSUB;312 return true; 313 } 309 source->mode |= PM_SOURCE_MODE_SUBTRACTED; 310 source->mode &= ~PM_SOURCE_MODE_TEMPSUB; 311 return true; 312 }
Note:
See TracChangeset
for help on using the changeset viewer.
