IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 42015


Ignore:
Timestamp:
Feb 6, 2022, 3:52:41 PM (4 years ago)
Author:
eugene
Message:

pass user option LMM_FIT_USE_REWEIGHTING to pmSourceFitOptions (which carries the value to psMinimization)

Location:
branches/eam_branches/ipp-20211108/psphot/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20211108/psphot/src/psphotBlendFit.c

    r36375 r42015  
    7171    }
    7272
    73     // source fitting parameters for extended source fits
    74     int fitIter = psMetadataLookupS32(&status, recipe, "EXT_FIT_ITER"); // Max number of fit iterations
    75     assert (status && fitIter > 0);
    76 
    77     float fitMinTol = psMetadataLookupF32 (&status, recipe, "EXT_FIT_MIN_TOL"); // Fit tolerance
    78     if (!status || !isfinite(fitMinTol) || fitMinTol <= 0) {
    79         fitMinTol = psMetadataLookupF32 (&status, recipe, "PSF_FIT_TOL"); // Fit tolerance
    80         if (!status || !isfinite(fitMinTol) || fitMinTol <= 0) {
     73    // Define source fitting parameters for extended source fits
     74    pmSourceFitOptions *fitOptions = pmSourceFitOptionsAlloc();
     75
     76    fitOptions->mode          = PM_SOURCE_FIT_PSF;
     77
     78    fitOptions->covarFactor   = psImageCovarianceFactorForAperture(readout->covariance, 10.0); // Covariance matrix
     79
     80    fitOptions->nIter         = psMetadataLookupS32(&status, recipe, "EXT_FIT_ITER"); // Max number of fit iterations
     81    assert (status && fitIter > 0);
     82
     83    fitOptions->minTol = psMetadataLookupF32 (&status, recipe, "EXT_FIT_MIN_TOL"); // Fit tolerance
     84    if (!status || !isfinite(fitOptions->minTol) || fitOptions->minTol <= 0) {
     85        fitOptions->minTol = psMetadataLookupF32 (&status, recipe, "PSF_FIT_TOL"); // Fit tolerance
     86        if (!status || !isfinite(fitOptions->minTol) || fitOptions->minTol <= 0) {
    8187            psAbort("PSF_FIT_MIN_TOL (and PSF_FIT_TOL) not defined or positive");
    8288        }
    8389    }
    8490
    85     float fitMaxTol = psMetadataLookupF32 (&status, recipe, "EXT_FIT_MAX_TOL"); // Fit tolerance
    86     if (!status || !isfinite(fitMaxTol) || fitMaxTol <= 0) {
    87         fitMaxTol = 1.0;
    88     }
    89 
    90     bool chisqConvergence = psMetadataLookupBool (&status, recipe, "LMM_FIT_CHISQ_CONVERGENCE"); // Fit tolerance
    91     if (!status) {
    92         // default to the old method (chisqConvergence)
    93         chisqConvergence = true;
    94     }
    95 
    96     int gainFactorMode = psMetadataLookupS32 (&status, recipe, "LMM_FIT_GAIN_FACTOR_MODE"); // Fit tolerance
    97     if (!status) {
    98         // default to the old method (chisqConvergence)
    99         gainFactorMode = 0;
    100     }
    101 
    102     bool poisson = psMetadataLookupBool(&status, recipe, "POISSON.ERRORS.PHOT.LMM"); // Poisson errors?
     91    fitOptions->maxTol = psMetadataLookupF32 (&status, recipe, "EXT_FIT_MAX_TOL"); // Fit tolerance
     92    if (!status || !isfinite(fitOptions->maxTol) || fitOptions->maxTol <= 0) { fitOptions->maxTol = 1.0; }
     93
     94    fitOptions->chisqConvergence = psMetadataLookupBool (&status, recipe, "LMM_FIT_CHISQ_CONVERGENCE"); // Fit tolerance
     95    if (!status) { fitOptions->chisqConvergence = true; } // default to the old method (chisqConvergence)
     96
     97    fitOptions->useReweighting = psMetadataLookupBool (&status, recipe, "LMM_FIT_USE_REWEIGHTING"); // Fit tolerance
     98    if (!status) { fitOptions->useReweighting = false; }
     99
     100    fitOptions->gainFactorMode = psMetadataLookupS32 (&status, recipe, "LMM_FIT_GAIN_FACTOR_MODE"); // Fit tolerance
     101    if (!status) { fitOptions->gainFactorMode = 0; } // default to the old method
     102
     103    fitOptions->poissonErrors = psMetadataLookupBool(&status, recipe, "POISSON.ERRORS.PHOT.LMM"); // Poisson errors?
    103104    assert (status);
    104105
    105     float maxChisqDOF = psMetadataLookupF32 (&status, recipe, "EXT_FIT_MAX_CHISQ"); // Fit tolerance
     106    fitOptions->maxChisqDOF = psMetadataLookupF32 (&status, recipe, "EXT_FIT_MAX_CHISQ"); // Fit tolerance
    106107
    107108    float skySig = psMetadataLookupF32(&status, recipe, "SKY_SIG");
    108109    assert (status && isfinite(skySig) && skySig > 0);
     110    fitOptions->weight = PS_SQR(skySig);
    109111
    110112# if (0)
     
    120122    psphotSaveImage (NULL, IDimage, "idimage.fits");
    121123# endif
    122 
    123     // Define source fitting parameters for extended source fits
    124     pmSourceFitOptions *fitOptions = pmSourceFitOptionsAlloc();
    125     fitOptions->nIter         = fitIter;
    126     fitOptions->minTol        = fitMinTol;
    127     fitOptions->maxTol        = fitMaxTol;
    128     fitOptions->maxChisqDOF   = maxChisqDOF;
    129     fitOptions->poissonErrors = poisson;
    130     fitOptions->weight        = PS_SQR(skySig);
    131     fitOptions->mode          = PM_SOURCE_FIT_PSF;
    132     fitOptions->covarFactor   = psImageCovarianceFactorForAperture(readout->covariance, 10.0); // Covariance matrix
    133 
    134     fitOptions->gainFactorMode = gainFactorMode;
    135     fitOptions->chisqConvergence = chisqConvergence;
    136124
    137125    psphotInitLimitsPSF (recipe, readout);
  • branches/eam_branches/ipp-20211108/psphot/src/psphotChoosePSF.c

    r37811 r42015  
    164164        // default to the old method (chisqConvergence)
    165165        chisqConvergence = true;
     166    }
     167
     168    bool useReweighting = psMetadataLookupBool (&status, recipe, "LMM_FIT_USE_REWEIGHTING"); // Fit tolerance
     169    if (!status) {
     170        useReweighting = false;
    166171    }
    167172
     
    185190    options->fitOptions->gainFactorMode   = gainFactorMode;
    186191    options->fitOptions->chisqConvergence = chisqConvergence;
     192    options->fitOptions->useReweighting   = useReweighting;
    187193
    188194    psArray *stars = psArrayAllocEmpty (sources->n);
  • branches/eam_branches/ipp-20211108/psphot/src/psphotExtendedSourceFits.c

    r38534 r42015  
    120120        // default to the old method (chisqConvergence)
    121121        chisqConvergence = true;
     122    }
     123
     124    bool useReweighting = psMetadataLookupBool (&status, recipe, "LMM_FIT_USE_REWEIGHTING"); // Fit tolerance
     125    if (!status) {
     126        useReweighting = false;
    122127    }
    123128
     
    145150    fitOptions->chisqConvergence = chisqConvergence;
    146151    fitOptions->isInteractive    = isInteractive;
     152    fitOptions->useReweighting   = useReweighting;
    147153
    148154    // use poissonian errors or local-sky errors
  • branches/eam_branches/ipp-20211108/psphot/src/psphotModelTestReadout.c

    r36375 r42015  
    222222    fitOptions->chisqConvergence = chisqConvergence;
    223223
     224    bool useReweighting = psMetadataLookupBool (&status, recipe, "LMM_FIT_USE_REWEIGHTING"); // Fit tolerance
     225    if (!status) useReweighting = true;
     226    fitOptions->useReweighting = useReweighting;
     227
    224228    int gainFactorMode = psMetadataLookupS32 (&status, recipe, "LMM_FIT_GAIN_FACTOR_MODE"); // Fit tolerance
    225229    if (!status) gainFactorMode = 0;
Note: See TracChangeset for help on using the changeset viewer.