Index: /branches/eam_branches/ipp-20140904/Ohana/src/relphot/include/relphot.h
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/relphot/include/relphot.h	(revision 37742)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/relphot/include/relphot.h	(revision 37743)
@@ -452,5 +452,7 @@
 int setMrel_catalog_alt (Catalog *catalog, int Nc, int pass, FlatCorrectionTable *flatcorr, SetMrelInfo *results, int Nsecfilt);
 int setMrelAverageExposure (off_t meas, int cat, int pass, FlatCorrectionTable *flatcorr, SetMrelInfo *results, Average *average, AverageTiny *averageT, SecFilt *secfilt, Measure *measure, MeasureTiny *measureT, off_t *found);
-int setMrelAverageStack (off_t meas, int cat, FlatCorrectionTable *flatcorr, SetMrelInfo *results, Average *average, SecFilt *secfilt, Measure *measure);
+int setMrelAverageStack (off_t measureOffset, int cat, FlatCorrectionTable *flatcorr, SetMrelInfo *results, Average *average, SecFilt *secfilt, Measure *measure, off_t Nmeasure);
+int setMrelAverageForcedWarp (off_t measureOffset, int cat, int pass, SetMrelInfo *results, Average *average, SecFilt *secfilt, Measure *measure, off_t *found, off_t Nmeasure);
+
 int setGlobalObjStats (Average *average, Measure *measure);
 
Index: /branches/eam_branches/ipp-20140904/Ohana/src/relphot/src/BoundaryTreeOps.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/relphot/src/BoundaryTreeOps.c	(revision 37742)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/relphot/src/BoundaryTreeOps.c	(revision 37743)
@@ -51,5 +51,6 @@
   if (!tess) return FALSE;
 
-  status = TessellationPrimaryCellIDs(tess, Ntess, tessID, projID, skycellID, ra, dec);
+  double R = ohana_normalize_angle(ra);
+  status = TessellationPrimaryCellIDs(tess, Ntess, tessID, projID, skycellID, R, dec);
   return status;
 }
Index: /branches/eam_branches/ipp-20140904/Ohana/src/relphot/src/load_images.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/relphot/src/load_images.c	(revision 37742)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/relphot/src/load_images.c	(revision 37743)
@@ -30,4 +30,13 @@
   BuildChipMatch (image, Nimage);
   MARKTIME("build chip match for %d images: %f sec\n", (int) Nimage, dtime);
+
+  char mapfile[DVO_MAX_PATH];
+  snprintf (mapfile, DVO_MAX_PATH, "%s/AstroMap.fits", CATDIR);
+  AstromOffsetTable *table = AstromOffsetMapLoad (mapfile, VERBOSE);
+
+  // assign images.coords.offsetMap -> table->map[i]
+  if (table) {
+    AstromOffsetTableMatchChips (image, Nimage, table);
+  }
 
   // allocate and init an array to identify the images included in the subset
Index: /branches/eam_branches/ipp-20140904/Ohana/src/relphot/src/relphot.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/relphot/src/relphot.c	(revision 37742)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/relphot/src/relphot.c	(revision 37743)
@@ -9,4 +9,5 @@
   switch (mode) {
     case UPDATE_IMAGES:
+      // IF CALLED WITH NLOOP == 0, DOES NOT LOAD bcatalog, just loads image table and generates ImageSubset.dat
       relphot_images ();
       exit (0);
@@ -14,4 +15,5 @@
     case UPDATE_AVERAGES:
       // take the current set of detections and set the mean magnitudes
+      // DOES NOT LOAD THE IMAGE TABLE
       relphot_objects (0, NULL);
       exit (0);
@@ -43,2 +45,8 @@
   exit (1);
 }
+
+/***
+
+    I would like to merge the functionality of relphot_images (Nloop == 0), relphot_objects, and apply_offsets
+    
+***/
Index: /branches/eam_branches/ipp-20140904/Ohana/src/relphot/src/select_images.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/relphot/src/select_images.c	(revision 37742)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/relphot/src/select_images.c	(revision 37743)
@@ -102,4 +102,7 @@
       
     if (!(i % 300000)) fprintf (stderr, ".");
+
+    // XXX I am just going for force this for the moment:
+    goto found_it;
 
     /* exclude images by photcode */
Index: /branches/eam_branches/ipp-20140904/Ohana/src/relphot/src/setMrelCatalog.c
===================================================================
--- /branches/eam_branches/ipp-20140904/Ohana/src/relphot/src/setMrelCatalog.c	(revision 37742)
+++ /branches/eam_branches/ipp-20140904/Ohana/src/relphot/src/setMrelCatalog.c	(revision 37743)
@@ -36,6 +36,4 @@
 }
 
