Index: /branches/eam_branch_20081124/Ohana/src/opihi/dvo/dbExtractImages.c
===================================================================
--- /branches/eam_branch_20081124/Ohana/src/opihi/dvo/dbExtractImages.c	(revision 20907)
+++ /branches/eam_branch_20081124/Ohana/src/opihi/dvo/dbExtractImages.c	(revision 20908)
@@ -141,50 +141,5 @@
       value.Flt = ELAT;
       break;
-    case IMAGE_XM:
-      value.Flt = pow(10.0, 0.01*image[N].Xm);
-      break;
-    case IMAGE_AIRMASS:
-      value.Flt = image[N].secz;
-      break;
-    case IMAGE_MCAL:
-      value.Flt = image[N].Mcal;
-      break;
-    case IMAGE_dMCAL:
-      value.Flt = image[N].dMcal;
-      break;
-    case IMAGE_PHOTCODE:
-      value.Int = image[N].photcode;
-      break;
-    case IMAGE_TIME:
-      t = image[N].tzero + 0.5*image[N].NY * image[N].trate / 10000;
-      value.Flt = TimeValue (t, TimeReference, TimeFormat);
-      break;
-    case IMAGE_FWHM:
-      value.Flt = image[N].fwhm_x / 25.0;
-      break;
-    case IMAGE_EXPTIME:
-      value.Flt = image[N].exptime;
-      break;
-    case IMAGE_NSTAR:
-      value.Int = image[N].nstar;
-      break;
-    case IMAGE_NCAL:
-      value.Int = image[N].Mxxxx;
-      break;
-    case IMAGE_SKY:
-      value.Flt = image[N].Myyyy + 0x8000;
-      break;
-    case IMAGE_FLAG:
-      value.Int = image[N].code;
-      break;
-    case IMAGE_NX_PIX:
-      value.Int = image[N].NX;
-      break;
-    case IMAGE_NY_PIX:
-      value.Int = image[N].NY;
-      break;
-    case IMAGE_IMAGE_ID:
-      value.Int = image[N].imageID;
-      break;
+
     case IMAGE_THETA: {
       double theta1, theta2, s1, s2;
@@ -216,4 +171,96 @@
       break; }
 
+    case IMAGE_TIME:
+      t = image[N].tzero + 0.5*image[N].NY * image[N].trate / 10000;
+      value.Flt = TimeValue (t, TimeReference, TimeFormat);
+      break;
+    case IMAGE_NSTAR:
+      value.Int = image[N].nstar;
+      break;
+    case IMAGE_AIRMASS:
+      value.Flt = image[N].secz;
+      break;
+    case IMAGE_NX_PIX:
+      value.Int = image[N].NX;
+      break;
+    case IMAGE_NY_PIX:
+      value.Int = image[N].NY;
+      break;
+    case IMAGE_APRESID:
+      value.Flt = image[N].apmifit;
+      break;
+    case IMAGE_DAPRESID:
+      value.Flt = image[N].dapmifit;
+      break;
+
+    case IMAGE_MCAL:
+      value.Flt = image[N].Mcal;
+      break;
+    case IMAGE_dMCAL:
+      value.Flt = image[N].dMcal;
+      break;
+    case IMAGE_XM:
+      value.Flt = pow(10.0, 0.01*image[N].Xm);
+      break;
+    case IMAGE_PHOTCODE:
+      value.Int = image[N].photcode;
+      break;
+    case IMAGE_EXPTIME:
+      value.Flt = image[N].exptime;
+      break;
+    case IMAGE_SIDTIME:
+      value.Flt = image[N].sidtime;
+      break;
+
+    case IMAGE_LATITUDE:
+      value.Flt = image[N].latitude;
+      break;
+
+    case IMAGE_DET_LIMIT:
+      value.Flt = image[N].detection_limit * 0.1;
+      break;
+    case IMAGE_SAT_LIMIT:
+      value.Flt = image[N].saturation_limit * 0.1;
+      break;
+    case IMAGE_CERROR:
+      value.Flt = image[N].cerror / 50.0;
+      break;
+
+    case IMAGE_FWHM:
+      value.Flt = (image[N].fwhm_x + image[N].fwhm_y) / 50.0;
+      break;
+    case IMAGE_FWHM_MAJ:
+      value.Flt = image[N].fwhm_x / 25.0;
+      break;
+    case IMAGE_FWHM_MIN:
+      value.Flt = image[N].fwhm_y / 25.0;
+      break;
+    case IMAGE_TRATE:
+      value.Flt = image[N].trate / 10000.0;
+      break;
+
+    case IMAGE_NCAL:
+      value.Int = image[N].Mxxxx;
+      break;
+    case IMAGE_SKY:
+      value.Flt = image[N].Myyyy + 0x8000;
+      break;
+    case IMAGE_FLAG:
+      value.Int = image[N].code;
+      break;
+    case IMAGE_CCDNUM:
+      value.Int = image[N].ccdnum;
+      break;
+
+    case IMAGE_IMAGE_ID:
+      value.Int = image[N].imageID;
+      break;
+    case IMAGE_EXTERN_ID:
+      value.Int = image[N].externID;
+      break;
+    case IMAGE_SOURCE_ID:
+      value.Int = image[N].sourceID;
+      break;
+
       // reference pixel extractions
     case IMAGE_X_LL_CHIP:
