Index: /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/avmatch.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/avmatch.c	(revision 37570)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/avmatch.c	(revision 37571)
@@ -152,5 +152,5 @@
   int needMeasure = dbFieldNeedMeasure (fields, Nfields);
   int needLensobj = dbFieldNeedLensobj (fields, Nfields);
-  int needStarpar = dbFieldNeedStarpar (fields, Nfields);
+  int needStarpar = dbFieldNeedStarpar (fields, Nfields, TRUE);
 
   /* create output storage vectors */
Index: /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/gimages.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/gimages.c	(revision 37570)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/gimages.c	(revision 37571)
@@ -85,5 +85,5 @@
   if ((image = LoadImagesDVO (&Nimage)) == NULL) return (FALSE);
   image_subset (image, Nimage, &subset, &Nsubset, selection, tzero, trange, TimeSelect);
-  BuildChipMatch (image, Nimage);
+  // BuildChipMatch (image, Nimage);
 
   int DistortImage = wordhash ("-DIS");
Index: /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/images.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/images.c	(revision 37570)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/images.c	(revision 37571)
@@ -131,16 +131,5 @@
   /* it is not an error for the database not to have any images */
   if ((image = LoadImagesDVO (&Nimage)) == NULL) return (TRUE);
-  BuildChipMatch (image, Nimage);
-
-  // XXX push this and BuildChipMatch into LoadImagesDVO?
-  char mapfile[DVO_MAX_PATH];
-  char *catdir = dvo_get_catdir ();
-  snprintf (mapfile, DVO_MAX_PATH, "%s/AstroMap.fits", catdir);
-  AstromOffsetTable *table = AstromOffsetMapLoad (mapfile, FALSE);
-
-  // assign images.coords.offsetMap -> table->map[i]
-  if (table) {
-    AstromOffsetTableMatchChips (image, Nimage, table);
-  }
+  // BuildChipMatch (image, Nimage);
 
   if (SOLO_MOSAIC && photcode) {
Index: /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/imdata.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/imdata.c	(revision 37570)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/imdata.c	(revision 37571)
@@ -87,5 +87,5 @@
   if ((image = LoadImagesDVO (&Nimage)) == NULL) return (FALSE);
   image_subset (image, Nimage, &subset, &Nsubset, selection, tzero, trange, TimeSelect);
-  BuildChipMatch (image, Nimage);
+  // BuildChipMatch (image, Nimage);
   GetTimeFormat (&TimeReference, &TimeFormat);
 
Index: /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/imdense.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/imdense.c	(revision 37570)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/imdense.c	(revision 37571)
@@ -22,5 +22,5 @@
 
   if ((image = LoadImagesDVO (&Nimage)) == NULL) return (FALSE);
-  BuildChipMatch (image, Nimage);
+  // BuildChipMatch (image, Nimage);
 
   Rmin = graphmode.coords.crval1 - 182.0;
Index: /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/imextract.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/imextract.c	(revision 37570)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/imextract.c	(revision 37571)
@@ -90,5 +90,5 @@
 
   if ((image = LoadImagesDVO (&Nimage)) == NULL) goto escape;
-  BuildChipMatch (image, Nimage);
+  // BuildChipMatch (image, Nimage);
   dbExtractImagesInit (); 
 
Index: /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/imlist.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/imlist.c	(revision 37570)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/imlist.c	(revision 37571)
@@ -83,5 +83,5 @@
   if ((image = LoadImagesDVO (&Nimage)) == NULL) return (FALSE);
   image_subset (image, Nimage, &subset, &Nsubset, selection, tzero, trange, TimeSelect);
-  BuildChipMatch (image, Nimage);
+  // BuildChipMatch (image, Nimage);
 
   GetTimeFormat (&TimeReference, &TimeFormat);
Index: /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/imstats.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/imstats.c	(revision 37570)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/imstats.c	(revision 37571)
@@ -31,5 +31,5 @@
 
   if ((image = LoadImagesDVO (&Nimage)) == NULL) return (FALSE);
-  BuildChipMatch (image, Nimage);
+  // BuildChipMatch (image, Nimage);
 
   /* assign vector values */
Index: /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/mmatch.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/mmatch.c	(revision 37570)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/mmatch.c	(revision 37571)
@@ -233,4 +233,7 @@
   ALLOCATE (index, off_t, Nelem);
 
+  // int needLensing = dbFieldNeedLensing (fields, Nfields);
+  int needStarpar = dbFieldNeedStarpar (fields, Nfields, FALSE);
+
   // grab data from all selected sky regions
   Signal = signal (SIGINT, handle_interrupt);
@@ -246,4 +249,5 @@
     catalog.filename = HOST_ID ? hostfile : skylist[0].filename[i];
     catalog.catflags = LOAD_AVES | LOAD_SECF | LOAD_MEAS;
+    catalog.catflags |= needStarpar ? LOAD_STARPAR : SKIP_STARPAR;
     catalog.Nsecfilt = Nsecfilt;
 
@@ -282,6 +286,18 @@
 	// extract the relevant values for this measurement
 	dbExtractMeasuresInitMeas (); // reset counters for saved fields  (costs very little
+
+	Average *average = &catalog.average[Ncat];
+
+	int Nstarpar = average->starparOffset;
+	StarPar *starpar = needStarpar ? &catalog.starpar[Nstarpar] : NULL;
+
+	// int Nlensing = average->lensobjOffset;
+	// Lensobj *lensobj = needLensobj ? &catalog.lensobj[m] : NULL;
+
+	int Nsec = Ncat*Nsecfilt;
+	SecFilt *secfilt = &catalog.secfilt[Nsec];
+
 	for (n = 0; n < Nfields; n++) {
-	  values[n] = dbExtractMeasures (&catalog.average[Ncat], &catalog.secfilt[Ncat*Nsecfilt], &catalog.measure[m], &fields[n]);
+	  values[n] = dbExtractMeasures (average, secfilt, &catalog.measure[m], NULL, starpar, &fields[n]);
 	}
 
Index: /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/mmextract.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/mmextract.c	(revision 37570)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/mmextract.c	(revision 37571)
@@ -174,4 +174,7 @@
   }
 
