Changeset 39727
- Timestamp:
- Sep 27, 2016, 12:09:04 PM (10 years ago)
- Location:
- branches/czw_branch/20160809/Ohana/src/dvomerge
- Files:
-
- 6 edited
-
include/dvomerge.h (modified) (2 diffs)
-
src/LoadCatalog.c (modified) (2 diffs)
-
src/args.c (modified) (2 diffs)
-
src/build_links.c (modified) (54 diffs)
-
src/dvomergeUpdate_catalogs.c (modified) (1 diff)
-
src/merge_catalogs_old.c (modified) (22 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/czw_branch/20160809/Ohana/src/dvomerge/include/dvomerge.h
r39536 r39727 61 61 int SKIP_MEASURE; 62 62 int SKIP_LENSING; 63 int SKIP_LENSOBJ; 63 64 int SKIP_STARPAR; 64 65 int SKIP_GALPHOT; … … 171 172 off_t *build_measure_links PROTO((Average *average, off_t Naverage, Measure *measure, off_t Nmeasure)); 172 173 off_t *init_measure_links PROTO((Average *average, off_t Naverage, Measure *measure, off_t Nmeasure)); 173 int add_meas _linkPROTO((Average *average, off_t *next, off_t Nmeasure, off_t NMEASURE));174 int add_measure_link PROTO((Average *average, off_t *next, off_t Nmeasure, off_t NMEASURE)); 174 175 Measure *sort_measure PROTO((Average *average, off_t Naverage, Measure *measure, off_t Nmeasure, off_t *next)); 175 176 176 177 off_t *build_lensing_links PROTO((Average *average, off_t Naverage, Lensing *lensing, off_t Nlensing)); 177 178 off_t *init_lensing_links PROTO((Average *average, off_t Naverage, Lensing *lensing, off_t Nlensing)); 178 int add_lens _linkPROTO((Average *average, off_t *next, off_t Nlensing, off_t NLENSING));179 int add_lensing_link PROTO((Average *average, off_t *next, off_t Nlensing, off_t NLENSING)); 179 180 Lensing *sort_lensing PROTO((Average *average, off_t Naverage, Lensing *lensing, off_t Nlensing, off_t *next)); 181 182 off_t *build_lensobj_links PROTO((Average *average, off_t Naverage, Lensobj *lensobj, off_t Nlensobj)); 183 off_t *init_lensobj_links PROTO((Average *average, off_t Naverage, Lensobj *lensobj, off_t Nlensobj)); 184 int add_lensobj_link PROTO((Average *average, off_t *next, off_t Nlensobj, off_t NLENSOBJ)); 185 Lensobj *sort_lensobj PROTO((Average *average, off_t Naverage, Lensobj *lensobj, off_t Nlensobj, off_t *next)); 180 186 181 187 off_t *build_starpar_links PROTO((Average *average, off_t Naverage, StarPar *starpar, off_t Nstarpar)); 182 188 off_t *init_starpar_links PROTO((Average *average, off_t Naverage, StarPar *starpar, off_t Nstarpar)); 183 int add_star _link PROTO((Average *average, off_t *next, off_t Nstarpar, off_t NSTARPAR));189 int add_starpar_link PROTO((Average *average, off_t *next, off_t Nstarpar, off_t NSTARPAR)); 184 190 StarPar *sort_starpar PROTO((Average *average, off_t Naverage, StarPar *starpar, off_t Nstarpar, off_t *next)); 185 191 186 192 off_t *build_galphot_links PROTO((Average *average, off_t Naverage, GalPhot *galphot, off_t Ngalphot)); 187 193 off_t *init_galphot_links PROTO((Average *average, off_t Naverage, GalPhot *galphot, off_t Ngalphot)); 188 int add_galp _link PROTO((Average *average, off_t *next, off_t Ngalphot, off_t NGALPHOT));194 int add_galphot_link PROTO((Average *average, off_t *next, off_t Ngalphot, off_t NGALPHOT)); 189 195 GalPhot *sort_galphot PROTO((Average *average, off_t Naverage, GalPhot *galphot, off_t Ngalphot, off_t *next)); 190 196 191 197 off_t *init_missing_links PROTO((Average *average, off_t Naverage, Missing *missing, off_t Nmissing)); 192 int add_miss _link PROTO((Average *average, off_t *next, off_t Nmissing));198 int add_missing_link PROTO((Average *average, off_t *next, off_t Nmissing)); 193 199 Missing *sort_missing PROTO((Average *average, off_t Naverage, Missing *missing, off_t Nmissing, off_t *next_miss)); 194 200 -
branches/czw_branch/20160809/Ohana/src/dvomerge/src/LoadCatalog.c
r39714 r39727 10 10 // always load all of the data (if any exists) 11 11 12 catalog[0].catflags = DVO_LOAD_AVERAGE | DVO_LOAD_MISSING | DVO_LOAD_SECFILT | DVO_LOAD_LENSOBJ;12 catalog[0].catflags = DVO_LOAD_AVERAGE | DVO_LOAD_MISSING | DVO_LOAD_SECFILT; 13 13 14 14 if (SKIP_MEASURE) { … … 22 22 } else { 23 23 catalog[0].catflags = catalog[0].catflags | DVO_LOAD_LENSING; 24 } 25 26 if (SKIP_LENSOBJ) { 27 catalog[0].catflags = catalog[0].catflags | DVO_SKIP_LENSOBJ; 28 } else { 29 catalog[0].catflags = catalog[0].catflags | DVO_LOAD_LENSOBJ; 24 30 } 25 31 -
branches/czw_branch/20160809/Ohana/src/dvomerge/src/args.c
r39536 r39727 56 56 if ((N = get_argument (*argc, argv, "-skip-lensing"))) { 57 57 SKIP_LENSING = TRUE; 58 remove_argument (N, argc, argv); 59 } 60 SKIP_LENSOBJ = FALSE; 61 if ((N = get_argument (*argc, argv, "-skip-lensobj"))) { 62 SKIP_LENSOBJ = TRUE; 58 63 remove_argument (N, argc, argv); 59 64 } … … 340 345 remove_argument (N, argc, argv); 341 346 } 347 SKIP_LENSOBJ = FALSE; 348 if ((N = get_argument (*argc, argv, "-skip-lensobj"))) { 349 SKIP_LENSOBJ = TRUE; 350 remove_argument (N, argc, argv); 351 } 342 352 SKIP_STARPAR = FALSE; 343 353 if ((N = get_argument (*argc, argv, "-skip-starpar"))) { -
branches/czw_branch/20160809/Ohana/src/dvomerge/src/build_links.c
r39536 r39727 15 15 data: they refer to the sequence number in the data blocks. 16 16 17 next_meas is a list of the equivalent sequence of the measure block as if it were sorted.17 next_measure is a list of the equivalent sequence of the measure block as if it were sorted. 18 18 19 19 to find the sequence of measurements for a given average: 20 20 n_0 = average->measureOffset 21 n_1 = next_meas [n_0]22 n_i = next_meas [n_i-1]21 n_1 = next_measure[n_0] 22 n_i = next_measure[n_i-1] 23 23 24 24 */ … … 31 31 32 32 off_t i, j, N; 33 off_t *next_meas ;33 off_t *next_measure; 34 34 35 35 if (!measure) return NULL; … … 38 38 N = 0; 39 39 40 ALLOCATE (next_meas , off_t, Nmeasure);40 ALLOCATE (next_measure, off_t, Nmeasure); 41 41 for (i = 0; i < Naverage; i++) { 42 42 if (!average[i].Nmeasure) continue; … … 45 45 for (j = 0; j < average[i].Nmeasure - 1; j++, N++) { 46 46 myAssert (measure[m+j+1].averef == i, "not sorted"); 47 next_meas [N] = N + 1;47 next_measure[N] = N + 1; 48 48 if (N >= Nmeasure) { 49 49 fprintf (stderr, "WARNING: N out of bounds (1)\n"); 50 50 } 51 51 } 52 next_meas [N] = -1;52 next_measure[N] = -1; 53 53 if (N >= Nmeasure) { 54 54 fprintf (stderr, "WARNING: N out of bounds (2)\n"); … … 61 61 N++; 62 62 } 63 return (next_meas );63 return (next_measure); 64 64 } 65 65 … … 74 74 75 75 off_t i, m, k, Nm, averef; 76 off_t *next_meas ;77 78 ALLOCATE (next_meas , off_t, Nmeasure);76 off_t *next_measure; 77 78 ALLOCATE (next_measure, off_t, Nmeasure); 79 79 80 80 /* reset the Nm, offset values for average */ … … 87 87 averef = measure[Nm].averef; 88 88 m = average[averef].measureOffset; 89 next_meas [Nm] = -1;89 next_measure[Nm] = -1; 90 90 91 91 if (m == -1) { /* no links yet for source */ … … 95 95 } 96 96 97 for (k = 0; next_meas [m] != -1; k++) {98 m = next_meas [m];97 for (k = 0; next_measure[m] != -1; k++) { 98 m = next_measure[m]; 99 99 if (m >= Nmeasure) { 100 100 fprintf (stderr, "WARNING: m out of bounds (1)\n"); … … 103 103 104 104 average[averef].Nmeasure = k + 2; 105 next_meas [m] = Nm;105 next_measure[m] = Nm; 106 106 if (m >= Nmeasure) { 107 107 fprintf (stderr, "WARNING: m out of bounds (2)\n"); 108 108 } 109 109 } 110 return (next_meas );110 return (next_measure); 111 111 } 112 112 113 113 /* average[].measureOffset, average[].Nmeasure are valid within an addstar run */ 114 int add_meas _link (Average *average, off_t *next_meas, off_t Nmeasure, off_t NMEASURE) {114 int add_measure_link (Average *average, off_t *next_measure, off_t Nmeasure, off_t NMEASURE) { 115 115 116 116 off_t k, m; 117 117 118 /* if we have trouble, check validity of next_meas [m] : m < Nmeasure */118 /* if we have trouble, check validity of next_measure[m] : m < Nmeasure */ 119 119 m = average[0].measureOffset; 120 120 121 121 for (k = 0; k < average[0].Nmeasure - 1; k++) { 122 m = next_meas [m];122 m = next_measure[m]; 123 123 if (m >= NMEASURE) { 124 124 fprintf (stderr, "WARNING: m out of bounds (3)\n"); … … 127 127 128 128 /* set up references */ 129 next_meas [Nmeasure] = -1;129 next_measure[Nmeasure] = -1; 130 130 if (Nmeasure >= NMEASURE) { 131 131 fprintf (stderr, "WARNING: Nmeasure out of bounds (1)\n"); … … 136 136 average[0].measureOffset = Nmeasure; 137 137 } else { 138 next_meas [m] = Nmeasure;138 next_measure[m] = Nmeasure; 139 139 if (m >= NMEASURE) { 140 140 fprintf (stderr, "WARNING: m out of bounds (4)\n"); … … 145 145 } 146 146 147 Measure *sort_measure (Average *average, off_t Naverage, Measure *measure, off_t Nmeasure, off_t *next_meas ) {147 Measure *sort_measure (Average *average, off_t Naverage, Measure *measure, off_t Nmeasure, off_t *next_measure) { 148 148 149 149 off_t i, k, n, np, N; … … 169 169 tmpmeasure[N].averef = i; 170 170 np = n; 171 n = next_meas [n];171 n = next_measure[n]; 172 172 } 173 173 } … … 183 183 184 184 off_t i, j, N; 185 off_t *next_miss ;185 off_t *next_missing; 186 186 187 187 N = 0; 188 188 189 ALLOCATE (next_miss , off_t, Nmissing);189 ALLOCATE (next_missing, off_t, Nmissing); 190 190 for (i = 0; i < Naverage; i++) { 191 191 for (j = 0; j < average[i].Nmissing - 1; j++, N++) { 192 next_miss [N] = N + 1;192 next_missing[N] = N + 1; 193 193 } 194 194 if (average[i].Nmissing > 0) { 195 next_miss [N] = -1;195 next_missing[N] = -1; 196 196 if (N >= Nmissing) { 197 197 fprintf (stderr, "overflow in init_missing_links"); … … 202 202 203 203 } 204 return (next_miss );205 } 206 207 int add_miss _link (Average *average, off_t *next_miss, off_t Nmissing) {204 return (next_missing); 205 } 206 207 int add_missing_link (Average *average, off_t *next_missing, off_t Nmissing) { 208 208 209 209 off_t k, m; … … 212 212 if (average[0].Nmissing < 1) { 213 213 average[0].missingOffset = Nmissing; 214 next_miss [Nmissing] = -1;214 next_missing[Nmissing] = -1; 215 215 return (TRUE); 216 216 } 217 217 218 218 m = average[0].missingOffset; 219 for (k = 0; k < average[0].Nmissing - 1; k++) m = next_miss [m];219 for (k = 0; k < average[0].Nmissing - 1; k++) m = next_missing[m]; 220 220 /* set up references */ 221 next_miss [Nmissing] = -1;222 next_miss [m] = Nmissing;221 next_missing[Nmissing] = -1; 222 next_missing[m] = Nmissing; 223 223 return (TRUE); 224 224 } … … 227 227 we must always save the missing table, if it exists */ 228 228 229 Missing *sort_missing (Average *average, off_t Naverage, Missing *missing, off_t Nmissing, off_t *next_miss ) {229 Missing *sort_missing (Average *average, off_t Naverage, Missing *missing, off_t Nmissing, off_t *next_missing) { 230 230 231 231 off_t i, k, n, N; … … 240 240 for (k = 0; k < average[i].Nmissing; k++, N++) { 241 241 tmpmissing[N] = missing[n]; 242 n = next_miss [n];242 n = next_missing[n]; 243 243 } 244 244 } … … 254 254 255 255 off_t i, j, N; 256 off_t *next_lens ;256 off_t *next_lensing; 257 257 258 258 if (!lensing) return NULL; … … 261 261 N = 0; 262 262 263 ALLOCATE (next_lens , off_t, Nlensing);263 ALLOCATE (next_lensing, off_t, Nlensing); 264 264 for (i = 0; i < Naverage; i++) { 265 265 if (!average[i].Nlensing) continue; … … 268 268 for (j = 0; j < average[i].Nlensing - 1; j++, N++) { 269 269 myAssert (lensing[m+j+1].averef == i, "not sorted"); 270 next_lens [N] = N + 1;270 next_lensing[N] = N + 1; 271 271 if (N >= Nlensing) { 272 272 fprintf (stderr, "WARNING: N out of bounds (1)\n"); 273 273 } 274 274 } 275 next_lens [N] = -1;275 next_lensing[N] = -1; 276 276 if (N >= Nlensing) { 277 277 fprintf (stderr, "WARNING: N out of bounds (2)\n"); … … 284 284 N++; 285 285 } 286 return (next_lens );286 return (next_lensing); 287 287 } 288 288 … … 297 297 298 298 off_t i, m, k, Nm, averef; 299 off_t *next_lens ;300 301 ALLOCATE (next_lens , off_t, Nlensing);299 off_t *next_lensing; 300 301 ALLOCATE (next_lensing, off_t, Nlensing); 302 302 303 303 /* reset the Nm, offset values for average */ … … 310 310 averef = lensing[Nm].averef; 311 311 m = average[averef].lensingOffset; 312 next_lens [Nm] = -1;312 next_lensing[Nm] = -1; 313 313 314 314 if (m == -1) { /* no links yet for source */ … … 318 318 } 319 319 320 for (k = 0; next_lens [m] != -1; k++) {321 m = next_lens [m];320 for (k = 0; next_lensing[m] != -1; k++) { 321 m = next_lensing[m]; 322 322 if (m >= Nlensing) { 323 323 fprintf (stderr, "WARNING: m out of bounds (1)\n"); … … 326 326 327 327 average[averef].Nlensing = k + 2; 328 next_lens [m] = Nm;328 next_lensing[m] = Nm; 329 329 if (m >= Nlensing) { 330 330 fprintf (stderr, "WARNING: m out of bounds (2)\n"); 331 331 } 332 332 } 333 return (next_lens );333 return (next_lensing); 334 334 } 335 335 336 336 /* average[].lensingOffset, average[].Nlensing are valid within an addstar run */ 337 int add_lens _link (Average *average, off_t *next_lens, off_t Nlensing, off_t NLENSING) {337 int add_lensing_link (Average *average, off_t *next_lensing, off_t Nlensing, off_t NLENSING) { 338 338 339 339 off_t k, m; 340 340 341 /* if we have trouble, check validity of next_lens [m] : m < Nlensing */341 /* if we have trouble, check validity of next_lensing[m] : m < Nlensing */ 342 342 m = average[0].lensingOffset; 343 343 344 344 for (k = 0; k < average[0].Nlensing - 1; k++) { 345 m = next_lens [m];345 m = next_lensing[m]; 346 346 if (m >= NLENSING) { 347 347 fprintf (stderr, "WARNING: m out of bounds (3)\n"); … … 350 350 351 351 /* set up references */ 352 next_lens [Nlensing] = -1;352 next_lensing[Nlensing] = -1; 353 353 if (Nlensing >= NLENSING) { 354 354 fprintf (stderr, "WARNING: Nlensing out of bounds (1)\n"); … … 359 359 average[0].lensingOffset = Nlensing; 360 360 } else { 361 next_lens [m] = Nlensing;361 next_lensing[m] = Nlensing; 362 362 if (m >= NLENSING) { 363 363 fprintf (stderr, "WARNING: m out of bounds (4)\n"); … … 368 368 } 369 369 370 Lensing *sort_lensing (Average *average, off_t Naverage, Lensing *lensing, off_t Nlensing, off_t *next_lens ) {370 Lensing *sort_lensing (Average *average, off_t Naverage, Lensing *lensing, off_t Nlensing, off_t *next_lensing) { 371 371 372 372 off_t i, k, n, np, N; … … 392 392 tmplensing[N].averef = i; 393 393 np = n; 394 n = next_lens [n];394 n = next_lensing[n]; 395 395 } 396 396 } 397 397 free (lensing); 398 398 return (tmplensing); 399 } 400 401 /*** Lensobj ****************************************************************************************/ 402 403 /* build the initial links assuming the table is sorted, 404 not partial, and has a correct set of average[].lensobjOffset,Nlensobj values */ 405 off_t *init_lensobj_links (Average *average, off_t Naverage, Lensobj *lensobj, off_t Nlensobj) { 406 407 off_t i, j, N; 408 off_t *next_lensobj; 409 410 if (!lensobj) return NULL; 411 if (SKIP_LENSOBJ) return NULL; 412 413 N = 0; 414 415 ALLOCATE (next_lensobj, off_t, Nlensobj); 416 for (i = 0; i < Naverage; i++) { 417 if (!average[i].Nlensobj) continue; 418 // off_t m = average[i].lensobjOffset; 419 // myAssert (lensobj[m].averef == i, "not sorted"); 420 for (j = 0; j < average[i].Nlensobj - 1; j++, N++) { 421 // myAssert (lensobj[m+j+1].averef == i, "not sorted"); 422 next_lensobj[N] = N + 1; 423 if (N >= Nlensobj) { 424 fprintf (stderr, "WARNING: N out of bounds (1)\n"); 425 } 426 } 427 next_lensobj[N] = -1; 428 if (N >= Nlensobj) { 429 fprintf (stderr, "WARNING: N out of bounds (2)\n"); 430 } 431 432 if (N >= Nlensobj) { 433 fprintf (stderr, "overflow in init_lensobj_links\n"); 434 abort (); 435 } 436 N++; 437 } 438 return (next_lensobj); 439 } 440 441 /* construct lensobj links which are valid FOR THIS LOAD 442 * - if we have a full load, we will get links which can 443 * be used by other programs (eg, relphot, etc) 444 * - if we have a partial load, the links are only valid 445 * for that partial load 446 */ 447 448 off_t *build_lensobj_links (Average *average, off_t Naverage, Lensobj *lensobj, off_t Nlensobj) { 449 450 fprintf (stderr, "input is not sorted but contains lensobj -- trouble\n"); 451 exit (2); 452 453 # if (0) 454 455 off_t i, m, k, Nm, averef; 456 off_t *next_lensobj; 457 458 ALLOCATE (next_lensobj, off_t, Nlensobj); 459 460 /* reset the Nm, offset values for average */ 461 for (i = 0; i < Naverage; i++) { 462 average[i].lensobjOffset = -1; 463 average[i].Nlensobj = 0; 464 } 465 466 for (Nm = 0; Nm < Nlensobj; Nm++) { 467 averef = lensobj[Nm].averef; 468 m = average[averef].lensobjOffset; 469 next_lensobj[Nm] = -1; 470 471 if (m == -1) { /* no links yet for source */ 472 average[averef].lensobjOffset = Nm; 473 average[averef].Nlensobj = 1; 474 continue; 475 } 476 477 for (k = 0; next_lensobj[m] != -1; k++) { 478 m = next_lensobj[m]; 479 if (m >= Nlensobj) { 480 fprintf (stderr, "WARNING: m out of bounds (1)\n"); 481 } 482 } 483 484 average[averef].Nlensobj = k + 2; 485 next_lensobj[m] = Nm; 486 if (m >= Nlensobj) { 487 fprintf (stderr, "WARNING: m out of bounds (2)\n"); 488 } 489 } 490 return (next_lensobj); 491 # endif 492 } 493 494 /* average[].lensobjOffset, average[].Nlensobj are valid within an addstar run */ 495 int add_lensobj_link (Average *average, off_t *next_lensobj, off_t Nlensobj, off_t NLENSOBJ) { 496 497 off_t k, m; 498 499 /* if we have trouble, check validity of next_lensobj[m] : m < Nlensobj */ 500 m = average[0].lensobjOffset; 501 502 for (k = 0; k < average[0].Nlensobj - 1; k++) { 503 m = next_lensobj[m]; 504 if (m >= NLENSOBJ) { 505 fprintf (stderr, "WARNING: m out of bounds (3)\n"); 506 } 507 } 508 509 /* set up references */ 510 next_lensobj[Nlensobj] = -1; 511 if (Nlensobj >= NLENSOBJ) { 512 fprintf (stderr, "WARNING: Nlensobj out of bounds (1)\n"); 513 } 514 515 // if Nlensobj is 0, m may have been mis-set; add to the end 516 if ((average[0].Nlensobj == 0) || (m == -1)) { 517 average[0].lensobjOffset = Nlensobj; 518 } else { 519 next_lensobj[m] = Nlensobj; 520 if (m >= NLENSOBJ) { 521 fprintf (stderr, "WARNING: m out of bounds (4)\n"); 522 } 523 } 524 525 return (TRUE); 526 } 527 528 Lensobj *sort_lensobj (Average *average, off_t Naverage, Lensobj *lensobj, off_t Nlensobj, off_t *next_lensobj) { 529 530 off_t i, k, n, np, N; 531 Lensobj *tmplensobj; 532 533 /* fix order of Lensobj (memory intensive, but fast) */ 534 np = -1; 535 N = 0; 536 ALLOCATE (tmplensobj, Lensobj, Nlensobj); 537 for (i = 0; i < Naverage; i++) { 538 if (!average[i].Nlensobj) continue; 539 n = average[i].lensobjOffset; 540 average[i].lensobjOffset = N; 541 int myObjID = average[i].objID; 542 for (k = 0; k < average[i].Nlensobj; k++, N++) { 543 if (n == -1) { 544 fprintf (stderr, "entry after %d has a problem\n", (int) np); 545 abort(); 546 } 547 tmplensobj[N] = lensobj[n]; 548 // myAssert (lensobj[n].averef == i, "error in averef"); 549 myAssert ((lensobj[n].objID == myObjID) || (lensobj[n].objID == -1), "error in objID?"); 550 // tmplensobj[N].averef = i; 551 np = n; 552 n = next_lensobj[n]; 553 } 554 } 555 free (lensobj); 556 return (tmplensobj); 399 557 } 400 558 … … 406 564 407 565 off_t i, j, N; 408 off_t *next_star ;566 off_t *next_starpar; 409 567 410 568 if (!starpar) return NULL; … … 415 573 // NOTE that is we choose DVO_SKIP_STARPAR, catalog.starpar is NULL. 416 574 // this code will let merge_catalogs_old.c do nothing for starpar 417 ALLOCATE (next_star , off_t, Nstarpar);418 if (!starpar) return next_star ;575 ALLOCATE (next_starpar, off_t, Nstarpar); 576 if (!starpar) return next_starpar; 419 577 420 578 for (i = 0; i < Naverage; i++) { … … 424 582 for (j = 0; j < average[i].Nstarpar - 1; j++, N++) { 425 583 myAssert (starpar[m+j+1].averef == i, "not sorted"); 426 next_star [N] = N + 1;584 next_starpar[N] = N + 1; 427 585 if (N >= Nstarpar) { 428 586 fprintf (stderr, "WARNING: N out of bounds (1)\n"); 429 587 } 430 588 } 431 next_star [N] = -1;589 next_starpar[N] = -1; 432 590 if (N >= Nstarpar) { 433 591 fprintf (stderr, "WARNING: N out of bounds (2)\n"); … … 440 598 N++; 441 599 } 442 return (next_star );600 return (next_starpar); 443 601 } 444 602 … … 453 611 454 612 off_t i, m, k, Nm, averef; 455 off_t *next_star ;456 457 ALLOCATE (next_star , off_t, Nstarpar);458 if (!starpar) return next_star ;613 off_t *next_starpar; 614 615 ALLOCATE (next_starpar, off_t, Nstarpar); 616 if (!starpar) return next_starpar; 459 617 460 618 /* reset the Nm, offset values for average */ … … 467 625 averef = starpar[Nm].averef; 468 626 m = average[averef].starparOffset; 469 next_star [Nm] = -1;627 next_starpar[Nm] = -1; 470 628 471 629 if (m == -1) { /* no links yet for source */ … … 475 633 } 476 634 477 for (k = 0; next_star [m] != -1; k++) {478 m = next_star [m];635 for (k = 0; next_starpar[m] != -1; k++) { 636 m = next_starpar[m]; 479 637 if (m >= Nstarpar) { 480 638 fprintf (stderr, "WARNING: m out of bounds (1)\n"); … … 483 641 484 642 average[averef].Nstarpar = k + 2; 485 next_star [m] = Nm;643 next_starpar[m] = Nm; 486 644 if (m >= Nstarpar) { 487 645 fprintf (stderr, "WARNING: m out of bounds (2)\n"); 488 646 } 489 647 } 490 return (next_star );648 return (next_starpar); 491 649 } 492 650 493 651 /* average[].starparOffset, average[].Nstarpar are valid within an addstar run */ 494 int add_star _link (Average *average, off_t *next_star, off_t Nstarpar, off_t NSTARPAR) {652 int add_starpar_link (Average *average, off_t *next_starpar, off_t Nstarpar, off_t NSTARPAR) { 495 653 496 654 off_t k, m; 497 655 498 /* if we have trouble, check validity of next_star [m] : m < Nstarpar */656 /* if we have trouble, check validity of next_starpar[m] : m < Nstarpar */ 499 657 m = average[0].starparOffset; 500 658 501 659 for (k = 0; k < average[0].Nstarpar - 1; k++) { 502 m = next_star [m];660 m = next_starpar[m]; 503 661 if (m >= NSTARPAR) { 504 662 fprintf (stderr, "WARNING: m out of bounds (3)\n"); … … 507 665 508 666 /* set up references */ 509 next_star [Nstarpar] = -1;667 next_starpar[Nstarpar] = -1; 510 668 if (Nstarpar >= NSTARPAR) { 511 669 fprintf (stderr, "WARNING: Nstarpar out of bounds (1)\n"); … … 516 674 average[0].starparOffset = Nstarpar; 517 675 } else { 518 next_star [m] = Nstarpar;676 next_starpar[m] = Nstarpar; 519 677 if (m >= NSTARPAR) { 520 678 fprintf (stderr, "WARNING: m out of bounds (4)\n"); … … 525 683 } 526 684 527 StarPar *sort_starpar (Average *average, off_t Naverage, StarPar *starpar, off_t Nstarpar, off_t *next_star ) {685 StarPar *sort_starpar (Average *average, off_t Naverage, StarPar *starpar, off_t Nstarpar, off_t *next_starpar) { 528 686 529 687 off_t i, k, n, np, N; … … 552 710 tmpstarpar[N].averef = i; 553 711 np = n; 554 n = next_star [n];712 n = next_starpar[n]; 555 713 } 556 714 } … … 566 724 567 725 off_t i, j, N; 568 off_t *next_galp ;726 off_t *next_galphot; 569 727 570 728 if (galphot) return NULL; … … 573 731 N = 0; 574 732 575 ALLOCATE (next_galp , off_t, Ngalphot);733 ALLOCATE (next_galphot, off_t, Ngalphot); 576 734 for (i = 0; i < Naverage; i++) { 577 735 if (!average[i].Ngalphot) continue; … … 580 738 for (j = 0; j < average[i].Ngalphot - 1; j++, N++) { 581 739 myAssert (galphot[m+j+1].averef == i, "not sorted"); 582 next_galp [N] = N + 1;740 next_galphot[N] = N + 1; 583 741 if (N >= Ngalphot) { 584 742 fprintf (stderr, "WARNING: N out of bounds (1)\n"); 585 743 } 586 744 } 587 next_galp [N] = -1;745 next_galphot[N] = -1; 588 746 if (N >= Ngalphot) { 589 747 fprintf (stderr, "WARNING: N out of bounds (2)\n"); … … 596 754 N++; 597 755 } 598 return (next_galp );756 return (next_galphot); 599 757 } 600 758 … … 609 767 610 768 off_t i, m, k, Nm, averef; 611 off_t *next_galp ;612 613 ALLOCATE (next_galp , off_t, Ngalphot);769 off_t *next_galphot; 770 771 ALLOCATE (next_galphot, off_t, Ngalphot); 614 772 615 773 /* reset the Nm, offset values for average */ … … 622 780 averef = galphot[Nm].averef; 623 781 m = average[averef].galphotOffset; 624 next_galp [Nm] = -1;782 next_galphot[Nm] = -1; 625 783 626 784 if (m == -1) { /* no links yet for source */ … … 630 788 } 631 789 632 for (k = 0; next_galp [m] != -1; k++) {633 m = next_galp [m];790 for (k = 0; next_galphot[m] != -1; k++) { 791 m = next_galphot[m]; 634 792 if (m >= Ngalphot) { 635 793 fprintf (stderr, "WARNING: m out of bounds (1)\n"); … … 638 796 639 797 average[averef].Ngalphot = k + 2; 640 next_galp [m] = Nm;798 next_galphot[m] = Nm; 641 799 if (m >= Ngalphot) { 642 800 fprintf (stderr, "WARNING: m out of bounds (2)\n"); 643 801 } 644 802 } 645 return (next_galp );803 return (next_galphot); 646 804 } 647 805 648 806 /* average[].galphotOffset, average[].Ngalphot are valid within an addstar run */ 649 int add_galp _link (Average *average, off_t *next_galp, off_t Ngalphot, off_t NGALPHOT) {807 int add_galphot_link (Average *average, off_t *next_galphot, off_t Ngalphot, off_t NGALPHOT) { 650 808 651 809 off_t k, m; 652 810 653 /* if we have trouble, check validity of next_galp [m] : m < Ngalphot */811 /* if we have trouble, check validity of next_galphot[m] : m < Ngalphot */ 654 812 m = average[0].galphotOffset; 655 813 656 814 for (k = 0; k < average[0].Ngalphot - 1; k++) { 657 m = next_galp [m];815 m = next_galphot[m]; 658 816 if (m >= NGALPHOT) { 659 817 fprintf (stderr, "WARNING: m out of bounds (3)\n"); … … 662 820 663 821 /* set up references */ 664 next_galp [Ngalphot] = -1;822 next_galphot[Ngalphot] = -1; 665 823 if (Ngalphot >= NGALPHOT) { 666 824 fprintf (stderr, "WARNING: Ngalphot out of bounds (1)\n"); … … 671 829 average[0].galphotOffset = Ngalphot; 672 830 } else { 673 next_galp [m] = Ngalphot;831 next_galphot[m] = Ngalphot; 674 832 if (m >= NGALPHOT) { 675 833 fprintf (stderr, "WARNING: m out of bounds (4)\n"); … … 680 838 } 681 839 682 GalPhot *sort_galphot (Average *average, off_t Naverage, GalPhot *galphot, off_t Ngalphot, off_t *next_galp ) {840 GalPhot *sort_galphot (Average *average, off_t Naverage, GalPhot *galphot, off_t Ngalphot, off_t *next_galphot) { 683 841 684 842 off_t i, k, n, np, N; … … 704 862 tmpgalphot[N].averef = i; 705 863 np = n; 706 n = next_galp [n];864 n = next_galphot[n]; 707 865 } 708 866 } -
branches/czw_branch/20160809/Ohana/src/dvomerge/src/dvomergeUpdate_catalogs.c
r39536 r39727 336 336 if (SKIP_MEASURE) { strextend (&command, "-skip-measure"); } 337 337 if (SKIP_LENSING) { strextend (&command, "-skip-lensing"); } 338 if (SKIP_LENSOBJ) { strextend (&command, "-skip-lensobj"); } 338 339 if (SKIP_GALPHOT) { strextend (&command, "-skip-galphot"); } 339 340 if (SKIP_STARPAR) { strextend (&command, "-skip-starpar"); } -
branches/czw_branch/20160809/Ohana/src/dvomerge/src/merge_catalogs_old.c
r39342 r39727 14 14 double *X1, *Y1, *X2, *Y2; 15 15 double dX, dY, dR; 16 off_t *N1, *N2, *next_meas , *next_lens, *next_star, *next_galp;17 off_t Nave, NAVE, Nmeas , NMEAS, Nmatch, Nlens, NLENS, Nstar, NSTAR, Ngalp, NGALP;16 off_t *N1, *N2, *next_measure, *next_lensing, *next_lensobj, *next_starpar, *next_galphot; 17 off_t Nave, NAVE, Nmeasure, NMEASURE, Nmatch, Nlensing, NLENSING, Nlensobj, NLENSOBJ, Nstarpar, NSTARPAR, Ngalphot, NGALPHOT; 18 18 int NsecfiltIn; 19 19 int NsecfiltOut; … … 51 51 /* internal counters */ 52 52 Nmatch = 0; 53 NMEAS = Nmeas = output[0].Nmeasure; 54 NLENS = Nlens = output[0].Nlensing; 55 NSTAR = Nstar = output[0].Nstarpar; 56 NGALP = Ngalp = output[0].Ngalphot; 53 NMEASURE = Nmeasure = output[0].Nmeasure; 54 NLENSING = Nlensing = output[0].Nlensing; 55 NLENSOBJ = Nlensobj = output[0].Nlensobj; 56 NSTARPAR = Nstarpar = output[0].Nstarpar; 57 NGALPHOT = Ngalphot = output[0].Ngalphot; 57 58 58 59 // current max obj ID for this catalog … … 116 117 // this version is only valid if we have done a full catalog load, and if the catalog 117 118 // is sorted while processed 118 next_meas = init_measure_links (output[0].average, Nave, output[0].measure, Nmeas); 119 next_lens = init_lensing_links (output[0].average, Nave, output[0].lensing, Nlens); 120 next_star = init_starpar_links (output[0].average, Nave, output[0].starpar, Nstar); 121 next_galp = init_galphot_links (output[0].average, Nave, output[0].galphot, Ngalp); 119 next_measure = init_measure_links (output[0].average, Nave, output[0].measure, Nmeasure); 120 next_lensing = init_lensing_links (output[0].average, Nave, output[0].lensing, Nlensing); 121 next_lensobj = init_lensobj_links (output[0].average, Nave, output[0].lensobj, Nlensobj); 122 next_starpar = init_starpar_links (output[0].average, Nave, output[0].starpar, Nstarpar); 123 next_galphot = init_galphot_links (output[0].average, Nave, output[0].galphot, Ngalphot); 122 124 } else { 123 next_meas = build_measure_links (output[0].average, Nave, output[0].measure, Nmeas); 124 next_lens = build_lensing_links (output[0].average, Nave, output[0].lensing, Nlens); 125 next_star = build_starpar_links (output[0].average, Nave, output[0].starpar, Nstar); 126 next_galp = build_galphot_links (output[0].average, Nave, output[0].galphot, Ngalp); 125 next_measure = build_measure_links (output[0].average, Nave, output[0].measure, Nmeasure); 126 next_lensing = build_lensing_links (output[0].average, Nave, output[0].lensing, Nlensing); 127 next_lensobj = build_lensobj_links (output[0].average, Nave, output[0].lensobj, Nlensobj); 128 next_starpar = build_starpar_links (output[0].average, Nave, output[0].starpar, Nstarpar); 129 next_galphot = build_galphot_links (output[0].average, Nave, output[0].galphot, Ngalphot); 127 130 } 128 131 … … 183 186 184 187 /* make sure there is space for next Nmeasure entries */ 185 if (Nmeas + input[0].average[N].Nmeasure >= NMEAS) { 186 NMEAS = Nmeas + input[0].average[N].Nmeasure + 1000; 187 REALLOCATE (next_meas, off_t, NMEAS); 188 REALLOCATE (output[0].measure, Measure, NMEAS); 189 } 190 if (Nlens + input[0].average[N].Nlensing >= NLENS) { 191 NLENS = Nlens + input[0].average[N].Nlensing + 1000; 192 REALLOCATE (next_lens, off_t, NLENS); 193 REALLOCATE (output[0].lensing, Lensing, NLENS); 194 } 195 if (Nstar + input[0].average[N].Nstarpar >= NSTAR) { 196 NSTAR = Nstar + input[0].average[N].Nstarpar + 1000; 197 REALLOCATE (next_star, off_t, NSTAR); 198 REALLOCATE (output[0].starpar, StarPar, NSTAR); 199 } 200 if (Ngalp + input[0].average[N].Ngalphot >= NGALP) { 201 NGALP = Ngalp + input[0].average[N].Ngalphot + 1000; 202 REALLOCATE (next_galp, off_t, NGALP); 203 REALLOCATE (output[0].galphot, GalPhot, NGALP); 188 if (Nmeasure + input[0].average[N].Nmeasure >= NMEASURE) { 189 NMEASURE = Nmeasure + input[0].average[N].Nmeasure + 1000; 190 REALLOCATE (next_measure, off_t, NMEASURE); 191 REALLOCATE (output[0].measure, Measure, NMEASURE); 192 } 193 if (Nlensing + input[0].average[N].Nlensing >= NLENSING) { 194 NLENSING = Nlensing + input[0].average[N].Nlensing + 1000; 195 REALLOCATE (next_lensing, off_t, NLENSING); 196 REALLOCATE (output[0].lensing, Lensing, NLENSING); 197 } 198 if (Nlensobj + input[0].average[N].Nlensobj >= NLENSOBJ) { 199 NLENSOBJ = Nlensobj + input[0].average[N].Nlensobj + 1000; 200 REALLOCATE (next_lensobj, off_t, NLENSOBJ); 201 REALLOCATE (output[0].lensobj, Lensobj, NLENSOBJ); 202 } 203 if (Nstarpar + input[0].average[N].Nstarpar >= NSTARPAR) { 204 NSTARPAR = Nstarpar + input[0].average[N].Nstarpar + 1000; 205 REALLOCATE (next_starpar, off_t, NSTARPAR); 206 REALLOCATE (output[0].starpar, StarPar, NSTARPAR); 207 } 208 if (Ngalphot + input[0].average[N].Ngalphot >= NGALPHOT) { 209 NGALPHOT = Ngalphot + input[0].average[N].Ngalphot + 1000; 210 REALLOCATE (next_galphot, off_t, NGALPHOT); 211 REALLOCATE (output[0].galphot, GalPhot, NGALPHOT); 204 212 } 205 213 … … 212 220 if (REPLACE_TYCHO) { 213 221 int Minp = input[0].average[N].measureOffset; 214 Nreplace = replace_tycho (&output[0].average[n], output[0].measure, next_meas , &input[0].average[N], &input[0].measure[Minp]);222 Nreplace = replace_tycho (&output[0].average[n], output[0].measure, next_measure, &input[0].average[N], &input[0].measure[Minp]); 215 223 if (Nreplace == 6) { 216 output[0].found_t[n] = Nmeas ;224 output[0].found_t[n] = Nmeasure; 217 225 i++; 218 226 continue; … … 227 235 // index to first measure for this object 228 236 // XXX this does not support lensing, starpar, or galphot measurements 229 if (replace_match (&output[0].average[n], output[0].measure, next_meas , &input[0].average[N], &input[0].measure[offset])) {237 if (replace_match (&output[0].average[n], output[0].measure, next_measure, &input[0].average[N], &input[0].measure[offset])) { 230 238 continue; 231 239 } 232 240 } 233 241 /* add to end of measurement list */ 234 add_meas _link (&output[0].average[n], next_meas, Nmeas, NMEAS);242 add_measure_link (&output[0].average[n], next_measure, Nmeasure, NMEASURE); 235 243 236 244 // set the new measurements 237 output[0].measure[Nmeas ] = input[0].measure[offset];245 output[0].measure[Nmeasure] = input[0].measure[offset]; 238 246 239 247 // old code: find R,D using average_in[0], the get offset relative to average_out[0]. no longer … … 241 249 // Rin = input[0].average[N].R - input[0].measure[offset].dR / 3600.0; 242 250 // Din = input[0].average[N].D - input[0].measure[offset].dD / 3600.0; 243 // output[0].measure[Nmeas ].dR = 3600.0*(output[0].average[n].R - Rin);244 // output[0].measure[Nmeas ].dD = 3600.0*(output[0].average[n].D - Din);245 246 output[0].measure[Nmeas ].dbFlags = 0; // XXX why reset these?247 output[0].measure[Nmeas ].averef = n;248 output[0].measure[Nmeas ].objID = output[0].average[n].objID;249 output[0].measure[Nmeas ].catID = output[0].catID;250 251 assert (output[0].measure[Nmeas ].averef < Nave);252 253 // 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);254 255 float dRoff = dvoOffsetR(&output[0].measure[Nmeas ], &output[0].average[n]);251 // output[0].measure[Nmeasure].dR = 3600.0*(output[0].average[n].R - Rin); 252 // output[0].measure[Nmeasure].dD = 3600.0*(output[0].average[n].D - Din); 253 254 output[0].measure[Nmeasure].dbFlags = 0; // XXX why reset these? 255 output[0].measure[Nmeasure].averef = n; 256 output[0].measure[Nmeasure].objID = output[0].average[n].objID; 257 output[0].measure[Nmeasure].catID = output[0].catID; 258 259 assert (output[0].measure[Nmeasure].averef < Nave); 260 261 // fprintf (stderr, "Nave : "OFF_T_FMT", Nmeasure : "OFF_T_FMT", dR: %f, dD: %f, catID: %d\n", n, Nmeasure, output[0].measure[Nmeasure].dR, output[0].measure[Nmeasure].dD, output[0].measure[i].catID); 262 263 float dRoff = dvoOffsetR(&output[0].measure[Nmeasure], &output[0].average[n]); 256 264 257 265 // rationalize R 258 266 if (dRoff > +180.0*3600.0) { 259 267 // average on high end of boundary, move star up 260 output[0].measure[Nmeas ].R += 360.0;268 output[0].measure[Nmeasure].R += 360.0; 261 269 dRoff -= 360.0*3600.0; 262 270 } 263 271 if (dRoff < -180.0*3600.0) { 264 272 // average on low end of boundary, move star down 265 output[0].measure[Nmeas ].R -= 360.0;273 output[0].measure[Nmeasure].R -= 360.0; 266 274 dRoff += 360.0*3600.0; 267 275 } … … 272 280 fprintf (stderr, "error: %10.6f,%10.6f vs %10.6f,%10.6f (%f,%f vs %f,%f)\n", 273 281 output[0].average[n].R, output[0].average[n].D, 274 output[0].measure[Nmeas ].R, output[0].measure[Nmeas].D,282 output[0].measure[Nmeasure].R, output[0].measure[Nmeasure].D, 275 283 X1[i], X2[Jmin], Y1[i], Y2[Jmin]); 276 284 // XXX abort on this? -- this is a bad failure... … … 278 286 } 279 287 output[0].average[n].Nmeasure ++; 280 Nmeas ++;288 Nmeasure ++; 281 289 } 282 290 } … … 286 294 for (Nin = 0; Nin < input[0].average[N].Nlensing; Nin++) { 287 295 /* add to end of lensing list */ 288 add_lens _link (&output[0].average[n], next_lens, Nlens, NLENS);296 add_lensing_link (&output[0].average[n], next_lensing, Nlensing, NLENSING); 289 297 290 298 // set the new lensing 291 299 off_t lensoff = input[0].average[N].lensingOffset + Nin; 292 output[0].lensing[Nlens ] = input[0].lensing[lensoff];293 294 output[0].lensing[Nlens ].averef = n;295 output[0].lensing[Nlens ].objID = output[0].average[n].objID;296 output[0].lensing[Nlens ].catID = output[0].catID;300 output[0].lensing[Nlensing] = input[0].lensing[lensoff]; 301 302 output[0].lensing[Nlensing].averef = n; 303 output[0].lensing[Nlensing].objID = output[0].average[n].objID; 304 output[0].lensing[Nlensing].catID = output[0].catID; 297 305 output[0].average[n].Nlensing ++; 298 Nlens ++; 306 Nlensing ++; 307 } 308 } 309 310 // if lensobj measurements exist, add them too 311 if (output[0].lensobj && !SKIP_LENSOBJ) { 312 for (Nin = 0; Nin < input[0].average[N].Nlensobj; Nin++) { 313 /* add to end of lensobj list */ 314 add_lensobj_link (&output[0].average[n], next_lensobj, Nlensobj, NLENSOBJ); 315 316 // set the new lensobj 317 off_t lensoff = input[0].average[N].lensobjOffset + Nin; 318 output[0].lensobj[Nlensobj] = input[0].lensobj[lensoff]; 319 320 // output[0].lensobj[Nlensobj].averef = n; 321 output[0].lensobj[Nlensobj].objID = output[0].average[n].objID; 322 output[0].lensobj[Nlensobj].catID = output[0].catID; 323 output[0].average[n].Nlensobj ++; 324 Nlensobj ++; 299 325 } 300 326 } … … 304 330 for (Nin = 0; Nin < input[0].average[N].Nstarpar; Nin++) { 305 331 /* add to end of lensing list */ 306 add_star _link (&output[0].average[n], next_star, Nstar, NSTAR);332 add_starpar_link (&output[0].average[n], next_starpar, Nstarpar, NSTARPAR); 307 333 308 334 // set the new starpar 309 335 off_t staroff = input[0].average[N].starparOffset + Nin; 310 output[0].starpar[Nstar ] = input[0].starpar[staroff];311 312 output[0].starpar[Nstar ].averef = n;313 output[0].starpar[Nstar ].objID = output[0].average[n].objID;314 output[0].starpar[Nstar ].catID = output[0].catID;336 output[0].starpar[Nstarpar] = input[0].starpar[staroff]; 337 338 output[0].starpar[Nstarpar].averef = n; 339 output[0].starpar[Nstarpar].objID = output[0].average[n].objID; 340 output[0].starpar[Nstarpar].catID = output[0].catID; 315 341 output[0].average[n].Nstarpar ++; 316 Nstar ++;342 Nstarpar ++; 317 343 } 318 344 } … … 322 348 for (Nin = 0; Nin < input[0].average[N].Ngalphot; Nin++) { 323 349 /* add to end of galphot list */ 324 add_galp _link (&output[0].average[n], next_galp, Ngalp, NGALP);350 add_galphot_link (&output[0].average[n], next_galphot, Ngalphot, NGALPHOT); 325 351 326 352 // set the new galphot 327 353 off_t galpoff = input[0].average[N].galphotOffset + Nin; 328 output[0].galphot[Ngalp ] = input[0].galphot[galpoff];329 330 output[0].galphot[Ngalp ].averef = n;331 output[0].galphot[Ngalp ].objID = output[0].average[n].objID;332 output[0].galphot[Ngalp ].catID = output[0].catID;354 output[0].galphot[Ngalphot] = input[0].galphot[galpoff]; 355 356 output[0].galphot[Ngalphot].averef = n; 357 output[0].galphot[Ngalphot].objID = output[0].average[n].objID; 358 output[0].galphot[Ngalphot].catID = output[0].catID; 333 359 output[0].average[n].Ngalphot ++; 334 Ngalp ++;360 Ngalphot ++; 335 361 } 336 362 } … … 373 399 /* Nm is updated, but not written out in -update mode (for existing entries) 374 400 Nm is recalculated in build_meas_links if loaded table is not sorted */ 375 output[0].found_t[n] = Nmeas ;401 output[0].found_t[n] = Nmeasure; 376 402 i++; 377 403 } 378 // MARKTIME("find matched stars: %f sec for "OFF_T_FMT","OFF_T_FMT" stars ("OFF_T_FMT" meas)\n", dtime, Nstars, Nave, Nmeas );404 // MARKTIME("find matched stars: %f sec for "OFF_T_FMT","OFF_T_FMT" stars ("OFF_T_FMT" meas)\n", dtime, Nstars, Nave, Nmeasure); 379 405 380 406 /** incorporate unmatched image stars, if this star is in field of this catalog **/ … … 384 410 385 411 /* make sure there is space for next entry */ 386 if (Nmeas + input[0].average[N].Nmeasure >= NMEAS) { 387 NMEAS = Nmeas + input[0].average[N].Nmeasure + 1000; 388 REALLOCATE (next_meas, off_t, NMEAS); 389 REALLOCATE (output[0].measure, Measure, NMEAS); 390 } 391 if (Nlens + input[0].average[N].Nlensing >= NLENS) { 392 NLENS = Nlens + input[0].average[N].Nlensing + 1000; 393 REALLOCATE (next_lens, off_t, NLENS); 394 REALLOCATE (output[0].lensing, Lensing, NLENS); 395 } 396 if (Nstar + input[0].average[N].Nstarpar >= NSTAR) { 397 NSTAR = Nstar + input[0].average[N].Nstarpar + 1000; 398 REALLOCATE (next_star, off_t, NSTAR); 399 REALLOCATE (output[0].starpar, StarPar, NSTAR); 400 } 401 if (Ngalp + input[0].average[N].Ngalphot >= NGALP) { 402 NGALP = Ngalp + input[0].average[N].Ngalphot + 1000; 403 REALLOCATE (next_galp, off_t, NGALP); 404 REALLOCATE (output[0].galphot, GalPhot, NGALP); 412 if (Nmeasure + input[0].average[N].Nmeasure >= NMEASURE) { 413 NMEASURE = Nmeasure + input[0].average[N].Nmeasure + 1000; 414 REALLOCATE (next_measure, off_t, NMEASURE); 415 REALLOCATE (output[0].measure, Measure, NMEASURE); 416 } 417 if (Nlensing + input[0].average[N].Nlensing >= NLENSING) { 418 NLENSING = Nlensing + input[0].average[N].Nlensing + 1000; 419 REALLOCATE (next_lensing, off_t, NLENSING); 420 REALLOCATE (output[0].lensing, Lensing, NLENSING); 421 } 422 if (Nlensobj + input[0].average[N].Nlensobj >= NLENSOBJ) { 423 NLENSOBJ = Nlensobj + input[0].average[N].Nlensobj + 1000; 424 REALLOCATE (next_lensobj, off_t, NLENSOBJ); 425 REALLOCATE (output[0].lensobj, Lensobj, NLENSOBJ); 426 } 427 if (Nstarpar + input[0].average[N].Nstarpar >= NSTARPAR) { 428 NSTARPAR = Nstarpar + input[0].average[N].Nstarpar + 1000; 429 REALLOCATE (next_starpar, off_t, NSTARPAR); 430 REALLOCATE (output[0].starpar, StarPar, NSTARPAR); 431 } 432 if (Ngalphot + input[0].average[N].Ngalphot >= NGALPHOT) { 433 NGALPHOT = Ngalphot + input[0].average[N].Ngalphot + 1000; 434 REALLOCATE (next_galphot, off_t, NGALPHOT); 435 REALLOCATE (output[0].galphot, GalPhot, NGALPHOT); 405 436 } 406 437 if (Nave >= NAVE) { … … 465 496 /** add measurements for this input average object **/ 466 497 if (output[0].measure && !SKIP_MEASURE && input[0].average[N].Nmeasure) { 467 output[0].average[Nave].measureOffset = Nmeas ;498 output[0].average[Nave].measureOffset = Nmeasure; 468 499 for (Nin = 0; Nin < input[0].average[N].Nmeasure; Nin ++) { 469 500 offset = input[0].average[N].measureOffset + Nin; 470 501 471 502 // supply the measurments from this detection 472 output[0].measure[Nmeas ] = input[0].measure[offset];503 output[0].measure[Nmeasure] = input[0].measure[offset]; 473 504 474 505 // the following measure elements cannot be set until here: 475 output[0].measure[Nmeas ].dbFlags = 0;476 output[0].measure[Nmeas ].averef = Nave;477 output[0].measure[Nmeas ].objID = output[0].average[Nave].objID;478 output[0].measure[Nmeas ].catID = output[0].catID;506 output[0].measure[Nmeasure].dbFlags = 0; 507 output[0].measure[Nmeasure].averef = Nave; 508 output[0].measure[Nmeasure].objID = output[0].average[Nave].objID; 509 output[0].measure[Nmeasure].catID = output[0].catID; 479 510 480 511 // as we add measurements, update Nmeasure to match 481 512 output[0].average[Nave].Nmeasure ++; 482 513 483 /* we set next[Nmeas ] to -1 here, and update correctly below */484 next_meas [Nmeas] = -1;485 Nmeas ++;514 /* we set next[Nmeasure] to -1 here, and update correctly below */ 515 next_measure[Nmeasure] = -1; 516 Nmeasure ++; 486 517 } 487 518 int Ngroup = input[0].average[N].Nmeasure; 488 519 for (j = 0; j < Ngroup - 1; j++) { 489 next_meas [Nmeas - Ngroup + j] = Nmeas- Ngroup + j + 1;520 next_measure[Nmeasure - Ngroup + j] = Nmeasure - Ngroup + j + 1; 490 521 } 491 522 } … … 493 524 /** add lensing for this input average object **/ 494 525 if (output[0].lensing && !SKIP_LENSING && input[0].average[N].Nlensing) { 495 output[0].average[Nave].lensingOffset = Nlens ;526 output[0].average[Nave].lensingOffset = Nlensing; 496 527 for (Nin = 0; Nin < input[0].average[N].Nlensing; Nin ++) { 497 528 // supply the lensing values from this detection 498 529 off_t lensoff = input[0].average[N].lensingOffset + Nin; 499 output[0].lensing[Nlens ] = input[0].lensing[lensoff];530 output[0].lensing[Nlensing] = input[0].lensing[lensoff]; 500 531 501 532 // the following lensing elements cannot be set until here: 502 output[0].lensing[Nlens ].averef = Nave;503 output[0].lensing[Nlens ].objID = output[0].average[Nave].objID;504 output[0].lensing[Nlens ].catID = output[0].catID;533 output[0].lensing[Nlensing].averef = Nave; 534 output[0].lensing[Nlensing].objID = output[0].average[Nave].objID; 535 output[0].lensing[Nlensing].catID = output[0].catID; 505 536 506 537 // as we add lensing, update Nlensing to match 507 538 output[0].average[Nave].Nlensing ++; 508 539 509 /* we set next[Nlens ] to -1 here, and update correctly below */510 next_lens [Nlens] = -1;511 Nlens ++;540 /* we set next[Nlensing] to -1 here, and update correctly below */ 541 next_lensing[Nlensing] = -1; 542 Nlensing ++; 512 543 } 513 544 int Ngroup = input[0].average[N].Nlensing; 514 545 for (j = 0; j < Ngroup - 1; j++) { 515 next_lens[Nlens - Ngroup + j] = Nlens - Ngroup + j + 1; 546 next_lensing[Nlensing - Ngroup + j] = Nlensing - Ngroup + j + 1; 547 } 548 } 549 550 /** add lensobj for this input average object **/ 551 if (output[0].lensobj && !SKIP_LENSOBJ && input[0].average[N].Nlensobj) { 552 output[0].average[Nave].lensobjOffset = Nlensobj; 553 for (Nin = 0; Nin < input[0].average[N].Nlensobj; Nin ++) { 554 // supply the lensobj values from this detection 555 off_t lensoff = input[0].average[N].lensobjOffset + Nin; 556 output[0].lensobj[Nlensobj] = input[0].lensobj[lensoff]; 557 558 // the following lensobj elements cannot be set until here: 559 // output[0].lensobj[Nlensobj].averef = Nave; 560 output[0].lensobj[Nlensobj].objID = output[0].average[Nave].objID; 561 output[0].lensobj[Nlensobj].catID = output[0].catID; 562 563 // as we add lensobj, update Nlensobj to match 564 output[0].average[Nave].Nlensobj ++; 565 566 /* we set next[Nlensobj] to -1 here, and update correctly below */ 567 next_lensobj[Nlensobj] = -1; 568 Nlensobj ++; 569 } 570 int Ngroup = input[0].average[N].Nlensobj; 571 for (j = 0; j < Ngroup - 1; j++) { 572 next_lensobj[Nlensobj - Ngroup + j] = Nlensobj - Ngroup + j + 1; 516 573 } 517 574 } … … 519 576 /** add starpar for this input average object **/ 520 577 if (output[0].starpar && !SKIP_STARPAR && input[0].average[N].Nstarpar) { 521 output[0].average[Nave].starparOffset = Nstar ;578 output[0].average[Nave].starparOffset = Nstarpar; 522 579 for (Nin = 0; Nin < input[0].average[N].Nstarpar; Nin ++) { 523 580 // supply the starpar values from this detection 524 581 off_t staroff = input[0].average[N].starparOffset + Nin; 525 output[0].starpar[Nstar ] = input[0].starpar[staroff];582 output[0].starpar[Nstarpar] = input[0].starpar[staroff]; 526 583 527 584 // the following starpar elements cannot be set until here: 528 output[0].starpar[Nstar ].averef = Nave;529 output[0].starpar[Nstar ].objID = output[0].average[Nave].objID;530 output[0].starpar[Nstar ].catID = output[0].catID;585 output[0].starpar[Nstarpar].averef = Nave; 586 output[0].starpar[Nstarpar].objID = output[0].average[Nave].objID; 587 output[0].starpar[Nstarpar].catID = output[0].catID; 531 588 532 589 // as we add starpar, update Nstarpar to match 533 590 output[0].average[Nave].Nstarpar ++; 534 591 535 /* we set next[Nstar ] to -1 here, and update correctly below */536 next_star [Nstar] = -1;537 Nstar ++;592 /* we set next[Nstarpar] to -1 here, and update correctly below */ 593 next_starpar[Nstarpar] = -1; 594 Nstarpar ++; 538 595 } 539 596 int Ngroup = input[0].average[N].Nstarpar; 540 597 for (j = 0; j < Ngroup - 1; j++) { 541 next_star [Nstar - Ngroup + j] = Nstar - Ngroup + j + 1;598 next_starpar[Nstarpar - Ngroup + j] = Nstarpar - Ngroup + j + 1; 542 599 } 543 600 } … … 545 602 /** add galphot for this input average object **/ 546 603 if (output[0].galphot && !SKIP_GALPHOT && input[0].average[N].Ngalphot) { 547 output[0].average[Nave].galphotOffset = Ngalp ;604 output[0].average[Nave].galphotOffset = Ngalphot; 548 605 for (Nin = 0; Nin < input[0].average[N].Ngalphot; Nin ++) { 549 606 // supply the galphot values from this detection 550 607 off_t galpoff = input[0].average[N].galphotOffset + Nin; 551 output[0].galphot[Ngalp ] = input[0].galphot[galpoff];608 output[0].galphot[Ngalphot] = input[0].galphot[galpoff]; 552 609 553 610 // the following galphot elements cannot be set until here: 554 output[0].galphot[Ngalp ].averef = Nave;555 output[0].galphot[Ngalp ].objID = output[0].average[Nave].objID;556 output[0].galphot[Ngalp ].catID = output[0].catID;611 output[0].galphot[Ngalphot].averef = Nave; 612 output[0].galphot[Ngalphot].objID = output[0].average[Nave].objID; 613 output[0].galphot[Ngalphot].catID = output[0].catID; 557 614 558 615 // as we add galphot, update Ngalphot to match 559 616 output[0].average[Nave].Ngalphot ++; 560 617 561 /* we set next[Ngalp ] to -1 here, and update correctly below */562 next_galp [Ngalp] = -1;563 Ngalp ++;618 /* we set next[Ngalphot] to -1 here, and update correctly below */ 619 next_galphot[Ngalphot] = -1; 620 Ngalphot ++; 564 621 } 565 622 int Ngroup = input[0].average[N].Ngalphot; 566 623 for (j = 0; j < Ngroup - 1; j++) { 567 next_galp [Ngalp - Ngroup + j] = Ngalp- Ngroup + j + 1;624 next_galphot[Ngalphot - Ngroup + j] = Ngalphot - Ngroup + j + 1; 568 625 } 569 626 } … … 575 632 576 633 REALLOCATE (output[0].average, Average, Nave); 577 if (!SKIP_MEASURE) { REALLOCATE (output[0].measure, Measure, Nmeas); } 578 if (!SKIP_LENSING) { REALLOCATE (output[0].lensing, Lensing, Nlens); } 579 if (!SKIP_STARPAR) { REALLOCATE (output[0].starpar, StarPar, Nstar); } 580 if (!SKIP_GALPHOT) { REALLOCATE (output[0].galphot, GalPhot, Ngalp); } 634 if (!SKIP_MEASURE) { REALLOCATE (output[0].measure, Measure, Nmeasure); } 635 if (!SKIP_LENSING) { REALLOCATE (output[0].lensing, Lensing, Nlensing); } 636 if (!SKIP_LENSOBJ) { REALLOCATE (output[0].lensobj, Lensobj, Nlensobj); } 637 if (!SKIP_STARPAR) { REALLOCATE (output[0].starpar, StarPar, Nstarpar); } 638 if (!SKIP_GALPHOT) { REALLOCATE (output[0].galphot, GalPhot, Ngalphot); } 581 639 582 640 # define NOSORT 0 … … 585 643 } else { 586 644 output[0].sorted = TRUE; 587 if (!SKIP_MEASURE) { output[0].measure = sort_measure (output[0].average, Nave, output[0].measure, Nmeas, next_meas); } 588 if (!SKIP_LENSING) { output[0].lensing = sort_lensing (output[0].average, Nave, output[0].lensing, Nlens, next_lens); } 589 if (!SKIP_STARPAR) { output[0].starpar = sort_starpar (output[0].average, Nave, output[0].starpar, Nstar, next_star); } 590 if (!SKIP_GALPHOT) { output[0].galphot = sort_galphot (output[0].average, Nave, output[0].galphot, Ngalp, next_galp); } 645 if (!SKIP_MEASURE) { output[0].measure = sort_measure (output[0].average, Nave, output[0].measure, Nmeasure, next_measure); } 646 if (!SKIP_LENSING) { output[0].lensing = sort_lensing (output[0].average, Nave, output[0].lensing, Nlensing, next_lensing); } 647 if (!SKIP_LENSOBJ) { output[0].lensobj = sort_lensobj (output[0].average, Nave, output[0].lensobj, Nlensobj, next_lensobj); } 648 if (!SKIP_STARPAR) { output[0].starpar = sort_starpar (output[0].average, Nave, output[0].starpar, Nstarpar, next_starpar); } 649 if (!SKIP_GALPHOT) { output[0].galphot = sort_galphot (output[0].average, Nave, output[0].galphot, Ngalphot, next_galphot); } 591 650 } 592 651 … … 594 653 output[0].objID = objID; // new max value, save on catalog close 595 654 output[0].Naverage = Nave; 596 if (!SKIP_MEASURE) { output[0].Nmeasure = Nmeas; } 597 if (!SKIP_LENSING) { output[0].Nlensing = Nlens; } 598 if (!SKIP_STARPAR) { output[0].Nstarpar = Nstar; } 599 if (!SKIP_GALPHOT) { output[0].Ngalphot = Ngalp; } 655 if (!SKIP_MEASURE) { output[0].Nmeasure = Nmeasure; } 656 if (!SKIP_LENSING) { output[0].Nlensing = Nlensing; } 657 if (!SKIP_LENSOBJ) { output[0].Nlensobj = Nlensobj; } 658 if (!SKIP_STARPAR) { output[0].Nstarpar = Nstarpar; } 659 if (!SKIP_GALPHOT) { output[0].Ngalphot = Ngalphot; } 600 660 output[0].Nsecfilt_mem = Nave*NsecfiltOut; 601 if (VERBOSE) fprintf (stderr, "Nstars, Nave, Nmeas, Nlens, Ngalp: "OFF_T_FMT" "OFF_T_FMT" "OFF_T_FMT" "OFF_T_FMT" "OFF_T_FMT", ("OFF_T_FMT" matches)\n", Nstars, Nave, Nmeas, Nlens, Ngalp, Nmatch); 602 603 free (next_meas); 604 free (next_lens); 605 free (next_star); 606 free (next_galp); 661 if (VERBOSE) fprintf (stderr, "Nstars, Nave, Nmeasure, Nlensing, Ngalphot: "OFF_T_FMT" "OFF_T_FMT" "OFF_T_FMT" "OFF_T_FMT" "OFF_T_FMT", ("OFF_T_FMT" matches)\n", Nstars, Nave, Nmeasure, Nlensing, Ngalphot, Nmatch); 662 663 free (next_measure); 664 free (next_lensing); 665 free (next_lensobj); 666 free (next_starpar); 667 free (next_galphot); 607 668 608 669 free (X2); … … 625 686 images have boundaries which are lines in pixels coords, but curve in RA and DEC 626 687 627 output[0].found_t[Ncat] but stars[Nstar ].found688 output[0].found_t[Ncat] but stars[Nstars].found 628 689 629 690 */
Note:
See TracChangeset
for help on using the changeset viewer.
