Index: /branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/secfilt-ps1-v4.d
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/secfilt-ps1-v4.d	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/secfilt-ps1-v4.d	(revision 34207)
@@ -2,5 +2,5 @@
 EXTNAME      DVO_SECFILT_PS1_V4
 TYPE         BINTABLE
-SIZE         56
+SIZE         64
 DESCRIPTION  DVO SecFilt : Secondary Filter Data 
 
@@ -23,2 +23,4 @@
 FIELD  ubercalDist, UBERCAL_DIST,  short,      number of images from an ubercal-image
 FIELD  Mstdev,      MAG_STDEV,     short,      standard deviation of measurements,    millimags
+FIELD  stackID,     STACK_ID,      uint32_t,   image ID of stack used for fluxes (if any)
+FIELD  dummy,       DUMMY,         uint32_t,   padding
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/secfilt.d
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/secfilt.d	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libautocode/def/secfilt.d	(revision 34207)
@@ -2,27 +2,29 @@
 EXTNAME      DVO_SECFILT
 TYPE         BINTABLE
-SIZE         56
+SIZE         64
 DESCRIPTION  DVO SecFilt : Secondary Filter Data 
 
 # elements of data structure / FITS table
-FIELD  M,     	    MAG,      	  float,      average mag in this band,              mags
-FIELD  Map,    	    MAG,      	  float,      average mag in this band,              mags
-FIELD  Mkron,  	    MAG_KRON,  	  float,      ave kron mag in this band,             mags
-FIELD  dMkron, 	    MAG_KRON_ERR, float,      formal error on average kron mag,      mags
-FIELD  dM,    	    MAG_ERR,  	  float,      formal error on average mag,           mags
-FIELD  Xm,    	    MAG_CHI,  	  float,      chisq on average mag,                  [100*log(value)]
+FIELD  M,     	    MAG,      	   float,      average mag in this band,              mags
+FIELD  Map,    	    MAG,      	   float,      average mag in this band,              mags
+FIELD  Mkron,  	    MAG_KRON,  	   float,      ave kron mag in this band,             mags
+FIELD  dMkron, 	    MAG_KRON_ERR,  float,      formal error on average kron mag,      mags
+FIELD  dM,    	    MAG_ERR,  	   float,      formal error on average mag,           mags
+FIELD  Xm,    	    MAG_CHI,  	   float,      chisq on average mag,                  [100*log(value)]
 FIELD  FluxPSF,     FLUX_PSF,      float,      mean flux psf fit (PS1: stack)
 FIELD  dFluxPSF,    FLUX_PSF_ERR,  float,      mean flux psf error
 FIELD  FluxKron,    FLUX_KRON,     float,      mean flux kron ap (PS1: stack)
 FIELD  dFluxKron,   FLUX_KRON_ERR, float,      mean flux kron err
-FIELD  flags, 	    FLAGS,    	  uint32_t,   photometry flags
-FIELD  Ncode, 	    NCODE,    	  short,      number of detections in band
-FIELD  Nused, 	    NUSED,    	  short,      number of detections used in average
-FIELD  M_20,  	    MAG_20,   	  short,      lower 20percent mag,                   millimags
-FIELD  M_80,  	    MAG_80,   	  short,      upper 20percent mag,                   millimags
-FIELD  ubercalDist, UBERCAL_DIST, short,      number of images from an ubercal-image
-FIELD  Mstdev,      MAG_STDEV,    short,      standard deviation of measurements,    millimags
+FIELD  flags, 	    FLAGS,    	   uint32_t,   photometry flags
+FIELD  Ncode, 	    NCODE,    	   short,      number of detections in band
+FIELD  Nused, 	    NUSED,    	   short,      number of detections used in average
+FIELD  M_20,  	    MAG_20,   	   short,      lower 20percent mag,                   millimags
+FIELD  M_80,  	    MAG_80,   	   short,      upper 20percent mag,                   millimags
+FIELD  ubercalDist, UBERCAL_DIST,  short,      number of images from an ubercal-image
+FIELD  Mstdev,      MAG_STDEV,     short,      standard deviation of measurements,    millimags
+FIELD  stackID,     STACK_ID,      uint32_t,   image ID of stack used for fluxes (if any)
+FIELD  dummy,       DUMMY,         uint32_t,   padding
 
 # *** 20090206 : new fields : M_20, M_80; dropped dummy
 # *** 20120302 : new fields : ubercalDist, Map, Mstdev
