IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 17, 2005, 10:26:59 AM (21 years ago)
Author:
eugene
Message:

clean up of small accounting bugs, adding the post-subtraction ApResid

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psphot/src/psphotReplaceUnfit.c

    r5774 r5802  
    33bool psphotReplaceUnfit (psArray *sources) {
    44
    5     bool status;
    6     float x;
    7     float y;
     5    pmModel *model;
     6    pmSource *source;
    87
    98    psTimerStart ("psphot");
    109
    1110    for (int i = 0; i < sources->n; i++) {
    12         pmSource *source = sources->data[i];
     11      source = sources->data[i];
    1312
    1413        // skip non-astronomical objects (very likely defects)
    1514        // these were never fitted and subtracted
    1615        if (source->mode &  PM_SOURCE_BLEND) continue;
    17         if (source->type == PM_SOURCE_DEFECT) continue;
    1816        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        }
    1928
    2029        // need to skip the successful fits
    2130        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;
    3533            continue;
    3634        }
    3735
    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;
    4239
    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;
    5442    }
    5543    psLogMsg ("psphot.replace", 4, "replace models: %f (%d objects)\n", psTimerMark ("psphot"), sources->n);
Note: See TracChangeset for help on using the changeset viewer.