Index: /branches/eam_branch_20081124/Ohana/src/opihi/dvo/dbFields.c
===================================================================
--- /branches/eam_branch_20081124/Ohana/src/opihi/dvo/dbFields.c	(revision 20907)
+++ /branches/eam_branch_20081124/Ohana/src/opihi/dvo/dbFields.c	(revision 20908)
@@ -307,23 +307,51 @@
   if (!strcasecmp (fieldName, "RA"       )) ESCAPE (IMAGE_RA,        MAG_NONE, OPIHI_FLT);
   if (!strcasecmp (fieldName, "DEC"      )) ESCAPE (IMAGE_DEC,       MAG_NONE, OPIHI_FLT);
-  if (!strcasecmp (fieldName, "Xm"       )) ESCAPE (IMAGE_XM,        MAG_NONE, OPIHI_FLT);
-  if (!strcasecmp (fieldName, "airmass"  )) ESCAPE (IMAGE_AIRMASS,   MAG_NONE, OPIHI_FLT);
-  if (!strcasecmp (fieldName, "Mcal"     )) ESCAPE (IMAGE_MCAL,      MAG_NONE, OPIHI_FLT);
-  if (!strcasecmp (fieldName, "dMcal"    )) ESCAPE (IMAGE_dMCAL,     MAG_NONE, OPIHI_FLT);
-  if (!strcasecmp (fieldName, "photcode" )) ESCAPE (IMAGE_PHOTCODE,  MAG_NONE, OPIHI_INT);
-  if (!strcasecmp (fieldName, "time"     )) ESCAPE (IMAGE_TIME,      MAG_NONE, OPIHI_FLT);
-  if (!strcasecmp (fieldName, "FWHM"     )) ESCAPE (IMAGE_FWHM,      MAG_NONE, OPIHI_FLT);
-  if (!strcasecmp (fieldName, "exptime"  )) ESCAPE (IMAGE_EXPTIME,   MAG_NONE, OPIHI_FLT);
-  if (!strcasecmp (fieldName, "nstar"    )) ESCAPE (IMAGE_NSTAR,     MAG_NONE, OPIHI_INT);
-  if (!strcasecmp (fieldName, "ncal"     )) ESCAPE (IMAGE_NCAL,      MAG_NONE, OPIHI_INT);
-  if (!strcasecmp (fieldName, "sky"      )) ESCAPE (IMAGE_SKY,       MAG_NONE, OPIHI_FLT);
-  if (!strcasecmp (fieldName, "flag"     )) ESCAPE (IMAGE_FLAG,      MAG_NONE, OPIHI_INT);
-  if (!strcasecmp (fieldName, "NX"       )) ESCAPE (IMAGE_NX_PIX,    MAG_NONE, OPIHI_INT);
-  if (!strcasecmp (fieldName, "NY"       )) ESCAPE (IMAGE_NY_PIX,    MAG_NONE, OPIHI_INT);
+  if (!strcasecmp (fieldName, "GLON"     )) ESCAPE (IMAGE_GLON,      MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "GLAT"     )) ESCAPE (IMAGE_GLAT,      MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "ELON"     )) ESCAPE (IMAGE_ELON,      MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "ELAT"     )) ESCAPE (IMAGE_ELAT,      MAG_NONE, OPIHI_FLT);
+
   if (!strcasecmp (fieldName, "theta"    )) ESCAPE (IMAGE_THETA,     MAG_NONE, OPIHI_FLT);
   if (!strcasecmp (fieldName, "skew"     )) ESCAPE (IMAGE_SKEW,      MAG_NONE, OPIHI_FLT);
   if (!strcasecmp (fieldName, "scale"    )) ESCAPE (IMAGE_SCALE,     MAG_NONE, OPIHI_FLT);
   if (!strcasecmp (fieldName, "dscale"   )) ESCAPE (IMAGE_DSCALE,    MAG_NONE, OPIHI_FLT);