-# *** 20120710 : new fields : Mkron, dMkron, FluxPSF, dFluxPSF, FluxKron, dFluxKron
+# *** 20120710 : new fields : Mkron, dMkron, FluxPSF, dFluxPSF, FluxKron, dFluxKron, stackID
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/include/dvo.h
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/include/dvo.h	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/include/dvo.h	(revision 34207)
@@ -472,4 +472,5 @@
 float PhotM80 (PhotCode *code, Average *average, SecFilt *secfilt);
 float PhotUCdist (PhotCode *code, Average *average, SecFilt *secfilt);
+unsigned int PhotStackID (PhotCode *code, Average *average, SecFilt *secfilt);
 
 float PhotColorForCode (Average *average, SecFilt *secfilt, Measure *measure, PhotCode *code);
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/include/dvodb.h
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/include/dvodb.h	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/include/dvodb.h	(revision 34207)
@@ -45,4 +45,5 @@
       MAG_80, 
       MAG_UC_DIST, 
+      MAG_STACK_ID, 
       MAG_FLUX_PSF,
       MAG_FLUX_PSF_ERR,
@@ -140,4 +141,5 @@
       MEAS_MCAL_OFFSET,
       MEAS_FLAT,
+      MEAS_CENTER_OFFSET,
       MEAS_FLUX_PSF,
       MEAS_FLUX_PSF_ERR,
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbExtractAverages.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbExtractAverages.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbExtractAverages.c	(revision 34207)
@@ -246,4 +246,7 @@
 	  value.Flt = PhotUCdist (field->photcode, average, secfilt);
 	  break;
+	case MAG_STACK_ID:
+	  value.Int = PhotStackID (field->photcode, average, secfilt);
+	  break;
 
 	case MAG_FLUX_PSF:
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbExtractMeasures.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbExtractMeasures.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbExtractMeasures.c	(revision 34207)
@@ -522,4 +522,21 @@
       break;
 
+    case MEAS_CENTER_OFFSET: /* OK */
+      { 
+	Image *image;
+	image = MatchImageDVO (measure[0].t, measure[0].photcode, measure[0].imageID);
+	if (image == NULL) break;
+	
+	// we have measure[0].Xccd,Yccd and image[0].NX,NY.  Find the distance to the center
+
+	// XXX we may hypotetically have images with -NX to +NX here (eg, projection center), but 
+	// we do not get a detection from that type of image
+	float Xcenter = 0.5*image[0].NX;
+	float Ycenter = 0.5*image[0].NY;
+	float distance = hypot (measure[0].Xccd - Xcenter, measure[0].Yccd - Ycenter);
+	value.Flt = distance;
+      }
+      break;
+
     case MEAS_FLUX_PSF: /* OK */
       value.Flt = measure[0].FluxPSF;
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbFields.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbFields.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dbFields.c	(revision 34207)
@@ -56,4 +56,5 @@
   if (!strcasecmp (string, "80"))          return (MAG_80);
   if (!strcasecmp (string, "ucdist"))      return (MAG_UC_DIST);
+  if (!strcasecmp (string, "stackID"))     return (MAG_STACK_ID);
   if (!strcasecmp (string, "fluxpsf"))     return (MAG_FLUX_PSF);
   if (!strcasecmp (string, "fluxpsferr"))  return (MAG_FLUX_PSF_ERR);
@@ -239,4 +240,5 @@
   if (!strcasecmp (fieldName, "MCAL_OFFSET"))    ESCAPE (MEAS_MCAL_OFFSET,    MAG_NONE, OPIHI_FLT);
   if (!strcasecmp (fieldName, "FLAT"))    	 ESCAPE (MEAS_FLAT,           MAG_NONE, OPIHI_FLT);
+  if (!strcasecmp (fieldName, "CENTER_OFFSET"))  ESCAPE (MEAS_CENTER_OFFSET,  MAG_NONE, OPIHI_FLT);
   if (!strcasecmp (fieldName, "FLUX"))       	 ESCAPE (MEAS_FLUX_PSF,       MAG_NONE, OPIHI_FLT);
   if (!strcasecmp (fieldName, "FLUX_ERR"))       ESCAPE (MEAS_FLUX_PSF_ERR,   MAG_NONE, OPIHI_FLT);
