IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 683


Ignore:
Timestamp:
May 13, 2004, 5:25:22 PM (22 years ago)
Author:
gusciora
Message:

Adding the upper/lower quartile code.

Location:
trunk/psLib/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/dataManip/psStats.c

    r682 r683  
    2929    newStruct->sampleLQ = NAN;
    3030    newStruct->robustMean = NAN;
    31     newStruct->robustMeanNvalues = 0;
     31    newStruct->robustMeanNvalues = -1;
    3232    newStruct->robustMedian = NAN;
    33     newStruct->robustMedianNvalues = 0;
     33    newStruct->robustMedianNvalues = -1;
    3434    newStruct->robustMode = NAN;
    35     newStruct->robustModeNvalues = 0;
     35    newStruct->robustModeNvalues = -1;
    3636    newStruct->robustStdev = NAN;
    3737    newStruct->robustUQ = NAN;
    3838    newStruct->robustLQ = NAN;
    3939    newStruct->clippedMean = NAN;
    40     newStruct->clippedMeanNvalues = 0;
     40    newStruct->clippedMeanNvalues = -1;
    4141    newStruct->clippedStdev = NAN;
    4242    newStruct->clipSigma = NAN;
    43     newStruct->clipIter = 0;
     43    newStruct->clipIter = -1;
    4444    newStruct->min = NAN;
    4545    newStruct->max = NAN;
    46     newStruct->nValues = 0;
     46    newStruct->nValues = -1;
    4747    newStruct->options = options;
    4848
     
    368368}
    369369
     370void p_psArraySampleUQ(const psVector *restrict myVector,
     371                       const psVector *restrict maskVector,
     372                       unsigned int maskVal,
     373                       psStats *newStruct)
     374{
     375    psHistogram    *nonRobustHistogram = NULL;
     376
     377    if (-1 == newStruct->nValues) {
     378        p_psArrayNValues(myVector, maskVector, maskVal, newStruct);
     379    }
     380
     381    if (newStruct->nValues < MEDIAN_SIZE_THRESHOLD) {
     382
     383    }
     384    else {
     385        if (0 != isnan(newStruct->sampleStdev)) {
     386            p_psArraySampleStdev(myVector, maskVector, maskVal, newStruct);
     387        }
     388        if (0 != isnan(newStruct->min)) {
     389            p_psArrayMin(myVector, maskVector, maskVal, newStruct);
     390        }
     391        if (0 != isnan(newStruct->max)) {
     392            p_psArrayMax(myVector, maskVector, maskVal, newStruct);
     393        }
     394
     395        nonRobustHistogram = psHistogramAlloc(newStruct->min,
     396                                              newStruct->max,
     397                                              10);
     398    }
     399}
     400
     401
    370402/******************************************************************************
    371403 
     
    427459
    428460    if (stats->options & PS_STAT_SAMPLE_UQ) {
    429         newStruct->sampleUQ = p_psArrayXXX(myVector, maskVector, maskVal);
     461        p_psArraySampleUQ(myVector, maskVector, maskVal, newStruct);
    430462    }
    431463
  • trunk/psLib/src/math/psStats.c

    r682 r683  
    2929    newStruct->sampleLQ = NAN;
    3030    newStruct->robustMean = NAN;
    31     newStruct->robustMeanNvalues = 0;
     31    newStruct->robustMeanNvalues = -1;
    3232    newStruct->robustMedian = NAN;
    33     newStruct->robustMedianNvalues = 0;
     33    newStruct->robustMedianNvalues = -1;
    3434    newStruct->robustMode = NAN;
    35     newStruct->robustModeNvalues = 0;
     35    newStruct->robustModeNvalues = -1;
    3636    newStruct->robustStdev = NAN;
    3737    newStruct->robustUQ = NAN;
    3838    newStruct->robustLQ = NAN;
    3939    newStruct->clippedMean = NAN;
    40     newStruct->clippedMeanNvalues = 0;
     40    newStruct->clippedMeanNvalues = -1;
    4141    newStruct->clippedStdev = NAN;
    4242    newStruct->clipSigma = NAN;
    43     newStruct->clipIter = 0;
     43    newStruct->clipIter = -1;
    4444    newStruct->min = NAN;
    4545    newStruct->max = NAN;
    46     newStruct->nValues = 0;
     46    newStruct->nValues = -1;
    4747    newStruct->options = options;
    4848
     
    368368}
    369369
     370void p_psArraySampleUQ(const psVector *restrict myVector,
     371                       const psVector *restrict maskVector,
     372                       unsigned int maskVal,
     373                       psStats *newStruct)
     374{
     375    psHistogram    *nonRobustHistogram = NULL;
     376
     377    if (-1 == newStruct->nValues) {
     378        p_psArrayNValues(myVector, maskVector, maskVal, newStruct);
     379    }
     380
     381    if (newStruct->nValues < MEDIAN_SIZE_THRESHOLD) {
     382
     383    }
     384    else {
     385        if (0 != isnan(newStruct->sampleStdev)) {
     386            p_psArraySampleStdev(myVector, maskVector, maskVal, newStruct);
     387        }
     388        if (0 != isnan(newStruct->min)) {
     389            p_psArrayMin(myVector, maskVector, maskVal, newStruct);
     390        }
     391        if (0 != isnan(newStruct->max)) {
     392            p_psArrayMax(myVector, maskVector, maskVal, newStruct);
     393        }
     394
     395        nonRobustHistogram = psHistogramAlloc(newStruct->min,
     396                                              newStruct->max,
     397                                              10);
     398    }
     399}
     400
     401
    370402/******************************************************************************
    371403 
     
    427459
    428460    if (stats->options & PS_STAT_SAMPLE_UQ) {
    429         newStruct->sampleUQ = p_psArrayXXX(myVector, maskVector, maskVal);
     461        p_psArraySampleUQ(myVector, maskVector, maskVal, newStruct);
    430462    }
    431463
Note: See TracChangeset for help on using the changeset viewer.