+
+  if (!strcasecmp (fieldName, "time"     )) ESCAPE (IMAGE_TIME,      MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "nstar"    )) ESCAPE (IMAGE_NSTAR,     MAG_NONE, OPIHI_INT);
+  if (!strcasecmp (fieldName, "airmass"  )) ESCAPE (IMAGE_AIRMASS,   MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "NX"       )) ESCAPE (IMAGE_NX_PIX,    MAG_NONE, OPIHI_INT);
+  if (!strcasecmp (fieldName, "NY"       )) ESCAPE (IMAGE_NY_PIX,    MAG_NONE, OPIHI_INT);
+  if (!strcasecmp (fieldName, "apresid"  )) ESCAPE (IMAGE_APRESID,   MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "dapresid" )) ESCAPE (IMAGE_DAPRESID,  MAG_NONE, OPIHI_FLT);
+
+  if (!strcasecmp (fieldName, "Mcal"     )) ESCAPE (IMAGE_MCAL,      MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "dMcal"    )) ESCAPE (IMAGE_dMCAL,     MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "Xm"       )) ESCAPE (IMAGE_XM,        MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "photcode" )) ESCAPE (IMAGE_PHOTCODE,  MAG_NONE, OPIHI_INT);
+  if (!strcasecmp (fieldName, "exptime"  )) ESCAPE (IMAGE_EXPTIME,   MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "sidtime"  )) ESCAPE (IMAGE_SIDTIME,   MAG_NONE, OPIHI_FLT);
+
+  if (!strcasecmp (fieldName, "latitude" )) ESCAPE (IMAGE_LATITUDE,  MAG_NONE, OPIHI_FLT);
+
+  if (!strcasecmp (fieldName, "detlimit" )) ESCAPE (IMAGE_DET_LIMIT, MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "satlimit" )) ESCAPE (IMAGE_SAT_LIMIT, MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "cerror"   )) ESCAPE (IMAGE_CERROR,    MAG_NONE, OPIHI_FLT);
+
+  if (!strcasecmp (fieldName, "FWHM"     )) ESCAPE (IMAGE_FWHM,      MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "FWHM_MAJ" )) ESCAPE (IMAGE_FWHM_MAJ,  MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "FWHM_MIN" )) ESCAPE (IMAGE_FWHM_MIN,  MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "trate"    )) ESCAPE (IMAGE_TRATE,     MAG_NONE, OPIHI_FLT);
+
+  // XXX : these are mapped to ridiculous things: Myyyy + 0x8000 and Mxxxx
+  if (!strcasecmp (fieldName, "ncal"     )) ESCAPE (IMAGE_NCAL,      MAG_NONE, OPIHI_INT);
+  if (!strcasecmp (fieldName, "sky"      )) ESCAPE (IMAGE_SKY,       MAG_NONE, OPIHI_FLT);
+
+  if (!strcasecmp (fieldName, "flag"     )) ESCAPE (IMAGE_FLAG,      MAG_NONE, OPIHI_INT);
+  if (!strcasecmp (fieldName, "ccdnum"   )) ESCAPE (IMAGE_CCDNUM,    MAG_NONE, OPIHI_INT);
+
   if (!strcasecmp (fieldName, "imageID"  )) ESCAPE (IMAGE_IMAGE_ID,  MAG_NONE, OPIHI_INT);