-int setMrelAverageForcedWarp (off_t measureOffset, int cat, int pass, SetMrelInfo *results, Average *average, SecFilt *secfilt, Measure *measure, off_t *found);
-
 int setMrel_catalog_alt (Catalog *catalog, int Nc, int pass, FlatCorrectionTable *flatcorr, SetMrelInfo *results, int Nsecfilt) {
 
@@ -60,9 +58,10 @@
     Average *average = catalog[Nc].average ? &catalog[Nc].average[j] : NULL;
     Measure *measure = catalog[Nc].measure ? &catalog[Nc].measure[m] : NULL;
-    setMrelAverageExposure (m, Nc, pass, flatcorr, results, average, &catalog[Nc].averageT[j], &catalog[Nc].secfilt[j*Nsecfilt], measure, &catalog[Nc].measureT[m], &catalog[Nc].found_t[Nsecfilt*j]);
+    SecFilt *secfilt = catalog[Nc].secfilt ? &catalog[Nc].secfilt[j*Nsecfilt] : NULL;
+    setMrelAverageExposure (m, Nc, pass, flatcorr, results, average, &catalog[Nc].averageT[j], secfilt, measure, &catalog[Nc].measureT[m], &catalog[Nc].found_t[Nsecfilt*j]);
 
     // only apply Stack operation on setMrelFinal in first pass 
     if (isSetMrelFinal && (pass == 0)) {
-      setMrelAverageStack (m, Nc, flatcorr, results, &catalog[Nc].average[j], &catalog[Nc].secfilt[j*Nsecfilt], &catalog[Nc].measure[m]);
+      setMrelAverageStack (m, Nc, flatcorr, results, average, secfilt, &catalog[Nc].measure[m], catalog[Nc].Nmeasure);
       setGlobalObjStats (&catalog[Nc].average[j], &catalog[Nc].measure[m]);
     }
@@ -70,6 +69,6 @@
     // only measure force-warp mean values if issetMrelFinal (make it optional?)
     if (isSetMrelFinal) {
-      setMrelAverageForcedWarp (m, Nc, pass, results, &catalog[Nc].average[j], &catalog[Nc].secfilt[j*Nsecfilt], &catalog[Nc].measure[m], &catalog[Nc].foundWarp_t[Nsecfilt*j]);
-      setGlobalObjStats (&catalog[Nc].average[j], &catalog[Nc].measure[m]);
+      setMrelAverageForcedWarp (m, Nc, pass, results, average, secfilt, measure, &catalog[Nc].foundWarp_t[Nsecfilt*j], catalog[Nc].Nmeasure);
+      setGlobalObjStats (average, measure);
     }
   }
@@ -456,5 +455,5 @@
 // 2) select the BEST detections per filter (regardless of PRIMARY)
 // 3) apply the zero point and AB->Jy transformations
-int setMrelAverageStack (off_t measureOffset, int cat, FlatCorrectionTable *flatcorr, SetMrelInfo *results, Average *average, SecFilt *secfilt, Measure *measure) {
+int setMrelAverageStack (off_t measureOffset, int cat, FlatCorrectionTable *flatcorr, SetMrelInfo *results, Average *average, SecFilt *secfilt, Measure *measure, off_t Nmeasure) {
 
   off_t k;
@@ -496,4 +495,7 @@
     int Nstack = 0; // number for this photcode
     int NstackDet = 0; // number for this photcode
+
+    secfilt[Nsec].stackBestOff = -1;
+    secfilt[Nsec].stackPrmryOff = -1;
 
     off_t meas = measureOffset;
@@ -533,4 +535,5 @@
 	measure[k].dbFlags |= ID_MEAS_STACK_PRIMARY;
 	secfilt[Nsec].stackPrmryOff = meas;
+	myAssert (secfilt[Nsec].stackPrmryOff <= Nmeasure, "stackPrmryOff out of range");
       }
 
@@ -635,4 +638,5 @@
 
     secfilt[Nsec].stackBestOff = k + measureOffset;
+    myAssert (secfilt[Nsec].stackBestOff <= Nmeasure, "stackBestOff out of range");
 
     secfilt[Nsec].Nstack    = Nstack;
@@ -667,5 +671,5 @@
 // somewhat simplified relative to chip-photometry:
 // * no grid, no mosaic, no 2MASS, no SYNTH, no Ubercal, no flatcorr
-int setMrelAverageForcedWarp (off_t measureOffset, int cat, int pass, SetMrelInfo *results, Average *average, SecFilt *secfilt, Measure *measure, off_t *found) {
+int setMrelAverageForcedWarp (off_t measureOffset, int cat, int pass, SetMrelInfo *results, Average *average, SecFilt *secfilt, Measure *measure, off_t *found, off_t Nmeasure) {
 
   off_t k;
@@ -711,4 +715,6 @@
     // if we cannot make that association, skip this set of warps
     int stkTessID, stkProjID, stkSkycellID;
+
+    myAssert (secfilt[Nsec].stackBestOff <= Nmeasure, "stackBestOff out of range");
     if (!FindImageSkycellID (secfilt[Nsec].stackBestOff, cat, &stkTessID, &stkProjID, &stkSkycellID)) continue;
 
