IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 34820


Ignore:
Timestamp:
Dec 14, 2012, 3:04:29 PM (14 years ago)
Author:
eugene
Message:

add -stack option and enum for print options

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20121130/Ohana/src/opihi/dvo/gstar.c

    r34405 r34820  
    11# include "dvoshell.h"
     2
     3typedef 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;
    219
    320void initPhotcodeSequence (int Nsecfilt);
     
    1330  off_t i, Nstars, *N1;
    1431  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;
    1633  int found, GetMeasures;
    1734  int SaveVectors;
     
    5572  if ((N = get_argument (argc, argv, "-full"))) {
    5673    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;
    5780    remove_argument (N, &argc, argv);
    5881  }
     
    216239     
    217240        /* 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);
    219242        gprint (GP_LOG, "\n");
    220243
    221244        /* 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);
    223246        gprint (GP_LOG, "\n");
    224247
    225248        /* 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);
    227250        gprint (GP_LOG, "\n");
    228251
    229252        /* 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);
    231254        gprint (GP_LOG, "\n");
    232255
    233256        if (FULL_OUTPUT) {
    234257          /* 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);
    236267          gprint (GP_LOG, "\n");
    237268
    238269          /* 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);
    240271          gprint (GP_LOG, "\n");
    241272
    242273          /* 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);;
    244275          gprint (GP_LOG, "\n");
    245276
    246277          /* 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);
    248297          gprint (GP_LOG, "\n");
    249298
     
    279328                gprint (GP_LOG, "%6.3f ", catalog.measure[m].Mcal);
    280329                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);
    281332                gprint (GP_LOG, "%5.1f ", pow(10.0, 0.4*catalog.measure[m].dt));
    282333                gprint (GP_LOG, "%5.3f ", catalog.measure[m].airmass);
     
    296347                gprint (GP_LOG, "%.1f ", catalog.measure[m].extNsigma);
    297348                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);
    298355            }
    299356            gprint (GP_LOG, "\n");
     
    351408}
    352409
     410void 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
    353417void print_short (double value, short int ival) {
    354418  if (ival == NAN_S_SHORT)
     
    386450}
    387451
    388 
    389452void printPhotcodeSequence (Average *average, SecFilt *secfilt, int entry, int type) {
    390453
     
    395458
    396459  switch (type) {
    397     case 0: /* average mags */
     460    case GSTAR_AVE_MAG: /* average mags */
    398461      if (seq == -1) {
    399462        print_double (NAN);
     
    403466      break;
    404467
    405     case 1: /* average mags errors */
     468    case GSTAR_AVE_MAG_ERR: /* average mags errors */
    406469      if (seq == -1) {
    407470        print_double (NAN);
     
    411474      break;
    412475
    413     case 2: /* average mag chisq */
     476    case GSTAR_AVE_MAG_CHISQ: /* average mag chisq */
    414477      if (seq == -1) {
    415478        print_short (NAN_S_SHORT, NAN_S_SHORT);
     
    419482      break;
    420483
    421     case 3: /* filter names */
     484    case GSTAR_FILTER_NAMES: /* filter names */
    422485      code = GetPhotcodebyNsec (seq);
    423486      gprint (GP_LOG, "  %-6s ", code[0].name);
    424487      break;
    425488
    426     case 4: /* secfilt flags */
     489    case GSTAR_SECF_FLAGS: /* secfilt flags */
    427490      if (seq == -1) {
    428491        gprint (GP_LOG, "%08x ", 0);
     
    432495      break;
    433496
    434     case 5: /* average ap mags */
     497    case GSTAR_AVE_AP_MAG: /* average ap mags */
    435498      if (seq == -1) {
    436499        print_double (NAN);
     
    440503      break;
    441504
    442     case 6: /* average ap mags */
     505    case GSTAR_AVE_MAG_20: /* average ap mags */
    443506      if (seq == -1) {
    444507        print_double (NAN);
     
    448511      break;
    449512
    450     case 7: /* average ap mags */
     513    case GSTAR_AVE_MAG_80: /* average ap mags */
    451514      if (seq == -1) {
    452515        print_double (NAN);
     
    456519      break;
    457520
    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.