Index: trunk/ippToPsps/jython/stackbatch.py
===================================================================
--- trunk/ippToPsps/jython/stackbatch.py	(revision 38956)
+++ trunk/ippToPsps/jython/stackbatch.py	(revision 38958)
@@ -657,4 +657,7 @@
         magtime = "%.5f" % (2.5*math.log10(float(header['EXPTIME'])))
 
+        # XXX hard-wired platescale : 0.25 (could get this from header, but stacks have constant plate scale
+        pltscale = 0.25
+
         sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + cmfTable + " AS b SET")
 
@@ -665,10 +668,11 @@
         sqlLine.group("a." + filter + model + "MagErr",    "b.EXT_INST_MAG_SIG")
                       
-        sqlLine.group("a." + filter + model + "Radius",    "b.EXT_WIDTH_MAJ")
+        sqlLine.group("a." + filter + model + "Radius",    "b.EXT_WIDTH_MAJ     * " + str(pltscale))
+        sqlLine.group("a." + filter + model + "RadiusErr", "b.EXT_WIDTH_MAJ_ERR * " + str(pltscale))
+
         sqlLine.group("a." + filter + model + "Ab",        "b.EXT_WIDTH_MIN/b.EXT_WIDTH_MAJ")
+        sqlLine.group("a." + filter + model + "AbErr",     "sqrt(b.EXT_WIDTH_MIN_ERR * b.EXT_WIDTH_MIN_ERR + pow(b.EXT_WIDTH_MAJ_ERR * b.EXT_WIDTH_MIN / b.EXT_WIDTH_MAJ, 2.0)) / b.EXT_WIDTH_MAJ")
+
         sqlLine.group("a." + filter + model + "Phi",       "DEGREES(b.EXT_THETA)")
-
-        sqlLine.group("a." + filter + model + "RadiusErr", "b.EXT_WIDTH_MAJ_ERR")
-        sqlLine.group("a." + filter + model + "AbErr",     "b.EXT_WIDTH_MIN_ERR")
         sqlLine.group("a." + filter + model + "PhiErr",    "DEGREES(b.EXT_THETA_ERR)")
 
@@ -676,11 +680,4 @@
 
         # I have raExp = X_EXT
-
-        # This is tricky: RA_EXT is not defined for PS1_SV3 or PS1_V5, but X_EXT is
-        # XXX EAM 20140812: for PV3, update cmf output to define RA_EXT, DEC_EXT
-        ## sqlLine.group("a." + filter + model + "Ra",        "b.X_EXT")
-        ## sqlLine.group("a." + filter + model + "Dec",       "b.Y_EXT")
-        ## sqlLine.group("a." + filter + model + "RaErr",     "b.X_EXT_SIG") # need to modify by platescale
-        ## sqlLine.group("a." + filter + model + "DecErr",    "b.Y_EXT_SIG")
 
         # EAM 20150924: PV3 output cmfs were updated to include RA_EXT, DEC_EXT
@@ -712,6 +709,4 @@
 
         sqlLine.group("a." + filter + model + "Mag",       "a." + filter + model + "Mag       + b.zp")
-        sqlLine.group("a." + filter + model + "Radius",    "a." + filter + model + "Radius    * b.PLTSCALE")
-        sqlLine.group("a." + filter + model + "RadiusErr", "a." + filter + model + "RadiusErr * b.PLTSCALE")
 
         sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a." + filter + "ippDetectID = b.ippDetectID AND b.imageID = " + str(imageID))
@@ -837,4 +832,7 @@
         magtime = "%.5f" % (2.5*math.log10(float(header['EXPTIME'])))
 
+        # XXX hard-wired platescale : 0.25 (could get this from header, but stacks have constant plate scale
+        pltscale = 0.25
+
         self.logger.infoPair("Adding", "petrosians for extended sources")
         sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + cmfTable + " AS b SET")
@@ -842,39 +840,24 @@
         sqlLine.group("a."+filter+"haveData",         "'1'")
 
-        sqlLine.group("a." + filter + "petRadius",    "b.PETRO_RADIUS")
-        sqlLine.group("a." + filter + "petRadiusErr", "b.PETRO_RADIUS_ERR")
         sqlLine.group("a." + filter + "petMag",       "b.PETRO_MAG - " + hdrZP)  
         sqlLine.group("a." + filter + "petMagErr",    "1.0 / b.PETRO_MAG_ERR")  # still inverted? (yes)
