Index: trunk/ippToPsps/jython/diffbatch.py
===================================================================
--- trunk/ippToPsps/jython/diffbatch.py	(revision 39249)
+++ trunk/ippToPsps/jython/diffbatch.py	(revision 39305)
@@ -56,5 +56,4 @@
                "DF", 
                None)
-    #           gpc1Db.getDiffStageCmf(skychunk.dvoLabel,diffSkyFileID))
 
        # get diff meta data
@@ -195,10 +194,16 @@
            ## -- XXX hard-wired platescale : 0.25
            pltscale = 0.25
-           self.psfFwhmMajor[num] = pltscale * self.getKeyFloat(self.header[num], "%.8f", 'FWHM_MAJ')
-           self.psfFwhmMinor[num] = pltscale * self.getKeyFloat(self.header[num], "%.8f", 'FWHM_MIN')
-           self.psfFWHM[num] = 0.5*(self.psfFwhmMajor[num] + self.psfFwhmMinor[num])
-
-           self.psfModelName[num]    = self.getKeyValue(self.header[num], 'PSFMODEL')
-           self.psfModelID[num]  = self.scratchDb.getFitModelID(self.psfModelName[num])
+           self.psfFwhmMajor[num] = self.getKeyFloat(self.header[num], "%.8f", 'FWHM_MAJ')
+           if (self.psfFwhmMajor[num] != "NULL"): self.psfFwhmMajor[num] *= pltscale
+
+           self.psfFwhmMinor[num] = self.getKeyFloat(self.header[num], "%.8f", 'FWHM_MIN')
+           if (self.psfFwhmMinor[num] != "NULL"): self.psfFwhmMinor[num] *= pltscale
+
+           self.psfFWHM[num] = "NULL"
+           if (self.psfFwhmMajor[num] != "NULL") and (self.psfFwhmMinor[num] != "NULL"):
+               self.psfFWHM[num] = 0.5*(self.psfFwhmMajor[num] + self.psfFwhmMinor[num])
+
+           self.psfModelName[num] = self.getKeyValue(self.header[num], 'PSFMODEL')
+           self.psfModelID[num]   = self.scratchDb.getFitModelID(self.psfModelName[num])
 
            # drop the existing tables    
@@ -244,9 +249,10 @@
         # Convert detectionThreshold to appropriate magnitudes
         # we have read these values from the appropriate locations in init()
-        zpImage = float(self.zpImage[num])
-        expTime = float(self.expTime[num])
-        magref  = float(self.magref[num])
-
-        detectionThreshold = magref + zpImage + 2.5 * math.log10(expTime)
+        zpImage = "NULL" if (self.zpImage[num] == "NULL") else float(self.zpImage[num])
+        expTime = "NULL" if (self.expTime[num] == "NULL") else float(self.expTime[num])
+        magref  = "NULL" if (self.magref[num]  == "NULL") else float(self.magref[num])
+
+        isNull = (zpImage == "NULL") or (expTime == "NULL") or (magref == "NULL")
+        detectionThreshold = "NULL" if isNull else magref + zpImage + 2.5 * math.log10(expTime)
 
         sql = "CREATE TABLE DiffMeta_"+str(num)+" like DiffMeta"
@@ -532,9 +538,10 @@
 
         # we have read these values from the appropriate locations in init()
-        zpImage = float(self.zpImage[num])
-        expTime = float(self.expTime[num])
-        magref  = float(self.magref[num])
-
-        detectionThreshold = magref + zpImage + 2.5 * math.log10(expTime)
+        zpImage = "NULL" if (self.zpImage[num] == "NULL") else float(self.zpImage[num])
+        expTime = "NULL" if (self.expTime[num] == "NULL") else float(self.expTime[num])
+        magref  = "NULL" if (self.magref[num]  == "NULL") else float(self.magref[num])
+
+        isNull = (zpImage == "NULL") or (expTime == "NULL") or (magref == "NULL")
+        detectionThreshold = "NULL" if isNull else magref + zpImage + 2.5 * math.log10(expTime)
 
         nInjected = int(self.nInjected[num])
