Index: trunk/Ohana/src/libautocode/def/average.d
===================================================================
--- trunk/Ohana/src/libautocode/def/average.d	(revision 38600)
+++ trunk/Ohana/src/libautocode/def/average.d	(revision 38601)
@@ -41,5 +41,5 @@
 FIELD Nlensing,       NLENSING,    unsigned short,  number of lensing measurements
 FIELD Nlensobj,       NLENSOBJ,    unsigned short,  number of lensing measurements
-FIELD Ngalphot,      NGALPHOT,   unsigned short,  number of galphot measurements
+FIELD Ngalphot,       NGALPHOT,    unsigned short,  number of galphot measurements
 
 FIELD measureOffset,  OFF_MEASURE,  int,             offset to first psf measurement
@@ -48,5 +48,5 @@
 FIELD lensobjOffset,  OFF_LENSOBJ,  int,   	    offset to mean lensing data
 FIELD starparOffset,  OFF_STARPAR,  int,   	    offset to stellar parameter data
-FIELD galphotOffset, OFF_GALPHOT, int,   	    offset to extended object entry
+FIELD galphotOffset,  OFF_GALPHOT,  int,   	    offset to extended object entry
 
 FIELD refColorBlue,   REF_COLOR_BLUE, float,   	    color of astrometry ref stars
Index: trunk/Ohana/src/libdvo/include/dvodb.h
===================================================================
--- trunk/Ohana/src/libdvo/include/dvodb.h	(revision 38600)
+++ trunk/Ohana/src/libdvo/include/dvodb.h	(revision 38601)
@@ -315,5 +315,5 @@
       AVE_GAL_CHISQ,
       AVE_GAL_NPIX,
-      AVE_GAL_TYPE,
+      AVE_GAL_TYPE,        
       AVE_E_BV,		      // extinction (mags)
       AVE_E_BV_ERR,
@@ -495,5 +495,5 @@
 int          ParseImageField        PROTO((dbField *field, char *fieldName));
 
-dbValue      dbExtractAverages      PROTO((Average *average, SecFilt *secfilt, Measure *measure, Lensobj *lensobj, StarPar *starpar, dbField *field));
+dbValue      dbExtractAverages      PROTO((Average *average, SecFilt *secfilt, Measure *measure, Lensobj *lensobj, StarPar *starpar, GalPhot *galphot, dbField *field));
 dbValue      dbExtractMeasures      PROTO((Average *average, SecFilt *secfilt, Measure *measure, Lensing *lensing, StarPar *starpar, dbField *field));
 dbValue      dbExtractImages        PROTO((Image *image, off_t Nimage, off_t N, dbField *field));
@@ -508,4 +508,5 @@
 int dbFieldNeedLensing (dbField *fields, int Nfields);
 int dbFieldNeedStarpar (dbField *fields, int Nfields, int isAverage);
+int dbFieldNeedGalphot (dbField *fields, int Nfields);
 
 void FreeImageSelection (void);
Index: trunk/Ohana/src/libdvo/src/dbExtractAverages.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dbExtractAverages.c	(revision 38600)
+++ trunk/Ohana/src/libdvo/src/dbExtractAverages.c	(revision 38601)
@@ -50,5 +50,5 @@
 
 /* return average.field based on the selection */
