Index: trunk/Ohana/src/opihi/include/dvoshell.h
===================================================================
--- trunk/Ohana/src/opihi/include/dvoshell.h	(revision 14379)
+++ trunk/Ohana/src/opihi/include/dvoshell.h	(revision 14401)
@@ -7,19 +7,103 @@
 
 /* magnitude types */
-enum {MAG_NONE, MAG_INST, MAG_CAT, MAG_SYS, MAG_REL, MAG_CAL, MAG_AVE, MAG_REF, MAG_ERR, MAG_CHISQ};
+enum {MAG_NONE, 
+      MAG_INST, 
+      MAG_CAT, 
+      MAG_SYS, 
+      MAG_REL, 
+      MAG_CAL, 
+      MAG_AVE, 
+      MAG_REF, 
+      MAG_ERR, 
+      MAG_CHISQ,
+      MAG_NCODE,
+      MAG_NPHOT,
+};
 
 /* measure fields */
-enum {MEAS_ZERO, MEAS_RA, MEAS_DEC, MEAS_MAG, MEAS_dMAG, MEAS_MINST, MEAS_MCAT, 
-      MEAS_MSYS, MEAS_MREL, MEAS_MCAL, MEAS_PHOTCODE, MEAS_TIME, MEAS_dR, MEAS_dD, 
-      MEAS_FWHM, MEAS_DOPHOT, MEAS_XCCD, MEAS_YCCD, MEAS_XMOSAIC, MEAS_YMOSAIC, 
-      MEAS_FLAGS, MEAS_EXPTIME, MEAS_AIRMASS, MEAS_RA_AVE, MEAS_DEC_AVE};
+enum {MEAS_ZERO, 
+      MEAS_RA, 
+      MEAS_DEC, 
+      MEAS_RA_AVE, 
+      MEAS_DEC_AVE,
+      MEAS_RA_AVE_ERR, 
+      MEAS_DEC_AVE_ERR, 
+      MEAS_U_RA, 
+      MEAS_U_DEC, 
+      MEAS_U_RA_ERR, 
+      MEAS_U_DEC_ERR, 
+      MEAS_PAR, 
+      MEAS_PAR_ERR, 
+      MEAS_RA_OFFSET, 
+      MEAS_DEC_OFFSET, 
+      MEAS_RA_OFFSET_ERR, 
+      MEAS_DEC_OFFSET_ERR, 
+      MEAS_XP, 
+      MEAS_NMEAS, 
+      MEAS_NMISS, 
+      MEAS_NPHOT, 
+      MEAS_NCODE, 
+      MEAS_OBJFLAGS, 
+      MEAS_MAG, 
+      MEAS_MINST, 
+      MEAS_MCAT, 
+      MEAS_MSYS, 
+      MEAS_MREL, 
+      MEAS_MCAL, 
+      MEAS_EXPTIME, 
+      MEAS_AIRMASS, 
+      MEAS_ALT, 
+      MEAS_AZ, 
+      MEAS_PHOTCODE, 
+      MEAS_TIME, 
+      MEAS_FWHM, 
+      MEAS_FWHM_MAJ, 
+      MEAS_FWHM_MIN, 
+      MEAS_THETA, 
+      MEAS_FLAGS, 
+      MEAS_XCCD, 
+      MEAS_YCCD, 
+      MEAS_XMOSAIC, 
+      MEAS_YMOSAIC, 
+      MEAS_DETID, 
+      MEAS_OBJID, 
+      MEAS_IMAGEID, 
+};
 
 /* average fields */
