Index: trunk/ippToPsps/jython/diffbatch.py
===================================================================
--- trunk/ippToPsps/jython/diffbatch.py	(revision 39038)
+++ trunk/ippToPsps/jython/diffbatch.py	(revision 39039)
@@ -103,5 +103,4 @@
            meta = {}
            meta = self.gpc1Db.getDiffStageMeta(int(diffSkyFileID))
-           self.logger.infoPair("ok, I guess that worked","now doing this")
 
            # this code is very fragile: it depends on the right order in the output 
@@ -110,5 +109,4 @@
                self.logger.errorPair("Could not get", "diff metadata")
                raise
-           self.logger.infoPair("so meta", "much amaze")
            self.filterName[num] = meta[0];
 
@@ -291,41 +289,51 @@
 
         sqlLine.group("ippDetectID",     "IPP_IDET")
-        sqlLine.group("diffImageID",     str(diffSkyFileID));                                                
-
-        sqlLine.group("randomDiffID",     "RAND("+str(self.batchID)+")")                       
-        sqlLine.group("filterID",        str(self.filterID[num]))                                        
-        sqlLine.group("surveyID",        str(self.surveyID))         
+        sqlLine.group("diffImageID",     str(diffSkyFileID))
+
+        sqlLine.group("randomDiffID",     "RAND("+str(self.batchID)+")")
+        sqlLine.group("filterID",        str(self.filterID[num]))
+        sqlLine.group("surveyID",        str(self.surveyID))
         sqlLine.group("skycellID",       str(self.skycellID[num]))
         sqlLine.group("expTime",         str(self.expTime[num]))
         sqlLine.group("obsTime",         str(self.obsTime[num]))
-        sqlLine.group("xPos",            "X_PSF")                                                   
-        sqlLine.group("yPos",            "Y_PSF")                                                   
-        sqlLine.group("xPosErr",         "X_PSF_SIG")                                               
-        sqlLine.group("yPosErr",         "Y_PSF_SIG")                                               
+        sqlLine.group("xPos",            "X_PSF")
+        sqlLine.group("yPos",            "Y_PSF")
+        sqlLine.group("xPosErr",         "X_PSF_SIG")
+        sqlLine.group("yPosErr",         "Y_PSF_SIG")
         if (self.id >= 982483):
-            sqlLine.group("pltScale",        "PLTSCALE")                                      
-            sqlLine.group("posAngle",        "POSANGLE")                                      
-            sqlLine.group("raErr",           "X_PSF_SIG * abs(PLTSCALE)") 
-            sqlLine.group("decErr",          "Y_PSF_SIG * abs(PLTSCALE)") 
+            sqlLine.group("pltScale",        "PLTSCALE")
+            sqlLine.group("posAngle",        "POSANGLE")
+            sqlLine.group("raErr",           "X_PSF_SIG * abs(PLTSCALE)")
+            sqlLine.group("decErr",          "Y_PSF_SIG * abs(PLTSCALE)")
         else:
-            sqlLine.group("pltScale",        "0.257")                                      
-            sqlLine.group("posAngle",        "-999")                                      
-            sqlLine.group("raErr",           "X_PSF_SIG * 0.257") 
-            sqlLine.group("decErr",          "Y_PSF_SIG * 0.257") 
+            sqlLine.group("pltScale",        "0.257")
+            sqlLine.group("posAngle",        "-999")
+            sqlLine.group("raErr",           "X_PSF_SIG * 0.25")
+            sqlLine.group("decErr",          "Y_PSF_SIG * 0.25")
         sqlLine.group("DpsfFlux",         "PSF_INST_FLUX / " + expTimeString)
         sqlLine.group("DpsfFluxErr",      "PSF_INST_FLUX_SIG / " + expTimeString)