-dbValue dbExtractAverages (Average *average, SecFilt *secfilt, Measure *measure, Lensobj *lensobj, StarPar *starpar, dbField *field) {
+dbValue dbExtractAverages (Average *average, SecFilt *secfilt, Measure *measure, Lensobj *lensobj, StarPar *starpar, GalPhot *galphot, dbField *field) {
 
   // off_t i;
@@ -413,4 +413,5 @@
       break;
 
+      // this section assumes a 1-to-1 match between average and starpar
     case AVE_E_BV:             { value.Flt = starpar->Ebv;      break; }
     case AVE_E_BV_ERR:         { value.Flt = starpar->dEbv;     break; }
@@ -426,4 +427,17 @@
     case AVE_DEC_GALMODEL:     { value.Flt = starpar->D;        break; }
 
+    case AVE_GAL_MAG:          { value.Flt = NAN;               break; }
+    case AVE_GAL_MAG_ERR:      { value.Flt = NAN;               break; }
+    case AVE_GAL_MAJ:          { value.Flt = NAN;               break; }
+    case AVE_GAL_MAJ_ERR:      { value.Flt = NAN;               break; }
+    case AVE_GAL_MIN:          { value.Flt = NAN;               break; }
+    case AVE_GAL_MIN_ERR:      { value.Flt = NAN;               break; }
+    case AVE_GAL_THETA:        { value.Flt = NAN;               break; }
+    case AVE_GAL_THETA_ERR:    { value.Flt = NAN;               break; }
+    case AVE_GAL_INDEX:        { value.Flt = NAN;               break; }
+    case AVE_GAL_CHISQ:        { value.Flt = NAN;               break; }
+    case AVE_GAL_NPIX:         { value.Flt = NAN;               break; }
+    case AVE_GAL_TYPE:         { value.Flt = NAN;               break; }
+
     case AVE_TYPE:
       break;
Index: trunk/Ohana/src/libdvo/src/dbFields.c
===================================================================
--- trunk/Ohana/src/libdvo/src/dbFields.c	(revision 38600)
+++ trunk/Ohana/src/libdvo/src/dbFields.c	(revision 38601)
@@ -161,22 +161,21 @@
 }
 
-int dbFieldNeedStarpar (dbField *fields, int Nfields, int isAverage) {
+int dbFieldNeedGalphot (dbField *fields, int Nfields) {
   int i;
   for (i = 0; i < Nfields; i++) {
-    if (isAverage) {
-      if (fields[i].ID == AVE_E_BV)             return TRUE;
-      if (fields[i].ID == AVE_E_BV_ERR)         return TRUE;
-      if (fields[i].ID == AVE_DISTANCE_MOD)     return TRUE;
-      if (fields[i].ID == AVE_DISTANCE_MOD_ERR) return TRUE;
-      if (fields[i].ID == AVE_M_R)              return TRUE;
-      if (fields[i].ID == AVE_M_R_ERR)          return TRUE;
-      if (fields[i].ID == AVE_FEH)              return TRUE;
-      if (fields[i].ID == AVE_FEH_ERR)          return TRUE;
-      if (fields[i].ID == AVE_URA_GALMODEL)     return TRUE;
-      if (fields[i].ID == AVE_UDEC_GALMODEL)    return TRUE;
-      if (fields[i].ID == AVE_RA_GALMODEL)      return TRUE;
-      if (fields[i].ID == AVE_DEC_GALMODEL)     return TRUE;
-    }
-  }
+    if (fields[i].ID == AVE_GAL_MAG         ) return TRUE;
+    if (fields[i].ID == AVE_GAL_MAG_ERR     ) return TRUE;
+    if (fields[i].ID == AVE_GAL_MAJ         ) return TRUE;
+    if (fields[i].ID == AVE_GAL_MAJ_ERR     ) return TRUE;
+    if (fields[i].ID == AVE_GAL_MIN         ) return TRUE;
+    if (fields[i].ID == AVE_GAL_MIN_ERR     ) return TRUE;
+    if (fields[i].ID == AVE_GAL_THETA       ) return TRUE;
+    if (fields[i].ID == AVE_GAL_THETA_ERR   ) return TRUE;
+    if (fields[i].ID == AVE_GAL_INDEX       ) return TRUE;
+    if (fields[i].ID == AVE_GAL_CHISQ       ) return TRUE;
+    if (fields[i].ID == AVE_GAL_NPIX        ) return TRUE;
+    if (fields[i].ID == AVE_GAL_TYPE        ) return TRUE;
+  }
+  return FALSE;
 }
 
Index: trunk/Ohana/src/opihi/dvo/avextract.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/avextract.c	(revision 38600)
+++ trunk/Ohana/src/opihi/dvo/avextract.c	(revision 38601)
@@ -167,5 +167,5 @@
   int needLensobj = dbFieldNeedLensobj (fields, Nfields);
   int needStarpar = dbFieldNeedStarpar (fields, Nfields, TRUE);
-  int needGalphot = dbFieldNeedGalphot (fields, Nfields, TRUE);
+  int needGalphot = dbFieldNeedGalphot (fields, Nfields);
 
   // grab data from all selected sky regions
@@ -192,4 +192,5 @@
     catalog.catflags |= needLensobj ? DVO_LOAD_LENSOBJ : DVO_SKIP_LENSOBJ;
     catalog.catflags |= needStarpar ? DVO_LOAD_STARPAR : DVO_SKIP_STARPAR;
+    catalog.catflags |= needGalphot ? DVO_LOAD_GALPHOT : DVO_SKIP_GALPHOT;
     catalog.Nsecfilt = 0;
 
@@ -220,4 +221,7 @@
       StarPar *starpar = needStarpar ? &catalog.starpar[m] : NULL;
 
+      m = average->galphotOffset;
+      GalPhot *galphot = needGalphot ? &catalog.galphot[m] : NULL;
+
       m = j*Nsecfilt;
       SecFilt *secfilt = &catalog.secfilt[m];
@@ -225,5 +229,5 @@
       for (n = 0; n < Nfields; n++) {
 	// we are passing in the *first* measure, but average->Nmeasure gives the count
-	values[n] = dbExtractAverages (average, secfilt, measure, lensobj, starpar, &fields[n]);
+	values[n] = dbExtractAverages (average, secfilt, measure, lensobj, starpar, galphot, &fields[n]);
       }
 
Index: trunk/Ohana/src/opihi/dvo/avmatch.c
===================================================================
--- trunk/Ohana/src/opihi/dvo/avmatch.c	(revision 38600)
+++ trunk/Ohana/src/opihi/dvo/avmatch.c	(revision 38601)
@@ -238,5 +238,5 @@
       dbExtractAveragesInitAve (); 
       for (n = 0; n < Nfields; n++) {
-	values[n] = dbExtractAverages (average, secfilt, measure, lensobj, starpar, &fields[n]);
+	values[n] = dbExtractAverages (average, secfilt, measure, lensobj, starpar, NULL, &fields[n]);
       }
 
Index: trunk/Ohana/src/relastro/src/high_speed_utils.c
===================================================================
--- trunk/Ohana/src/relastro/src/high_speed_utils.c	(revision 38600)
+++ trunk/Ohana/src/relastro/src/high_speed_utils.c	(revision 38601)
@@ -141,5 +141,5 @@
     off_t n;
     for (n = 0; n < NfieldsA; n++) {
-      valuesA[n] = dbExtractAverages (&catalog[0].average[i], &catalog[0].secfilt[i*Nsecfilt], &catalog[0].measure[m], NULL, NULL, &fieldsA[n]);
+      valuesA[n] = dbExtractAverages (&catalog[0].average[i], &catalog[0].secfilt[i*Nsecfilt], &catalog[0].measure[m], NULL, NULL, NULL, &fieldsA[n]);
     }
     return dbBooleanCond(stackA, NstackA, valuesA);
@@ -155,5 +155,5 @@
     off_t n;
     for (n = 0; n < NfieldsB; n++) {
-        valuesB[n] = dbExtractAverages (&catalog[0].average[i], &catalog[0].secfilt[i*Nsecfilt], &catalog[0].measure[m], NULL, NULL, &fieldsB[n]);
+      valuesB[n] = dbExtractAverages (&catalog[0].average[i], &catalog[0].secfilt[i*Nsecfilt], &catalog[0].measure[m], NULL, NULL, NULL, &fieldsB[n]);
     }
     return dbBooleanCond(stackB, NstackB, valuesB);
