Index: /trunk/Ohana/src/opihi/dvo/dbExtractMeasures.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/dbExtractMeasures.c	(revision 14378)
+++ /trunk/Ohana/src/opihi/dvo/dbExtractMeasures.c	(revision 14379)
@@ -23,9 +23,12 @@
   switch (field->ID) {
     case MEAS_MAG: /* magnitudes are already determined above */
-      // if user has requested a photcode, supply the value only if we match (else NO_MAG)
-      if ((field->photcode->type != PHOT_MAG) && 
-	  (measure[0].photcode != field->photcode->code)) {
-	  break;
-      }
+      // we return the magnitude for this measure if:
+      if (field->photcode->type == PHOT_MAG) goto valid_photcode;
+      if ((field->photcode->type == PHOT_REF) && (measure[0].photcode == field->photcode->code)) goto valid_photcode;
+      if ((field->photcode->type == PHOT_DEP) && (measure[0].photcode == field->photcode->code)) goto valid_photcode;
+      if ((field->photcode->type == PHOT_SEC) && (GetPhotcodeEquivbyCode (measure[0].photcode) == field->photcode->code)) goto valid_photcode;
+      break;
+
+  valid_photcode:
       switch (field->magMode) {
 	case MAG_INST:
@@ -58,4 +61,10 @@
       value = average[0].D - measure[0].dD / 3600.0;
       break;
+    case MEAS_RA_AVE: /* OK */
+      value = average[0].R;
+      break;
+    case MEAS_DEC_AVE: /* OK */
+      value = average[0].D;
+      break;
     case MEAS_dMAG: /* OK */
       value = measure[0].dM;
@@ -73,4 +82,6 @@
       value = TimeValue (measure[0].t, TimeReference, TimeFormat);
       break;
+    // note that these represent the ra displacement relative to the average, not 
+    // the error.
     case MEAS_dR: /* OK */
       value = measure[0].dR;
Index: /trunk/Ohana/src/opihi/dvo/dbFields.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/dbFields.c	(revision 14378)
+++ /trunk/Ohana/src/opihi/dvo/dbFields.c	(revision 14379)
@@ -81,9 +81,4 @@
     if (useDefault) {
       *mode = MAG_REL;
-    } else {
-      if ((*mode == MAG_AVE) || (*mode == MAG_REF)) {
-	// XXX error;
-	*mode = MAG_REL;
-      }
     }
   } 
@@ -108,6 +103,6 @@
   if (!strcasecmp (fieldName, "RA"))       ESCAPE (MEAS_RA,   	  MAG_NONE);
   if (!strcasecmp (fieldName, "DEC"))      ESCAPE (MEAS_DEC,  	  MAG_NONE);
-  // if (!strcasecmp (fieldName, "MAG"))      ESCAPE (MEAS_MAG,  	  MAG_REL);
-  // if (!strcasecmp (fieldName, "dMAG"))     ESCAPE (MEAS_dMAG, 	  MAG_ERR);
+  if (!strcasecmp (fieldName, "RA:AVE"))   ESCAPE (MEAS_RA_AVE,   MAG_NONE);
+  if (!strcasecmp (fieldName, "DEC:AVE"))  ESCAPE (MEAS_DEC_AVE,  MAG_NONE);
   if (!strcasecmp (fieldName, "AIRMASS"))  ESCAPE (MEAS_AIRMASS,  MAG_NONE);
   if (!strcasecmp (fieldName, "EXPTIME"))  ESCAPE (MEAS_EXPTIME,  MAG_NONE);
@@ -159,6 +154,4 @@
   if (!strcasecmp (fieldName, "PAR"))   ESCAPE (AVE_PAR,       MAG_NONE);
   if (!strcasecmp (fieldName, "dPAR"))  ESCAPE (AVE_PAR_ERR,   MAG_NONE);
-  // if (!strcasecmp (fieldName, "MAG"))   ESCAPE (AVE_MAG,       MAG_AVE);
-  // if (!strcasecmp (fieldName, "dMAG"))  ESCAPE (AVE_dMAG,      MAG_ERR);
   if (!strcasecmp (fieldName, "NMEAS")) ESCAPE (AVE_NMEAS,     MAG_NONE);
   if (!strcasecmp (fieldName, "NMISS")) ESCAPE (AVE_NMISS,     MAG_NONE);
Index: /trunk/Ohana/src/opihi/dvo/mextract.c
===================================================================
--- /trunk/Ohana/src/opihi/dvo/mextract.c	(revision 14378)
+++ /trunk/Ohana/src/opihi/dvo/mextract.c	(revision 14379)
@@ -116,5 +116,5 @@
     for (j = 0; (j < catalog.Naverage) && !interrupt; j++) {
       m = catalog.average[j].offset;
-      for (k = 0; k < catalog.average[j].Nm; k++, m++) {
+      for (k = 0; (k < catalog.average[j].Nm); k++, m++) {
 
 	// extract the relevant values for this measurement
@@ -122,4 +122,5 @@
 	  values[n] = dbExtractMeasures (&catalog.average[j], &catalog.secfilt[j*Nsecfilt], &catalog.measure[m], &fields[n]);
 	}
+	// fprintf (stderr, "object: ave: %f, cat: %f, averef %d\n", fields[n].name, values[2], values[3], catalog.measure[m].averef);
 	
 	// test the conditional statement
@@ -127,4 +128,5 @@
 	for (n = 0; n < Nreturn; n++) {
 	  vec[n][0].elements[Npts] = values[n];
+	  // fprintf (stderr, "keep : field: %s, value: %f\n", fields[n].name, values[n]);
 	}
 	Npts++;
Index: /trunk/Ohana/src/opihi/include/dvoshell.h
===================================================================
--- /trunk/Ohana/src/opihi/include/dvoshell.h	(revision 14378)
+++ /trunk/Ohana/src/opihi/include/dvoshell.h	(revision 14379)
@@ -12,5 +12,6 @@
 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_FWHM, MEAS_DOPHOT, MEAS_XCCD, MEAS_YCCD, MEAS_XMOSAIC, MEAS_YMOSAIC, 
+      MEAS_FLAGS, MEAS_EXPTIME, MEAS_AIRMASS, MEAS_RA_AVE, MEAS_DEC_AVE};
 
 /* average fields */
