IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 17214


Ignore:
Timestamp:
Mar 28, 2008, 3:44:13 PM (18 years ago)
Author:
eugene
Message:

we chi inner means were too restrictive

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/relastro/src/liststats.c

    r16040 r17214  
    11# include "relastro.h"
    22
    3 enum {M_MEAN, M_MEDIAN, M_WT_MEAN, M_INNER_MEAN,
    4       M_INNER_WTMEAN, M_CHI_INNER_MEAN, M_CHI_INNER_WTMEAN};
     3enum {M_MEDIAN,
     4      M_MEAN, M_WTMEAN,
     5      M_INNER_MEAN, M_INNER_WTMEAN,
     6      M_INNER_80_MEAN, M_INNER_80_WTMEAN,
     7      M_CHI_INNER_MEAN, M_CHI_INNER_WTMEAN,
     8      M_CHI_INNER_80_MEAN, M_CHI_INNER_80_WTMEAN};
    59
    610static int statmode;
     
    1115  if (!strcmp (mode, "MEAN")) statmode = M_MEAN;
    1216  if (!strcmp (mode, "MEDIAN")) statmode = M_MEDIAN;
    13   if (!strcmp (mode, "WT_MEAN")) statmode = M_WT_MEAN;
     17  if (!strcmp (mode, "WTMEAN")) statmode = M_WTMEAN;
    1418  if (!strcmp (mode, "INNER_MEAN")) statmode = M_INNER_MEAN;
    1519  if (!strcmp (mode, "INNER_WTMEAN")) statmode = M_INNER_WTMEAN;
     20  if (!strcmp (mode, "INNER_80_MEAN")) statmode = M_INNER_80_MEAN;
     21  if (!strcmp (mode, "INNER_80_WTMEAN")) statmode = M_INNER_80_WTMEAN;
    1622  if (!strcmp (mode, "CHI_INNER_MEAN")) statmode = M_CHI_INNER_MEAN;
    1723  if (!strcmp (mode, "CHI_INNER_WTMEAN")) statmode = M_CHI_INNER_WTMEAN;
     24  if (!strcmp (mode, "CHI_INNER_80_MEAN")) statmode = M_CHI_INNER_80_MEAN;
     25  if (!strcmp (mode, "CHI_INNER_80_WTMEAN")) statmode = M_CHI_INNER_80_WTMEAN;
    1826
    1927  if (statmode == -1) {
     
    3846
    3947  dsortpair (value, dvalue, N);
    40   stats[0].median = value[(int)(0.5*N)];
     48  if (N % 2) {
     49    stats[0].median = value[(int)(0.5*N)];
     50  } else {
     51    stats[0].median = 0.5*(value[N/2] + value[N/2 - 1]);
     52  }
    4153  stats[0].min    = value[0];
    4254  stats[0].max    = value[N-1];
     
    5163    break;
    5264  case M_MEAN:
    53   case M_WT_MEAN:
     65  case M_WTMEAN:
    5466    ks = 0;
    5567    ke = N;
     
    6678    }
    6779    break;
     80  case M_INNER_80_MEAN:
     81  case M_INNER_80_WTMEAN:
     82  case M_CHI_INNER_80_MEAN:
     83  case M_CHI_INNER_80_WTMEAN:
     84    ks = 0.1*N + 0.1;
     85    ke = 0.8*N + 0.1;
     86    if (N <= 10) {
     87      ks = 0;
     88      ke = N;
     89    }
     90    break;
    6891  }   
    6992
    70   if ((statmode == M_CHI_INNER_MEAN) || (statmode == M_CHI_INNER_WTMEAN)) {
     93  if ((statmode == M_CHI_INNER_MEAN) ||
     94      (statmode == M_CHI_INNER_WTMEAN) ||
     95      (statmode == M_CHI_INNER_80_MEAN) ||
     96      (statmode == M_CHI_INNER_80_WTMEAN)) {
    7197    ALLOCATE (chi, double, N);
    7298    for (i = 0; i < N; i++) {
     
    79105  /* calculating the per-star offset based on the weighted average */
    80106  M = dM = Nm = 0;
    81   if ((statmode == M_WT_MEAN) || (statmode == M_INNER_WTMEAN) || (statmode == M_CHI_INNER_WTMEAN)) {
     107  if ((statmode == M_WTMEAN) ||
     108      (statmode == M_INNER_WTMEAN) ||
     109      (statmode == M_INNER_80_WTMEAN) ||
     110      (statmode == M_CHI_INNER_WTMEAN) ||
     111      (statmode == M_CHI_INNER_80_WTMEAN)) {
    82112    for (i = ks; i < ke; i++) {
    83113      M   += value[i] / SQ (dvalue[i]);
Note: See TracChangeset for help on using the changeset viewer.