Changeset 37046
- Timestamp:
- Jul 17, 2014, 10:17:46 AM (12 years ago)
- Location:
- trunk/Ohana/src/dvomerge/src
- Files:
-
- 11 edited
-
IDmapIO.c (modified) (1 diff)
-
dvomergeUpdate_catalogs.c (modified) (1 diff)
-
dvorepair.c (modified) (1 diff)
-
dvorepairCPT.c (modified) (2 diffs)
-
dvorepairDeleteImageList.c (modified) (3 diffs)
-
dvorepairFixCPT.c (modified) (2 diffs)
-
dvorepairFixTables.c (modified) (3 diffs)
-
dvorepairImageVsMeasure.c (modified) (1 diff)
-
dvorepairImagesVsMeasures.c (modified) (1 diff)
-
merge_catalogs_old.c (modified) (16 diffs)
-
replace_match.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/dvomerge/src/IDmapIO.c
r34277 r37046 27 27 gfits_create_table_header (&theader, "BINTABLE", "IMAGE_ID_MAP"); 28 28 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); 31 31 32 32 // generate the output array that carries the data -
trunk/Ohana/src/dvomerge/src/dvomergeUpdate_catalogs.c
r36528 r37046 140 140 } 141 141 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 142 147 dvo_update_image_IDs (IDmap, &incatalog); 143 148 -
trunk/Ohana/src/dvomerge/src/dvorepair.c
r29938 r37046 2 2 3 3 int 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); 4 8 5 9 dvorepair_help(argc, argv); -
trunk/Ohana/src/dvomerge/src/dvorepairCPT.c
r36833 r37046 76 76 } 77 77 78 measure = FtableToMeasure (&cpmFtable, &Nmeasure, &catformat);78 measure = FtableToMeasure (&cpmFtable, NULL, &Nmeasure, &catformat); 79 79 myAssert(measure, "failed to convert ftable to measure data"); 80 80 … … 126 126 average[Nave].measureOffset = -1; 127 127 average[Nave].missingOffset = -1; 128 average[Nave].refColor = NAN; 128 average[Nave].refColorBlue = NAN; 129 average[Nave].refColorRed = NAN; 129 130 130 131 average[Nave].objID = measure[i].objID; -
trunk/Ohana/src/dvomerge/src/dvorepairDeleteImageList.c
r36833 r37046 250 250 gfits_scan(&cpmHeaderTBL, "NAXIS1", "%d", 1, &NbytesPerRow); 251 251 252 measure = FtableToMeasure (&cpmFtable, &Nmeasure, &catformat);252 measure = FtableToMeasure (&cpmFtable, NULL, &Nmeasure, &catformat); 253 253 myAssert(measure, "failed to convert ftable to measure data"); 254 254 … … 288 288 289 289 // convert internal to external format 290 if (!MeasureToFtable (&cpmFtable, measureNew, NmeasureNew, catformat)) {290 if (!MeasureToFtable (&cpmFtable, NULL, measureNew, NmeasureNew, catformat)) { 291 291 myAbort("trouble converting format"); 292 292 } … … 411 411 average[Nave].measureOffset = -1; 412 412 average[Nave].missingOffset = -1; 413 average[Nave].refColor = NAN; 413 average[Nave].refColorBlue = NAN; 414 average[Nave].refColorRed = NAN; 414 415 415 416 average[Nave].objID = measure[i].objID; -
trunk/Ohana/src/dvomerge/src/dvorepairFixCPT.c
r29938 r37046 120 120 } 121 121 122 measure = FtableToMeasure (&cpmFtable, &Nmeasure, &catformat);122 measure = FtableToMeasure (&cpmFtable, NULL, &Nmeasure, &catformat); 123 123 myAssert(measure, "failed to convert ftable to measure data"); 124 124 … … 127 127 128 128 // convert internal to external format 129 if (!MeasureToFtable (&cpmFtable, measure, Nmeasure, catformat)) {129 if (!MeasureToFtable (&cpmFtable, NULL, measure, Nmeasure, catformat)) { 130 130 myAbort("trouble converting format"); 131 131 } -
trunk/Ohana/src/dvomerge/src/dvorepairFixTables.c
r36833 r37046 103 103 104 104 // convert internal to external format 105 if (!MeasureToFtable (&cpmFtable, measureNew, NmeasureNew, catformat)) {105 if (!MeasureToFtable (&cpmFtable, NULL, measureNew, NmeasureNew, catformat)) { 106 106 myAbort("trouble converting format"); 107 107 } … … 183 183 gfits_scan(&cpmHeaderTBL, "NAXIS2", "%d", 1, &Nrows); 184 184 185 measure = FtableToMeasure (&cpmFtable, &Nmeasure, &catformat);185 measure = FtableToMeasure (&cpmFtable, NULL, &Nmeasure, &catformat); 186 186 myAssert(measure, "failed to convert ftable to measure data"); 187 187 … … 266 266 average[Nave].measureOffset = -1; 267 267 average[Nave].missingOffset = -1; 268 average[Nave].refColor = NAN; 268 average[Nave].refColorBlue = NAN; 269 average[Nave].refColorRef = NAN; 269 270 270 271 average[Nave].objID = measure[i].objID; -
trunk/Ohana/src/dvomerge/src/dvorepairImageVsMeasure.c
r33657 r37046 128 128 gfits_scan(&cpmHeaderTBL, "NAXIS1", "%d", 1, &NbytesPerRow); 129 129 130 measure = FtableToMeasure (&cpmFtable, &Nmeasure, &catformat);130 measure = FtableToMeasure (&cpmFtable, NULL, &Nmeasure, &catformat); 131 131 myAssert(measure, "failed to convert ftable to measure data"); 132 132 -
trunk/Ohana/src/dvomerge/src/dvorepairImagesVsMeasures.c
r29938 r37046 134 134 gfits_scan(&cpmHeaderTBL, "NAXIS1", "%d", 1, &NbytesPerRow); 135 135 136 measure = FtableToMeasure (&cpmFtable, &Nmeasure, &catformat);136 measure = FtableToMeasure (&cpmFtable, NULL, &Nmeasure, &catformat); 137 137 myAssert(measure, "failed to convert ftable to measure data"); 138 138 -
trunk/Ohana/src/dvomerge/src/merge_catalogs_old.c
r36486 r37046 1 1 # include "dvomerge.h" 2 2 # 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 }11 3 12 4 # define IN_REGION(R,D) ( \ … … 19 11 20 12 off_t i, j, k, Nin, offset, J, Jmin, status, Nstars; 21 double RADIUS2, Rmin , Rin, Din;13 double RADIUS2, Rmin; 22 14 double *X1, *Y1, *X2, *Y2; 23 15 double dX, dY, dR; … … 29 21 Coords tcoords; 30 22 31 // struct timeval start, stop; 32 // gettimeofday (&start, (void *) NULL); 23 // INITTIME; 33 24 34 25 NsecfiltOut = output[0].Nsecfilt; … … 40 31 ALLOCATE (Y1, double, input[0].Naverage); 41 32 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 } 43 38 44 39 /** allocate local arrays (catalog) **/ … … 47 42 ALLOCATE (Y2, double, NAVE); 48 43 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 } 50 49 /* for secfilt j and star i, secfilt[i*Nsecfilt+j] */ 51 50 … … 87 86 N1[Nstars] = i; 88 87 Nstars ++; 89 input[0].found [i] = -1;88 input[0].found_t[i] = -1; 90 89 } 91 90 if (Nstars < 1) { 92 91 if (VERBOSE) fprintf (stderr, "skipping %s, no overlapping stars\n", output[0].filename); 93 free (output[0].found);94 free (input[0].found);95 92 free (X1); 96 93 free (Y1); … … 106 103 for (i = 0; i < Nave; i++) { 107 104 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; 109 106 N2[i] = i; 110 107 } … … 196 193 int Mout = output[0].average[n].measureOffset; 197 194 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; 199 196 continue; 200 197 } … … 206 203 output[0].measure[Nmeas] = input[0].measure[offset]; 207 204 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 214 212 output[0].measure[Nmeas].dbFlags = 0; // XXX why reset these? 215 213 output[0].measure[Nmeas].averef = n; … … 221 219 // 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); 222 220 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) { 225 225 // 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) { 230 230 // 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... 244 243 } 245 244 } 246 input[0].found [N] = Nmeas;245 input[0].found_t[N] = Nmeas; 247 246 output[0].average[n].Nmeasure ++; 248 247 Nmeas ++; … … 273 272 /* Nm is updated, but not written out in -update mode (for existing entries) 274 273 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; 276 275 i++; 277 276 } … … 295 294 } 296 295 297 if (input[0].found [N] >= 0) continue;296 if (input[0].found_t[N] >= 0) continue; 298 297 if (!IN_REGION (input[0].average[N].R, input[0].average[N].D)) continue; 299 298 … … 348 347 349 348 /* we set next[Nmeas] to -1 here, and update correctly below */ 350 input[0].found [N] = Nmeas;349 input[0].found_t[N] = Nmeas; 351 350 next_meas[Nmeas] = -1; 352 351 Nmeas ++; … … 374 373 /* note stars which have been found in this catalog */ 375 374 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; 378 377 } else { 379 input[0].found [i] = -3;378 input[0].found_t[i] = -3; 380 379 } 381 380 } … … 390 389 free (next_meas); 391 390 392 free (output[0].found);393 391 free (X2); 394 392 free (Y2); 395 393 free (N2); 396 free (input[0].found);397 394 free (X1); 398 395 free (Y1); … … 411 408 images have boundaries which are lines in pixels coords, but curve in RA and DEC 412 409 413 output[0].found [Ncat] but stars[Nstar].found410 output[0].found_t[Ncat] but stars[Nstar].found 414 411 415 412 */ -
trunk/Ohana/src/dvomerge/src/replace_match.c
r33963 r37046 7 7 unsigned int averef; 8 8 unsigned int catID; 9 double Rin, Din;10 9 11 10 // find the matching photcode in the object's list of measurements … … 18 17 measure_out[Nout] = measure_in[0]; 19 18 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); 22 25 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);26 26 measure_out[Nout].dbFlags = 0; // XXX why reset these? 27 27 measure_out[Nout].averef = averef; … … 29 29 measure_out[Nout].catID = catID; 30 30 31 float dRoff = dvoOffsetR(&measure_out[Nout], average_out); 32 31 33 // rationalize dR 32 if ( measure_out[Nout].dR> +180.0*3600.0) {34 if (dRoff > +180.0*3600.0) { 33 35 // 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; 36 38 } 37 if ( measure_out[Nout].dR< -180.0*3600.0) {39 if (dRoff < -180.0*3600.0) { 38 40 // 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; 41 43 } 42 44 43 45 // warn on surprisingly distant detections 44 if (fabs( measure_out[Nout].dR) > 10*RADIUS) {46 if (fabs(dRoff) > 10*RADIUS) { 45 47 // 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) { 49 50 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); 51 52 } 52 53 }
Note:
See TracChangeset
for help on using the changeset viewer.
