IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 9, 2013, 3:31:46 PM (13 years ago)
Author:
eugene
Message:

thread add/sub noise, thread model background, pass chisq conv options to LMM fitting

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20130509/psphot/src/psphotExtendedSourceFits.c

    r35634 r35640  
    5353    psTimerStart ("psphot.extended");
    5454
     55    psphotFitInitExtended();
     56
    5557    // find the currently selected readout
    5658    pmFPAfile *file = pmFPAfileSelectSingle(config->files, filerule, index); // File of interest
     
    107109        fitMaxTol = 1.0;
    108110    }
     111
     112    bool chisqConvergence = psMetadataLookupBool (&status, recipe, "LMM_FIT_CHISQ_CONVERGENCE"); // Fit tolerance
     113    if (!status) {
     114        // default to the old method (chisqConvergence)
     115        chisqConvergence = true;
     116    }
     117
     118    int gainFactorMode = psMetadataLookupS32 (&status, recipe, "LMM_FIT_GAIN_FACTOR_MODE"); // Fit tolerance
     119    if (!status) {
     120        // default to the old method (chisqConvergence)
     121        gainFactorMode = 0;
     122    }
     123
     124    // Define source fitting parameters for extended source fits
     125    pmSourceFitOptions *fitOptions = pmSourceFitOptionsAlloc();
     126    fitOptions->mode           = PM_SOURCE_FIT_EXT;
     127    fitOptions->saveCovariance = true;  // XXX make this a user option?
     128    fitOptions->covarFactor    = psImageCovarianceFactorForAperture(readout->covariance, 10.0); // Covariance matrix
     129    fitOptions->nIter          = fitIter;
     130    fitOptions->minTol         = fitMinTol;
     131    fitOptions->maxTol         = fitMaxTol;
     132
     133    fitOptions->gainFactorMode   = gainFactorMode;
     134    fitOptions->chisqConvergence = chisqConvergence;
    109135
    110136    // maskVal is used to test for rejected pixels, and must include markVal
     
    196222            psMetadataIterator *iter = psMetadataIteratorAlloc (models, PS_LIST_HEAD, NULL);
    197223            psArrayAdd(job->args, 1, iter);
    198             psArrayAdd(job->args, 1, AnalysisRegion); // XXX make a pointer
     224            psArrayAdd(job->args, 1, AnalysisRegion);
     225            psArrayAdd(job->args, 1, fitOptions);
    199226
    200227            PS_ARRAY_ADD_SCALAR(job->args, psfSize, PS_TYPE_S32);
    201             PS_ARRAY_ADD_SCALAR(job->args, fitIter, PS_TYPE_S32);
    202             PS_ARRAY_ADD_SCALAR(job->args, fitMinTol, PS_TYPE_F32);
    203             PS_ARRAY_ADD_SCALAR(job->args, fitMaxTol, PS_TYPE_F32);
    204 
    205228            PS_ARRAY_ADD_SCALAR(job->args, maskVal, PS_TYPE_IMAGE_MASK);
    206229            PS_ARRAY_ADD_SCALAR(job->args, markVal, PS_TYPE_IMAGE_MASK);
     
    291314    psLogMsg ("psphot", PS_LOG_INFO, "  %d plain models (%d passed)\n", Nplain, NplainPass);
    292315    psLogMsg ("psphot", PS_LOG_INFO, "  %d too faint to fit, %d failed\n", Nfaint, Nfail);
     316
     317    psphotFitSummaryExtended();
     318
    293319    return true;
    294320}
     
    314340    psMetadataIterator *iter = job->args->data[3];
    315341    psRegion *region        = job->args->data[4];
    316     int psfSize             = PS_SCALAR_VALUE(job->args->data[5],S32);
    317     int fitIter             = PS_SCALAR_VALUE(job->args->data[6],S32);
    318     float fitMinTol         = PS_SCALAR_VALUE(job->args->data[7],F32);
    319     float fitMaxTol         = PS_SCALAR_VALUE(job->args->data[8],F32);
    320     psImageMaskType maskVal = PS_SCALAR_VALUE(job->args->data[9],PS_TYPE_IMAGE_MASK_DATA);
    321     psImageMaskType markVal = PS_SCALAR_VALUE(job->args->data[10],PS_TYPE_IMAGE_MASK_DATA);
    322 
    323     // Define source fitting parameters for extended source fits
    324     pmSourceFitOptions *fitOptions = pmSourceFitOptionsAlloc();
    325     fitOptions->mode           = PM_SOURCE_FIT_EXT;
    326     fitOptions->saveCovariance = true;  // XXX make this a user option?
    327     fitOptions->covarFactor    = psImageCovarianceFactorForAperture(readout->covariance, 10.0); // Covariance matrix
    328     fitOptions->nIter          = fitIter;
    329     fitOptions->minTol         = fitMinTol;
    330     fitOptions->maxTol         = fitMaxTol;
     342    pmSourceFitOptions *fitOptions = job->args->data[5];
     343
     344    int psfSize             = PS_SCALAR_VALUE(job->args->data[6],S32);
     345    psImageMaskType maskVal = PS_SCALAR_VALUE(job->args->data[7],PS_TYPE_IMAGE_MASK_DATA);
     346    psImageMaskType markVal = PS_SCALAR_VALUE(job->args->data[8],PS_TYPE_IMAGE_MASK_DATA);
    331347
    332348    // psTraceSetLevel ("psLib.math.psMinimizeLMChi2_Alt", 5);
     
    540556        psTrace ("psphot", 5, "extended source model for source at %7.1f, %7.1f", source->moments->Mx, source->moments->My);
    541557    }
    542     psFree (fitOptions);
    543558
    544559    // change the value of a scalar on the array (wrap this and put it in psArray.h)
     560    scalar = job->args->data[9];
     561    scalar->data.S32 = Next;
     562
     563    scalar = job->args->data[10];
     564    scalar->data.S32 = Nconvolve;
     565
    545566    scalar = job->args->data[11];
    546     scalar->data.S32 = Next;
     567    scalar->data.S32 = NconvolvePass;
    547568
    548569    scalar = job->args->data[12];
    549     scalar->data.S32 = Nconvolve;
     570    scalar->data.S32 = Nplain;
    550571
    551572    scalar = job->args->data[13];
    552     scalar->data.S32 = NconvolvePass;
     573    scalar->data.S32 = NplainPass;
    553574
    554575    scalar = job->args->data[14];
    555     scalar->data.S32 = Nplain;
     576    scalar->data.S32 = Nfaint;
    556577
    557578    scalar = job->args->data[15];
    558     scalar->data.S32 = NplainPass;
    559 
    560     scalar = job->args->data[16];
    561     scalar->data.S32 = Nfaint;
    562 
    563     scalar = job->args->data[17];
    564579    scalar->data.S32 = Nfail;
    565580
Note: See TracChangeset for help on using the changeset viewer.