IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 4, 2005, 5:33:32 AM (21 years ago)
Author:
eugene
Message:

simultaneous PSF fitting, better background, basic deblending

File:
1 edited

Legend:

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

    r5058 r5672  
    3030    float nSx, nSy, Chi;
    3131
    32     if (source->modelPSF == NULL) return (false);
     32    pmModel *model = source->modelPSF;
    3333
    34     // if object has fitted peak above saturation, label as SATSTAR
     34    // do we actually have a valid PSF model?
     35    if (model == NULL) return (false);
     36
     37    // did the model fit fail for one or another reason?
     38    switch (model->status) {
     39      case PM_MODEL_BADARGS:
     40      case PM_MODEL_UNTRIED:
     41        source->type = PM_SOURCE_FAIL_FIT_PSF;  // better choice?
     42        return false;
     43      case PM_MODEL_SUCCESS:
     44        break;
     45      case PM_MODEL_NONCONVERGE:
     46      case PM_MODEL_OFFIMAGE:
     47        psLogMsg ("psphot", 5, "PSF fit failed for %f, %f (%d iterations)\n", model->params->data.F32[2], model->params->data.F32[3], model->nIter);
     48        source->type = PM_SOURCE_FAIL_FIT_PSF;  // better choice?
     49        return false;
     50      default:
     51        return false;
     52    }
     53
     54    // if the object has fitted peak above saturation, label as SATSTAR
     55    // this is a valid PSF object, but ignore the other quality tests
    3556    // remember: fit does not use saturated pixels (masked)
    36     if (source->modelPSF->params->data.F32[1] >= SATURATE) {
     57    if (model->params->data.F32[1] >= SATURATE) {
    3758        if (source->type == PM_SOURCE_PSFSTAR) {
    3859            psLogMsg ("psphot", 5, "PSFSTAR marked SATSTAR\n");
     
    4162        return (true);
    4263    }
     64
     65    // if the object has a fitted peak below 0, the fit did not converge cleanly
     66    if (model->params->data.F32[1] < 0) {
     67        source->type = PM_SOURCE_FAIL_FIT_PSF;
     68        return (false);
     69    }
     70
     71    // if the source was predicted to be a SATSTAR, but it fitted below saturation,
     72    // make a note to the user
    4373    if (source->type == PM_SOURCE_SATSTAR) {
    4474        psLogMsg ("psphot", 5, "SATSTAR marked GOODSTAR (fitted peak below saturation)\n");
     
    4676    }
    4777
    48     SN  = source->modelPSF->params->data.F32[1]/source->modelPSF->dparams->data.F32[1];
    49     SX  = source->modelPSF->params->data.F32[4];
    50     SY  = source->modelPSF->params->data.F32[5];
    51     dSX = source->modelPSF->dparams->data.F32[4];
    52     dSY = source->modelPSF->dparams->data.F32[5];
    53     Chi = source->modelPSF->chisq / source->modelPSF->nDOF;
     78    SN  = model->params->data.F32[1]/model->dparams->data.F32[1];
     79    SX  = model->params->data.F32[4];
     80    SY  = model->params->data.F32[5];
     81    dSX = model->dparams->data.F32[4];
     82    dSY = model->dparams->data.F32[5];
     83    Chi = model->chisq / model->nDOF;
    5484
    5585    // swing of sigma_x,y in sigmas
Note: See TracChangeset for help on using the changeset viewer.