-enum {AVE_ZERO, AVE_RA, AVE_DEC, AVE_RA_ERR, AVE_DEC_ERR, AVE_U_RA, AVE_U_DEC, 
-      AVE_U_RA_ERR, AVE_U_DEC_ERR, AVE_PAR, AVE_PAR_ERR, AVE_MAG, AVE_REF, AVE_dMAG, 
-      AVE_Xm, AVE_Xp, AVE_NMEAS, AVE_NMISS, AVE_TYPE, AVE_NPHOT, AVE_NCODE, AVE_NCRIT, 
-      AVE_FLAG, AVE_TYPEFRAC};
+enum {AVE_ZERO, 
+      AVE_RA, 
+      AVE_DEC, 
+      AVE_RA_ERR, 
+      AVE_DEC_ERR, 
+      AVE_U_RA, 
+      AVE_U_DEC, 
+      AVE_U_RA_ERR, 
+      AVE_U_DEC_ERR, 
+      AVE_PAR, 
+      AVE_PAR_ERR, 
+      AVE_Xp, 
+      AVE_NMEAS, 
+      AVE_NMISS, 
+      AVE_NPHOT, 
+      AVE_NCODE, 
+      AVE_MAG, 
+      AVE_dMAG, 
+      AVE_Xm, 
+      AVE_FLAG, 
+      AVE_TYPE, 
+      AVE_TYPEFRAC,
+      AVE_OBJID
+};
 
 enum {DVO_TABLE_AVERAGE, DVO_TABLE_MEASURE};
+
+// options for selecting the ra,dec limits of the db selections
+typedef struct {
+  char *name;
+  char *list;
+  int useDisplay;
+  int useSkyregion;
+} SkyRegionSelection;
 
 // a single db field 
@@ -91,5 +175,5 @@
 int           SelectMags            PROTO((int Nphot, int Tphot, int Ns, Average *average, Measure *measure, SecFilt *secfilt, int UL));
 
-SkyList      *SelectRegions         PROTO((char *RegionName, char *RegionList));
+SkyList      *SelectRegions         PROTO((SkyRegionSelection *selection));
 SkyList      *SkyListLoadFile       PROTO((char *filename));
 int           SetCATDIR             PROTO((char *path, int verbose));
@@ -97,7 +181,7 @@
 SkyTable     *GetSkyTable           PROTO(());
 SkyList      *SkyListFromFile       PROTO((char *filename));
-int           SetRegionSelection    PROTO((int *argc, char **argv, char **RegionName, char **RegionList));
-
-int           SetImageSelection     PROTO((int mode, int RegionSelect));
+SkyRegionSelection *SetRegionSelection    PROTO((int *argc, char **argv));
+
+int           SetImageSelection     PROTO((int mode, SkyRegionSelection *selection));
 int           SetPhotSelections     PROTO((int *argc, char **argv, int Nparams));
 int           SetSelectionParam     PROTO((int param));
@@ -106,5 +190,5 @@
 void          compare               PROTO((Catalog *catlog1, Catalog *catlog2, Vector *rvec,  Vector *dvec,  Vector *mvec, Vector *drvec, Vector *ddvec, Vector *dmvec, double radius));
 void          cprecess              PROTO((Average *average, int Naverage, double in_epoch, double out_epoch));
-void          image_subset          PROTO((Image *image, int Nimage, int **Subset, int *Nsubset, Graphdata *graph, int RegionSelect, unsigned long int tzero, double trange, int TimeSelect));
+void          image_subset          PROTO((Image *image, int Nimage, int **Subset, int *Nsubset, SkyRegionSelection *selection, unsigned long int tzero, double trange, int TimeSelect));
 int           match_image           PROTO((Image *image, int Nimage, unsigned int T, short int S));
 int           match_image_subset    PROTO((Image *image, int *subset, int Nsubset, unsigned int T, short int S));
@@ -140,4 +224,6 @@
 void 	     dbInitField            PROTO((dbField *field));
 void 	     dbFreeFields           PROTO((dbField *fields, int Nfields));
+int          dbAstroRegionLimits    PROTO((dbStack **stack, int *nstack, SkyRegionSelection *selection, int table));
+char        *strfloat               PROTO((float value));
 
 # endif
