IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 30348


Ignore:
Timestamp:
Jan 24, 2011, 1:36:36 PM (15 years ago)
Author:
eugene
Message:

add consistency tests; fix last measure count

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20101205/Ohana/src/addstar/src/resort_catalog.c

    r29938 r30348  
    3939    tmp_ave  = AVE[A];  AVE[A]  = AVE[B];  AVE[B]  = tmp_ave;           \
    4040  }
    41 # define COMPARE(A,B)(MEAS[A] < MEAS[B])
     41# define COMPARE(A,B)(AVE[A] < AVE[B])
    4242  OHANA_SORT (N, COMPARE, SWAPFUNC);
    4343# undef SWAPFUNC
     
    9696  }
    9797 
     98  // check that averageSeq is now in order
     99  // for (i = 1; i < Nmeasure; i++) {
     100  //   if (averageSeq[i] < averageSeq[i-1]) {
     101  //     fprintf (stderr, "%d ", (int) i);
     102  //   }
     103  // }
     104  // fprintf (stderr, "\n");
     105
    98106  SortAveMeasMatch(measureSeq, averageSeq, Nmeasure);
    99107  // MARKTIME("sort : %f sec\n", dtime);
     108
     109  // check that averageSeq is now in order
     110  // for (i = 1; i < Nmeasure; i++) {
     111  //   if (averageSeq[i] < averageSeq[i-1]) {
     112  //     fprintf (stderr, "%d ", (int) i);
     113  //   }
     114  // }
     115  // fprintf (stderr, "\n");
    100116
    101117  // copy the measurements in the sorted order
     
    116132  for (i = 0; i < Nmeasure; i++) {
    117133    if (averageSeq[i] != currentAve) {
     134      // we have hit the next entry in the list
    118135      average[currentAve].Nmeasure = N;
    119136      N = 0;
     
    123140    N++;
    124141  }
    125   N++;
     142  // N++;
    126143  average[currentAve].Nmeasure = N;
    127144  // MARKTIME("update Nmeasure : %f sec\n", dtime);
    128145
     146  int NmeasureTotal = 0;
     147  int measureOffsetOK = TRUE;
     148  for (i = 0; i < catalog[0].Naverage; i++) {
     149    NmeasureTotal += catalog[0].average[i].Nmeasure;
     150    if (VERBOSE && !(NmeasureTotal <= catalog[0].Nmeasure)) {
     151      fprintf (stderr, "too few measurements: %d %d %d\n", (int) i, NmeasureTotal, (int) catalog[0].Nmeasure);
     152    }
     153    measureOffsetOK &= (catalog[0].average[i].measureOffset < catalog[0].Nmeasure);
     154    if (VERBOSE && !(catalog[0].average[i].measureOffset < catalog[0].Nmeasure)) {
     155      fprintf (stderr, "offset too large: %d %d %d\n", (int) i, catalog[0].average[i].Nmeasure, (int) catalog[0].Nmeasure);
     156    }
     157    measureOffsetOK &= (catalog[0].average[i].measureOffset + catalog[0].average[i].Nmeasure <= catalog[0].Nmeasure);
     158    if (VERBOSE && !(catalog[0].average[i].measureOffset + catalog[0].average[i].Nmeasure <= catalog[0].Nmeasure)) {
     159      fprintf (stderr, "orrset + Nmeasure too large: %d + %d > %d %d\n", (int) i, catalog[0].average[i].measureOffset, catalog[0].average[i].Nmeasure, (int) catalog[0].Nmeasure);
     160    }
     161  }
     162
     163  if (!measureOffsetOK) {
     164    fprintf (stderr, "ERROR: catalog %s has an invalid measureOffset\n", catalog[0].filename);
     165  }
     166
     167  if (NmeasureTotal != catalog[0].Nmeasure) {
     168    fprintf (stderr, "ERROR: catalog %s has an invalid Nmeasure\n", catalog[0].filename);
     169  }
     170
    129171  // MARKTIME("  match time %9.4f sec for %7lld measures, %6lld average\n", dtime, (long long) Nmeasure, (long long) Naverage);
     172
     173  catalog[0].sorted = TRUE;
    130174
    131175  FREE (measureSeq);
Note: See TracChangeset for help on using the changeset viewer.