-        sqlLine.group("a." + filter + "petR50",       "b.PETRO_RADIUS_50")
-        sqlLine.group("a." + filter + "petR50Err",    "b.PETRO_RADIUS_50_ERR")
-        sqlLine.group("a." + filter + "petR90",       "b.PETRO_RADIUS_90")
-        sqlLine.group("a." + filter + "petR90Err",    "b.PETRO_RADIUS_90_ERR")
+
+        sqlLine.group("a." + filter + "petRadius",    "b.PETRO_RADIUS        * " + str(pltscale))
+        sqlLine.group("a." + filter + "petRadiusErr", "b.PETRO_RADIUS_ERR    * " + str(pltscale))
+        sqlLine.group("a." + filter + "petR50",       "b.PETRO_RADIUS_50     * " + str(pltscale))
+        sqlLine.group("a." + filter + "petR50Err",    "b.PETRO_RADIUS_50_ERR * " + str(pltscale))
+        sqlLine.group("a." + filter + "petR90",       "b.PETRO_RADIUS_90     * " + str(pltscale))
+        sqlLine.group("a." + filter + "petR90Err",    "b.PETRO_RADIUS_90_ERR * " + str(pltscale))
         sqlLine.group("a." + filter + "petCf",        "b.PETRO_FILL")
 
         sql = sqlLine.makeEquals("WHERE a." + filter + "ippDetectID = b.IPP_IDET ")
-
-        try: self.scratchDb.execute(sql)
-        except:
-            self.logger.error("problem with SQL: " + sql)
-            raise
+        self.scratchDb.execute(sql)
 
         # modify petMag to apply the zero point
         sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + self.scratchDb.dvoDetectionTable + " as b SET")
-
         sqlLine.group("a." + filter + "petMag",       "a." + filter + "petMag    + b.zp")
-
-        sqlLine.group("a." + filter + "petRadius",    "a." + filter + "petRadius * b.PLTSCALE")
-        sqlLine.group("a." + filter + "petRadiusErr", "a." + filter + "petRadius * b.PLTSCALE")
-        sqlLine.group("a." + filter + "petR50",       "a." + filter + "petR50    * b.PLTSCALE")
-        sqlLine.group("a." + filter + "petR50Err",    "a." + filter + "petR50Err * b.PLTSCALE")
-        sqlLine.group("a." + filter + "petR90",       "a." + filter + "petR90    * b.PLTSCALE")
-        sqlLine.group("a." + filter + "petR90Err",    "a." + filter + "petR90Err * b.PLTSCALE")
-
         sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a." + filter + "ippDetectID = b.ippDetectID AND b.imageID = " + str(imageID))
 
-        try: self.scratchDb.execute(sql)
-        except:
-            self.logger.errorPair('failed sql',sql)
-            raise
+        self.scratchDb.execute(sql)
 
         # modify petRadiusErr if it is not set correctlyu
@@ -884,9 +867,5 @@
         sql = sqlLine.makeEquals("WHERE a." + filter + "petRadiusErr IS NULL")
 
-        try: self.scratchDb.execute(sql)
-        except:
-            self.logger.errorPair('failed sql',sql)
-            raise
-
+        self.scratchDb.execute(sql)
 
     '''
@@ -1171,22 +1150,9 @@
     def generateRandomIDs(self):
         sql = "UPDATE StackObjectThin set randomStackObjID = RAND("+str(self.batchID)+")"
-        try: self.scratchDb.execute(sql)
-        except:
-            self.logger.errorPair('failed sql',sql)
-            raise
-
+        self.scratchDb.execute(sql)
 
     def generateStackDetectRowIDsAndPspsUniqueIDs(self):
-#        sql = "UPDATE StackObjectThin join (select @r:=@r+1 rownum, objID from \
-#        (select @r:=0) r, StackObjectThin t) as foo using (objID) set \
-#        stackDetectRowID = ((" + str(self.batchID) + " << 32 ) + rownum), \
-#        uniquePspsSTid = ((" +str(self.batchID)+ "*1000000000 ) + rownum)";
         sql = "UPDATE StackObjectThin set uniquePspsSTid = (("+str(self.batchID)+"*1000000000 ) + row)"
-
-        try: self.scratchDb.execute(sql)
-        except:
-            self.logger.errorPair('failed sql',sql)
-            raise
-        
+        self.scratchDb.execute(sql)
 
     '''
