IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 20862


Ignore:
Timestamp:
Dec 1, 2008, 4:25:00 AM (17 years ago)
Author:
eugene
Message:

finish imextract conversion to SQL style syntax

Location:
branches/eam_branch_20081124/Ohana/src/opihi
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branch_20081124/Ohana/src/opihi/dvo/Makefile

    r20857 r20862  
    3535$(SRC)/dbExtractAverages.$(ARCH).o      \
    3636$(SRC)/dbExtractMeasures.$(ARCH).o      \
     37$(SRC)/dbExtractImages.$(ARCH).o        \
    3738$(SRC)/dbFields.$(ARCH).o               \
    3839$(SRC)/dbRPN.$(ARCH).o                  \
  • branches/eam_branch_20081124/Ohana/src/opihi/dvo/avextract.c

    r20860 r20862  
    66  int Nsecfilt, mode, VERBOSE;
    77  char **cstack, name[1024];
     8  void *Signal;
     9
     10  Catalog catalog;
     11
     12  Vector **vec;
     13  PhotCode *code;
     14  dbStack *stack;
     15  dbField *fields;
    816  dbValue *values;
    9   void *Signal;
    10 
    11   Catalog catalog;
    1217  SkyList *skylist;
    1318  SkyRegionSelection *selection;
    14   PhotCode *code;
    15   Vector **vec;
    16   dbField *fields;
    17   dbStack *stack;
    1819
    1920  /* defaults */
     21  vec = NULL;
     22  code = NULL;
     23  stack = NULL;
     24  fields = NULL;
     25  values = NULL;
    2026  skylist = NULL;
    2127  selection = NULL;
    22   code = NULL;
     28
    2329  mode = MAG_AVE;
    24   fields = NULL;
    25   stack = NULL;
    2630
    2731  if ((N = get_argument (argc, argv, "-h"))) goto help;
     
    6670  Nreturn = Nfields;
    6771  if (!dbCheckStack (stack, Nstack, DVO_TABLE_AVERAGE, &fields, &Nfields)) goto escape;
    68   // XXX handle errors
    6972
    7073  /* load region corresponding to selection above */
     
    8184    }
    8285    if ((vec[i] = SelectVector (name, ANYVECTOR, TRUE)) == NULL) goto escape;
     86    ResetVector (vec[i], fields[i].type, NPTS);
    8387  }
    8488
     
    109113
    110114      m = catalog.average[j].measureOffset;
    111       dbExtractAveragesInit (); // reset counters for saved fields
     115
     116      // reset counters for saved fields, extract fields
     117      dbExtractAveragesInit ();
    112118      for (n = 0; n < Nfields; n++) {
    113119        values[n] = dbExtractAverages (&catalog.average[j], &catalog.secfilt[j*Nsecfilt], &catalog.measure[m], &fields[n]);
    114120      }
     121
    115122      // test the conditional statement
    116123      if (!dbBooleanCond (stack, Nstack, values)) continue;
     
    126133        NPTS += 2000;
    127134        for (n = 0; n < Nreturn; n++) {
    128           REALLOCATE (vec[n][0].elements.Flt, opihi_flt, NPTS);
     135          if (vec[n][0].type == OPIHI_FLT) {
     136            REALLOCATE (vec[n][0].elements.Flt, opihi_flt, NPTS);
     137          } else {
     138            REALLOCATE (vec[n][0].elements.Int, opihi_int, NPTS);
     139          }
    129140        }
    130141      }
     
    136147  for (n = 0; n < Nreturn; n++) {
    137148    vec[n][0].Nelements = Npts;
    138     REALLOCATE (vec[n][0].elements.Flt, opihi_flt, MAX(1,Npts));
    139   }
    140 
    141   free (values);
     149    if (vec[n][0].type == OPIHI_FLT) {
     150      REALLOCATE (vec[n][0].elements.Flt, opihi_flt, MAX(1,Npts));
     151    } else {
     152      REALLOCATE (vec[n][0].elements.Int, opihi_int, MAX(1,Npts));
     153    }
     154  }
     155
     156  if (vec) free (vec);
     157  if (values) free (values);
    142158  dbFreeFields (fields, Nfields);
    143159  dbFreeStack (stack, Nstack);
    144   free (stack);
     160  if (stack) free (stack);
    145161  SkyListFree (skylist);
    146162  FreeSkyRegionSelection (selection);
     
    148164
    149165 escape:
    150   free (values);
     166  if (vec) free (vec);
     167  if (values) free (values);
    151168  dbFreeFields (fields, Nfields);
    152169  dbFreeStack (stack, Nstack);
    153   free (stack);
     170  if (stack) free (stack);
    154171  SkyListFree (skylist);
    155172  FreeSkyRegionSelection (selection);
  • branches/eam_branch_20081124/Ohana/src/opihi/dvo/dbExtractImages.c

    r20861 r20862  
    11# include "dvoshell.h"
     2
     3/* time concepts */
     4static time_t TimeReference;
     5static int TimeFormat;
    26
    37static CoordTransform *celestial_to_galactic = NULL;
     
    1115static double ELON = 0.0;
    1216static double ELAT = 0.0;
     17
     18static int haveCelestial = FALSE;
     19static double RAo = 0.0;
     20static double DECo = 0.0;
    1321
    1422// define a locally-static transform
     
    3442
    3543int dbExtractImagesInit () {
    36   haveGalactic = FALSE;
    37   haveEcliptic = FALSE;
     44  GetTimeFormat (&TimeReference, &TimeFormat);
    3845  return (TRUE);
    3946}
    4047
     48int dbExtractImagesReset () {
     49  haveGalactic  = FALSE;
     50  haveEcliptic  = FALSE;
     51  haveCelestial = FALSE;
     52  return (TRUE);
     53}
     54
    4155/* return image.field based on the selection */
    42 dbValue dbExtractImages (Image *image, dbField *field) {
    43 
     56dbValue dbExtractImages (Image *image, int Nimage, int N, dbField *field) {
     57
     58  double x, y;
     59  time_t t;
    4460  int i, Nsec;
    4561  dbValue value;
     
    5167  switch (field->ID) {
    5268    case IMAGE_RA:
    53       XXX : need a better implementation of this...
    54         if (!FindMosaicForImage (image, Nimage, j)) continue;
    55       x = 0.5*image[0].NX;
    56       y = 0.5*image[0].NY;
    57       XY_to_RD (&ra, &dec, x, y, &image[0].coords);
    58       value.Flt = ra;
     69      if (!haveCelestial) {
     70        if (!FindMosaicForImage (image, Nimage, N)) return value;
     71        x = 0.5*image[N].NX;
     72        y = 0.5*image[N].NY;
     73        XY_to_RD (&RAo, &DECo, x, y, &image[N].coords);
     74        haveCelestial = TRUE;
     75      }
     76      value.Flt = RAo;
    5977      break;
    6078    case IMAGE_DEC:
    61       if (!FindMosaicForImage (image, Nimage, j)) continue;
    62       x = 0.5*image[0].NX;
    63       y = 0.5*image[0].NY;
    64       XY_to_RD (&ra, &dec, x, y, &image[0].coords);
    65       value.Flt = dec;
     79      if (!haveCelestial) {
     80        if (!FindMosaicForImage (image, Nimage, N)) return value;
     81        x = 0.5*image[N].NX;
     82        y = 0.5*image[N].NY;
     83        XY_to_RD (&RAo, &DECo, x, y, &image[N].coords);
     84        haveCelestial = TRUE;
     85      }
     86      value.Flt = DECo;
    6687      break;
    6788    case IMAGE_GLON:
    6889      if (!haveGalactic) {
     90        if (!haveCelestial) {
     91          if (!FindMosaicForImage (image, Nimage, N)) return value;
     92          x = 0.5*image[N].NX;
     93          y = 0.5*image[N].NY;
     94          XY_to_RD (&RAo, &DECo, x, y, &image[N].coords);
     95          haveCelestial = TRUE;
     96        }
    6997        ApplyTransform (&GLON, &GLAT, RAo, DECo, celestial_to_galactic);
    7098        haveGalactic = TRUE;
     
    74102    case IMAGE_GLAT:
    75103      if (!haveGalactic) {
     104        if (!haveCelestial) {
     105          if (!FindMosaicForImage (image, Nimage, N)) return value;
     106          x = 0.5*image[N].NX;
     107          y = 0.5*image[N].NY;
     108          XY_to_RD (&RAo, &DECo, x, y, &image[N].coords);
     109          haveCelestial = TRUE;
     110        }
    76111        ApplyTransform (&GLON, &GLAT, RAo, DECo, celestial_to_galactic);
    77112        haveGalactic = TRUE;
     
    81116    case IMAGE_ELON:
    82117      if (!haveEcliptic) {
     118        if (!haveCelestial) {
     119          if (!FindMosaicForImage (image, Nimage, N)) return value;
     120          x = 0.5*image[N].NX;
     121          y = 0.5*image[N].NY;
     122          XY_to_RD (&RAo, &DECo, x, y, &image[N].coords);
     123          haveCelestial = TRUE;
     124        }
    83125        ApplyTransform (&ELON, &ELAT, RAo, DECo, celestial_to_ecliptic);
    84126        haveEcliptic = TRUE;
     
    88130    case IMAGE_ELAT:
    89131      if (!haveEcliptic) {
     132        if (!haveCelestial) {
     133          if (!FindMosaicForImage (image, Nimage, N)) return value;
     134          x = 0.5*image[N].NX;
     135          y = 0.5*image[N].NY;
     136          XY_to_RD (&RAo, &DECo, x, y, &image[N].coords);
     137          haveCelestial = TRUE;
     138        }
    90139        ApplyTransform (&ELON, &ELAT, RAo, DECo, celestial_to_ecliptic);
    91140        haveEcliptic = TRUE;
     
    93142      value.Flt = ELAT;
    94143      break;
    95     case IMAGE_Xm:
    96       value.Flt = pow(10.0, 0.01*image[0].Xm);
     144    case IMAGE_XM:
     145      value.Flt = pow(10.0, 0.01*image[N].Xm);
    97146      break;
    98147    case IMAGE_AIRMASS:
    99       value.Flt = image[0].secz;
     148      value.Flt = image[N].secz;
    100149      break;
    101150    case IMAGE_MCAL:
    102       value.Flt = image[0].Mcal;
     151      value.Flt = image[N].Mcal;
    103152      break;
    104153    case IMAGE_dMCAL:
    105       value.Flt = image[0].dMcal;
     154      value.Flt = image[N].dMcal;
    106155      break;
    107156    case IMAGE_PHOTCODE:
    108       value.Flt = image[0].photcode;
     157      value.Flt = image[N].photcode;
    109158      break;
    110159    case IMAGE_TIME:
    111       t = image[0].tzero + 0.5*image[0].NY * image[0].trate / 10000;
     160      t = image[N].tzero + 0.5*image[N].NY * image[N].trate / 10000;
    112161      value.Flt = TimeValue (t, TimeReference, TimeFormat);
    113162      break;
    114163    case IMAGE_FWHM:
    115       value.Flt = image[0].fwhm_x / 25.0;
     164      value.Flt = image[N].fwhm_x / 25.0;
    116165      break;
    117166    case IMAGE_EXPTIME:
    118       value.Flt = image[0].exptime;
     167      value.Flt = image[N].exptime;
    119168      break;
    120169    case IMAGE_NSTAR:
    121       value.Flt = image[0].nstar;
     170      value.Flt = image[N].nstar;
    122171      break;
    123172    case IMAGE_NCAL:
    124       value.Flt = image[0].Mxxxx;
     173      value.Flt = image[N].Mxxxx;
    125174      break;
    126175    case IMAGE_SKY:
    127       value.Flt = image[0].Myyyy + 0x8000;
     176      value.Flt = image[N].Myyyy + 0x8000;
    128177      break;
    129178    case IMAGE_FLAG:
    130       value.Flt = image[0].code;
     179      value.Flt = image[N].code;
    131180      break;
    132181    case IMAGE_NX_PIX:
    133       value.Flt = image[0].NX;
     182      value.Flt = image[N].NX;
    134183      break;
    135184    case IMAGE_NY_PIX:
    136       value.Flt = image[0].NY;
     185      value.Flt = image[N].NY;
    137186      break;
    138187    case IMAGE_IMAGE_ID:
    139       value.Flt = image[0].imageID;
     188      value.Flt = image[N].imageID;
    140189      break;
    141190    case IMAGE_THETA: {
    142191      double theta1, theta2, s1, s2;
    143       s1 = SIGN(image[0].coords.pc1_1);
    144       s2 = SIGN(image[0].coords.pc2_2);
    145       theta1 = DEG_RAD*atan2 (+s1*image[0].coords.pc1_2, s1*image[0].coords.pc1_1);
    146       theta2 = DEG_RAD*atan2 (-s2*image[0].coords.pc2_1, s2*image[0].coords.pc2_2);
     192      s1 = SIGN(image[N].coords.pc1_1);
     193      s2 = SIGN(image[N].coords.pc2_2);
     194      theta1 = DEG_RAD*atan2 (+s1*image[N].coords.pc1_2, s1*image[N].coords.pc1_1);
     195      theta2 = DEG_RAD*atan2 (-s2*image[N].coords.pc2_1, s2*image[N].coords.pc2_2);
    147196      value.Flt = 0.5*(theta1+theta2);
    148197      break; }
    149198    case IMAGE_SKEW: {
    150199      double theta1, theta2, s1, s2;
    151       s1 = SIGN(image[0].coords.pc1_1);
    152       s2 = SIGN(image[0].coords.pc2_2);
    153       theta1 = DEG_RAD*atan2 (+s1*image[0].coords.pc1_2, s1*image[0].coords.pc1_1);
    154       theta2 = DEG_RAD*atan2 (-s2*image[0].coords.pc2_1, s2*image[0].coords.pc2_2);
     200      s1 = SIGN(image[N].coords.pc1_1);
     201      s2 = SIGN(image[N].coords.pc2_2);
     202      theta1 = DEG_RAD*atan2 (+s1*image[N].coords.pc1_2, s1*image[N].coords.pc1_1);
     203      theta2 = DEG_RAD*atan2 (-s2*image[N].coords.pc2_1, s2*image[N].coords.pc2_2);
    155204      value.Flt = (theta1-theta2);
    156205      break; }
    157206    case IMAGE_SCALE: {
    158207      double scale1, scale2;
    159       scale1 = fabs(image[0].coords.cdelt1);
    160       scale2 = fabs(image[0].coords.cdelt2);
     208      scale1 = fabs(image[N].coords.cdelt1);
     209      scale2 = fabs(image[N].coords.cdelt2);
    161210      value.Flt = 0.5*(scale1+scale2);
    162211      break; }
    163212    case IMAGE_DSCALE: {
    164213      double scale1, scale2;
    165       scale1 = fabs(image[0].coords.cdelt1);
    166       scale2 = fabs(image[0].coords.cdelt2);
     214      scale1 = fabs(image[N].coords.cdelt1);
     215      scale2 = fabs(image[N].coords.cdelt2);
    167216      value.Flt = (scale1-scale2);
    168217      break; }
     
    177226    case IMAGE_X_LR_CHIP:
    178227    case IMAGE_X_UR_CHIP:
    179       value.Flt = image[0].NX;
     228      value.Flt = image[N].NX;
    180229      break;
    181230    case IMAGE_Y_UL_CHIP:
    182231    case IMAGE_Y_UR_CHIP:
    183       value.Flt = image[0].NX;
     232      value.Flt = image[N].NX;
    184233      break;
    185234
    186235    case IMAGE_X_LL_FP:
    187236    case IMAGE_Y_LL_FP:
    188       XY_to_LM (&x, &y, 0.0, 0.0, &image[0].coords);
    189       value.Flt = (mode == X_LL_FP) ? x : y;
     237      XY_to_LM (&x, &y, 0.0, 0.0, &image[N].coords);
     238      value.Flt = (field->ID == IMAGE_X_LL_FP) ? x : y;
    190239      break;
    191240    case IMAGE_X_LR_FP:
    192241    case IMAGE_Y_LR_FP:
    193       XY_to_LM (&x, &y, image[0].NX, 0.0, &image[0].coords);
    194       value.Flt = (mode == X_LR_FP) ? x : y;
     242      XY_to_LM (&x, &y, image[N].NX, 0.0, &image[N].coords);
     243      value.Flt = (field->ID == IMAGE_X_LR_FP) ? x : y;
    195244      break;
    196245    case IMAGE_X_UL_FP:
    197246    case IMAGE_Y_UL_FP:
    198       XY_to_LM (&x, &y, 0.0, image[0].NY, &image[0].coords);
    199       value.Flt = (mode == X_UL_FP) ? x : y;
     247      XY_to_LM (&x, &y, 0.0, image[N].NY, &image[N].coords);
     248      value.Flt = (field->ID == IMAGE_X_UL_FP) ? x : y;
    200249      break;
    201250    case IMAGE_X_UR_FP:
    202251    case IMAGE_Y_UR_FP:
    203       XY_to_LM (&x, &y, image[0].NX, image[0].NY, &image[0].coords);
    204       value.Flt = (mode == X_UR_FP) ? x : y;
     252      XY_to_LM (&x, &y, image[N].NX, image[N].NY, &image[N].coords);
     253      value.Flt = (field->ID == IMAGE_X_UR_FP) ? x : y;
    205254      break;
    206255  }
  • branches/eam_branch_20081124/Ohana/src/opihi/dvo/dbExtractMeasures.c

    r20857 r20862  
    3131static double ELAT_MEAS = 0.0;
    3232
    33 void dbExtractMeasuresInit () {
     33int dbExtractMeasuresInit () {
    3434  TimeRefPM = ohana_date_to_sec ("2000/01/01");
    3535  GetTimeFormat (&TimeReference, &TimeFormat);
     36  return (TRUE);
    3637}
    3738
  • branches/eam_branch_20081124/Ohana/src/opihi/dvo/imextract.c

    r20861 r20862  
    33int imextract (int argc, char **argv) {
    44 
    5   int i, j, Nimage, mode, N, PhotcodeSelect;
    6   int TimeSelect, *subset, Nsubset, TimeFormat, FlagSelect, FlagValue;
    7   double x, y, ra, dec, t, trange;
    8   time_t tzero, TimeReference;
     5  // int *subset, Nsubset;  -- not sure if we need to use this or not...
     6
     7  int i, j, n, m, N, Npts, NPTS, last, next, state, Nfields, Nreturn, Ncstack, Nstack;
     8  int Nimage, VERBOSE;
     9  char **cstack, name[1024];
     10  void *Signal;
     11
     12  Vector **vec;
     13  Image *image;
     14  dbStack *stack;
     15  dbField *fields;
     16  dbValue *values;
    917  SkyRegionSelection *selection;
    1018
    11   PhotCode *code;
    12   Image *image;
    13   Vector *vec;
     19  /* defaults */
     20  vec = NULL;
     21  image = NULL;
     22  stack = NULL;
     23  fields = NULL;
     24  values = NULL;
     25  selection = NULL;
    1426
    1527  if ((N = get_argument (argc, argv, "-h"))) goto help;
     
    3042  }
    3143
    32   // command-line is of the form: avextract field,field, field [where (field op value)...]
     44  // command-line is of the form: imextract field,field, field [where (field op value)...]
    3345
    3446  // parse the fields to be extracted and returned
     
    4860
    4961  // add the skyregion limits to the where statement (or create)
     62  // XXX we may want to drop this and use just the image_subset function
    5063  dbAstroRegionLimits (&stack, &Nstack, selection, DVO_TABLE_IMAGE);
    5164
     
    6477    }
    6578    if ((vec[i] = SelectVector (name, ANYVECTOR, TRUE)) == NULL) goto escape;
     79    ResetVector (vec[i], fields[i].type, NPTS);
    6680  }
    6781
     
    6983  NPTS = 1;
    7084
     85  if ((image = LoadImages (&Nimage)) == NULL) goto escape;
     86  BuildChipMatch (image, Nimage);
     87  dbExtractImagesInit ();
     88
     89  // XXX do I need to use this, or the region portion
     90  // image_subset (image, Nimage, &subset, &Nsubset, selection, tzero, trange, TimeSelect);
     91
    7192  // grab data from all selected sky regions
    7293  Signal = signal (SIGINT, handle_interrupt);
    7394  interrupt = FALSE;
    74 
    75   if ((image = LoadImages (&Nimage)) == NULL) return (FALSE);
    76 
    77   // XXX do I need to use this, or the region portion
    78   image_subset (image, Nimage, &subset, &Nsubset, selection, tzero, trange, TimeSelect);
    79   if ((mode == RA) || (mode == DEC)) BuildChipMatch (image, Nimage);
    80 
    81   GetTimeFormat (&TimeReference, &TimeFormat);
    82 
    83   /* create storage vector */
    84   ResetVector (vec, OPIHI_FLT, Nimage);
    85  
    8695  for (j = 0; (j < Nimage) && !interrupt; j++) {
    8796
    88     dbExtractImagesInit (); // reset counters for saved fields
     97    // reset counters for saved fields, extract fields
     98    dbExtractImagesReset ();
    8999    for (n = 0; n < Nfields; n++) {
    90       values[n] = dbExtractImages (&image[j], &fields[n]);
     100      values[n] = dbExtractImages (image, Nimage, j, &fields[n]);
    91101    }
     102
    92103    // test the conditional statement
    93104    if (!dbBooleanCond (stack, Nstack, values)) continue;
     
    103114      NPTS += 2000;
    104115      for (n = 0; n < Nreturn; n++) {
    105         REALLOCATE (vec[n][0].elements.Flt, opihi_flt, NPTS);
     116        if (vec[n][0].type == OPIHI_FLT) {
     117          REALLOCATE (vec[n][0].elements.Flt, opihi_flt, NPTS);
     118        } else {
     119          REALLOCATE (vec[n][0].elements.Int, opihi_int, NPTS);
     120        }
    106121      }
    107122    }
     
    111126  for (n = 0; n < Nreturn; n++) {
    112127    vec[n][0].Nelements = Npts;
    113     REALLOCATE (vec[n][0].elements.Flt, opihi_flt, MAX(1,Npts));
     128    if (vec[n][0].type == OPIHI_FLT) {
     129      REALLOCATE (vec[n][0].elements.Flt, opihi_flt, MAX(1,Npts));
     130    } else {
     131      REALLOCATE (vec[n][0].elements.Int, opihi_int, MAX(1,Npts));
     132    }
    114133  }
    115134
    116   free (subset);
     135  // free (subset);
    117136  free (image);
     137
     138  if (vec) free (vec);
     139  if (values) free (values);
     140  dbFreeFields (fields, Nfields);
     141  dbFreeStack (stack, Nstack);
     142  if (stack) free (stack);
    118143  return (TRUE);
    119144 
    120145 escape:
     146  if (vec) free (vec);
     147  if (values) free (values);
     148  dbFreeFields (fields, Nfields);
     149  dbFreeStack (stack, Nstack);
     150  if (stack) free (stack);
    121151  return (FALSE);
    122152
     
    130160    return (FALSE);
    131161  }
    132   gprint (GP_ERR, " avextract --help fields : for a complete listing of allowed fields\n");
     162  gprint (GP_ERR, " imextract --help fields : for a complete listing of allowed fields\n");
    133163  return (FALSE);
    134164}
  • branches/eam_branch_20081124/Ohana/src/opihi/include/dvoshell.h

    r20861 r20862  
    138138      IMAGE_RA,
    139139      IMAGE_DEC,
    140       IMAGE_Xm,
     140      IMAGE_GLON,
     141      IMAGE_GLAT,
     142      IMAGE_ELON,
     143      IMAGE_ELAT,
     144      IMAGE_XM,
    141145      IMAGE_AIRMASS,
    142146      IMAGE_MCAL,
     
    175179};
    176180
    177 enum {DVO_TABLE_AVERAGE, DVO_TABLE_MEASURE};
     181enum {DVO_TABLE_AVERAGE, DVO_TABLE_MEASURE, DVO_TABLE_IMAGE};
    178182enum {DVO_DB_CMDLINE_ERROR, DVO_DB_CMDLINE_IS_END, DVO_DB_CMDLINE_IS_WHERE, DVO_DB_CMDLINE_IS_MATCH};
    179183
     
    308312dbValue      dbExtractAverages      PROTO((Average *average, SecFilt *secfilt, Measure *measure, dbField *field));
    309313dbValue      dbExtractMeasures      PROTO((Average *average, SecFilt *secfilt, Measure *measure, dbField *field));
    310 void         dbExtractMeasuresInit  PROTO(());
     314dbValue      dbExtractImages        PROTO((Image *image, int Nimage, int N, dbField *field));
    311315
    312316void         dbInitField            PROTO((dbField *field));
     
    322326int wordhash (char *word);
    323327
    324 int dbExtractAverageInitTransform (CoordTransformSystem target);
    325 int dbExtractAverageInit ();
    326 
    327328int dbExtractMeasuresInitTransform (CoordTransformSystem target);
    328329int dbExtractMeasuresInitAve ();
    329330int dbExtractMeasuresInitMeas ();
     331int dbExtractMeasuresInit ();
    330332
    331333int dbExtractAveragesInitTransform (CoordTransformSystem target);
    332334int dbExtractAveragesInit ();
    333335
     336int dbExtractImagesInitTransform (CoordTransformSystem target);
     337int dbExtractImagesInit ();
     338int dbExtractImagesReset ();
     339
    334340# endif
Note: See TracChangeset for help on using the changeset viewer.