+  // int needLensing = dbFieldNeedLensing (fields, Nfields);
+  int needStarpar = dbFieldNeedStarpar (fields, Nfields, FALSE);
+
   // grab data from all selected sky regions
   Signal = signal (SIGINT, handle_interrupt);
@@ -213,7 +216,19 @@
 	// extract the relevant values for this measurement 
 	dbExtractMeasuresInitMeas (); // reset counters for saved fields 
+
+	Average *average = &catalog.average[j];
+
+	int Nstarpar = average->starparOffset;
+	StarPar *starpar = needStarpar ? &catalog.starpar[Nstarpar] : NULL;
+
+	// int Nlensing = average->lensobjOffset;
+	// Lensobj *lensobj = needLensobj ? &catalog.lensobj[m] : NULL;
+
+	int Nsec = j*Nsecfilt;
+	SecFilt *secfilt = &catalog.secfilt[Nsec];
+
 	for (n = 0; n < Nfields; n++) {
 	  // values needs to be a pointer to a type with FLT and INT (with a union, we would save a bit of memory...)
-	  values[n] = dbExtractMeasures (&catalog.average[j], &catalog.secfilt[j*Nsecfilt], &catalog.measure[m], &fields[n]);
+	  values[n] = dbExtractMeasures (average, secfilt, &catalog.measure[m], NULL, starpar, &fields[n]);
 	}
 	// fprintf (stderr, "object: ave: %f, cat: %f, averef %d\n", fields[n].name, values[2], values[3], catalog.measure[m].averef);
Index: /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/skycoverage.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/skycoverage.c	(revision 37570)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/skycoverage.c	(revision 37571)
@@ -219,5 +219,5 @@
       return (FALSE);
   }
-  BuildChipMatch (image, Nimage);
+  // BuildChipMatch (image, Nimage);
 
   V = (float *)buf[0].matrix.buffer;
Index: /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/subpix.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/subpix.c	(revision 37570)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/opihi/dvo/subpix.c	(revision 37571)
@@ -115,5 +115,5 @@
   /* load all images, extract those touching Ra, Dec */
   if ((image = LoadImagesDVO (&Nimage)) == NULL) return (FALSE);
-  BuildChipMatch (image, Nimage);
+  // BuildChipMatch (image, Nimage);
 
   for (i = 0; i < Nimage; i++) {
