Changeset 37763 for trunk/ippToPsps/jython/diffobjectbatch.py
- Timestamp:
- Dec 18, 2014, 6:00:15 PM (12 years ago)
- File:
-
- 1 edited
-
trunk/ippToPsps/jython/diffobjectbatch.py (modified) (16 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippToPsps/jython/diffobjectbatch.py
r37755 r37763 134 134 # " + cpsTable + " AS cps ON (cps.row = (MeanObject.row* " + str(filterCount) + ")-(" + str(filterCount) + " - " + str(filter[0]) + ")) \ 135 135 136 sql = "UPDATE Diff Object JOIN \137 " + cpsTable + " AS cps ON (cps.row = (Diff Object.row* " + str(filterCount) + ")-(" + str(filterCount) + " - " + str(filter[0]) + ")) \136 sql = "UPDATE DiffDetObject JOIN \ 137 " + cpsTable + " AS cps ON (cps.row = (DiffDetObject.row* " + str(filterCount) + ")-(" + str(filterCount) + " - " + str(filter[0]) + ")) \ 138 138 SET \ 139 MeanObject." + filter[1] + "QfPerfect = PSF_QF_PERF_MAX \ 140 ,MeanObject." + filter[1] + "MeanPSFMag = MAG \ 141 ,MeanObject." + filter[1] + "MeanPSFMagErr = MAG_ERR \ 142 ,MeanObject." + filter[1] + "MeanPSFMagStd = MAG_STDEV \ 143 ,MeanObject." + filter[1] + "MeanPSFMagMin = MAG_MIN \ 144 ,MeanObject." + filter[1] + "MeanPSFMagMax = MAG_MAX \ 145 ,MeanObject." + filter[1] + "MeanPSFMagNpt = NUSED \ 146 ,MeanObject." + filter[1] + "MeanKronMag = MAG_KRON \ 147 ,MeanObject." + filter[1] + "MeanKronMagErr = MAG_KRON_ERR \ 148 ,MeanObject." + filter[1] + "MeanKronMagStd = MAG_KRON_STDEV \ 149 ,MeanObject." + filter[1] + "MeanKronMagNpt = NUSED_KRON \ 150 ,MeanObject." + filter[1] + "MeanApMag = MAG_AP \ 151 ,MeanObject." + filter[1] + "MeanApMagErr = MAG_AP_ERR \ 152 ,MeanObject." + filter[1] + "MeanApMagStd = MAG_AP_STDEV \ 153 ,MeanObject." + filter[1] + "MeanApMagNpt = NUSED_AP \ 154 ,MeanObject." + filter[1] + "Flags = (0x7fff & FLAGS) | ((FLAGS >> 11) & 0x2000) " 155 139 DiffDetObject." + filter[1] + "QfPerfect = PSF_QF_PERF_MAX " 156 140 157 141 try: self.scratchDb.execute(sql) 158 142 except: 159 self.logger.errorPair("failed update MeanObject", sql)143 self.logger.errorPair("failed update DiffDetObject", sql) 160 144 raise 161 162 # now set to null all MeanMagErr values > 0.5 (cut set by Gene, 2012-04-12)163 # XXX EAM 20140724 : keep this cut?164 cut = 0.5165 self.logger.infoPair("Setting to NULL all MeanMagErr value >", "%f" % cut)166 for filter in filters:167 168 sql = "UPDATE MeanObject \169 SET " + filter[1] + "MeanPSFMagErr = null \170 WHERE " + filter[1] + "MeanPSFMagErr > " + str(cut)171 self.scratchDb.execute(sql)172 145 173 146 ''' … … 196 169 # sqlLine = sqlUtility() 197 170 198 sql = "UPDATE Diff Object JOIN "171 sql = "UPDATE DiffDetObject JOIN " 199 172 sql += cpsTable + " AS cps " 200 sql += "ON (cps.row = (Diff Object.row * "173 sql += "ON (cps.row = (DiffDetObject.row * " 201 174 sql += str(filterCount) + ")-(" 202 175 sql += str(filterCount) + " - " … … 204 177 sql += ")) " 205 178 206 sql += "SET Diff Object.n" + filter[1] + " = NCODE, "207 sql += "Diff Object.nDetections = DiffObject.nDetections + cps.NSTACK_DET"179 sql += "SET DiffDetObject.n" + filter[1] + " = NCODE, " 180 sql += "DiffDetObject.nDetections = DiffDetObject.nDetections + cps.NSTACK_DET" 208 181 self.logger.info(sql) 209 182 self.scratchDb.execute(sql) … … 213 186 for filter in filters: 214 187 # now do a sum of n[filters], but do not include the ones with -999 215 sql = "UPDATE Diff Object "188 sql = "UPDATE DiffDetObject " 216 189 sql += "SET nDetections = nDetections + n" + filter[1] 217 190 sql += " WHERE n" + filter[1] + " != -999" … … 227 200 self.logger.infoPair("updating diffObjName", "using means") 228 201 ## use mean ra and dec (dec >= 0) 229 sql = "update Diff Object set diffObjName = concat('PS1.2 J', \230 lpad(floor(ra Mean/15.),2,'0'), \231 lpad((ra Mean/15.-(floor(raMean/15.)))*60. ,2,'0'), \232 lpad(format(((ra Mean/15.-(floor(raMean/15.)))*60.-floor((raMean/15.-(floor(raMean/15.)))*60.))*60.,2),4,'0'), \202 sql = "update DiffDetObject set diffObjName = concat('PS1.2 J', \ 203 lpad(floor(ra/15.),2,'0'), \ 204 lpad((ra/15.-(floor(ra/15.)))*60. ,2,'0'), \ 205 lpad(format(((ra/15.-(floor(ra/15.)))*60.-floor((ra/15.-(floor(ra/15.)))*60.))*60.,2),4,'0'), \ 233 206 '+', \ 234 lpad(floor(dec Mean),2,'0'), \235 lpad((dec Mean-(floor(decMean)))*60. ,2,'0'), \236 lpad(format(((dec Mean-(floor(decMean)))*60.-floor((decMean-(floor(decMean)))*60.))*60.,2),4,'0') \237 ) where ra Mean > -999 and decMean > -999 and decMean>= 0"207 lpad(floor(dec_),2,'0'), \ 208 lpad((dec_-(floor(dec_)))*60. ,2,'0'), \ 209 lpad(format(((dec_-(floor(dec_)))*60.-floor((dec_-(floor(dec_)))*60.))*60.,2),4,'0') \ 210 ) where ra > -999 and dec_ > -999 and dec_ >= 0" 238 211 try: 239 212 self.scratchDb.execute(sql) … … 244 217 ## use mean ra and dec (dec < 0) 245 218 246 sql = "update Diff Object set diffObjName = concat('PS1.2 J', \247 lpad(floor(ra Mean/15.),2,'0'), \248 lpad((ra Mean/15.-(floor(raMean/15.)))*60. ,2,'0'), \249 lpad(format(((ra Mean/15.-(floor(raMean/15.)))*60.-floor((raMean/15.-(floor(raMean/15.)))*60.))*60.,2),4,'0'), \219 sql = "update DiffDetObject set diffObjName = concat('PS1.2 J', \ 220 lpad(floor(ra/15.),2,'0'), \ 221 lpad((ra/15.-(floor(ra/15.)))*60. ,2,'0'), \ 222 lpad(format(((ra/15.-(floor(ra/15.)))*60.-floor((ra/15.-(floor(ra/15.)))*60.))*60.,2),4,'0'), \ 250 223 '-', \ 251 lpad(floor(dec Mean),2,'0'), \252 lpad((dec Mean-(floor(decMean)))*60. ,2,'0'), \253 lpad(format(((dec Mean-(floor(decMean)))*60.-floor((decMean-(floor(decMean)))*60.))*60.,2),4,'0') \254 ) where ra Mean > -999 and decMean > -999 and decMean< 0"224 lpad(floor(dec_),2,'0'), \ 225 lpad((dec_-(floor(dec_)))*60. ,2,'0'), \ 226 lpad(format(((dec_-(floor(dec_)))*60.-floor((dec_-(floor(dec_)))*60.))*60.,2),4,'0') \ 227 ) where ra > -999 and dec_ > -999 and dec_ < 0" 255 228 256 229 try: … … 290 263 291 264 292 self.logger.info("Populating Diff Object")265 self.logger.info("Populating DiffDetObject") 293 266 self.logger.info("Inserting objects from cpt file") 294 267 … … 297 270 # INSERT IGNORE INTO ObjectThin 298 271 299 sqlLine = sqlUtility("INSERT INTO Diff Object (")272 sqlLine = sqlUtility("INSERT INTO DiffDetObject (") 300 273 301 274 sqlLine.group("diffObjID", "EXT_ID") … … 311 284 sqlLine.group("consistencyFlag", "'0'") 312 285 sqlLine.group("ra", "RA_MEAN") 313 sqlLine.group("dec ", "DEC_MEAN")286 sqlLine.group("dec_", "DEC_MEAN") 314 287 sqlLine.group("raErr", "RA_ERR") 315 288 sqlLine.group("decErr", "DEC_ERR") … … 320 293 self.scratchDb.execute(sql) 321 294 except: 322 self.logger.errorPair("Couldn't populate Diff Object table", sql)295 self.logger.errorPair("Couldn't populate DiffDetObject table", sql) 323 296 return False 324 297 325 298 # add row count columns so we can perform joins to get colors 326 self.logger.infoPair("Adding 'row' columns to", "Diff Object and cps tables")327 self.scratchDb.addRowCountColumn("Diff Object", "row")299 self.logger.infoPair("Adding 'row' columns to", "DiffDetObject and cps tables") 300 self.scratchDb.addRowCountColumn("DiffDetObject", "row") 328 301 self.scratchDb.addRowCountColumn(cpsTableName, "row") 329 302 330 303 ## self.insertMeanMags(cpsTableName) 331 304 ## this is the new version 332 self.logger.infoPair("update diffObjName for ","Diff Object")305 self.logger.infoPair("update diffObjName for ","DiffDetObject") 333 306 self.updateDiffObjName() 334 307 335 self.logger.infoPair("update Diff Object from ","cps table")308 self.logger.infoPair("update DiffDetObject from ","cps table") 336 309 337 310 self.updateDiffObjectFromCps(cpsTableName) … … 353 326 #count out of range 354 327 355 sql = "SELECT count(*) FROM Diff Object where \356 Diff Object.dec> (" + str(decMax) + " + .0033) \357 or Diff Object.dec< (" + str(decMin) + " - .0033) \358 or Diff Object.ra > (" + str(raMax) + " + .0033) \359 or Diff Object.ra < (" + str(raMin) + " - .0033)"328 sql = "SELECT count(*) FROM DiffDetObject where \ 329 DiffDetObject.dec_ > (" + str(decMax) + " + .0033) \ 330 or DiffDetObject.dec_ < (" + str(decMin) + " - .0033) \ 331 or DiffDetObject.ra > (" + str(raMax) + " + .0033) \ 332 or DiffDetObject.ra < (" + str(raMin) + " - .0033)" 360 333 361 334 rs = self.scratchDb.executeQuery(sql) … … 366 339 367 340 368 sql = "DELETE FROM Diff Object where \369 Diff Object.decMean> (" + str(decMax) + " + .0033) or \370 Diff Object.decMean< (" + str(decMin) + " - .0033) or \371 Diff Object.raMean> (" + str(raMax) + " + .0033) or \372 Diff Object.raMean< (" + str(raMin) + " - .0033)"341 sql = "DELETE FROM DiffDetObject where \ 342 DiffDetObject.dec_ > (" + str(decMax) + " + .0033) or \ 343 DiffDetObject.dec_ < (" + str(decMin) + " - .0033) or \ 344 DiffDetObject.ra > (" + str(raMax) + " + .0033) or \ 345 DiffDetObject.ra < (" + str(raMin) + " - .0033)" 373 346 self.logger.infoPair("Deleting", str(nToDelete) + " objects outside of ra/dec range") 374 347 … … 376 349 self.scratchDb.execute(sql) 377 350 except: 378 self.logger.errorPair("Couldn't cull outsiders from Diff Object table", sql)351 self.logger.errorPair("Couldn't cull outsiders from DiffDetObject table", sql) 379 352 return False 380 353 381 self.logger.infoPair("Dropping row column from", "Diff Object table")382 self.scratchDb.dropColumn("Diff Object", "row")354 self.logger.infoPair("Dropping row column from", "DiffDetObject table") 355 self.scratchDb.dropColumn("DiffDetObject", "row") 383 356 ##self.logger.infoPair("Purging from scratch Db", self.region + " region") 384 357 … … 386 359 ##self.dvoObjects.purgeRegion(self.region) 387 360 388 self.setMinMaxDiffObjID(["Diff Object"])361 self.setMinMaxDiffObjID(["DiffDetObject"]) 389 362 390 363 return True 364 365 ''' 366 Updates table and generates pspsuniqueids 367 ''' 368 369 def updatePspsUniqueIDs(self,table): 370 sql = "UPDATE "+table+" join (select @r:=@r+1 rownum, diffobjID from \ 371 (select @r:=0) r, "+table+" t) as foo using (diffobjID) set \ 372 uniquePspsDOid = ((" +str(self.batchID)+ "*1000000000 ) + rownum)" 373 try: self.scratchDb.execute(sql) 374 except: 375 self.logger.errorPair('failed sql',sql) 376 return 377 378 391 379 392 380 ''' … … 399 387 # now remove the objID duplicates. We could not do this before as cpt/cps tables relate by row number 400 388 self.logger.infoPair("Forcing uniqueness on", "objID in DIffObject table") 401 rowCountBefore = self.scratchDb.getRowCount("Diff Object")389 rowCountBefore = self.scratchDb.getRowCount("DiffDetObject") 402 390 403 391 # XXX EAM : note that in mysql versions later than 5.1, this fails … … 410 398 self.scratchDb.execute("set session old_alter_table=1") 411 399 412 self.scratchDb.execute("ALTER IGNORE TABLE Diff Object ADD UNIQUE INDEX(diffObjID)")400 self.scratchDb.execute("ALTER IGNORE TABLE DiffDetObject ADD UNIQUE INDEX(diffObjID)") 413 401 if self.scratchDb.version > 5.1: 414 402 self.scratchDb.execute("set session old_alter_table=0") 415 403 416 rowCountAfter = self.scratchDb.getRowCount("Diff Object")404 rowCountAfter = self.scratchDb.getRowCount("DiffDetObject") 417 405 self.logger.infoPair("Number of duplicated diffobjIDs removed", "%d out of %d" % ((rowCountBefore - rowCountAfter), rowCountBefore)) 418 406 407 self.scratchDb.execute("ALTER TABLE DiffDetObject CHANGE dec_ `dec` double") 408 409 self.updatePspsUniqueIDs("DiffDetObject") 410 419 411 self.dvoObjects.purgeRegion(self.region) 420 412 421 413 #this is abuse of something but this is how I get the object batches to crash to further investigate them 422 414 423 rowCountAfter = self.scratchDb.getRowCount("Object") 415 416 # rowCountAfter = self.scratchDb.getRowCount("Object") 424 417 return True 425 418 # return False
Note:
See TracChangeset
for help on using the changeset viewer.
