Changeset 34820
- Timestamp:
- Dec 14, 2012, 3:04:29 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ipp-20121130/Ohana/src/opihi/dvo/gstar.c
r34405 r34820 1 1 # include "dvoshell.h" 2 3 typedef enum { 4 GSTAR_AVE_MAG, 5 GSTAR_AVE_MAG_ERR, 6 GSTAR_AVE_MAG_CHISQ, 7 GSTAR_FILTER_NAMES, 8 GSTAR_SECF_FLAGS, 9 GSTAR_AVE_AP_MAG, 10 GSTAR_AVE_MAG_20, 11 GSTAR_AVE_MAG_80, 12 GSTAR_AVE_KRON_MAG, 13 GSTAR_AVE_KRON_MAG_ERR, 14 GSTAR_STACK_FLUX_PSF, 15 GSTAR_STACK_FLUX_PSF_ERR, 16 GSTAR_STACK_FLUX_KRON, 17 GSTAR_STACK_FLUX_KRON_ERR, 18 } GSTAR_SECF_CODES; 2 19 3 20 void initPhotcodeSequence (int Nsecfilt); … … 13 30 off_t i, Nstars, *N1; 14 31 off_t j, k, m, N, Nlo, Nhi; 15 int Nsecfilt, NPTS, QUIET, FULL_OUTPUT, INST;32 int Nsecfilt, NPTS, QUIET, FULL_OUTPUT, STACK_OUTPUT, INST; 16 33 int found, GetMeasures; 17 34 int SaveVectors; … … 55 72 if ((N = get_argument (argc, argv, "-full"))) { 56 73 FULL_OUTPUT = TRUE; 74 remove_argument (N, &argc, argv); 75 } 76 77 STACK_OUTPUT = FALSE; 78 if ((N = get_argument (argc, argv, "-stack"))) { 79 STACK_OUTPUT = TRUE; 57 80 remove_argument (N, &argc, argv); 58 81 } … … 216 239 217 240 /* filter names */ 218 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, 3);241 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_FILTER_NAMES); 219 242 gprint (GP_LOG, "\n"); 220 243 221 244 /* average mags */ 222 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, 0);245 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_AVE_MAG); 223 246 gprint (GP_LOG, "\n"); 224 247 225 248 /* average mag errors */ 226 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, 1);249 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_AVE_MAG_ERR); 227 250 gprint (GP_LOG, "\n"); 228 251 229 252 /* average mag chisq */ 230 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, 2);253 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_AVE_MAG_CHISQ); 231 254 gprint (GP_LOG, "\n"); 232 255 233 256 if (FULL_OUTPUT) { 234 257 /* Map */ 235 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, 5); 258 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_AVE_AP_MAG); 259 gprint (GP_LOG, "\n"); 260 261 /* Mkron */ 262 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_AVE_KRON_MAG); 263 gprint (GP_LOG, "\n"); 264 265 /* dMkron */ 266 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_AVE_KRON_MAG_ERR); 236 267 gprint (GP_LOG, "\n"); 237 268 238 269 /* M_20 */ 239 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, 6);270 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_AVE_MAG_20); 240 271 gprint (GP_LOG, "\n"); 241 272 242 273 /* M_80 */ 243 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, 7);274 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_AVE_MAG_80);; 244 275 gprint (GP_LOG, "\n"); 245 276 246 277 /* secfilt flags */ 247 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, 4); 278 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_SECF_FLAGS); 279 gprint (GP_LOG, "\n"); 280 281 } 282 if (STACK_OUTPUT) { 283 /* FluxPSF */ 284 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_STACK_FLUX_PSF); 285 gprint (GP_LOG, "\n"); 286 287 /* dFluxPSF */ 288 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_STACK_FLUX_PSF_ERR); 289 gprint (GP_LOG, "\n"); 290 291 /* FluxKron */ 292 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_STACK_FLUX_KRON); 293 gprint (GP_LOG, "\n"); 294 295 /* dFluxKron */ 296 for (j = 0; j < Nsecfilt; j++) printPhotcodeSequence (&catalog.average[k], &catalog.secfilt[Nsecfilt*k], j, GSTAR_STACK_FLUX_KRON_ERR); 248 297 gprint (GP_LOG, "\n"); 249 298 … … 279 328 gprint (GP_LOG, "%6.3f ", catalog.measure[m].Mcal); 280 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); 281 332 gprint (GP_LOG, "%5.1f ", pow(10.0, 0.4*catalog.measure[m].dt)); 282 333 gprint (GP_LOG, "%5.3f ", catalog.measure[m].airmass); … … 296 347 gprint (GP_LOG, "%.1f ", catalog.measure[m].extNsigma); 297 348 gprint (GP_LOG, "%.1f ", FromShortDegrees(catalog.measure[m].theta)); 349 } 350 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); 298 355 } 299 356 gprint (GP_LOG, "\n"); … … 351 408 } 352 409 410 void print_double_exp (double value) { 411 if (isnan(value)) 412 gprint (GP_LOG, " NaN "); 413 else 414 gprint (GP_LOG, "%10.3e ", value); 415 } 416 353 417 void print_short (double value, short int ival) { 354 418 if (ival == NAN_S_SHORT) … … 386 450 } 387 451 388 389 452 void printPhotcodeSequence (Average *average, SecFilt *secfilt, int entry, int type) { 390 453 … … 395 458 396 459 switch (type) { 397 case 0: /* average mags */460 case GSTAR_AVE_MAG: /* average mags */ 398 461 if (seq == -1) { 399 462 print_double (NAN); … … 403 466 break; 404 467 405 case 1: /* average mags errors */468 case GSTAR_AVE_MAG_ERR: /* average mags errors */ 406 469 if (seq == -1) { 407 470 print_double (NAN); … … 411 474 break; 412 475 413 case 2: /* average mag chisq */476 case GSTAR_AVE_MAG_CHISQ: /* average mag chisq */ 414 477 if (seq == -1) { 415 478 print_short (NAN_S_SHORT, NAN_S_SHORT); … … 419 482 break; 420 483 421 case 3: /* filter names */484 case GSTAR_FILTER_NAMES: /* filter names */ 422 485 code = GetPhotcodebyNsec (seq); 423 486 gprint (GP_LOG, " %-6s ", code[0].name); 424 487 break; 425 488 426 case 4: /* secfilt flags */489 case GSTAR_SECF_FLAGS: /* secfilt flags */ 427 490 if (seq == -1) { 428 491 gprint (GP_LOG, "%08x ", 0); … … 432 495 break; 433 496 434 case 5: /* average ap mags */497 case GSTAR_AVE_AP_MAG: /* average ap mags */ 435 498 if (seq == -1) { 436 499 print_double (NAN); … … 440 503 break; 441 504 442 case 6: /* average ap mags */505 case GSTAR_AVE_MAG_20: /* average ap mags */ 443 506 if (seq == -1) { 444 507 print_double (NAN); … … 448 511 break; 449 512 450 case 7: /* average ap mags */513 case GSTAR_AVE_MAG_80: /* average ap mags */ 451 514 if (seq == -1) { 452 515 print_double (NAN); … … 456 519 break; 457 520 458 } 459 } 521 case GSTAR_AVE_KRON_MAG: /* average ap mags */ 522 if (seq == -1) { 523 print_double (NAN); 524 } else { 525 print_double (secfilt[seq].Mkron); 526 } 527 break; 528 529 case GSTAR_AVE_KRON_MAG_ERR: /* average ap mags */ 530 if (seq == -1) { 531 print_double (NAN); 532 } else { 533 print_double (secfilt[seq].dMkron); 534 } 535 break; 536 537 case GSTAR_STACK_FLUX_PSF: /* average ap mags */ 538 if (seq == -1) { 539 print_double (NAN); 540 } else { 541 print_double_exp (secfilt[seq].FluxPSF); 542 } 543 break; 544 545 case GSTAR_STACK_FLUX_PSF_ERR: /* average ap mags */ 546 if (seq == -1) { 547 print_double (NAN); 548 } else { 549 print_double_exp (secfilt[seq].dFluxPSF); 550 } 551 break; 552 553 case GSTAR_STACK_FLUX_KRON: /* average ap mags */ 554 if (seq == -1) { 555 print_double (NAN); 556 } else { 557 print_double_exp (secfilt[seq].FluxKron); 558 } 559 break; 560 561 case GSTAR_STACK_FLUX_KRON_ERR: /* average ap mags */ 562 if (seq == -1) { 563 print_double (NAN); 564 } else { 565 print_double_exp (secfilt[seq].dFluxKron); 566 } 567 break; 568 569 } 570 }
Note:
See TracChangeset
for help on using the changeset viewer.
