Changeset 5802 for trunk/psphot/src/psphotReplaceUnfit.c
- Timestamp:
- Dec 17, 2005, 10:26:59 AM (21 years ago)
- File:
-
- 1 edited
-
trunk/psphot/src/psphotReplaceUnfit.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psphot/src/psphotReplaceUnfit.c
r5774 r5802 3 3 bool psphotReplaceUnfit (psArray *sources) { 4 4 5 bool status; 6 float x; 7 float y; 5 pmModel *model; 6 pmSource *source; 8 7 9 8 psTimerStart ("psphot"); 10 9 11 10 for (int i = 0; i < sources->n; i++) { 12 pmSource *source = sources->data[i];11 source = sources->data[i]; 13 12 14 13 // skip non-astronomical objects (very likely defects) 15 14 // these were never fitted and subtracted 16 15 if (source->mode & PM_SOURCE_BLEND) continue; 17 if (source->type == PM_SOURCE_DEFECT) continue;18 16 if (source->type == PM_SOURCE_SATURATED) continue; 17 18 if (source->type == PM_SOURCE_DEFECT) { 19 if (source->mode & PM_SOURCE_SUBTRACTED) goto addPSF; 20 continue; 21 } 22 23 if (source->type == PM_SOURCE_GALAXY) { 24 if (source->mode & PM_SOURCE_FAIL) goto addPSF; 25 if (source->mode & PM_SOURCE_POOR) goto addPSF; 26 continue; 27 } 19 28 20 29 // need to skip the successful fits 21 30 if (source->type == PM_SOURCE_STAR) { 22 if (source->mode & PM_SOURCE_FAIL) goto subPSF; 23 if (source->mode & PM_SOURCE_POOR) goto subPSF; 24 continue; 25 26 subPSF: 27 pmModel *model = source->modelPSF; 28 29 x = model->params->data.F32[2]; 30 y = model->params->data.F32[3]; 31 32 psImageKeepCircle (source->mask, x, y, model->radius, "OR", PSPHOT_MASK_MARKED); 33 pmSourceAddModel (source->pixels, source->mask, model, false, false); 34 psImageKeepCircle (source->mask, x, y, model->radius, "AND", ~PSPHOT_MASK_MARKED); 31 if (source->mode & PM_SOURCE_FAIL) goto addPSF; 32 if (source->mode & PM_SOURCE_POOR) goto addPSF; 35 33 continue; 36 34 } 37 35 38 if (source->type == PM_SOURCE_GALAXY) { 39 if (source->mode & PM_SOURCE_FAIL) goto subFLT; 40 if (source->mode & PM_SOURCE_POOR) goto subFLT; 41 continue; 36 addPSF: 37 model = source->modelPSF; 38 if (model == NULL) continue; 42 39 43 subPSF: 44 pmModel *model = source->modelFLT; 45 46 x = model->params->data.F32[2]; 47 y = model->params->data.F32[3]; 48 49 psImageKeepCircle (source->mask, x, y, model->radius, "OR", PSPHOT_MASK_MARKED); 50 pmSourceAddModel (source->pixels, source->mask, model, false, false); 51 psImageKeepCircle (source->mask, x, y, model->radius, "AND", ~PSPHOT_MASK_MARKED); 52 continue; 53 } 40 pmSourceAddModel (source->pixels, source->mask, model, false, false); 41 source->mode &= ~PM_SOURCE_SUBTRACTED; 54 42 } 55 43 psLogMsg ("psphot.replace", 4, "replace models: %f (%d objects)\n", psTimerMark ("psphot"), sources->n);
Note:
See TracChangeset
for help on using the changeset viewer.