+  if (!strcasecmp (fieldName, "externID" )) ESCAPE (IMAGE_EXTERN_ID, MAG_NONE, OPIHI_INT);
+  if (!strcasecmp (fieldName, "sourceID" )) ESCAPE (IMAGE_SOURCE_ID, MAG_NONE, OPIHI_INT);
+
   if (!strcasecmp (fieldName, "X_LL_CHIP")) ESCAPE (IMAGE_X_LL_CHIP, MAG_NONE, OPIHI_FLT);
   if (!strcasecmp (fieldName, "X_LR_CHIP")) ESCAPE (IMAGE_X_LR_CHIP, MAG_NONE, OPIHI_FLT);
Index: /branches/eam_branch_20081124/Ohana/src/opihi/dvo/imextract.c
===================================================================
--- /branches/eam_branch_20081124/Ohana/src/opihi/dvo/imextract.c	(revision 20907)
+++ /branches/eam_branch_20081124/Ohana/src/opihi/dvo/imextract.c	(revision 20908)
@@ -163,23 +163,51 @@
     gprint (GP_ERR, "  RA : right ascension of field center (J2000)\n");
     gprint (GP_ERR, "  DEC : declination of field center\n");
-    gprint (GP_ERR, "  Xm : chisq of photometry calibration\n");
-    gprint (GP_ERR, "  airmass : mean airmass of exposure\n");
-    gprint (GP_ERR, "  Mcal : photometry calibration (mags)\n");
-    gprint (GP_ERR, "  dMcal : photometry calibration error (mags)\n");
-    gprint (GP_ERR, "  photcode : numeric photcode value for image\n");
-    gprint (GP_ERR, "  time : time of exposure\n");
-    gprint (GP_ERR, "  FWHM : mean fwhm of exposure\n");
-    gprint (GP_ERR, "  exptime : exposure duration (seconds)\n");
-    gprint (GP_ERR, "  nstar : number of stars detected in exposure\n");
-    gprint (GP_ERR, "  ncal : number of stars used for photometry calibration\n");
-    gprint (GP_ERR, "  sky : mean background flux\n");
-    gprint (GP_ERR, "  flag : processing bit flags\n");
-    gprint (GP_ERR, "  NX : image dimensions\n");
-    gprint (GP_ERR, "  NY : image dimensions\n");
+    gprint (GP_ERR, "  GLON : galactic longitude of field center (J2000)\n");
+    gprint (GP_ERR, "  GLAT : galactic latitude of field center (J2000)\n");
+    gprint (GP_ERR, "  ELON : ecliptic longitude of field center (J2000)\n");
+    gprint (GP_ERR, "  ELAT : ecliptic latitude of field center (J2000)\n");
+
     gprint (GP_ERR, "  theta : position angle of image\n");
     gprint (GP_ERR, "  skew : distortion from rectangle\n");
     gprint (GP_ERR, "  scale : pixel scale\n");
     gprint (GP_ERR, "  dscale : pixel-scale error (or variation?)\n");
