IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 16856


Ignore:
Timestamp:
Mar 6, 2008, 1:10:39 PM (18 years ago)
Author:
eugene
Message:

added more filter options; help info

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/dvo/pmeasure.c

    r16810 r16856  
    11# include "dvoshell.h"
    22# define NCHUNK 10000
     3
     4enum {FLAG_IGNORE, FLAG_SKIP, FLAG_KEEP};
    35
    46int pmeasure (int argc, char **argv) {
    57 
    68  FILE *f;
    7   int i, j, k, m, kapa, Narg, Npts, NPTS, status, VERBOSE;
     9  int i, j, k, m, kapa, Narg, Npts, NPTS, status, VERBOSE, TimeSelect;
    810  double Mz, Mr, mag;
    9   double Radius, Rmin, Rmax, R, D;
     11  double Radius, Rmin, Rmax, R, D, trange;
    1012  unsigned IDclip, IDchoice, LimExclude;
    11   unsigned FlagChoice, FlagClip, flags;
     13  unsigned dbFlagChoice, dbFlagClip;
     14  unsigned photFlagChoice, photFlagClip;
    1215  int PhotcodeClip;
    1316  float *Xvec, *Yvec, *Zvec;
     17  time_t tzero, tend;
    1418
    1519  SkyTable *sky;
     
    3337    remove_argument (Narg, &argc, argv);
    3438  }
     39  if ((Narg = get_argument (argc, argv, "-photcode"))) {
     40    remove_argument (Narg, &argc, argv);
     41    PhotcodeClip = GetPhotcodeCodebyName (argv[Narg]);
     42    remove_argument (Narg, &argc, argv);
     43  }
    3544  IDchoice = 0;
    3645  IDclip = FALSE;
    3746  if ((Narg = get_argument (argc, argv, "-ID"))) {
    3847    remove_argument (Narg, &argc, argv);
    39     IDchoice  = atoi(argv[Narg]);
     48    IDchoice  = strtol(argv[Narg], NULL, 0);
    4049    remove_argument (Narg, &argc, argv);
    4150    IDclip = TRUE;
    4251  }
    43   FlagChoice = 0;
    44   FlagClip = FALSE;
    45   if ((Narg = get_argument (argc, argv, "-flag"))) {
    46     remove_argument (Narg, &argc, argv);
    47     FlagChoice  = atoi(argv[Narg]);
    48     remove_argument (Narg, &argc, argv);
    49     FlagClip = TRUE;
    50   }
    51 
    52   // XXX Add time restrictions
     52  dbFlagChoice = 0;
     53  dbFlagClip = FLAG_IGNORE;
     54  if ((Narg = get_argument (argc, argv, "-dbflag"))) {
     55    remove_argument (Narg, &argc, argv);
     56    dbFlagChoice  = strtol(argv[Narg], NULL, 0);
     57    remove_argument (Narg, &argc, argv);
     58    dbFlagClip = FLAG_SKIP;
     59  }
     60  if ((Narg = get_argument (argc, argv, "+dbflag"))) {
     61    remove_argument (Narg, &argc, argv);
     62    dbFlagChoice  = strtol(argv[Narg], NULL, 0);
     63    remove_argument (Narg, &argc, argv);
     64    dbFlagClip = FLAG_KEEP;
     65  }
     66  photFlagChoice = 0;
     67  photFlagClip = FLAG_IGNORE;
     68  if ((Narg = get_argument (argc, argv, "-photflag"))) {
     69    remove_argument (Narg, &argc, argv);
     70    photFlagChoice  = strtol(argv[Narg], NULL, 0);
     71    remove_argument (Narg, &argc, argv);
     72    photFlagClip = FLAG_SKIP;
     73  }
     74  if ((Narg = get_argument (argc, argv, "+photflag"))) {
     75    remove_argument (Narg, &argc, argv);
     76    photFlagChoice  = strtol(argv[Narg], NULL, 0);
     77    remove_argument (Narg, &argc, argv);
     78    photFlagClip = FLAG_KEEP;
     79  }
     80
     81  TimeSelect = FALSE;
     82  if ((Narg = get_argument (argc, argv, "-time"))) {
     83    remove_argument (Narg, &argc, argv);
     84    if (!ohana_str_to_time (argv[Narg], &tzero)) {
     85      gprint (GP_ERR, "syntax error\n");
     86      return FALSE;
     87    }
     88    remove_argument (Narg, &argc, argv);
     89    if (!ohana_str_to_dtime (argv[Narg], &trange)) {
     90      gprint (GP_ERR, "syntax error\n");
     91      return FALSE;
     92    }
     93    remove_argument (Narg, &argc, argv);
     94    if (trange < 0) {
     95      trange = fabs (trange);
     96      tzero -= trange;
     97    }
     98    TimeSelect = TRUE;
     99  }
     100  if ((Narg = get_argument (argc, argv, "-trange"))) {
     101    remove_argument (Narg, &argc, argv);
     102    if (!ohana_str_to_time (argv[Narg], &tzero)) {
     103      gprint (GP_ERR, "syntax error\n");
     104      return FALSE;
     105    }
     106    remove_argument (Narg, &argc, argv);
     107    if (!ohana_str_to_time (argv[Narg], &tend)) {
     108      gprint (GP_ERR, "syntax error\n");
     109      return FALSE;
     110    }
     111    remove_argument (Narg, &argc, argv);
     112    trange = tend - tzero;
     113    if (trange < 0) {
     114      trange = fabs (trange);
     115      tzero -= trange;
     116    }
     117    TimeSelect = TRUE;
     118  }
    53119
    54120  LimExclude = FALSE;
     
    74140
    75141  if (argc != 2) {
    76     gprint (GP_ERR, "USAGE: pmeasure (-all) [-m M M] [-p photcode] [-ID ID] [-flag value] [-x]\n");
     142    gprint (GP_ERR, "USAGE: pmeasure (-all) [-m M M]\n");
     143    gprint (GP_ERR, " options:\n");
     144    gprint (GP_ERR, " [-p photcode]\n");
     145    gprint (GP_ERR, " [-photcode photcode]\n");
     146    gprint (GP_ERR, " [-ID ID]\n");
     147    gprint (GP_ERR, " [-dbflag value] : skip matches to these flags\n");
     148    gprint (GP_ERR, " [+dbflag value] : keep matches to these flags\n");
     149    gprint (GP_ERR, " [-photflag value] : skip matches to these flags\n");
     150    gprint (GP_ERR, " [+photflag value] : keep matches to these flags\n");
     151    gprint (GP_ERR, " [-time (start) (duration)]\n");
     152    gprint (GP_ERR, " [-trange (start) (stop)]\n");
     153    gprint (GP_ERR, " [-x] : exclude points larger / smaller than mag limits\n");
     154    gprint (GP_ERR, " [-v] : verbose mode\n");
    77155    return (FALSE);
    78156  }
     
    113191      m = catalog.average[i].measureOffset;
    114192      for (k = 0; k < catalog.average[i].Nmeasure; k++) {
    115         if (FlagClip) {
    116           flags = catalog.measure[m+k].dbFlags;
    117           if (!(flags & FlagChoice)) continue;
    118         }
     193        if ((dbFlagClip == FLAG_SKIP) &&  (catalog.measure[m+k].dbFlags & dbFlagChoice)) continue;
     194        if ((dbFlagClip == FLAG_KEEP) && !(catalog.measure[m+k].dbFlags & dbFlagChoice)) continue;
     195        if ((photFlagClip == FLAG_SKIP) &&  (catalog.measure[m+k].photFlags & photFlagChoice)) continue;
     196        if ((photFlagClip == FLAG_KEEP) && !(catalog.measure[m+k].photFlags & photFlagChoice)) continue;
     197        if (TimeSelect && (catalog.measure[m+k].t < tzero)) continue;
     198        if (TimeSelect && (catalog.measure[m+k].t > tzero + trange)) continue;
    119199        if ((PhotcodeClip != -1) && (catalog.measure[m+k].photcode != PhotcodeClip)) continue;
    120200        mag = PhotCat (&catalog.measure[m+k]);
Note: See TracChangeset for help on using the changeset viewer.