IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Apr 19, 2013, 4:45:57 PM (13 years ago)
Author:
eugene
Message:

carry over changes from eam_branch/20130307

Location:
branches/eam_branches/ipp-20130419
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20130419

  • branches/eam_branches/ipp-20130419/psphot

  • branches/eam_branches/ipp-20130419/psphot/src

  • branches/eam_branches/ipp-20130419/psphot/src/psphotExtendedSourceFits.c

    r34404 r35421  
    9090    assert (markVal);
    9191
     92    // source fitting parameters for extended source fits
     93    int fitIter = psMetadataLookupS32(&status, recipe, "EXT_FIT_ITER"); // Max number of fit iterations
     94    assert (status && fitIter > 0);
     95
     96    float fitMinTol = psMetadataLookupF32 (&status, recipe, "EXT_FIT_MIN_TOL"); // Fit tolerance
     97    if (!status || !isfinite(fitMinTol) || fitMinTol <= 0) {
     98        fitMinTol = psMetadataLookupF32 (&status, recipe, "PSF_FIT_TOL"); // Fit tolerance
     99        if (!status || !isfinite(fitMinTol) || fitMinTol <= 0) {
     100            psAbort("PSF_FIT_MIN_TOL (and PSF_FIT_TOL) not defined or positive");
     101        }
     102    }
     103
     104    float fitMaxTol = psMetadataLookupF32 (&status, recipe, "EXT_FIT_MAX_TOL"); // Fit tolerance
     105    if (!status || !isfinite(fitMaxTol) || fitMaxTol <= 0) {
     106        fitMaxTol = 1.0;
     107    }
     108
    92109    // maskVal is used to test for rejected pixels, and must include markVal
    93110    maskVal |= markVal;
     
    181198
    182199            PS_ARRAY_ADD_SCALAR(job->args, psfSize, PS_TYPE_S32);
     200            PS_ARRAY_ADD_SCALAR(job->args, fitIter, PS_TYPE_S32);
     201            PS_ARRAY_ADD_SCALAR(job->args, fitMinTol, PS_TYPE_F32);
     202            PS_ARRAY_ADD_SCALAR(job->args, fitMaxTol, PS_TYPE_F32);
     203
    183204            PS_ARRAY_ADD_SCALAR(job->args, maskVal, PS_TYPE_IMAGE_MASK);
    184205            PS_ARRAY_ADD_SCALAR(job->args, markVal, PS_TYPE_IMAGE_MASK);
     
    293314    psRegion *region        = job->args->data[4];
    294315    int psfSize             = PS_SCALAR_VALUE(job->args->data[5],S32);
    295     psImageMaskType maskVal = PS_SCALAR_VALUE(job->args->data[6],PS_TYPE_IMAGE_MASK_DATA);
    296     psImageMaskType markVal = PS_SCALAR_VALUE(job->args->data[7],PS_TYPE_IMAGE_MASK_DATA);
     316    int fitIter             = PS_SCALAR_VALUE(job->args->data[6],S32);
     317    float fitMinTol         = PS_SCALAR_VALUE(job->args->data[7],F32);
     318    float fitMaxTol         = PS_SCALAR_VALUE(job->args->data[8],F32);
     319    psImageMaskType maskVal = PS_SCALAR_VALUE(job->args->data[9],PS_TYPE_IMAGE_MASK_DATA);
     320    psImageMaskType markVal = PS_SCALAR_VALUE(job->args->data[10],PS_TYPE_IMAGE_MASK_DATA);
    297321
    298322    // Define source fitting parameters for extended source fits
     
    301325    fitOptions->saveCovariance = true;  // XXX make this a user option?
    302326    fitOptions->covarFactor    = psImageCovarianceFactorForAperture(readout->covariance, 10.0); // Covariance matrix
    303 
    304     // XXX for now, use the defaults for the rest:
    305     // fitOptions->nIter         = fitIter;
    306     // fitOptions->tol           = fitTol;
    307     // fitOptions->poissonErrors = poisson;
    308     // fitOptions->weight        = PS_SQR(skySig);
     327    fitOptions->nIter          = fitIter;
     328    fitOptions->minTol         = fitMinTol;
     329    fitOptions->maxTol         = fitMaxTol;
    309330
    310331    // choose the sources of interest
     
    335356        // set the fit radius based on the first radial moment (also sets the mask pixels)
    336357        psphotSetRadiusMomentsExact(&fitRadius, &windowRadius, readout, source, markVal); // NOTE : 6 allocs
     358
     359        // XXX WATCH OUT HERE!!
     360        // fitRadius = 30;
    337361
    338362        // UPDATE : we have changed the moments calculation.  There is now an iteration within
     
    498522
    499523    // change the value of a scalar on the array (wrap this and put it in psArray.h)
    500     scalar = job->args->data[8];
     524    scalar = job->args->data[11];
    501525    scalar->data.S32 = Next;
    502526
    503     scalar = job->args->data[9];
     527    scalar = job->args->data[12];
    504528    scalar->data.S32 = Nconvolve;
    505529
    506     scalar = job->args->data[10];
     530    scalar = job->args->data[13];
    507531    scalar->data.S32 = NconvolvePass;
    508532
    509     scalar = job->args->data[11];
     533    scalar = job->args->data[14];
    510534    scalar->data.S32 = Nplain;
    511535
    512     scalar = job->args->data[12];
     536    scalar = job->args->data[15];
    513537    scalar->data.S32 = NplainPass;
    514538
    515     scalar = job->args->data[13];
     539    scalar = job->args->data[16];
    516540    scalar->data.S32 = Nfaint;
    517541
    518     scalar = job->args->data[14];
     542    scalar = job->args->data[17];
    519543    scalar->data.S32 = Nfail;
    520544
Note: See TracChangeset for help on using the changeset viewer.