IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 37046


Ignore:
Timestamp:
Jul 17, 2014, 10:17:46 AM (12 years ago)
Author:
eugene
Message:

measure.dR,dR -> measure.R,D

Location:
trunk/Ohana/src/dvomerge/src
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/dvomerge/src/IDmapIO.c

    r34277 r37046  
    2727  gfits_create_table_header (&theader, "BINTABLE", "IMAGE_ID_MAP");
    2828
    29   gfits_define_bintable_column (&theader, "J", "OLD_IDS", "old image IDs", NULL, 1.0, 1.0*0x8000);
    30   gfits_define_bintable_column (&theader, "J", "NEW_IDS", "new image IDs", NULL, 1.0, 1.0*0x8000);
     29  gfits_define_bintable_column (&theader, "J", "OLD_IDS", "old image IDs", NULL, 1.0, FT_BZERO_INT32);
     30  gfits_define_bintable_column (&theader, "J", "NEW_IDS", "new image IDs", NULL, 1.0, FT_BZERO_INT32);
    3131
    3232  // generate the output array that carries the data
  • trunk/Ohana/src/dvomerge/src/dvomergeUpdate_catalogs.c

    r36528 r37046  
    140140    }
    141141
     142    if (!incatalog.sorted) {
     143      fprintf (stderr, "ERROR: input catalog %s is not sorted (and must be for dvomerge)\n", filename_input);
     144      exit (1);
     145    }
     146
    142147    dvo_update_image_IDs (IDmap, &incatalog);
    143148
  • trunk/Ohana/src/dvomerge/src/dvorepair.c

    r29938 r37046  
    22
    33int main (int argc, char **argv) {
     4
     5  fprintf (stderr, "this program needs to be updated to load old format Measure tables (pre PV1_V5) in which dR,dD are saved, not R,D\n");
     6  fprintf (stderr, "reminder: relastro can re-construct R,D from X,Y; FtableToMeasure and vice versa could just NAN those values\n");
     7  exit (2);
    48
    59  dvorepair_help(argc, argv);
  • trunk/Ohana/src/dvomerge/src/dvorepairCPT.c

    r36833 r37046  
    7676  }
    7777
    78   measure = FtableToMeasure (&cpmFtable, &Nmeasure, &catformat);
     78  measure = FtableToMeasure (&cpmFtable, NULL, &Nmeasure, &catformat);
    7979  myAssert(measure, "failed to convert ftable to measure data");
    8080
     
    126126    average[Nave].measureOffset = -1;
    127127    average[Nave].missingOffset = -1;
    128     average[Nave].refColor = NAN;
     128    average[Nave].refColorBlue = NAN;
     129    average[Nave].refColorRed = NAN;
    129130
    130131    average[Nave].objID = measure[i].objID;
  • trunk/Ohana/src/dvomerge/src/dvorepairDeleteImageList.c

    r36833 r37046  
    250250        gfits_scan(&cpmHeaderTBL, "NAXIS1", "%d", 1, &NbytesPerRow);
    251251
    252         measure = FtableToMeasure (&cpmFtable, &Nmeasure, &catformat);
     252        measure = FtableToMeasure (&cpmFtable, NULL, &Nmeasure, &catformat);
    253253        myAssert(measure, "failed to convert ftable to measure data");
    254254   
     
    288288
    289289        // convert internal to external format
    290         if (!MeasureToFtable (&cpmFtable, measureNew, NmeasureNew, catformat)) {
     290        if (!MeasureToFtable (&cpmFtable, NULL, measureNew, NmeasureNew, catformat)) {
    291291          myAbort("trouble converting format");
    292292        }
     
    411411    average[Nave].measureOffset = -1;
    412412    average[Nave].missingOffset = -1;
    413     average[Nave].refColor = NAN;
     413    average[Nave].refColorBlue = NAN;
     414    average[Nave].refColorRed = NAN;
    414415
    415416    average[Nave].objID = measure[i].objID;
  • trunk/Ohana/src/dvomerge/src/dvorepairFixCPT.c

    r29938 r37046  
    120120  }
    121121
    122   measure = FtableToMeasure (&cpmFtable, &Nmeasure, &catformat);
     122  measure = FtableToMeasure (&cpmFtable, NULL, &Nmeasure, &catformat);
    123123  myAssert(measure, "failed to convert ftable to measure data");
    124124
     
    127127
    128128  // convert internal to external format
    129   if (!MeasureToFtable (&cpmFtable, measure, Nmeasure, catformat)) {
     129  if (!MeasureToFtable (&cpmFtable, NULL, measure, Nmeasure, catformat)) {
    130130    myAbort("trouble converting format");
    131131  }
  • trunk/Ohana/src/dvomerge/src/dvorepairFixTables.c

    r36833 r37046  
    103103
    104104      // convert internal to external format
    105       if (!MeasureToFtable (&cpmFtable, measureNew, NmeasureNew, catformat)) {
     105      if (!MeasureToFtable (&cpmFtable, NULL, measureNew, NmeasureNew, catformat)) {
    106106        myAbort("trouble converting format");
    107107      }
     
    183183  gfits_scan(&cpmHeaderTBL, "NAXIS2", "%d", 1, &Nrows);
    184184
    185   measure = FtableToMeasure (&cpmFtable, &Nmeasure, &catformat);
     185  measure = FtableToMeasure (&cpmFtable, NULL, &Nmeasure, &catformat);
    186186  myAssert(measure, "failed to convert ftable to measure data");
    187187   
     
    266266    average[Nave].measureOffset = -1;
    267267    average[Nave].missingOffset = -1;
    268     average[Nave].refColor = NAN;
     268    average[Nave].refColorBlue = NAN;
     269    average[Nave].refColorRef = NAN;
    269270
    270271    average[Nave].objID = measure[i].objID;
  • trunk/Ohana/src/dvomerge/src/dvorepairImageVsMeasure.c

    r33657 r37046  
    128128      gfits_scan(&cpmHeaderTBL, "NAXIS1", "%d", 1, &NbytesPerRow);
    129129
    130       measure = FtableToMeasure (&cpmFtable, &Nmeasure, &catformat);
     130      measure = FtableToMeasure (&cpmFtable, NULL, &Nmeasure, &catformat);
    131131      myAssert(measure, "failed to convert ftable to measure data");
    132132   
  • trunk/Ohana/src/dvomerge/src/dvorepairImagesVsMeasures.c

    r29938 r37046  
    134134      gfits_scan(&cpmHeaderTBL, "NAXIS1", "%d", 1, &NbytesPerRow);
    135135
    136       measure = FtableToMeasure (&cpmFtable, &Nmeasure, &catformat);
     136      measure = FtableToMeasure (&cpmFtable, NULL, &Nmeasure, &catformat);
    137137      myAssert(measure, "failed to convert ftable to measure data");
    138138   
  • trunk/Ohana/src/dvomerge/src/merge_catalogs_old.c

    r36486 r37046  
    11# include "dvomerge.h"
    22# define PSPS_ID TRUE
    3 
    4 # define MARKTIME(MSG,...) {                    \
    5     float dtime;                                \
    6     gettimeofday (&stop, (void *) NULL);        \
    7     dtime = DTIME (stop, start);                \
    8     fprintf (stderr, MSG, __VA_ARGS__);         \
    9     gettimeofday (&start, (void *) NULL);       \
    10   }
    113
    124# define IN_REGION(R,D) (                                       \
     
    1911
    2012  off_t i, j, k, Nin, offset, J, Jmin, status, Nstars;
    21   double RADIUS2, Rmin, Rin, Din;
     13  double RADIUS2, Rmin;
    2214  double *X1, *Y1, *X2, *Y2;
    2315  double dX, dY, dR;
     
    2921  Coords tcoords;
    3022 
    31   // struct timeval start, stop;
    32   // gettimeofday (&start, (void *) NULL);
     23  // INITTIME;
    3324
    3425  NsecfiltOut = output[0].Nsecfilt;
     
    4031  ALLOCATE (Y1, double, input[0].Naverage);
    4132  ALLOCATE (N1, off_t,  input[0].Naverage);
    42   ALLOCATE (input[0].found, off_t, input[0].Naverage);
     33  if (!input[0].found_t) {
     34    ALLOCATE (input[0].found_t, off_t, input[0].Naverage);
     35  } else {
     36    REALLOCATE (input[0].found_t, off_t, input[0].Naverage);
     37  }
    4338
    4439  /** allocate local arrays (catalog) **/
     
    4742  ALLOCATE (Y2, double, NAVE);
    4843  ALLOCATE (N2, off_t,    NAVE);
    49   ALLOCATE (output[0].found, off_t, NAVE);
     44  if (!output[0].found_t) {
     45    ALLOCATE (output[0].found_t, off_t, NAVE);
     46  } else {
     47    REALLOCATE (output[0].found_t, off_t, NAVE);
     48  }
    5049  /* for secfilt j and star i, secfilt[i*Nsecfilt+j] */
    5150
     
    8786    N1[Nstars] = i;
    8887    Nstars ++;
    89     input[0].found[i] = -1;
     88    input[0].found_t[i] = -1;
    9089  }
    9190  if (Nstars < 1) {
    9291    if (VERBOSE) fprintf (stderr, "skipping %s, no overlapping stars\n", output[0].filename);
    93     free (output[0].found);
    94     free (input[0].found);
    9592    free (X1);
    9693    free (Y1);
     
    106103  for (i = 0; i < Nave; i++) {
    107104    RD_to_XY (&X2[i], &Y2[i], output[0].average[i].R, output[0].average[i].D, &tcoords);
    108     output[0].found[i] = -1;
     105    output[0].found_t[i] = -1;
    109106    N2[i] = i;
    110107  }
     
    196193        int Mout = output[0].average[n].measureOffset; 
    197194        if (replace_match(&output[0].average[n], &output[0].measure[Mout], &input[0].average[N], &input[0].measure[offset])) {
    198           input[0].found[N] = Mout;
     195          input[0].found_t[N] = Mout;
    199196          continue;
    200197        }
     
    206203      output[0].measure[Nmeas] = input[0].measure[offset];
    207204
    208       Rin = input[0].average[N].R - input[0].measure[offset].dR / 3600.0;
    209       Din = input[0].average[N].D - input[0].measure[offset].dD / 3600.0;
    210 
    211       /** dR,dD now represent arcsec **/
    212       output[0].measure[Nmeas].dR       = 3600.0*(output[0].average[n].R - Rin);  // XXX update these based on choice of astromety
    213       output[0].measure[Nmeas].dD       = 3600.0*(output[0].average[n].D - Din);  // XXX update these based on choice of astromety
     205      // old code: find R,D using average_in[0], the get offset relative to average_out[0].  no longer
     206      // needed since we carry around R,D
     207      // Rin = input[0].average[N].R - input[0].measure[offset].dR / 3600.0;
     208      // Din = input[0].average[N].D - input[0].measure[offset].dD / 3600.0;
     209      // output[0].measure[Nmeas].dR = 3600.0*(output[0].average[n].R - Rin);
     210      // output[0].measure[Nmeas].dD = 3600.0*(output[0].average[n].D - Din);
     211
    214212      output[0].measure[Nmeas].dbFlags  = 0;  // XXX why reset these?
    215213      output[0].measure[Nmeas].averef   = n;
     
    221219      // fprintf (stderr, "Nave : "OFF_T_FMT", Nmeas : "OFF_T_FMT", dR: %f, dD: %f, catID: %d\n",  n,  Nmeas, output[0].measure[Nmeas].dR, output[0].measure[Nmeas].dD, output[0].measure[i].catID);
    222220
    223       // rationalize dR
    224       if (output[0].measure[Nmeas].dR > +180.0*3600.0) {
     221      float dRoff = dvoOffsetR(&output[0].measure[Nmeas], &output[0].average[n]);
     222
     223      // rationalize R
     224      if (dRoff > +180.0*3600.0) {
    225225        // average on high end of boundary, move star up
    226         Rin += 360.0;
    227         output[0].measure[Nmeas].dR = 3600.0*(output[0].average[n].R - Rin);
    228       }
    229       if (output[0].measure[Nmeas].dR < -180.0*3600.0) {
     226        output[0].measure[Nmeas].R += 360.0;
     227        dRoff -= 360.0*3600.0;
     228      }
     229      if (dRoff < -180.0*3600.0) {
    230230        // average on low end of boundary, move star down
    231         Rin -= 360.0;
    232         output[0].measure[Nmeas].dR = 3600.0*(output[0].average[n].R - Rin);
    233       }
    234       if (fabs(output[0].measure[Nmeas].dR) > 10*RADIUS) {
    235         // ok take declination into account and check again.
    236         double cosD = cos(RAD_DEG*Din);
    237         if (fabs(output[0].measure[Nmeas].dR*cosD) > 10*RADIUS) {
    238 
    239             fprintf (stderr, "error: %10.6f,%10.6f vs %10.6f,%10.6f (%f,%f vs %f,%f)\n",
    240              output[0].average[n].R, output[0].average[n].D, Rin, Din,
    241              X1[i], X2[Jmin], Y1[i], Y2[Jmin]);
    242 
    243             // XXX abort on this? -- this is a bad failure...
     231        output[0].measure[Nmeas].R -= 360.0;
     232        dRoff += 360.0*3600.0;
     233      }
     234      if (fabs(dRoff) > 10*RADIUS) {
     235        // take declination into account and check again.
     236        double cosD = cos(RAD_DEG*output[0].average[n].D);
     237        if (fabs(dRoff*cosD) > 10*RADIUS) {
     238          fprintf (stderr, "error: %10.6f,%10.6f vs %10.6f,%10.6f (%f,%f vs %f,%f)\n",
     239                   output[0].average[n].R, output[0].average[n].D,
     240                   output[0].measure[Nmeas].R, output[0].measure[Nmeas].D,
     241                   X1[i], X2[Jmin], Y1[i], Y2[Jmin]);
     242          // XXX abort on this? -- this is a bad failure...
    244243        }
    245244      }
    246       input[0].found[N] = Nmeas;
     245      input[0].found_t[N] = Nmeas;
    247246      output[0].average[n].Nmeasure ++;
    248247      Nmeas ++;
     
    273272    /* Nm is updated, but not written out in -update mode (for existing entries)
    274273       Nm is recalculated in build_meas_links if loaded table is not sorted */
    275     output[0].found[n] = Nmeas;
     274    output[0].found_t[n] = Nmeas;
    276275    i++;
    277276  }
     
    295294    }
    296295
    297     if (input[0].found[N] >= 0) continue;
     296    if (input[0].found_t[N] >= 0) continue;
    298297    if (!IN_REGION (input[0].average[N].R, input[0].average[N].D)) continue;
    299298
     
    348347
    349348      /* we set next[Nmeas] to -1 here, and update correctly below */
    350       input[0].found[N] = Nmeas;
     349      input[0].found_t[N] = Nmeas;
    351350      next_meas[Nmeas] = -1;
    352351      Nmeas ++;
     
    374373  /* note stars which have been found in this catalog */
    375374  for (i = 0; i < input[0].Naverage; i++) {
    376     if (input[0].found[i] > -1) {
    377       input[0].found[i] = -2;
     375    if (input[0].found_t[i] > -1) {
     376      input[0].found_t[i] = -2;
    378377    } else {
    379       input[0].found[i] = -3;
     378      input[0].found_t[i] = -3;
    380379    }
    381380  }
     
    390389  free (next_meas);
    391390
    392   free (output[0].found);
    393391  free (X2);
    394392  free (Y2);
    395393  free (N2);
    396   free (input[0].found);
    397394  free (X1);
    398395  free (Y1);
     
    411408   images have boundaries which are lines in pixels coords, but curve in RA and DEC
    412409   
    413    output[0].found[Ncat] but stars[Nstar].found
     410   output[0].found_t[Ncat] but stars[Nstar].found
    414411   
    415412*/
  • trunk/Ohana/src/dvomerge/src/replace_match.c

    r33963 r37046  
    77  unsigned int averef;
    88  unsigned int catID;
    9   double Rin, Din;
    109
    1110  // find the matching photcode in the object's list of measurements
     
    1817    measure_out[Nout] = measure_in[0];
    1918
    20     Rin = average_in[0].R - measure_in[0].dR / 3600.0;
    21     Din = average_in[0].D - measure_in[0].dD / 3600.0;
     19    // old code: find R,D using average_in[0], the get offset relative to average_out[0].  no longer
     20    // needed since we carry around R,D
     21    // double Rin = average_in[0].R - measure_in[0].dR / 3600.0;
     22    // double Din = average_in[0].D - measure_in[0].dD / 3600.0;
     23    // measure_out[Nout].dR = 3600.0*(average_out[0].R - Rin);
     24    // measure_out[Nout].dD = 3600.0*(average_out[0].D - Din);
    2225
    23     /** dR,dD now represent arcsec **/
    24     measure_out[Nout].dR       = 3600.0*(average_out[0].R - Rin);
    25     measure_out[Nout].dD       = 3600.0*(average_out[0].D - Din);
    2626    measure_out[Nout].dbFlags  = 0;  // XXX why reset these?
    2727    measure_out[Nout].averef   = averef;
     
    2929    measure_out[Nout].catID    = catID;
    3030
     31    float dRoff = dvoOffsetR(&measure_out[Nout], average_out);
     32
    3133    // rationalize dR
    32     if (measure_out[Nout].dR > +180.0*3600.0) {
     34    if (dRoff > +180.0*3600.0) {
    3335      // average on high end of boundary, move star up
    34       Rin += 360.0;
    35       measure_out[Nout].dR = 3600.0*(average_out[0].R - Rin);
     36      measure_out[Nout].R += 360.0;
     37      dRoff -= 360.0*3600.0;
    3638    }
    37     if (measure_out[Nout].dR < -180.0*3600.0) {
     39    if (dRoff < -180.0*3600.0) {
    3840      // average on low end of boundary, move star down
    39       Rin -= 360.0;
    40       measure_out[Nout].dR = 3600.0*(average_out[0].R - Rin);
     41      measure_out[Nout].R -= 360.0;
     42      dRoff += 360.0*3600.0;
    4143    }
    4244
    4345    // warn on surprisingly distant detections
    44     if (fabs(measure_out[Nout].dR) > 10*RADIUS) {
     46    if (fabs(dRoff) > 10*RADIUS) {
    4547      // ok take declination into account and check again.
    46       double cosD = cos(RAD_DEG*Din);
    47       if (fabs(measure_out[Nout].dR*cosD) > 10*RADIUS) {
    48 
     48      double cosD = cos(RAD_DEG*average_out[0].D);
     49      if (fabs(dRoff*cosD) > 10*RADIUS) {
    4950        fprintf (stderr, "surprisingly distant detection: %10.6f,%10.6f vs %10.6f,%10.6f\n",
    50                  average_out[0].R, average_out[0].D, Rin, Din);
     51                 average_out[0].R, average_out[0].D, measure_out[Nout].R, measure_out[Nout].D);
    5152      }
    5253    }
Note: See TracChangeset for help on using the changeset viewer.