IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 38642


Ignore:
Timestamp:
Jul 27, 2015, 11:45:31 AM (11 years ago)
Author:
eugene
Message:

use next_meas to check for existing photcodes to be replaced

Location:
branches/eam_branches/ipp-20150625/Ohana/src/dvomerge
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/include/dvomerge.h

    r38553 r38642  
    202202int        dvomergeUpdate_catalogs PROTO((char *input, char *output, SkyTable *outsky, SkyList *inlist, int NsecfiltInput, int NsecfiltOutput, IDmapType *IDmap, int *secfiltMap));
    203203
    204 int        replace_match           PROTO((Average *average_out, Measure *measure_out, Average *average_in, Measure *measure_in));
     204int        replace_match           PROTO((Average *average_out, Measure *measure_out, off_t *next_meas, Average *average_in, Measure *measure_in));
    205205
    206206int        IDmapSave               PROTO((char *filename, IDmapType *IDmap));
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/merge_catalogs_old.c

    r38629 r38642  
    216216        // index to first measure for this object
    217217        // XXX this does not support lensing measurements
    218         int Mout = output[0].average[n].measureOffset; 
    219         if (replace_match (&output[0].average[n], &output[0].measure[Mout], &input[0].average[N], &input[0].measure[offset])) {
    220           input[0].found_t[N] = Mout;
     218        if (replace_match (&output[0].average[n], output[0].measure, next_meas, &input[0].average[N], &input[0].measure[offset])) {
     219          input[0].found_t[N] = output[0].average[n].measureOffset; 
    221220          continue;
    222221        }
  • branches/eam_branches/ipp-20150625/Ohana/src/dvomerge/src/replace_match.c

    r38629 r38642  
    66
    77// average and measure pointers to the objects of interest and their first / current measurement
    8 int replace_match (Average *average_out, Measure *measure_out, Average *average_in, Measure *measure_in) {
     8int replace_match (Average *average_out, Measure *measure_out, off_t *next_meas, Average *average_in, Measure *measure_in) {
    99
    1010  int Nout;
     
    1212  unsigned int catID;
    1313
    14   myAbort ("fix this function to use next_meas to loop over measurements for an object");
     14  off_t m = average_out->measureOffset;
    1515
    1616  // find the matching photcode in the object's list of measurements
    1717  for (Nout = 0; Nout < average_out[0].Nmeasure; Nout ++) {
    18     if (measure_out[Nout].photcode != measure_in[0].photcode) continue;
     18    myAssert (m > -1, "oops");
     19    if (measure_out[m].photcode != measure_in[0].photcode) {
     20      m = next_meas[m];
     21      continue;
     22    }
    1923   
    2024    // set the new measurements
    21     averef = measure_out[Nout].averef;
    22     catID  = measure_out[Nout].catID;
    23     measure_out[Nout] = measure_in[0];
     25    averef = measure_out[m].averef;
     26    catID  = measure_out[m].catID;
     27    measure_out[m] = measure_in[0];
    2428
    2529    // old code: find R,D using average_in[0], the get offset relative to average_out[0].  no longer
     
    3034    // measure_out[Nout].dD = 3600.0*(average_out[0].D - Din);
    3135
    32     measure_out[Nout].dbFlags  = 0;  // XXX why reset these?
    33     measure_out[Nout].averef   = averef;
    34     measure_out[Nout].objID    = average_out[0].objID;
    35     measure_out[Nout].catID    = catID;
     36    measure_out[m].dbFlags  = 0;  // XXX why reset these?
     37    measure_out[m].averef   = averef;
     38    measure_out[m].objID    = average_out[0].objID;
     39    measure_out[m].catID    = catID;
    3640
    37     float dRoff = dvoOffsetR(&measure_out[Nout], average_out);
     41    float dRoff = dvoOffsetR(&measure_out[m], average_out);
    3842
    3943    // rationalize dR
    4044    if (dRoff > +180.0*3600.0) {
    4145      // average on high end of boundary, move star up
    42       measure_out[Nout].R += 360.0;
     46      measure_out[m].R += 360.0;
    4347      dRoff -= 360.0*3600.0;
    4448    }
    4549    if (dRoff < -180.0*3600.0) {
    4650      // average on low end of boundary, move star down
    47       measure_out[Nout].R -= 360.0;
     51      measure_out[m].R -= 360.0;
    4852      dRoff += 360.0*3600.0;
    4953    }
     
    5559      if (fabs(dRoff*cosD) > 10*RADIUS) {
    5660        fprintf (stderr, "surprisingly distant detection: %10.6f,%10.6f vs %10.6f,%10.6f\n",
    57                  average_out[0].R, average_out[0].D, measure_out[Nout].R, measure_out[Nout].D);
     61                 average_out[0].R, average_out[0].D, measure_out[m].R, measure_out[m].D);
    5862      }
    5963    }
Note: See TracChangeset for help on using the changeset viewer.