IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Dec 22, 2005, 4:20:27 PM (21 years ago)
Author:
eugene
Message:

various cleanups, fixes, additions...

File:
1 edited

Legend:

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

    r5802 r5828  
    11# include "psphot.h"
    2 
    3 # define CLEAR_TRACE \
    4   if (TEST_SRC_ON) { \
    5     psTraceSetLevel (".pmObjects.pmSourceFitModel", 0); \
    6     psTraceSetLevel ("psMinimizeLMChi2", 0); \
    7     TEST_SRC_ON = false; } \
    82
    93bool psphotFullFit (eamReadout *imdata, psMetadata *config, psArray *sources, pmPSF *psf, psStats *sky)
     
    3226    psphotInitRadiusFLT (config, sky, modelTypeFLT);
    3327
    34     float TEST_SRC_X = psMetadataLookupF32 (&status, config, "TEST_SRC_X");
    35     float TEST_SRC_Y = psMetadataLookupF32 (&status, config, "TEST_SRC_Y");
    36     bool TEST_SRC_ON = false;
    37     bool TEST_SRC    = status;
    38     fprintf (stderr, "test src: %f %f\n", TEST_SRC_X, TEST_SRC_Y);
    39 
    4028    for (int i = 0; i < sources->n; i++) {
    4129
     
    5644        // replace object in image
    5745        pmSourceAddModel (source->pixels, source->mask, modelPSF, false, false);
     46        source->mode &= ~PM_SOURCE_SUBTRACTED;
    5847
    59         psphotCheckRadiusPSF (imdata, source);
     48        psphotCheckRadiusPSF (imdata, source, modelPSF);
    6049
    6150        x = modelPSF->params->data.F32[2];
    6251        y = modelPSF->params->data.F32[3];
    63 
    64         if (TEST_SRC && (fabs(TEST_SRC_X - x) < 5) && (fabs(TEST_SRC_Y - y) < 5)) {
    65             psTraceSetLevel (".pmObjects.pmSourceFitModel", 6);
    66             psTraceSetLevel ("psMinimizeLMChi2", 6);
    67             TEST_SRC_ON = true;
    68         }
    6952
    7053        // fit PSF model (set/unset the pixel mask)
     
    7861
    7962        // does the PSF model succeed?
    80         if (psphotEvalPSF (source)) {
     63        if (psphotEvalPSF (source, source->modelPSF)) {
    8164            pmSourceSubModel (source->pixels, source->mask, source->modelPSF, false, false);
    82             source->mode |= PM_SOURCE_SUBTRACTED;
     65            source->mode |=  PM_SOURCE_SUBTRACTED;
     66            source->mode &= ~PM_SOURCE_TEMPSUB;
    8367            psFree (LIN);
    8468            Nsub ++;
    85             CLEAR_TRACE;
    8669            continue;
    8770        }
     71
     72        // use the moments to get the extended source angle
     73        // displace on either side of the main peak by 1sigma or so
     74        // cut the peak in half?  use the main peak?
     75        // also try fit set on (unsaturated?) objects with a blend within 2-3 sigma
     76        // allow all possible nearby blends to be fit?
     77        // EllipseMoments moments;
     78        // moments.x2 = source->moments->Sx;
     79        // moments.y2 = source->moments->Sy;
     80        // moments.xy = source->moments->Sxy;
     81        // EllipseAxes axes = EllipseMomentsToAxes (moments);
    8882
    8983        // skip the source if we don't think it is extended
     
    10195        pmModel *modelFLT = source->modelFLT;
    10296
    103         psphotCheckRadiusFLT (imdata, source);
     97        psphotCheckRadiusFLT (imdata, source, modelFLT);
    10498
    10599        x = modelFLT->params->data.F32[2];
     
    116110
    117111        // does the FLT model succeed?
    118         if (psphotEvalFLT (source)) {
     112        if (psphotEvalFLT (source, source->modelFLT)) {
    119113            pmSourceSubModel (source->pixels, source->mask, source->modelFLT, false, false);
    120             source->mode |= PM_SOURCE_SUBTRACTED;
     114            source->mode |=  PM_SOURCE_SUBTRACTED;
     115            source->mode &= ~PM_SOURCE_TEMPSUB;
    121116            psFree (LIN);
    122117            Nsub ++;
    123             CLEAR_TRACE;
    124118            continue;
    125119        }
    126120
    127         // subtract PSF for object, leave local sky
     121        // re-subtract PSF for object, leave local sky
    128122    subLINEAR:
    129123        psFree (source->modelPSF);
     
    131125        pmSourceSubModel (source->pixels, source->mask, source->modelPSF, false, false);
    132126        source->mode |= PM_SOURCE_SUBTRACTED;
    133         source->mode |= PM_SOURCE_LINEAR;
     127        source->mode |= PM_SOURCE_TEMPSUB;
    134128        Nsub ++;
    135         CLEAR_TRACE;
    136129    }
    137130
Note: See TracChangeset for help on using the changeset viewer.