@@ -258,4 +260,5 @@
   field->magMode = mode;
   switch (mode) {
+    case MAG_STACK_ID:
     case MAG_NCODE:
     case MAG_NPHOT:
@@ -352,4 +355,5 @@
   field->magMode = mode;
   switch (mode) {
+    case MAG_STACK_ID:
     case MAG_NCODE:
     case MAG_NPHOT:
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c	(revision 34207)
@@ -231,4 +231,5 @@
     out[i].FluxKron    = NAN;
     out[i].dFluxKron   = NAN;
+    out[i].stackID     = 0;
  }
   return (out);
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c	(revision 34207)
@@ -225,4 +225,5 @@
     out[i].FluxKron    = NAN;
     out[i].dFluxKron   = NAN;
+    out[i].stackID     = 0;
  }
   return (out);
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c	(revision 34207)
@@ -185,4 +185,5 @@
     out[i].FluxKron    = NAN;
     out[i].dFluxKron   = NAN;
+    out[i].stackID     = 0;
  }
   return (out);
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c	(revision 34207)
@@ -229,4 +229,5 @@
     out[i].FluxKron    = NAN;
     out[i].dFluxKron   = NAN;
+    out[i].stackID     = 0;
  }
   return (out);
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c	(revision 34207)
@@ -228,8 +228,9 @@
     out[i].Mkron       = NAN;
     out[i].dMkron      = NAN;
-    out[i].FluxPSF    = NAN;
-    out[i].dFluxPSF   = NAN;
-    out[i].FluxKron   = NAN;
-    out[i].dFluxKron  = NAN;
+    out[i].FluxPSF     = NAN;
+    out[i].dFluxPSF    = NAN;
+    out[i].FluxKron    = NAN;
+    out[i].dFluxKron   = NAN;
+    out[i].stackID     = 0;
  }
   return (out);
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c	(revision 34207)
@@ -226,8 +226,9 @@
     out[i].Mkron       = NAN;
     out[i].dMkron      = NAN;
-    out[i].FluxPSF    = NAN;
-    out[i].dFluxPSF   = NAN;
-    out[i].FluxKron   = NAN;
-    out[i].dFluxKron  = NAN;
+    out[i].FluxPSF     = NAN;
+    out[i].dFluxPSF    = NAN;
+    out[i].FluxKron    = NAN;
+    out[i].dFluxKron   = NAN;
+    out[i].stackID     = 0;
  }
   return (out);
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c	(revision 34207)
@@ -232,4 +232,5 @@
     out[i].Mstdev      = in[i].Mstdev;      
     out[i].ubercalDist = in[i].ubercalDist;      
+    out[i].stackID     = in[i].stackID;      
  }
   return (out);
@@ -261,4 +262,5 @@
     out[i].Mstdev      = in[i].Mstdev;      
     out[i].ubercalDist = in[i].ubercalDist;      
+    out[i].stackID     = in[i].stackID;      
   }
   return (out);
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_elixir.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_elixir.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_elixir.c	(revision 34207)
@@ -240,4 +240,5 @@
     out[i].FluxKron   = NAN;
     out[i].dFluxKron  = NAN;
+    out[i].stackID     = 0;
   }
   return (out);
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_loneos.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_loneos.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_loneos.c	(revision 34207)
@@ -233,4 +233,5 @@
     out[i].FluxKron   = NAN;
     out[i].dFluxKron  = NAN;
+    out[i].stackID     = 0;
   }
   return (out);
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c	(revision 34207)
@@ -240,4 +240,5 @@
     out[i].FluxKron    = NAN;
     out[i].dFluxKron   = NAN;
+    out[i].stackID     = 0;
  }
   return (out);
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c	(revision 34207)
@@ -240,4 +240,5 @@
     out[i].FluxKron    = NAN;
     out[i].dFluxKron   = NAN;
+    out[i].stackID     = 0;
  }
   return (out);
Index: /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_photcode_ops.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_photcode_ops.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/libdvo/src/dvo_photcode_ops.c	(revision 34207)
@@ -656,4 +656,16 @@
 }
 