-        sqlLine.group("DpsfMajorFWHM",    "PSF_FWHM_MAJ * abs(PLTSCALE)")                                               
-        sqlLine.group("DpsfMinorFWHM",    "PSF_FWHM_MIN * abs(PLTSCALE)")                                               
-        sqlLine.group("DpsfCore",         "PSF_CORE")                                                    
-        sqlLine.group("DpsfTheta",        "PSF_THETA")                                               
-        sqlLine.group("DpsfQf",           "PSF_QF")                                                  
-        sqlLine.group("DpsfQfPerfect",    "PSF_QF_PERFECT")                                
-        sqlLine.group("DpsfChiSq",        "PSF_CHISQ")                                     
-        sqlLine.group("DpsfLikelihood",   "psfLikelihood(EXT_NSIGMA)")                               
-        sqlLine.group("DmomentXX",        "MOMENTS_XX * PLTSCALE * PLTSCALE")                                              
-        sqlLine.group("DmomentXY",        "MOMENTS_XY * PLTSCALE * PLTSCALE")                                              
-        sqlLine.group("DmomentYY",        "MOMENTS_YY * PLTSCALE * PLTSCALE")                                              
-        sqlLine.group("DmomentR1",        "MOMENTS_R1 * abs(PLTSCALE)")                                              
-        sqlLine.group("DmomentRH",        "MOMENTS_RH * sqrt(abs(PLTSCALE))")                                              
+
+        if self.havePsfFwhm[num]:
+            print "I have PSF_FWHM_MAJ, setting a value"
+            sqlLine.group("DpsfMajorFWHM",    "PSF_FWHM_MAJ * abs(PLTSCALE)")
+            sqlLine.group("DpsfMinorFWHM",    "PSF_FWHM_MIN * abs(PLTSCALE)")
+            sqlLine.group("DpsfCore",         "PSF_CORE")
+
+        if self.haveSrcPos[num]:
+            print "I have SRC_CHIP_X, setting a value"
+            sqlLine.group("xPosChip",          "SRC_CHIP_X")
+            sqlLine.group("yPosChip",          "SRC_CHIP_Y")
+            sqlLine.group("ccdID"   ,          "SRC_CHIP_NUM")
+
+        sqlLine.group("DpsfTheta",        "PSF_THETA")
+        sqlLine.group("DpsfQf",           "PSF_QF")
+        sqlLine.group("DpsfQfPerfect",    "PSF_QF_PERFECT")
+        sqlLine.group("DpsfChiSq",        "PSF_CHISQ")
+        sqlLine.group("DpsfLikelihood",   "psfLikelihood(EXT_NSIGMA)")
+        sqlLine.group("DmomentXX",        "MOMENTS_XX * PLTSCALE * PLTSCALE")
+        sqlLine.group("DmomentXY",        "MOMENTS_XY * PLTSCALE * PLTSCALE")
+        sqlLine.group("DmomentYY",        "MOMENTS_YY * PLTSCALE * PLTSCALE")
+        sqlLine.group("DmomentR1",        "MOMENTS_R1 * abs(PLTSCALE)")
+        sqlLine.group("DmomentRH",        "MOMENTS_RH * sqrt(abs(PLTSCALE))")
         if (self.id >= 982483):
             sqlLine.group("DapFlux",          "AP_FLUX / " + expTimeString)
@@ -348,6 +356,6 @@
         sqlLine.group("Dsky",             "SKY / PLTSCALE / PLTSCALE / " + expTimeString)
         sqlLine.group("DskyErr",          "SKY_SIGMA / PLTSCALE / PLTSCALE / " + expTimeString)
-        sqlLine.group("DinfoFlag",        "FLAGS")                          
-        sqlLine.group("DinfoFlag2",       "FLAGS2")                          
+        sqlLine.group("DinfoFlag",        "FLAGS")
+        sqlLine.group("DinfoFlag2",       "FLAGS2")
         sqlLine.group("processingVersion",     str(self.skychunk.processingVersion))                  
 
@@ -672,4 +680,6 @@
         self.tablesLoaded = []
         self.haveApNpix = {}
+        self.havePsfFwhm = {}
+        self.haveSrcPos = {}
 
         for num in self.number:
@@ -698,4 +708,6 @@
             # this is an optional field, check for it in the table below
             self.haveApNpix[num] = 0
+            self.havePsfFwhm[num] = 0
+            self.haveSrcPos[num] = 0
 
             for table in tables:
@@ -705,4 +717,8 @@
                     if 'AP_NPIX' in columns:
                         self.haveApNpix[num] = 1
+                    if 'PSF_FWHM_MAJ' in columns:
+                        self.havePsfFwhm[num] = 1
+                    if 'SRC_CHIP_X' in columns:
+                        self.haveSrcPos[num] = 1
 
 
