IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 18, 2011, 2:09:39 PM (15 years ago)
Author:
eugene
Message:

we had 3 items conceptually equivalent to the brightness of a peak: "value", "flux", and "SN"; Ive modified pmPeak to carry explicitly named elements "rawFlux", "smoothFlux", and "detValue". Ive also added the corresponding variance values for rawFlux and smoothFlux. This lets us choose independently of the peak detection process whether flux comparisons are done relative to the smoothed or unsmoothed image. It also simplifies tests of the peak flux compared to something else

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20110213/psModules/src/objects/pmSource.c

    r30935 r30974  
    171171    // peak has the same values as the original
    172172    if (in->peak != NULL) {
    173         source->peak = pmPeakAlloc (in->peak->x, in->peak->y, in->peak->value, in->peak->type);
     173        source->peak = pmPeakAlloc (in->peak->x, in->peak->y, in->peak->detValue, in->peak->type);
    174174        source->peak->xf = in->peak->xf;
    175175        source->peak->yf = in->peak->yf;
    176         source->peak->flux = in->peak->flux;
    177         source->peak->SN = in->peak->SN;
     176        source->peak->rawFlux         = in->peak->rawFlux;
     177        source->peak->rawFluxStdev    = in->peak->rawFluxStdev;
     178        source->peak->smoothFlux      = in->peak->smoothFlux;
     179        source->peak->smoothFluxStdev = in->peak->smoothFluxStdev;
     180        // source->peak->SN = in->peak->SN;
    178181    }
    179182
     
    462465        psStats *stats  = NULL;
    463466
    464         // select the single highest peak
    465         psArraySort (peaks, pmPeaksCompareDescend);
     467        // select the single highest peak (note that we only have detValue, not rawFlux, etc
     468        psArraySort (peaks, pmPeaksSortByDetValueDescend);
    466469        clump = peaks->data[0];
    467         psTrace ("psModules.objects", 2, "clump is at %d, %d (%f)\n", clump->x, clump->y, clump->value);
     470        psTrace ("psModules.objects", 2, "clump is at %d, %d (%f)\n", clump->x, clump->y, clump->detValue);
    468471
    469472        // XXX store the mean sigma?
    470473        float meanSigma = psfClump.nSigma;
    471         psfClump.nStars = clump->value;
    472         psfClump.nSigma = clump->value / meanSigma;
     474        psfClump.nStars = clump->detValue;
     475        psfClump.nSigma = clump->detValue / meanSigma;
    473476
    474477        // define section window for clump
     
    666669
    667670            // the rest are probable stellar objects
     671            // the vectors below are accumulated to give user feedback on the S/N ranges
    668672            starsn_moments->data.F32[starsn_moments->n] = source->moments->SN;
    669673            starsn_moments->n ++;
    670             starsn_peaks->data.F32[starsn_peaks->n] = source->peak->SN;
     674            starsn_peaks->data.F32[starsn_peaks->n] = sqrt(source->peak->detValue);
    671675            starsn_peaks->n ++;
    672676            Nstar ++;
     
    11861190
    11871191// sort by SN (descending)
    1188 int pmSourceSortBySN (const void **a, const void **b)
     1192int pmSourceSortByFlux (const void **a, const void **b)
    11891193{
    11901194    pmSource *A = *(pmSource **)a;
    11911195    pmSource *B = *(pmSource **)b;
    11921196
    1193     psF32 fA = (A->peak == NULL) ? 0 : A->peak->SN;
    1194     psF32 fB = (B->peak == NULL) ? 0 : B->peak->SN;
     1197    psF32 fA = (A->peak == NULL) ? 0 : A->peak->rawFlux;
     1198    psF32 fB = (B->peak == NULL) ? 0 : B->peak->rawFlux;
    11951199    if (isnan (fA)) fA = 0;
    11961200    if (isnan (fB)) fB = 0;
     
    12031207
    12041208// sort by SN (descending)
    1205 int pmSourceSortByParentSN (const void **a, const void **b)
     1209int pmSourceSortByParentFlux (const void **a, const void **b)
    12061210{
    12071211    pmSource *Ao = *(pmSource **)a;
     
    12101214    pmSource *B  = Bo->parent;
    12111215
    1212     psF32 fA = (A->peak == NULL) ? 0 : A->peak->SN;
    1213     psF32 fB = (B->peak == NULL) ? 0 : B->peak->SN;
     1216    psF32 fA = (A->peak == NULL) ? 0 : A->peak->rawFlux;
     1217    psF32 fB = (B->peak == NULL) ? 0 : B->peak->rawFlux;
    12141218    if (isnan (fA)) fA = 0;
    12151219    if (isnan (fB)) fB = 0;
Note: See TracChangeset for help on using the changeset viewer.