+unsigned int PhotStackID (PhotCode *code, Average *average, SecFilt *secfilt) {
+
+  int Ns;
+  unsigned int ID;
+
+  if (code == NULL) return 0;
+
+  Ns = photcodes[0].hashNsec[code[0].code];
+  ID = (Ns == -1) ? 0 : secfilt[Ns].stackID;
+  return (ID);
+}
+
 // XXX return NAN or NAN_S_SHORT? (secfilt->Xm is short)
 float PhotXm (PhotCode *code, Average *average, SecFilt *secfilt) {
Index: /branches/eam_branches/ipp-20120627/Ohana/src/opihi/dvo/mextract.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/opihi/dvo/mextract.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/opihi/dvo/mextract.c	(revision 34207)
@@ -129,8 +129,9 @@
       if (fields[i].ID == MEAS_YCCD) loadImages = TRUE;
     }
-    if (fields[i].ID == MEAS_XMOSAIC) 	loadImages = mosaicMode = TRUE;
-    if (fields[i].ID == MEAS_YMOSAIC) 	loadImages = mosaicMode = TRUE;
-    if (fields[i].ID == MEAS_EXTERN_ID) loadImages = mosaicMode = TRUE;
-    if (fields[i].ID == MEAS_FLAT)      loadImages = mosaicMode = TRUE;
+    if (fields[i].ID == MEAS_XMOSAIC) 	    loadImages = mosaicMode = TRUE;
+    if (fields[i].ID == MEAS_YMOSAIC) 	    loadImages = mosaicMode = TRUE;
+    if (fields[i].ID == MEAS_EXTERN_ID)     loadImages = mosaicMode = TRUE;
+    if (fields[i].ID == MEAS_FLAT)          loadImages = mosaicMode = TRUE;
+    if (fields[i].ID == MEAS_CENTER_OFFSET) loadImages = mosaicMode = TRUE;
   }
   if (loadImages && !SetImageSelection (mosaicMode, selection)) goto escape;
Index: /branches/eam_branches/ipp-20120627/Ohana/src/relphot/include/relphot.h
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/relphot/include/relphot.h	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/relphot/include/relphot.h	(revision 34207)
@@ -242,4 +242,5 @@
 float         getMrel             PROTO((Catalog *catalog, off_t meas, int cat));
 short         getUbercalDist      PROTO((off_t meas, int cat));
+float         getCenterOffset     PROTO((off_t meas, int cat, Measure *measure, unsigned int *myID));
 Image        *getimage            PROTO((off_t N));
 Image        *getimages           PROTO((off_t *N, off_t **LineNumber));
Index: /branches/eam_branches/ipp-20120627/Ohana/src/relphot/src/ImageOps.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/relphot/src/ImageOps.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/relphot/src/ImageOps.c	(revision 34207)
@@ -364,4 +364,24 @@
   if (image[i].flags & IMAGE_BAD) return (1000);  
   distance = image[i].ubercalDist; // was dummy3 in structure
+  return (distance);
+}
+
+// returns image.Mcal - ff(x,y)
+float getCenterOffset (off_t meas, int cat, Measure *measure, unsigned int *myID) {
+
+  off_t i;
+  float distance;
+
+  if (!MeasureToImage) return -1;
+
+  i = MeasureToImage[cat][meas];
+  if (i == -1) return (1000);
+
+  float Xcenter = 0.5*image[i].NX;
+  float Ycenter = 0.5*image[i].NY;
+
+  *myID = image[i].imageID;
+
+  distance = hypot (measure[0].Xccd - Xcenter, measure[0].Yccd - Ycenter);
   return (distance);
 }
Index: /branches/eam_branches/ipp-20120627/Ohana/src/relphot/src/StarOps.c
===================================================================
--- /branches/eam_branches/ipp-20120627/Ohana/src/relphot/src/StarOps.c	(revision 34206)
+++ /branches/eam_branches/ipp-20120627/Ohana/src/relphot/src/StarOps.c	(revision 34207)
@@ -365,4 +365,6 @@
       float stackFluxKron = NAN;
       float stackdFluxKron = NAN;
+      float stackCenterOffsetMin = 1e9;
+      unsigned int stackImageIDmin;
 
       int forceSynth = FALSE;