@@ -1202,16 +1168,4 @@
         for filter in self.filters:
             self.scratchDb.addColumn("StackObjectThin", filter + "haveData", "tinyint")
-
- #       sqlLine = sqlUtility("INSERT INTO StackObjectThin (")
- #       
- #       sqlLine.group("objID",            "objID")
- #       sqlLine.group("ippObjID",         "ippObjID")
-#        sqlLine.group("ippDetectID", "ippDetectID") # added ippDetectID
- #       sqlLine.group("surveyID",         "'" + str(self.surveyID) + "'")
- #       sqlLine.group("tessID",           "'" + str(self.tessID) + "'")
- #       sqlLine.group("projectionID",     "'" + str(self.projectionID) + "'")
- #       sqlLine.group("skyCellID",        "'" + str(self.skycellID) + "'")
- #       sqlLine.group("processingVersion",      "'" + str(self.skychunk.processingVersion) + "'")
-   #     sqlLine.group("randomStackObjID", "FLOOR(RAND()*9223372036854775807)")
 
         whereClause = " WHERE ("
@@ -1231,12 +1185,7 @@
         sql = "insert into StackObjectThin (objID, ippDetectID, ippObjID) select distinct objID, ippDetectID, ippObjID from dvoDetectionFull " + whereClause;
 
-  #      sql = sqlLine.makeRaw(") SELECT DISTINCT ", "FROM " + self.scratchDb.dvoDetectionTable + whereClause)
-
-        try: self.scratchDb.execute(sql)
-        except:
-            self.logger.errorPair('failed sql',sql)
-            raise
-
-# ok, now add surveyID, tessID, projectionID, skycellID, dtaRelease
+        self.scratchDb.execute(sql)
+
+        # ok, now add surveyID, tessID, projectionID, skycellID, dtaRelease
 
         sql = "update StackObjectThin set surveyID = "+str(self.surveyID) +"\
@@ -1246,18 +1195,13 @@
               , processingVersion = '" + str(self.skychunk.processingVersion)  +"'"
               
-        try: self.scratchDb.execute(sql)
-        except:
-            self.logger.errorPair('failed sql',sql)
-            raise
-
- # ok, now fill g/r/i/z/yippDetectID using objID and detectID and image ID
+        self.scratchDb.execute(sql)
+
+        # ok, now fill g/r/i/z/yippDetectID using objID and detectID and image ID
 
         for filter in self.filters:
             sql = "update StackObjectThin join "+self.scratchDb.dvoDetectionTable +" using (objID, ippDetectID) set "+filter+"ippDetectID = ippDetectID \
                   where " + self.scratchDb.dvoDetectionTable + ".imageID = " + str(imageID)
-            try: self.scratchDb.execute(sql)
-            except:
-                self.logger.errorPair('failed sql',sql)
-                raise
+            self.scratchDb.execute(sql)
+
         self.scratchDb.dropColumn("StackObjectThin", "ippDetectID")
 
@@ -1277,20 +1221,12 @@
             fields += filter + "ippDetectID, "
             fields += filter + "stackDetectID, "
-#            fields += filter + "StackDetectRowID, " 
             fields += filter + "stackImageID " # careful here: do not add comma to last entry
             if (i < len(self.filters) - 1):
                 fields += ", "
 
-        #if (table == "StackObjectAttributes"):
-        #    fields += ", stackDetectRowID "
         sql  = "INSERT INTO " + table + " (" + fields + ") "
         sql += "SELECT " + fields + " FROM " + mainTable
 
-        try: self.scratchDb.execute(sql)
-        except:
-            self.logger.errorPair('failed sql',sql)
-            raise
-
-
+        self.scratchDb.execute(sql)
         
     '''
@@ -1428,8 +1364,5 @@
                 self.tablesLoaded.append(myTable)
 
-        # XXX validate required tables (do we need _psf?, _xsrc? etc)
-
         self.logger.infoPair("Done. Imported", "%d tables" % count)
         self.indexIppTables()
-#        return False
         return True
