IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 13454


Ignore:
Timestamp:
May 21, 2007, 3:38:16 PM (19 years ago)
Author:
eugene
Message:

boolean db extractions now working

Location:
branches/kapa-mods-2007-05/Ohana/src/opihi
Files:
2 added
13 edited

Legend:

Unmodified
Added
Removed
  • branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/Makefile

    r12842 r13454  
    2121$(SRC)/init.$(ARCH).o                   \
    2222$(SRC)/ImageOps.$(ARCH).o               \
    23 $(SRC)/ImageSelection.$(ARCH).o \
     23$(SRC)/ImageSelection.$(ARCH).o         \
    2424$(SRC)/LoadImages.$(ARCH).o             \
    2525$(SRC)/cmpReadFile.$(ARCH).o            \
    26 $(SRC)/compare.$(ARCH).o               \
     26$(SRC)/compare.$(ARCH).o                \
    2727$(SRC)/match_image.$(ARCH).o            \
    28 $(SRC)/photometry.$(ARCH).o            \
     28$(SRC)/photometry.$(ARCH).o             \
    2929$(SRC)/dvomisc.$(ARCH).o                \
    3030$(SRC)/region_list.$(ARCH).o            \
     31$(SRC)/dvomisc.$(ARCH).o                \
     32$(SRC)/dbBooleanCond.$(ARCH).o          \
     33$(SRC)/dbCheckStack.$(ARCH).o           \
     34$(SRC)/dbCmdlineFields.$(ARCH).o        \
     35$(SRC)/dbExtractAverages.$(ARCH).o      \
     36$(SRC)/dbExtractMeasures.$(ARCH).o      \
     37$(SRC)/dbFields.$(ARCH).o               \
     38$(SRC)/dbRPN.$(ARCH).o                  \
     39$(SRC)/dbStackMath.$(ARCH).o            \
     40$(SRC)/dbStackOps.$(ARCH).o             \
    3141$(SRC)/dvo.$(ARCH).o
    3242
  • branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/avextract.c

    r13443 r13454  
    33int avextract (int argc, char **argv) {
    44 
    5   int i, j, m, N, NPTS, last, Nfields;
     5  int i, j, n, m, Npts, NPTS, last, Nfields, Nreturn, Ncstack, Nstack;
    66  int Nsecfilt, mode;
    77  char *RegionName, *RegionList, *p;
     8  char **cstack;
     9  float *values;
    810
    911  Catalog catalog;
    1012  SkyList *skylist;
    1113  PhotCode *code;
    12   Vector *vec;
     14  Vector **vec;
    1315
    14   dvoFields *fields;
     16  dbField *fields;
     17  dbStack *stack;
    1518
    1619  /* defaults */
     
    2629  Nsecfilt = GetPhotcodeNsecfilt ();
    2730
     31  // remove skyregion options
     32  // XXX this needs to explicitly handle -qregion and -skyregion
     33  if (!SetRegionSelection (&argc, argv, &RegionName, &RegionList)) goto escape;
     34
    2835  // command-line is of the form: avextract field,field, field [where (field op value)...]
    2936
     
    3340
    3441  // parse the remainder of the line as a boolean math expression
    35   cstack = isolate_elements (argv-last, &argv[last], &Ncstack);
     42  cstack = isolate_elements (argc-last, &argv[last], &Ncstack);
    3643 
    3744  // construct the db Boolean math stack (frees cstack)
    38   dbStack = dbRPN (Ncstack, cstack, &NdbStack);
     45  stack = dbRPN (Ncstack, cstack, &Nstack);
    3946
    4047  Nreturn = Nfields;
    41   dbCheckStack (dbStack, NdbStack, DVO_TABLE_AVERAGE, &fields, &Nfields);
     48  dbCheckStack (stack, Nstack, DVO_TABLE_AVERAGE, &fields, &Nfields);
    4249  // XXX handle errors
    43 
    44   /* interpret command-line options */
    45   // this needs to explicitly handles -qregion and -skyregion
    46   if (!SetRegionSelection (&argc, argv, &RegionName, &RegionList)) goto escape;
    4750
    4851  /* load region corresponding to selection above */
     
    5154  /* create output storage vectors */
    5255  ALLOCATE (values, float, Nfields);
    53   ALLOCATE (vec, Vector, Nreturn);
     56  ALLOCATE (vec, Vector *, Nreturn);
    5457  for (i = 0; i < Nreturn; i++) {
    5558    if ((vec[i] = SelectVector (fields[i].name, ANYVECTOR, TRUE)) == NULL) goto escape;
     
    7881      // XXX for measure values, this could be optimized for one loop over measures...
    7982      for (n = 0; n < Nfields; n++) {
    80         values[n] = ExtractAveragesNew (&catalog.average[j], &catalog.secfilt[j*Nsecfilt], &catalog.measure[m], fields[n]);
     83        values[n] = dbExtractAverages (&catalog.average[j], &catalog.secfilt[j*Nsecfilt], &catalog.measure[m], &fields[n]);
    8184      }
    8285      // test the conditional statement
    83       if (!dbBooleanCond (dbStack, NdbStack, values, fields, Nfields)) continue;
     86      if (!dbBooleanCond (stack, Nstack, values)) continue;
    8487      for (n = 0; n < Nreturn; n++) {
    85         vec[n].elements[N] = values[n];
     88        vec[n][0].elements[Npts] = values[n];
    8689      }
    87       N++;
    88       if (N >= NPTS) {
     90      Npts++;
     91      if (Npts >= NPTS) {
    8992        NPTS += 2000;
    9093        for (n = 0; n < Nreturn; n++) {
    91           REALLOCATE (vec[n].elements, float, NPTS);
     94          REALLOCATE (vec[n][0].elements, float, NPTS);
    9295        }
    9396      }
     
    9699  }
    97100  for (n = 0; n < Nreturn; n++) {
    98     vec[n].Nelements = N;
    99     REALLOCATE (vec[n].elements, float, MAX(1,N));
     101    vec[n][0].Nelements = Npts;
     102    REALLOCATE (vec[n][0].elements, float, MAX(1,Npts));
    100103  }
     104
     105  // XXX free fields and stack
    101106
    102107  SkyListFree (skylist, ((RegionName != NULL) || (RegionList != NULL)));
  • branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/cmpload.c

    r13434 r13454  
    88  int i, Noverlay, NOVERLAY, Nstar, N, Nin, Nextra, Objtype, type;
    99  int doneread, done, Nskip, Nbytes, nbytes, Ninstar;
    10   char *c, *c2, name;
     10  char *c, *c2, *name;
    1111  double dtmp;
    1212  FILE *f;
  • branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/dbBooleanCond.c

    r13443 r13454  
    11# include "dvoshell.h"
    22
    3 int dbBooleanCond (dvoStack dbStack, int NdbStack, float *values, dvoFields *fields, int Nfields) {
     3// evaluate the expression in inStack as a boolean; necessary db field values are
     4// supplied by fields, in order 0 - Nfields (validate before calling)
     5int dbBooleanCond (dbStack *inStack, int NinStack, float *fields) {
    46 
    5   int i, j, Nstack;
    6   dvoStack **stack, *output;
     7  float value;
     8  int i, j, N, Nstack;
     9  dbStack **stack, *output;
    710
    811  // 'no stack' means 'no where statement'
    9   if (NdbStack == 0) return (TRUE);
     12  if (NinStack == 0) return (TRUE);
    1013
    11   Nstack = NdbStack;
    12   ALLOCATE (stack, dvoStack *, NdbStack);
    13   for (i = 0; i < NdbStack; i++) {
    14     stack[i] = &dbStack[i];
     14  Nstack = NinStack;
     15  ALLOCATE (stack, dbStack *, NinStack);
     16  for (i = 0; i < NinStack; i++) {
     17    stack[i] = &inStack[i];
    1518  }
    1619
     
    1821
    1922    /***** binary operators *****/
    20     if ((stack[i].type >= 3) && (stack[i].type <= 8)) {
     23    if ((stack[i][0].type >= 3) && (stack[i][0].type <= 8)) {
    2124
    2225      // pre-test that op and entries match
    23       output = dbBinary (stack[i-2], stack[i-1], stack[i].name, fields, Nfields);
     26      output = dbBinary (stack[i-2], stack[i-1], stack[i][0].name, fields);
    2427
    2528      // free temporary stack items, drop external items
     
    3841
    3942    /***** unary operators **/
    40     if (stack[i].type == 9) {
     43    if (stack[i][0].type == 9) {
    4144
    4245      // pre-test that op and entries match
    43       output = dbUnary (&stack[i-1], stack[i].name, fields, Nfields);
     46      output = dbUnary (stack[i-1], stack[i][0].name, fields);
    4447
    4548      // free temporary stack items, drop external items
    46       dbFreeEntry (stack[i-2]);
    4749      dbFreeEntry (stack[i-1]);
    4850
     51      stack[i-1] = output;
    4952      for (j = i + 1; j < Nstack; j++) {
    5053        stack[j-1] = stack[j];
  • branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/dbCheckStack.c

    r13443 r13454  
    1 # include "opihi.h"
     1# include "dvoshell.h"
    22
    3 int dbCheckStack (dvoStack *stack, int Nstack, int table, dvoField **inFields, int *Nfields) {
     3int dbCheckStack (dbStack *stack, int Nstack, int table, dbField **inFields, int *Nfields) {
    44
    5   int i, Nx, Ny, Nv, size;
     5  int i, j, status, NFIELDS;
    66  char *c;
    7   dvoFields *fields;
     7  dbField *fields;
    88
    99  NFIELDS = *Nfields + 10;
    10   REALLOCATE (*inFields, dvoField, NFIELDS);
     10  REALLOCATE (*inFields, dbField, NFIELDS);
    1111  fields = *inFields;
    1212
     
    4444
    4545      *Nfields ++;
    46       CHECK_REALLOCATE (*inFields, dvoField, NFIELDS, *Nfields, 10);
     46      CHECK_REALLOCATE (*inFields, dbField, NFIELDS, *Nfields, 10);
    4747      fields = *inFields;
    4848    }
  • branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/dbCmdlineFields.c

    r13443 r13454  
    22
    33// identify the fields to be extracted (test for where, check syntax)
    4 dvoField *dbCmdlineFields (int argc, char **argv, int table, int *last, int *nfields) {
     4dbField *dbCmdlineFields (int argc, char **argv, int table, int *last, int *nfields) {
    55
    6   int i, Nfields, NFIELDS,
     6  int i, j, status, Nfields, NFIELDS;
     7  char *p, *q, *field;
     8  dbField *fields;
    79
    810  *nfields = 0;
    911  Nfields = 0;
    1012  NFIELDS = 10;
    11   ALLOCATE (fields, dvoField, NFIELDS);
     13  ALLOCATE (fields, dbField, NFIELDS);
     14  dbInitField (&fields[0]);
    1215
    1316  // examine each argv[i] entry until we reach a where
     
    3639        gprint (GP_ERR, "unknown database field %s\n", field);
    3740        free (field);
     41        for (j = 0; j <= Nfields; j++) {
     42          if (fields->name != NULL) free (fields->name);
     43        }
    3844        free (fields);
    3945        return (NULL);
     
    4248
    4349      Nfields ++;
    44       CHECK_REALLOCATE (fields, dvoField, NFIELDS, Nfields, 10);
     50      CHECK_REALLOCATE (fields, dbField, NFIELDS, Nfields, 10);
     51      dbInitField (&fields[Nfields]);
    4552    }
    4653  }
     
    5360      return (NULL);
    5461    }
    55     if (i >= argc - 2) {
     62    if (i > argc - 2) {
    5663      gprint (GP_ERR, "missing boolean expression\n");
    5764      free (fields);
  • branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/dbFields.c

    r13443 r13454  
     1# include "dvoshell.h"
     2
     3dbInitField (dbField *field) {
     4  field->name = NULL;
     5  field->extract = FALSE;
     6  field->table = 0;
     7  field->ID = 0;
     8  field->magMode = 0;
     9  field->photcode = NULL;
     10}
    111
    212int GetMagMode (char *string) {
     
    1424}
    1525
    16 PhotCode *ParsePhotcodeField (char *field, int *mode, int default) {
     26PhotCode *ParsePhotcodeField (char *field, int *mode, int defMode) {
    1727
    1828  char *tmpstring, *p;
    1929  PhotCode *code;
    2030
    21   *mode = default;
     31  *mode = defMode;
    2232
    2333  p = strchr (field, ':');
     
    3949  field->magMode = (M); \
    4050  field->photcode = NULL; \
    41   return (TRUE);
     51  return (TRUE); }
    4252
    43 int ParseMeasureField (dvoField *field, char *fieldName) {
     53int ParseMeasureField (dbField *field, char *fieldName) {
    4454
     55  int mode;
    4556  PhotCode *code;
    4657
     
    6980
    7081  // check for code:mode in photcode name
    71   code = ParsePhotcodeField (&mode, MAG_REL);
     82  code = ParsePhotcodeField (fieldName, &mode, MAG_REL);
    7283  if (code == NULL) return (FALSE);
    7384
     
    8394}
    8495 
    85 int ParseAverageField (char *fieldName) {
     96int ParseAverageField (dbField *field, char *fieldName) {
    8697
     98  int mode;
    8799  PhotCode *code;
    88100
    89101  field->table = DVO_TABLE_AVERAGE;
     102  field->name  = strcreate (fieldName);
    90103
    91104  if (!strcasecmp (fieldName, "RA"))    ESCAPE (AVE_RA,        MAG_NONE);
     
    100113  if (!strcasecmp (fieldName, "dPAR"))  ESCAPE (AVE_PAR_ERR,   MAG_NONE);
    101114  if (!strcasecmp (fieldName, "MAG"))   ESCAPE (AVE_MAG,       MAG_AVE);
    102   if (!strcasecmp (fieldName, "dMAG"))  ESCAPE (AVE_dMAG,      MAG_AVE_ERR);
     115  if (!strcasecmp (fieldName, "dMAG"))  ESCAPE (AVE_dMAG,      MAG_ERR);
    103116  if (!strcasecmp (fieldName, "NMEAS")) ESCAPE (AVE_NMEAS,     MAG_NONE);
    104117  if (!strcasecmp (fieldName, "NMISS")) ESCAPE (AVE_NMISS,     MAG_NONE);
     
    114127
    115128  // check for code:mode in photcode name
    116   code = ParsePhotcodeField (&mode, MAG_AVE);
     129  code = ParsePhotcodeField (fieldName, &mode, MAG_AVE);
    117130  if (code == NULL) return (FALSE);
    118131
    119132  // need to distinguish phot, sys errors and scatter
    120133  if (mode == MAG_ERR) {
    121     field->ID = MEAS_dMAG;
     134    field->ID = AVE_dMAG;
    122135  } else {
    123     field->ID = MEAS_MAG;
     136    field->ID = AVE_MAG;
    124137  }   
    125138 
  • branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/dbRPN.c

    r13443 r13454  
    22# define DUMPSTACK 0
    33
    4 dvoStack *dbRPN (int argc, char **argv, int *nstack) {
     4dbStack *dbRPN (int argc, char **argv, int *nstack) {
    55 
    66  int type, Nx, Ny;
    77  int i, j, Nstack, Nop_stack, NSTACK;
    8   dvoStack *stack, *op_stack;
     8  dbStack *stack, *op_stack;
    99
    1010  /* max total stack size is argc, though should be less, this is safe */
    1111  NSTACK = argc + 5;
    12   ALLOCATE (stack, dvoStack, NSTACK);
    13   ALLOCATE (op_stack, dvoStack, NSTACK);
     12  ALLOCATE (stack, dbStack, NSTACK);
     13  ALLOCATE (op_stack, dbStack, NSTACK);
    1414  for (i = 0; i < NSTACK; i++) {
    1515    dbInitStack (&stack[i]);
     
    173173  free (op_stack);
    174174  dbFreeStack (&stack[Nstack], NSTACK - Nstack);
    175   REALLOCATE (stack, dvoStack, MAX (Nstack, 1));
     175  REALLOCATE (stack, dbStack, MAX (Nstack, 1));
    176176  *nstack = Nstack;
    177177
  • branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/dbStackMath.c

    r13443 r13454  
    1 # include "opihi.h"
     1# include "dvoshell.h"
    22
    3 dvoStack *dbBinary (dvoStack *V1, dvoStack *V2, char *op, float *fields, int Nfields) {
     3dbStack *dbBinary (dbStack *V1, dbStack *V2, char *op, float *fields) {
    44
     5  int N;
    56  float M1, M2;
     7  dbStack *OUT;
    68 
    79  if (V1->type == 'F') {
     
    1921  }
    2022
    21   ALLOCATE (OUT, dvoStack, 1);
     23  ALLOCATE (OUT, dbStack, 1);
    2224  OUT->type = 'T';
    2325
     
    8587}
    8688
    87 dvoStack *dbUnary (dvoStack *V1, dvoStack *V2, char *op, float *fields, int Nfields) {
     89dbStack *dbUnary (dbStack *V1, char *op, float *fields) {
    8890
     91  int N;
    8992  float M1;
     93  dbStack *OUT;
    9094
    9195  if (V1->type == 'F') {
     
    96100  }
    97101 
    98   ALLOCATE (OUT, dvoStack, 1);
     102  ALLOCATE (OUT, dbStack, 1);
    99103  OUT->type = 'T';
    100104
     
    133137  if (!strcmp (op, "isnan"))  {   OUT->Float = isnan(M1);          }
    134138
    135   return (TRUE);
     139  return (OUT);
    136140}
  • branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/dbStackOps.c

    r13443 r13454  
    11# include "dvoshell.h"
    22
    3 void dbInitStack (StackVar *stack) {
     3void dbInitStack (dbStack *stack) {
    44  stack[0].type   = 0;
    55  stack[0].name   = NULL;
     
    77
    88// free data for stack entries (free stack explicitly)
    9 void dbFreeStack (StackVar *stack, int Nstack) {
     9void dbFreeStack (dbStack *stack, int Nstack) {
    1010
    1111  int i;
     
    2020
    2121/* delete name and data */
    22 void dbFreeEntry (dvoStack *stack) {
     22void dbFreeEntry (dbStack *stack) {
    2323
    2424  if (stack->type != 'T') return;
  • branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/mextract.c

    r12332 r13454  
    33int mextract (int argc, char **argv) {
    44 
    5   int i, j, k, m, N, N1, NPTS;
     5  int i, j, k, m, n, N, N1, Npts, NPTS, last, Nfields, Nreturn, Ncstack, Nstack;
    66  int param, mode, Nsecfilt;
    77  char *RegionName, *RegionList, *p;
    88  double *M1;
     9  char **cstack;
     10  float *values;
    911
    10   PhotCode *code;
    1112  Catalog catalog;
    1213  SkyList *skylist;
    13   Vector *vec;
     14  PhotCode *code;
     15  Vector **vec;
     16
     17  dbField *fields;
     18  dbStack *stack;
    1419
    1520  /* defaults */
     
    2429  if (!InitPhotcodes ()) goto escape;
    2530  Nsecfilt = GetPhotcodeNsecfilt ();
     31 
     32  // init locally static variables (time refs)
     33  dbExtractMeasuresInit();
    2634
    27   /* interpret command-line options */
    28   SetSelectionParam (0);
     35  // remove skyregion options
     36  // XXX this needs to explicitly handle -qregion and -skyregion
    2937  if (!SetRegionSelection (&argc, argv, &RegionName, &RegionList)) goto escape;
    30   if (!SetPhotSelections (&argc, argv, 1)) goto usage;
    3138
    32   /* interpret required command-line arguments: mextract (value) */
    33   if (argc != 2) goto usage;
    34   param = GetMeasureParam (argv[1]);
    35   if (param == MEAS_ZERO) {
    36     if (!GetPhotcodeInfo (argv[1], &code, &mode)) {
    37       GetMeasureParam ("help");
    38       goto escape;
    39     }
    40     param = MEAS_MAG;
    41     for (p = argv[1]; *p != 0; p++) {
    42       if (*p == '.') *p = ':';
    43     }
    44   }
    45   if (!TestPhotSelections (&code, &mode, MEAS_ZERO)) goto escape;
     39  // command-line is of the form: avextract field,field, field [where (field op value)...]
     40
     41  // parse the fields to be extracted and returned
     42  fields = dbCmdlineFields (argc, argv, DVO_TABLE_MEASURE, &last, &Nfields);
     43  if (fields == NULL) return (FALSE);
     44
     45  // parse the remainder of the line as a boolean math expression
     46  cstack = isolate_elements (argc-last, &argv[last], &Ncstack);
     47 
     48  // construct the db Boolean math stack (frees cstack)
     49  stack = dbRPN (Ncstack, cstack, &Nstack);
     50
     51  Nreturn = Nfields;
     52  dbCheckStack (stack, Nstack, DVO_TABLE_MEASURE, &fields, &Nfields);
     53  // XXX handle errors
    4654
    4755  /* load region corresponding to selection above */
    4856  if ((skylist = SelectRegions (RegionName, RegionList)) == NULL) goto escape;
    49   if (!SetImageSelection (param, ((RegionName == NULL) && (RegionList == NULL)))) goto escape;
     57
     58  // XXX is this still needed?
     59  // if (!SetImageSelection (param, ((RegionName == NULL) && (RegionList == NULL)))) goto escape;
    5060
    5161  /* create storage vector */
    52   N = 0;
     62  ALLOCATE (values, float, Nfields);
     63  ALLOCATE (vec, Vector *, Nreturn);
     64  for (i = 0; i < Nreturn; i++) {
     65    if ((vec[i] = SelectVector (fields[i].name, ANYVECTOR, TRUE)) == NULL) goto escape;
     66  }
     67
     68  Npts = 0;
    5369  NPTS = 1;
    54   if ((vec = SelectVector (argv[1], ANYVECTOR, TRUE)) == NULL) goto escape;
    5570
     71  // XXX need to add interrupt test to this loop
    5672  for (i = 0; i < skylist[0].Nregions; i++) {
     73    /* lock, load, unlock catalog */
    5774    catalog.filename = skylist[0].filename[i];
    5875    catalog.catflags = LOAD_AVES | LOAD_MEAS | LOAD_SECF;
     
    6986
    7087    for (j = 0; j < catalog.Naverage; j++) {
    71       M1 = NULL;
    7288      m = catalog.average[j].offset;
    73       M1 = ExtractMeasures (code, mode, &catalog.average[j], &catalog.secfilt[j*Nsecfilt], &catalog.measure[m], &N1, param);
    74       for (k = 0; k < N1; k++) {
    75         vec[0].elements[N] = M1[k];
    76         N++;
    77         CHECK_REALLOCATE (vec[0].elements, float, NPTS, N, 2000);
     89      for (k = 0; k < catalog.average[j].Nm; k++, m++) {
     90
     91        // extract the relevant values for this measurement
     92        for (n = 0; n < Nfields; n++) {
     93          values[n] = dbExtractMeasures (&catalog.average[j], &catalog.secfilt[j*Nsecfilt], &catalog.measure[m], &fields[n]);
     94        }
     95       
     96        // test the conditional statement
     97        if (!dbBooleanCond (stack, Nstack, values)) continue;
     98        for (n = 0; n < Nreturn; n++) {
     99          vec[n][0].elements[Npts] = values[n];
     100        }
     101        Npts++;
     102        if (Npts >= NPTS) {
     103          NPTS += 2000;
     104          for (n = 0; n < Nreturn; n++) {
     105            REALLOCATE (vec[n][0].elements, float, NPTS);
     106          }
     107        }
    78108      }
    79       if (M1 != NULL) free (M1);
    80109    }
    81110    dvo_catalog_free (&catalog);
    82111  }
    83   vec[0].Nelements = N;
    84   REALLOCATE (vec[0].elements, float, MAX(1,N));
     112  for (n = 0; n < Nreturn; n++) {
     113    vec[n][0].Nelements = Npts;
     114    REALLOCATE (vec[n][0].elements, float, MAX(1,Npts));
     115  }
     116
     117  // XXX free fields and stack
    85118
    86119  FreeImageSelection ();
  • branches/kapa-mods-2007-05/Ohana/src/opihi/dvo/photometry.c

    r12730 r13454  
    174174}
    175175
     176// XXX moved to dbFields
     177# if (0)
    176178int GetMagMode (char *string) {
    177179
     
    188190  return (mode);
    189191}
     192# endif
    190193
    191194int GetMeasureParam (char *parname) {
  • branches/kapa-mods-2007-05/Ohana/src/opihi/include/dvoshell.h

    r13444 r13454  
    77
    88/* magnitude types */
    9 enum {MAG_NONE, MAG_INST, MAG_CAT, MAG_SYS, MAG_REL, MAG_CAL, MAG_AVE, MAG_REF};
     9enum {MAG_NONE, MAG_INST, MAG_CAT, MAG_SYS, MAG_REL, MAG_CAL, MAG_AVE, MAG_REF, MAG_ERR, MAG_CHISQ};
    1010
    11 /* measure params */
     11/* measure fields */
    1212enum {MEAS_ZERO, MEAS_RA, MEAS_DEC, MEAS_MAG, MEAS_dMAG, MEAS_MINST, MEAS_MCAT,
    1313      MEAS_MSYS, MEAS_MREL, MEAS_MCAL, MEAS_PHOTCODE, MEAS_TIME, MEAS_dR, MEAS_dD,
    1414      MEAS_FWHM, MEAS_DOPHOT, MEAS_XCCD, MEAS_YCCD, MEAS_XMOSAIC, MEAS_YMOSAIC, MEAS_FLAGS, MEAS_EXPTIME, MEAS_AIRMASS};
    1515
    16 /* average params */
     16/* average fields */
    1717enum {AVE_ZERO, AVE_RA, AVE_DEC, AVE_RA_ERR, AVE_DEC_ERR, AVE_U_RA, AVE_U_DEC,
    1818      AVE_U_RA_ERR, AVE_U_DEC_ERR, AVE_PAR, AVE_PAR_ERR, AVE_MAG, AVE_REF, AVE_dMAG,
     
    3030  int magMode;
    3131  PhotCode *photcode;
    32 } dvoField;
     32} dbField;
    3333
    3434// db boolean operations
     
    3838  int     field;
    3939  float   Float;
    40 } dvoStack;
     40} dbStack;
    4141
    4242typedef struct {
     
    116116int           RD_to_XYpic           PROTO((double *x, double *y, double r, double d, Coords *coords, double Rmin, double Rmax, double Rmid, int *leftside));
    117117
     118// dvo DB field functions
     119dbField     *dbCmdlineFields        PROTO((int argc, char **argv, int table, int *last, int *nfields));
     120dbStack     *dbRPN                  PROTO((int argc, char **argv, int *nstack));
     121int          dbCheckStack           PROTO((dbStack *stack, int Nstack, int table, dbField **inFields, int *Nfields));
     122int          dbBooleanCond          PROTO((dbStack *inStack, int NinStack, float *fields));
     123void         dbInitStack            PROTO((dbStack *stack));
     124void         dbFreeStack            PROTO((dbStack *stack, int Nstack));
     125void         dbFreeEntry            PROTO((dbStack *stack));
     126
     127dbStack     *dbBinary               PROTO((dbStack *V1, dbStack *V2, char *op, float *fields));
     128dbStack     *dbUnary                PROTO((dbStack *V1, char *op, float *fields));
     129
     130int          GetMagMode             PROTO((char *string));
     131PhotCode    *ParsePhotcodeField     PROTO((char *field, int *mode, int def));
     132int          ParseMeasureField      PROTO((dbField *field, char *fieldName));
     133int          ParseAverageField      PROTO((dbField *field, char *fieldName));
     134
     135double       dbExtractAverages      PROTO((Average *average, SecFilt *secfilt, Measure *measure, dbField *field));
     136double       dbExtractMeasures      PROTO((Average *average, SecFilt *secfilt, Measure *measure, dbField *field));
     137void         dbExtractMeasuresInit  PROTO(());
     138
    118139# endif
Note: See TracChangeset for help on using the changeset viewer.