@@ -430,13 +432,52 @@
 	  // gpc1 stack data
 	  if ((catalog[Nc].measure[m].photcode >= 11000) && (catalog[Nc].measure[m].photcode <= 11400)) {
-	    if (pass < 2) continue;
+	    // if (pass < 2) continue;
 	    haveStack = TRUE;
-	    float zp = Mcal + Mmos + Mgrid + PhotZeroPoint (&catalog[Nc].measure[m], &catalog[Nc].average[j], &catalog[Nc].secfilt[j*Nsecfilt]);
-	    float zpFactor = pow(10.0, -0.4*zp);
-	    // need to put in AB mag factor to get to Janskies (or uJy?)
-	    stackFluxPSF   = zpFactor * catalog[Nc].measure[m].FluxPSF;
-	    stackdFluxPSF  = zpFactor * catalog[Nc].measure[m].dFluxPSF;
-	    stackFluxKron  = zpFactor * catalog[Nc].measure[m].FluxKron;
-	    stackdFluxKron = zpFactor * catalog[Nc].measure[m].dFluxKron;
+
+	    unsigned int stackImageID;
+	    float stackCenterOffset = getCenterOffset (m, Nc, &catalog[Nc].measure[m], &stackImageID);
+	    if (stackCenterOffset < stackCenterOffsetMin) {
+	      stackImageIDmin = stackImageID;
+
+	      float zp = Mcal + Mmos + Mgrid + PhotZeroPoint (&catalog[Nc].measure[m], &catalog[Nc].average[j], &catalog[Nc].secfilt[j*Nsecfilt]);
+
+	      // flux_cgs : erg sec^1 cm^-2 Hz^-1
+	      // mag_inst : -2.5 log (cts/sec)
+	      // mag_inst : -2.5 log (flux_inst)
+	      // flux_inst = ten(-0.4*mag_inst)
+
+	      // mag_AB = -2.5 log (flux_cgs) - 48.6 (~by definition) [~Vega flux in V-band]
+	      // flux_cgs = ten(-0.4*(mag_AB + 48.6))
+
+	      // flux_AB : ten(-0.4*mag_AB)
+
+	      // flux_cgs = ten(-0.4*48.6) * flux_AB
+	      // flux_AB  = ten(+0.4*48.6) * flux_cgs
+	    
+	      // flux_Jy : flux_cgs * 10^23
+
+	      // flux_AB = ten(+0.4*48.6) * ten(-23) * flux_Jy
+
+	      // mag_AB = mag_inst + ZP
+
+	      // flux_inst = ten(-0.4*(mag_AB - ZP)) = ten(0.4*ZP) * flux_AB
+
+	      // flux_AB = flux_inst * ten(-0.4*ZP)
+
+	      // flux_inst * ten(-0.4*ZP) = ten(+0.4*48.6 - 23) * flux_Jy
+
+	      // flux_inst = flux_Jy * ten(0.4*ZP + 0.4*48.6 - 23)
+	      // flux_inst = flux_Jy * ten(0.4*ZP - 3.56)
+	      // flux_Jy = flux_inst * ten(-0.4*ZP + 3.56)
+
+	      // zpFactor to go from instrumental flux to Janskies
+	      float zpFactor = pow(10.0, -0.4*zp + 3.56);
+
+	      // need to put in AB mag factor to get to Janskies (or uJy?)
+	      stackFluxPSF   = zpFactor * catalog[Nc].measure[m].FluxPSF;
+	      stackdFluxPSF  = zpFactor * catalog[Nc].measure[m].dFluxPSF;
+	      stackFluxKron  = zpFactor * catalog[Nc].measure[m].FluxKron;
+	      stackdFluxKron = zpFactor * catalog[Nc].measure[m].dFluxKron;
+	    }
 	  }
 
@@ -582,4 +623,5 @@
 	  catalog[Nc].secfilt[Nsecfilt*j+Nsec].FluxKron = stackFluxKron;
 	  catalog[Nc].secfilt[Nsecfilt*j+Nsec].dFluxKron = stackdFluxKron;
+	  catalog[Nc].secfilt[Nsecfilt*j+Nsec].stackID = stackImageIDmin;
 	}
 
