IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 10204


Ignore:
Timestamp:
Nov 26, 2006, 12:39:23 PM (20 years ago)
Author:
eugene
Message:

comparison now uses measurement from PSFSTAR dSXX,dSYY distributions

File:
1 edited

Legend:

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

    r10183 r10204  
    2121// floor for DS value
    2222// XXX EAM : add to configuration?
    23 # define MIN_DS 0.01
    2423
    2524static float SATURATION;
    2625static float PSF_MIN_SN;
     26static float PSF_MIN_DS;
    2727static float PSF_MAX_CHI;
    2828static float PSF_SHAPE_NSIGMA;
     29static float PSF_DSX_MEAN;
     30static float PSF_DSY_MEAN;
     31static float PSF_DSX_STDEV;
     32static float PSF_DSY_STDEV;
    2933
    3034bool psphotInitLimitsPSF (psMetadata *recipe) {
     
    3741    PSF_MAX_CHI      = psMetadataLookupF32 (&status, recipe, "PSF_MAX_CHI");
    3842    PSF_SHAPE_NSIGMA = psMetadataLookupF32 (&status, recipe, "PSF_SHAPE_NSIGMA");
     43    PSF_MIN_DS       = psMetadataLookupF32 (&status, recipe, "PSF_MIN_DS");
     44    if (!status) PSF_MIN_DS = 0.01;
     45
     46    PSF_DSX_MEAN     = psMetadataLookupF32 (&status, recipe, "DSX_MEAN");
     47    PSF_DSY_MEAN     = psMetadataLookupF32 (&status, recipe, "DSY_MEAN");
     48    PSF_DSX_STDEV    = psMetadataLookupF32 (&status, recipe, "DSX_STDV");
     49    PSF_DSY_STDEV    = psMetadataLookupF32 (&status, recipe, "DSY_STDV");
    3950
    4051    return true;
     
    101112    }
    102113
    103     SN  = model->params->data.F32[PM_PAR_I0]/model->dparams->data.F32[1];
     114    SN  = model->params->data.F32[PM_PAR_I0]/model->dparams->data.F32[PM_PAR_I0];
    104115    SX  = model->params->data.F32[PM_PAR_SXX];
    105116    SY  = model->params->data.F32[PM_PAR_SYY];
     
    109120
    110121    // swing of sigma_x,y in sigmas
    111     nSx = dSX / hypot (MIN_DS, (SX / SN));
    112     nSy = dSY / hypot (MIN_DS, (SY / SN));
     122    nSx = (dSX - PSF_DSX_MEAN) / (PSF_DSX_STDEV * PS_MAX (PSF_MIN_DS, (SX / SN)));
     123    nSy = (dSY - PSF_DSY_MEAN) / (PSF_DSY_STDEV * PS_MAX (PSF_MIN_DS, (SY / SN)));
    113124
    114125    // assign PM_SOURCE_MODE_GOODSTAR to bright objects within PSF region of dparams[]
     
    118129    keep &= (SN > PSF_MIN_SN);
    119130    keep &= (Chi < PSF_MAX_CHI);
    120     if (keep) return true;
     131    if (keep) {
     132        if (source->mode & PM_SOURCE_MODE_PSFSTAR) {
     133            psTrace ("psphot", 7, "PSFSTAR kept (%f, %f  :  %f %f : %f %f : %f %f)\n",
     134                     model->params->data.F32[PM_PAR_XPOS], model->params->data.F32[PM_PAR_YPOS], dSX, nSx, dSY, nSy, SN, Chi);
     135        }
     136        return true;
     137    }
    121138
    122139    // this source is not a star, warn if it was a PSFSTAR
    123140    if (source->mode & PM_SOURCE_MODE_PSFSTAR) {
    124         psLogMsg ("psphot", 5, "PSFSTAR demoted based on fit quality   (%f, %f  :  %f %f %f %f)\n",
    125                   model->params->data.F32[PM_PAR_XPOS], model->params->data.F32[PM_PAR_YPOS], nSx, nSy, SN, Chi);
     141        psTrace ("psphot", 5, "PSFSTAR demoted based on fit quality   (%f, %f  :  %f %f : %f %f : %f %f)\n",
     142                  model->params->data.F32[PM_PAR_XPOS], model->params->data.F32[PM_PAR_YPOS], dSX, nSx, dSY, nSy, SN, Chi);
    126143    } else {
    127         psLogMsg ("psphot", 5, "fails PSF fit (%f, %f  :  %f %f %f %f)\n",
    128                   model->params->data.F32[PM_PAR_XPOS], model->params->data.F32[PM_PAR_YPOS], nSx, nSy, SN, Chi);
    129     }
    130 
    131     // object appears to be small, suspected defect
     144        psTrace ("psphot", 5, "fails PSF fit (%f, %f  :  %f %f : %f %f : %f %f)\n",
     145                  model->params->data.F32[PM_PAR_XPOS], model->params->data.F32[PM_PAR_YPOS], dSX, nSx, dSY, nSy, SN, Chi);
     146    }
     147
     148    // object appears to be small, suspected defect.  this is a weak indication for a defect: a
     149    // large positive or negative swing can also come from the bright sources for which we are
     150    // more sensitive to the wings than for the faint sources. 
     151    // XXX allow -NSIGMA and +NSIGMA to have different values?
    132152    if ((nSx <= -PSF_SHAPE_NSIGMA) || (nSy <= -PSF_SHAPE_NSIGMA)) {
    133153        source->type = PM_SOURCE_TYPE_DEFECT;
Note: See TracChangeset for help on using the changeset viewer.