-    gprint (GP_ERR, "  imageID : unique image identifier\n");
+
+    gprint (GP_ERR, "  time : time of exposure\n");
+    gprint (GP_ERR, "  nstar : number of stars detected in exposure\n");
+    gprint (GP_ERR, "  airmass : mean airmass of exposure\n");
+    gprint (GP_ERR, "  NX : image dimensions\n");
+    gprint (GP_ERR, "  NY : image dimensions\n");
+
+    gprint (GP_ERR, "  apresid : aperture - fit magnitude\n");
+    gprint (GP_ERR, "  dapresid : aperture - fit magnitude scatter\n");
+
+    gprint (GP_ERR, "  Mcal : photometry calibration (mags)\n");
+    gprint (GP_ERR, "  dMcal : photometry calibration error (mags)\n");
+    gprint (GP_ERR, "  Xm : chisq of photometry calibration\n");
+    gprint (GP_ERR, "  photcode : numeric photcode value for image\n");
+    gprint (GP_ERR, "  exptime : exposure duration (seconds)\n");
+    gprint (GP_ERR, "  sidtime : sidereal time of exposure\n");
+
+    gprint (GP_ERR, "  latitude : observatory latitude\n");
+
+    gprint (GP_ERR, "  detlimit : detection limit of exposure\n");
+    gprint (GP_ERR, "  satlimit : saturation limit of exposure\n");
+    gprint (GP_ERR, "  cerror : astrometric scatter\n");
+
+    gprint (GP_ERR, "  FWHM : mean fwhm of exposure\n");
+    gprint (GP_ERR, "  FWHM_MAJ : fwhm of major axis\n");
+    gprint (GP_ERR, "  FWHM_MIN : fwhm of minor axis\n");
+    gprint (GP_ERR, "  trate : tracking rate for TDI images\n");
+
+    gprint (GP_ERR, "  ncal : number of stars used for photometry calibration\n");
+    gprint (GP_ERR, "  sky : mean background flux\n");
+
+    gprint (GP_ERR, "  flag : processing bit flags\n");
+    gprint (GP_ERR, "  ccdnum : identifier for CCD\n");
+
+    gprint (GP_ERR, "  imageID  : unique image identifier\n");
+    gprint (GP_ERR, "  externID : external image identifier\n");
+    gprint (GP_ERR, "  sourceID : external db reference\n");
+
     gprint (GP_ERR, "  X_LL_CHIP : chip x-pixel coordinate of lower left corner\n");
     gprint (GP_ERR, "  X_LR_CHIP : chip x-pixel coordinate of lower right corner\n");
Index: /branches/eam_branch_20081124/Ohana/src/opihi/include/dvoshell.h
===================================================================
--- /branches/eam_branch_20081124/Ohana/src/opihi/include/dvoshell.h	(revision 20907)
+++ /branches/eam_branch_20081124/Ohana/src/opihi/include/dvoshell.h	(revision 20908)
@@ -154,4 +154,5 @@
       IMAGE_SKY, 
       IMAGE_FLAG, 
+      IMAGE_CCDNUM, 
       IMAGE_NX_PIX, 
       IMAGE_NY_PIX, 
@@ -160,5 +161,17 @@
       IMAGE_SCALE, 
       IMAGE_DSCALE, 
+      IMAGE_APRESID,
+      IMAGE_DAPRESID,
+      IMAGE_SIDTIME,
+      IMAGE_LATITUDE,
+      IMAGE_DET_LIMIT,
+      IMAGE_SAT_LIMIT,
+      IMAGE_CERROR,
+      IMAGE_FWHM_MAJ,
+      IMAGE_FWHM_MIN,
+      IMAGE_TRATE,
       IMAGE_IMAGE_ID,
+      IMAGE_EXTERN_ID,
+      IMAGE_SOURCE_ID,
       IMAGE_X_LL_CHIP,
       IMAGE_X_LR_CHIP,
@@ -178,4 +191,5 @@
       IMAGE_Y_UR_FP,
 };
+
 
 enum {DVO_TABLE_AVERAGE, DVO_TABLE_MEASURE, DVO_TABLE_IMAGE};
