IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jan 15, 2006, 8:30:16 AM (21 years ago)
Author:
eugene
Message:

API cleanup, removed old test files, some re-organization, changed FLT/GAL to EXT

File:
1 edited

Legend:

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

    r5828 r5993  
    4141
    4242
    43 static float GAL_MIN_SN;
    44 static float GAL_MOMENTS_RAD;
    45 static pmModelType modelTypeFLT;
    46 
    47 bool psphotInitLimitsFLT (psMetadata *config, psStats *sky) {
     43static float EXT_MIN_SN;
     44static float EXT_MOMENTS_RAD;
     45static pmModelType modelTypeEXT;
     46
     47bool psphotInitLimitsEXT (psMetadata *config, psStats *sky) {
    4848
    4949    bool status;
    5050
    51     // galaxy model parameters
    52     GAL_MIN_SN       = psMetadataLookupF32 (&status, config, "GAL_MIN_SN");
    53     GAL_MOMENTS_RAD  = psMetadataLookupF32 (&status, config, "GAL_MOMENTS_RADIUS");
    54 
    55     // 'galaxy' model descriptions
    56     char *modelNameFLT = psMetadataLookupPtr (&status, config, "GAL_MODEL");
    57     modelTypeFLT = pmModelSetType (modelNameFLT);
    58     psphotInitRadiusFLT (config, sky, modelTypeFLT);
     51    // extended source model parameters
     52    EXT_MIN_SN       = psMetadataLookupF32 (&status, config, "EXT_MIN_SN");
     53    EXT_MOMENTS_RAD  = psMetadataLookupF32 (&status, config, "EXT_MOMENTS_RADIUS");
     54
     55    // extended source model descriptions
     56    char *modelNameEXT = psMetadataLookupPtr (&status, config, "EXT_MODEL");
     57    modelTypeEXT = pmModelSetType (modelNameEXT);
     58    psphotInitRadiusEXT (config, sky, modelTypeEXT);
    5959
    6060    return true;
     
    6363bool psphotFitBlob (eamReadout *imdata, pmSource *source, psArray *sources) {
    6464
    65     bool okFLT, okDBL;
    66     float chiFLT, chiDBL;
     65    bool okEXT, okDBL;
     66    float chiEXT, chiDBL;
    6767
    6868    // skip the source if we don't think it is extended
     
    7070    if (source->type == PM_SOURCE_DEFECT) return false;
    7171    if (source->type == PM_SOURCE_SATURATED) return false;
    72     if (source->moments->SN < GAL_MIN_SN) return false;
    73 
    74     // recalculate the source moments using the larger galaxy moments radius
    75     if (!pmSourceMoments (source, GAL_MOMENTS_RAD)) return false;
     72    if (source->moments->SN < EXT_MIN_SN) return false;
     73
     74    // recalculate the source moments using the larger extended-source moments radius
     75    if (!pmSourceMoments (source, EXT_MOMENTS_RAD)) return false;
    7676
    7777    psTrace ("psphot.blend", 5, "trying blob...\n");
     
    7979    pmSource *tmpSrc = pmSourceAlloc ();
    8080
    81     pmModel *FLT = psphotFitFLT (imdata, source);
    82     okFLT = psphotEvalFLT (tmpSrc, FLT);
    83     chiFLT = FLT->chisq / FLT->nDOF;
     81    pmModel *EXT = psphotFitEXT (imdata, source);
     82    okEXT = psphotEvalEXT (tmpSrc, EXT);
     83    chiEXT = EXT->chisq / EXT->nDOF;
    8484
    8585    psArray *DBL = psphotFitDBL (imdata, source);
     
    8989    chiDBL = ONE->chisq / ONE->nDOF;
    9090
    91     if (okFLT && okDBL) {
    92         psTrace ("psphot.blend", 5, "blob chisq: %f vs %f\n", chiFLT, chiDBL);
     91    if (okEXT && okDBL) {
     92        psTrace ("psphot.blend", 5, "blob chisq: %f vs %f\n", chiEXT, chiDBL);
    9393        // XXX EAM : a bogus bias: need to examine this better
    94         if (3*chiFLT > chiDBL) goto keepDBL;
    95         goto keepFLT;
    96     }
    97 
    98     if (okFLT && !okDBL) goto keepFLT;
    99     if (!okFLT && okDBL) goto keepDBL;
     94        if (3*chiEXT > chiDBL) goto keepDBL;
     95        goto keepEXT;
     96    }
     97
     98    if (okEXT && !okDBL) goto keepEXT;
     99    if (!okEXT && okDBL) goto keepDBL;
    100100    return false;
    101101
    102 keepFLT:
    103     // sub FLT
    104     pmSourceSubModel (source->pixels, source->mask, FLT, false, false);
    105     psTrace ("psphot.blend", 5, "blob as FLT: %f %f\n", FLT->params->data.F32[2], FLT->params->data.F32[3]);
     102keepEXT:
     103    // sub EXT
     104    pmSourceSubModel (source->pixels, source->mask, EXT, false, false);
     105    psTrace ("psphot.blend", 5, "blob as EXT: %f %f\n", EXT->params->data.F32[2], EXT->params->data.F32[3]);
    106106
    107107    // save new model
    108     source->modelFLT = FLT;
     108    source->modelEXT = EXT;
    109109    source->mode |=  PM_SOURCE_SUBTRACTED;
    110110    source->mode &= ~PM_SOURCE_TEMPSUB;
     
    168168    y = PSF->params->data.F32[3];
    169169
    170     // fit FLT (not PSF) model (set/unset the pixel mask)
     170    // fit EXT (not PSF) model (set/unset the pixel mask)
    171171    psImageKeepCircle (source->mask, x, y, PSF->radius, "OR", PSPHOT_MASK_MARKED);
    172172    pmSourceFitSet (source, modelSet, true);
     
    176176}
    177177
    178 pmModel *psphotFitFLT (eamReadout *imdata, pmSource *source) {
     178pmModel *psphotFitEXT (eamReadout *imdata, pmSource *source) {
    179179
    180180    float x, y;
    181181
    182182    // use the source moments, etc to guess basic model parameters
    183     pmModel *FLT = pmSourceModelGuess (source, modelTypeFLT);
    184 
    185     psphotCheckRadiusFLT (imdata, source, FLT);
    186 
    187     x = FLT->params->data.F32[2];
    188     y = FLT->params->data.F32[3];
    189 
    190     // fit FLT (not PSF) model (set/unset the pixel mask)
    191     psImageKeepCircle (source->mask, x, y, FLT->radius, "OR", PSPHOT_MASK_MARKED);
    192     pmSourceFitModel (source, FLT, false);
    193     psImageKeepCircle (source->mask, x, y, FLT->radius, "AND", ~PSPHOT_MASK_MARKED);
    194 
    195     return (FLT);
     183    pmModel *EXT = pmSourceModelGuess (source, modelTypeEXT);
     184
     185    psphotCheckRadiusEXT (imdata, source, EXT);
     186
     187    x = EXT->params->data.F32[2];
     188    y = EXT->params->data.F32[3];
     189
     190    // fit EXT (not PSF) model (set/unset the pixel mask)
     191    psImageKeepCircle (source->mask, x, y, EXT->radius, "OR", PSPHOT_MASK_MARKED);
     192    pmSourceFitModel (source, EXT, false);
     193    psImageKeepCircle (source->mask, x, y, EXT->radius, "AND", ~PSPHOT_MASK_MARKED);
     194
     195    return (EXT);
    196196}
    197197
Note: See TracChangeset for help on using the changeset viewer.