Changeset 35109 for trunk/Ohana/src/opihi/dvo/gstar.c
- Timestamp:
- Feb 6, 2013, 3:30:44 PM (13 years ago)
- Location:
- trunk/Ohana/src/opihi
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
dvo/gstar.c (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi
- Property svn:mergeinfo changed
/branches/eam_branches/ipp-20121219/Ohana/src/opihi (added) merged: 34858,34876-34877,34886-34887,34890-34891,34895,34898,34901,34903,34935,34999,35096
- Property svn:mergeinfo changed
-
trunk/Ohana/src/opihi/dvo/gstar.c
r34844 r35109 1 1 # include "dvoshell.h" 2 3 typedef enum { 4 GSTAR_BY_SEQ, 5 GSTAR_BY_TIME, 6 GSTAR_BY_PHOTCODE, 7 } GSTAR_SORT_CODES; 2 8 3 9 typedef enum { … … 7 13 GSTAR_FILTER_NAMES, 8 14 GSTAR_SECF_FLAGS, 15 GSTAR_UCDIST, 9 16 GSTAR_AVE_AP_MAG, 10 17 GSTAR_AVE_MAG_20, … … 22 29 void printPhotcodeSequence (Average *average, SecFilt *secfilt, int entry, int type); 23 30 31 void sort_index_float (float *X, int *IDX, int N) { 32 33 # define SWAPFUNC(A,B){ float tmp; int itmp; \ 34 tmp = X[A]; X[A] = X[B]; X[B] = tmp; \ 35 itmp = IDX[A]; IDX[A] = IDX[B]; IDX[B] = itmp; \ 36 } 37 # define COMPARE(A,B)(X[A] < X[B]) 38 39 OHANA_SORT (N, COMPARE, SWAPFUNC); 40 41 # undef SWAPFUNC 42 # undef COMPARE 43 44 } 45 24 46 int gstar (int argc, char **argv) { 25 47 … … 30 52 off_t i, Nstars, *N1; 31 53 off_t j, k, m, N, Nlo, Nhi; 32 int Nsecfilt, NPTS, QUIET, FULL_OUTPUT, STACK_OUTPUT, INST ;54 int Nsecfilt, NPTS, QUIET, FULL_OUTPUT, STACK_OUTPUT, INST, SHOW_MASKS; 33 55 int found, GetMeasures; 34 56 int SaveVectors; … … 43 65 Nsecfilt = GetPhotcodeNsecfilt (); 44 66 67 GSTAR_SORT_CODES sortCode = GSTAR_BY_SEQ; 68 if ((N = get_argument (argc, argv, "-sort"))) { 69 remove_argument (N, &argc, argv); 70 if (!strcasecmp (argv[N], "time")) { 71 sortCode = GSTAR_BY_TIME; 72 } 73 if (!strcasecmp (argv[N], "photcode")) { 74 sortCode = GSTAR_BY_PHOTCODE; 75 } 76 remove_argument (N, &argc, argv); 77 } 78 45 79 QUIET = FALSE; 46 80 if ((N = get_argument (argc, argv, "-q"))) { … … 52 86 if ((N = get_argument (argc, argv, "-inst"))) { 53 87 INST = TRUE; 88 remove_argument (N, &argc, argv); 89 } 90 91 SHOW_MASKS = FALSE; 92 if ((N = get_argument (argc, argv, "-masks"))) { 93 SHOW_MASKS = TRUE; 54 94 remove_argument (N, &argc, argv); 55 95 } … … 275 315 gprint (GP_LOG, "\n"); 276 316 317 /* UCDIST */ 318 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_UCDIST);; 319 gprint (GP_LOG, "\n"); 320 277 321 /* secfilt flags */ 278 322 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_SECF_FLAGS); … … 300 344 } 301 345 if (GetMeasures || SaveVectors) { 346 347 if (catalog.average[k].Nmeasure == 0) continue; 348 302 349 m = catalog.average[k].measureOffset; 350 351 int *index = NULL; 352 float *value = NULL; 353 ALLOCATE (index, int, catalog.average[k].Nmeasure); 354 ALLOCATE (value, float, catalog.average[k].Nmeasure); 355 for (j = 0; j < catalog.average[k].Nmeasure; j++) { 356 index[j] = j + m; 357 switch (sortCode) { 358 case GSTAR_BY_SEQ: 359 value[j] = j + m; 360 break; 361 case GSTAR_BY_PHOTCODE: 362 value[j] = catalog.measure[j + m].photcode; 363 break; 364 case GSTAR_BY_TIME: 365 value[j] = catalog.measure[j + m].t; 366 break; 367 } 368 } 369 370 sort_index_float (value, index, catalog.average[k].Nmeasure); 371 303 372 for (j = 0; j < catalog.average[k].Nmeasure; j++, m++) { 304 373 305 Mcat = PhotCat (&catalog.measure[m]); 374 int Nv = index[j]; 375 376 Mcat = PhotCat (&catalog.measure[Nv]); 306 377 if (INST) { 307 Mrel = PhotInst (&catalog.measure[ m]);378 Mrel = PhotInst (&catalog.measure[Nv]); 308 379 } else { 309 Mrel = PhotRel (&catalog.measure[ m], &catalog.average[k], &catalog.secfilt[k*Nsecfilt]);380 Mrel = PhotRel (&catalog.measure[Nv], &catalog.average[k], &catalog.secfilt[k*Nsecfilt]); 310 381 } 311 382 312 383 if (GetMeasures && !QUIET) { 313 date = ohana_sec_to_date (catalog.measure[ m].t);384 date = ohana_sec_to_date (catalog.measure[Nv].t); 314 385 gprint (GP_LOG, "%6.3f ", Mcat); 315 386 gprint (GP_LOG, "%6.3f ", Mrel); 316 gprint (GP_LOG, "% 5.3f ", catalog.measure[m].dM);387 gprint (GP_LOG, "%6.3f ", catalog.measure[Nv].dM); 317 388 gprint (GP_LOG, "%20s ", date); 318 gprint (GP_LOG, "%7.4f ", catalog.measure[m].dR); 319 gprint (GP_LOG, "%7.4f ", catalog.measure[m].dD); 320 gprint (GP_LOG, "0x%08x ", catalog.measure[m].photFlags); 321 gprint (GP_LOG, "0x%08x ", catalog.measure[m].dbFlags); 322 gprint (GP_LOG, "%5d ", catalog.measure[m].photcode); 323 gprint (GP_LOG, "%-20s ", GetPhotcodeNamebyCode (catalog.measure[m].photcode)); 324 gprint (GP_LOG, "%5.2f ", FromShortPixels(catalog.measure[m].FWx)); 325 gprint (GP_LOG, "%5.2f ", FromShortPixels(catalog.measure[m].FWy)); 389 gprint (GP_LOG, "%7.4f ", catalog.measure[Nv].dR); 390 gprint (GP_LOG, "%7.4f ", catalog.measure[Nv].dD); 391 gprint (GP_LOG, "0x%08x ", catalog.measure[Nv].photFlags); 392 gprint (GP_LOG, "0x%08x ", catalog.measure[Nv].dbFlags); 393 if (SHOW_MASKS) { 394 gprint (GP_LOG, "%5d ", catalog.measure[Nv].photcode); 395 PhotCode *code = GetPhotcodebyCode (catalog.measure[Nv].photcode); 396 int badMask = 0; 397 int poorMask = 0; 398 if (code) { 399 badMask = catalog.measure[Nv].photFlags & code->photomBadMask; 400 poorMask = catalog.measure[Nv].photFlags & code->photomPoorMask; 401 } 402 gprint (GP_LOG, "0x%08x ", poorMask); 403 gprint (GP_LOG, "0x%08x ", badMask); 404 } 405 gprint (GP_LOG, "%5d ", catalog.measure[Nv].photcode); 406 gprint (GP_LOG, "%-20s ", GetPhotcodeNamebyCode (catalog.measure[Nv].photcode)); 407 gprint (GP_LOG, "%5.2f ", FromShortPixels(catalog.measure[Nv].FWx)); 408 gprint (GP_LOG, "%5.2f ", FromShortPixels(catalog.measure[Nv].FWy)); 326 409 327 410 if (FULL_OUTPUT) { 328 gprint (GP_LOG, "%6.3f ", catalog.measure[ m].Mcal);329 gprint (GP_LOG, "%6.3f ", catalog.measure[ m].Map);330 gprint (GP_LOG, "%6.3f ", catalog.measure[ m].Mkron);331 gprint (GP_LOG, "%6.3f ", catalog.measure[ m].dMkron);332 gprint (GP_LOG, "%5.1f ", pow(10.0, 0.4*catalog.measure[ m].dt));333 gprint (GP_LOG, "%5.3f ", catalog.measure[ m].airmass);334 gprint (GP_LOG, "%6.1f ", catalog.measure[ m].az);335 gprint (GP_LOG, "%6.1f ", catalog.measure[ m].Xccd);336 gprint (GP_LOG, "%6.1f ", catalog.measure[ m].Yccd);337 gprint (GP_LOG, "%3.1f ", FromShortPixels(catalog.measure[ m].dXccd));338 gprint (GP_LOG, "%3.1f ", FromShortPixels(catalog.measure[ m].dYccd));339 gprint (GP_LOG, "%6.1f ", catalog.measure[ m].Sky);340 gprint (GP_LOG, "%5.1f ", catalog.measure[ m].dSky);341 gprint (GP_LOG, "%8d ", catalog.measure[ m].averef);342 gprint (GP_LOG, "0x%08x ", catalog.measure[ m].detID);343 gprint (GP_LOG, "0x%08x ", catalog.measure[ m].imageID);344 gprint (GP_LOG, "%.3f ", catalog.measure[ m].psfQF);345 gprint (GP_LOG, "%.1f ", catalog.measure[ m].psfChisq);346 gprint (GP_LOG, "%.1f ", catalog.measure[ m].crNsigma);347 gprint (GP_LOG, "%.1f ", catalog.measure[ m].extNsigma);348 gprint (GP_LOG, "%.1f ", FromShortDegrees(catalog.measure[ m].theta));411 gprint (GP_LOG, "%6.3f ", catalog.measure[Nv].Mcal); 412 gprint (GP_LOG, "%6.3f ", catalog.measure[Nv].Map); 413 gprint (GP_LOG, "%6.3f ", catalog.measure[Nv].Mkron); 414 gprint (GP_LOG, "%6.3f ", catalog.measure[Nv].dMkron); 415 gprint (GP_LOG, "%5.1f ", pow(10.0, 0.4*catalog.measure[Nv].dt)); 416 gprint (GP_LOG, "%5.3f ", catalog.measure[Nv].airmass); 417 gprint (GP_LOG, "%6.1f ", catalog.measure[Nv].az); 418 gprint (GP_LOG, "%6.1f ", catalog.measure[Nv].Xccd); 419 gprint (GP_LOG, "%6.1f ", catalog.measure[Nv].Yccd); 420 gprint (GP_LOG, "%3.1f ", FromShortPixels(catalog.measure[Nv].dXccd)); 421 gprint (GP_LOG, "%3.1f ", FromShortPixels(catalog.measure[Nv].dYccd)); 422 gprint (GP_LOG, "%6.1f ", catalog.measure[Nv].Sky); 423 gprint (GP_LOG, "%5.1f ", catalog.measure[Nv].dSky); 424 gprint (GP_LOG, "%8d ", catalog.measure[Nv].averef); 425 gprint (GP_LOG, "0x%08x ", catalog.measure[Nv].detID); 426 gprint (GP_LOG, "0x%08x ", catalog.measure[Nv].imageID); 427 gprint (GP_LOG, "%.3f ", catalog.measure[Nv].psfQF); 428 gprint (GP_LOG, "%.1f ", catalog.measure[Nv].psfChisq); 429 gprint (GP_LOG, "%.1f ", catalog.measure[Nv].crNsigma); 430 gprint (GP_LOG, "%.1f ", catalog.measure[Nv].extNsigma); 431 gprint (GP_LOG, "%.1f ", FromShortDegrees(catalog.measure[Nv].theta)); 349 432 } 350 433 if (STACK_OUTPUT) { 351 gprint (GP_LOG, "%10.3e ", catalog.measure[ m].FluxPSF);352 gprint (GP_LOG, "%10.3e ", catalog.measure[ m].dFluxPSF);353 gprint (GP_LOG, "%10.3e ", catalog.measure[ m].FluxKron);354 gprint (GP_LOG, "%10.3e ", catalog.measure[ m].dFluxKron);434 gprint (GP_LOG, "%10.3e ", catalog.measure[Nv].FluxPSF); 435 gprint (GP_LOG, "%10.3e ", catalog.measure[Nv].dFluxPSF); 436 gprint (GP_LOG, "%10.3e ", catalog.measure[Nv].FluxKron); 437 gprint (GP_LOG, "%10.3e ", catalog.measure[Nv].dFluxKron); 355 438 } 356 439 gprint (GP_LOG, "\n"); … … 361 444 if (SaveVectors) { 362 445 vec1[0].elements.Flt[N] = Mcat; 363 vec2[0].elements.Flt[N] = TimeValue (catalog.measure[ m].t, TimeReference, TimeFormat);364 vec3[0].elements.Flt[N] = catalog.measure[ m].airmass;365 vec4[0].elements.Flt[N] = catalog.measure[ m].photcode;366 vec5[0].elements.Flt[N] = catalog.measure[ m].dR;367 vec6[0].elements.Flt[N] = catalog.measure[ m].dD;446 vec2[0].elements.Flt[N] = TimeValue (catalog.measure[Nv].t, TimeReference, TimeFormat); 447 vec3[0].elements.Flt[N] = catalog.measure[Nv].airmass; 448 vec4[0].elements.Flt[N] = catalog.measure[Nv].photcode; 449 vec5[0].elements.Flt[N] = catalog.measure[Nv].dR; 450 vec6[0].elements.Flt[N] = catalog.measure[Nv].dD; 368 451 N ++; 369 452 if (N == NPTS - 1) { … … 378 461 } 379 462 } 463 free (value); 464 free (index); 380 465 } 381 466 } … … 495 580 break; 496 581 582 case GSTAR_UCDIST: /* ubercal distance */ 583 if (seq == -1) { 584 gprint (GP_LOG, "%5d ", 0); 585 } else { 586 gprint (GP_LOG, "%5d ", secfilt[seq].ubercalDist); 587 } 588 break; 589 497 590 case GSTAR_AVE_AP_MAG: /* average ap mags */ 498 591 if (seq == -1) {
Note:
See TracChangeset
for help on using the changeset viewer.
