Changeset 36736
- Timestamp:
- May 9, 2014, 10:07:40 AM (12 years ago)
- Location:
- trunk/ippToPsps
- Files:
-
- 3 edited
-
config/tables.ST.vot (modified) (1 diff)
-
jython/objectbatch.py (modified) (14 diffs)
-
jython/stackbatch.py (modified) (21 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippToPsps/config/tables.ST.vot
r36715 r36736 727 727 <DESCRIPTION>PSF orientation angle</DESCRIPTION> 728 728 </FIELD> 729 <FIELD name=" zpsfCore" arraysize="1" datatype="float" unit="degrees" default="-999">729 <FIELD name="ypsfCore" arraysize="1" datatype="float" unit="degrees" default="-999"> 730 730 <DESCRIPTION>PSF core parameter [k in (1 + kz * z^1.66)]</DESCRIPTION> 731 731 </FIELD> -
trunk/ippToPsps/jython/objectbatch.py
r35496 r36736 91 91 92 92 # dec is reserved in MySQL, so STILTS replaces if with dec_, which PSPS doesn't like. so, force it back again using `` 93 self.scratchDb.execute("ALTER TABLE Object CHANGE dec_ `dec` double") 93 # self.scratchDb.execute("ALTER TABLE MeanObject CHANGE dec_ `dec` double") 94 # self.scratchDb.execute("ALTER TABLE ObjectThin CHANGE dec_ `dec` double") 94 95 95 96 return True … … 107 108 Inserts stuff for all mags 108 109 ''' 109 def insertM ags(self, cpsTable):110 def insertMeanMags(self, cpsTable): 110 111 111 112 # list of all filters PSPS is interested in … … 129 130 # from bit 24 to bit 13 so that it fits into the SMALLINT Object.Flags 130 131 131 sql = "UPDATE ObjectJOIN \132 " + cpsTable + " AS cps ON (cps.row = (Object .row* " + str(filterCount) + ")-(" + str(filterCount) + " - " + str(filter[0]) + ")) \132 sql = "UPDATE MeanObject JOIN ObjectThin using (objID) JOIN \ 133 " + cpsTable + " AS cps ON (cps.row = (ObjectThin.row* " + str(filterCount) + ")-(" + str(filterCount) + " - " + str(filter[0]) + ")) \ 133 134 SET \ 134 n" + filter[1] + " = NCODE \ 135 ," + filter[1] + "MeanPSFMag = MAG \ 136 ," + filter[1] + "MeanPSFMagErr = MAG_ERR \ 137 ," + filter[1] + "MeanKronMag = MAG_KRON \ 138 ," + filter[1] + "MeanKronMagErr = MAG_KRON_ERR \ 139 ," + filter[1] + "StackPSFMag = STACK_PSF_MAG \ 140 ," + filter[1] + "StackPSFMagErr = STACK_PSF_MAG_ERR \ 141 ," + filter[1] + "StackKronMag = STACK_KRON_MAG \ 142 ," + filter[1] + "StackKronMagErr = STACK_KRON_MAG_ERR \ 143 ," + filter[1] + "20pct = MAG_20/1000 \ 144 ," + filter[1] + "80pct = MAG_80/1000 \ 145 ," + filter[1] + "Flags = (0x7fff & FLAGS) | ((FLAGS >> 11) & 0x2000) \ 146 ," + filter[1] + "StackDetectID = STACK_DETECT_ID" 147 148 # old method for setting the Stack (PSF,Kron) Mags: 149 # ," + filter[1] + "StackPSFMag = -2.5 * log10(FLUX_PSF) + 8.9 \ 150 # ," + filter[1] + "StackPSFMagErr = FLUX_PSF_ERR / FLUX_PSF \ 151 # ," + filter[1] + "StackKronMag = -2.5 * log10(FLUX_KRON) + 8.9 \ 152 # ," + filter[1] + "StackKronMagErr = FLUX_KRON_ERR / FLUX_KRON \ 153 154 #self.logger.info(sql) 135 ObjectThin.n" + filter[1] + " = NCODE \ 136 ,MeanObject." + filter[1] + "MeanPSFMag = MAG \ 137 ,MeanObject." + filter[1] + "MeanPSFMagErr = MAG_ERR \ 138 ,MeanObject." + filter[1] + "MeanKronMag = MAG_KRON \ 139 ,MeanObject." + filter[1] + "MeanKronMagErr = MAG_KRON_ERR \ 140 ,MeanObject." + filter[1] + "Flags = (0x7fff & FLAGS) | ((FLAGS >> 11) & 0x2000) " 141 142 143 self.logger.info(sql) 155 144 self.scratchDb.execute(sql) 156 145 … … 158 147 for filter in filters: 159 148 # now do a sum of n[filters], but do not include the ones with -999 160 sql = "UPDATE Object \149 sql = "UPDATE ObjectThin join MeanObject using (objID) \ 161 150 SET nDetections = nDetections + n" + filter[1] + " \ 162 151 WHERE n" + filter[1] + " != -999" … … 171 160 for filter in filters: 172 161 173 sql = "UPDATE Object \162 sql = "UPDATE MeanObject \ 174 163 SET " + filter[1] + "MeanPSFMagErr = null \ 175 164 WHERE " + filter[1] + "MeanPSFMagErr > " + str(cut) 176 165 self.scratchDb.execute(sql) 177 166 178 self.logger.infoPair("Setting to NULL all x20pct =", "32.767" )179 for filter in filters:180 sql = "UPDATE Object \181 SET " + filter[1] + "20pct = null \182 WHERE " + filter[1] + "20pct > 32.766"183 self.scratchDb.execute(sql)184 self.logger.infoPair("Setting to NULL all x80pct =", "32.767" )185 for filter in filters:186 sql = "UPDATE Object \187 SET " + filter[1] + "80pct = null \188 WHERE " + filter[1] + "80pct > 32.766"189 self.scratchDb.execute(sql)190 191 192 193 194 '''195 Inserts colors196 '''197 def updateColors(self):198 199 self.logger.infoPair("Calculating", "colors")200 sql = "UPDATE Object \201 SET \202 grMeanColor = (gMeanMag - rMeanMag) \203 ,riMeanColor = (rMeanMag - iMeanMag) \204 ,izMeanColor = (iMeanMag - zMeanMag) \205 ,zyMeanColor = (zMeanMag - yMeanMag) \206 ,grMeanColorErr = SQRT(POW(gMeanMagErr,2) + POW(rMeanMagErr,2)) \207 ,riMeanColorErr = SQRT(POW(rMeanMagErr,2) + POW(iMeanMagErr,2)) \208 ,izMeanColorErr = SQRT(POW(iMeanMagErr,2) + POW(zMeanMagErr,2)) \209 ,zyMeanColorErr = SQRT(POW(zMeanMagErr,2) + POW(yMeanMagErr,2)) \210 "211 try:212 self.scratchDb.execute(sql)213 except:214 self.logger.errorPair("Couldn't calculate colors", sql)215 167 216 168 ''' 217 169 Populates the Object table 218 170 ''' 219 def populateObjectT able(self):171 def populateObjectThinTable(self): 220 172 221 173 cptTableName = self.scratchDb.getDbFriendlyTableName(self.region + ".cpt") … … 242 194 243 195 244 self.logger.infoPair("Populating", " Object s")196 self.logger.infoPair("Populating", "ThinObject") 245 197 self.logger.infoPair("Inserting objects from", "cpt file") 246 198 247 199 # note `` around dec here, as this is a reserved word in MySQL 248 sql = "INSERT IGNORE INTO Object (\200 sql = "INSERT IGNORE INTO ObjectThin (\ 249 201 objID \ 202 ,gcobjID \ 250 203 ,ippObjID \ 204 ,surveyID \ 205 ,skyCellID \ 206 ,randomID \ 207 ,batchID \ 208 ,dataRelease \ 251 209 ,objInfoFlag \ 252 210 ,qualityFlag \ 253 ,surveyID \ 254 ,ra \ 255 ,`dec` \ 256 ,raErr \ 257 ,decErr \ 211 ,raMean \ 212 ,decMean \ 213 ,raMeanErr \ 214 ,decMeanErr \ 258 215 ,nDetections \ 259 ,qfPerfect \ 260 ,sgSep \ 261 ,dataRelease \ 262 ,Random \ 263 ,batchID \ 264 ) \ 216 ) \ 265 217 SELECT \ 266 218 EXT_ID \ 219 , -999 \ 267 220 ,CAT_ID*1000000000 + OBJ_ID \ 221 ," + str(self.surveyID) + " \ 222 ,-999 \ 223 , RAND() \ 224 , " + str(self.batchID) + "\ 225 , " + str(self.skychunk.dataRelease) + "\ 268 226 ,FLAGS \ 269 227 ,FLAGS >> 24 & 0xFF \ 270 ," + str(self.surveyID) + " \271 228 ,RA \ 272 229 ,DEC_ \ … … 274 231 ,DEC_ERR \ 275 232 ,0 \ 276 ,PSF_QF_PERF \ 277 ,STARGAL_SEP \ 278 , " + str(self.skychunk.dataRelease) + "\ 279 , RAND() \ 280 , " + str(self.batchID) + "\ 281 FROM " + cptTableName 233 FROM " + cptTableName 282 234 283 235 try: … … 289 241 # add row count columns so we can perform joins to get colors 290 242 self.logger.infoPair("Adding 'row' columns to", "Object and cps tables") 291 self.scratchDb.addRowCountColumn("Object ", "row")243 self.scratchDb.addRowCountColumn("ObjectThin", "row") 292 244 self.scratchDb.addRowCountColumn(cpsTableName, "row") 293 245 294 self.insertMags(cpsTableName)246 # self.insertMeanMags(cpsTableName) 295 247 296 248 #don't do this as we removed those columns.. … … 312 264 #count out of range 313 265 314 sql = "SELECT count(*) FROM Object where Object.dec > " + str(decMax) + " or Object.dec < " + str(decMin) + " or Object.ra > " + str(raMax) + " or Object.ra < " + str(raMin) 266 sql = "SELECT count(*) FROM ObjectThin where \ 267 ObjectThin.decMean > " + str(decMax) + " \ 268 or ObjectThin.decMean < " + str(decMin) + " \ 269 or ObjectThin.raMean > " + str(raMax) + " \ 270 or ObjectThin.raMean < " + str(raMin) 315 271 316 272 rs = self.scratchDb.executeQuery(sql) … … 321 277 322 278 323 sql = "DELETE FROM Object where Object.dec > " + str(decMax) + " or Object.dec < " + str(decMin) + " or Object.ra > " + str(raMax) + " or Object.ra < " + str(raMin) 279 sql = "DELETE FROM ObjectThin where \ 280 ObjectThin.decMean > " + str(decMax) + " or \ 281 ObjectThin.decMean < " + str(decMin) + " or \ 282 ObjectThin.raMean > " + str(raMax) + " or \ 283 ObjectThin.raMean < " + str(raMin) 324 284 self.logger.infoPair("Deleting", str(nToDelete) + " objects outside of ra/dec range") 325 285 … … 327 287 self.scratchDb.execute(sql) 328 288 except: 329 self.logger.errorPair("Couldn't cull outsiders from Object table", sql)289 self.logger.errorPair("Couldn't cull outsiders from ObjectThin table", sql) 330 290 return False 331 291 332 self.logger.infoPair("Dropping row column from", "Object table")333 self.scratchDb.dropColumn("Object ", "row")292 self.logger.infoPair("Dropping row column from", "ObjectThin table") 293 self.scratchDb.dropColumn("ObjectThin", "row") 334 294 self.logger.infoPair("Purging from scratch Db", self.region + " region") 335 295 336 296 self.dvoObjects.purgeRegion(self.region) 337 297 338 self.setMinMaxObjID(["Object "])298 self.setMinMaxObjID(["ObjectThin"]) 339 299 340 300 return True … … 343 303 Populates the ObjectCalColor table 344 304 ''' 345 def populate ObjectCalColorTable(self):346 347 self.logger.infoPair("Populating", " ObjectCalColor")348 349 sql = "INSERT INTO ObjectCalColor( \305 def populateMeanObjectTable(self): 306 307 self.logger.infoPair("Populating", "MeanObject") 308 309 sql = "INSERT INTO MeanObject ( \ 350 310 objID \ 351 ,ippObjID \ 352 ,dataRelease \ 311 ,gcobjID \ 353 312 ) \ 354 313 SELECT \ 355 314 objID \ 356 ,ippObjID \ 357 ,dataRelease \ 358 FROM Object" 315 ,gcobjID \ 316 FROM ObjectThin" 359 317 try: 360 318 self.scratchDb.execute(sql) 361 319 except: 362 self.logger.errorPair("Couldn't populate ObjectCalColortable", sql)320 self.logger.errorPair("Couldn't populate MeanObject table", sql) 363 321 return False 364 322 323 self.insertMeanMags("MeanObject") 365 324 return True 366 325 … … 370 329 def populatePspsTables(self): 371 330 372 if not self.populateObjectT able(): return False331 if not self.populateObjectThinTable(): return False 373 332 #if not self.populateObjectCalColorTable(): return False 333 if not self.populateMeanObjectTable(): return False 374 334 375 335 # now remove the objID duplicates. We could not do this before as cpt/cps tables relate by row number 376 self.logger.infoPair("Forcing uniqueness on", "objID in Object table")377 rowCountBefore = self.scratchDb.getRowCount("Object ")336 self.logger.infoPair("Forcing uniqueness on", "objID in ObjectThin table") 337 rowCountBefore = self.scratchDb.getRowCount("ObjectThin") 378 338 379 339 # XXX EAM : note that in mysql versions later than 5.1, this fails … … 386 346 self.scratchDb.execute("set session old_alter_table=1") 387 347 388 self.scratchDb.execute("ALTER IGNORE TABLE Object ADD UNIQUE INDEX(objID)")348 self.scratchDb.execute("ALTER IGNORE TABLE ObjectThin ADD UNIQUE INDEX(objID)") 389 349 if self.scratchDb.version > 5.1: 390 350 self.scratchDb.execute("set session old_alter_table=0") 391 351 352 rowCountAfter = self.scratchDb.getRowCount("ObjectThin") 353 self.logger.infoPair("Number of duplicated objIDs removed", "%d out of %d" % ((rowCountBefore - rowCountAfter), rowCountBefore)) 354 355 self.logger.infoPair("Forcing uniqueness on", "objID in MeanObject table") 356 rowCountBefore = self.scratchDb.getRowCount("MeanObject") 357 358 # XXX EAM : note that in mysql versions later than 5.1, this fails 359 # unless the following is called first: 360 # set session old_alter_table=1 361 # follow the command with 362 # set session old_alter_table=0 363 # OF COURSE, this fails for mysql version < 5.5... 364 if self.scratchDb.version > 5.1: 365 self.scratchDb.execute("set session old_alter_table=1") 366 367 self.scratchDb.execute("ALTER IGNORE TABLE MeanObject ADD UNIQUE INDEX(objID)") 368 if self.scratchDb.version > 5.1: 369 self.scratchDb.execute("set session old_alter_table=0") 370 371 rowCountAfter = self.scratchDb.getRowCount("MeanObject") 372 self.logger.infoPair("Number of duplicated objIDs removed", "%d out of %d" % ((rowCountBefore - rowCountAfter), rowCountBefore)) 373 374 375 #this is abuse of something but this is how I get the object batches to crash to further investigate them 376 392 377 rowCountAfter = self.scratchDb.getRowCount("Object") 393 self.logger.infoPair("Number of duplicated objIDs removed", "%d out of %d" % ((rowCountBefore - rowCountAfter), rowCountBefore)) 394 395 return True 396 378 #return True 379 return False -
trunk/ippToPsps/jython/stackbatch.py
r36729 r36736 305 305 Updates aperture fluxes for StackApFkx table 306 306 ''' 307 def update ApFlxs(self, prefix, psfCondition):307 def updateModelFitFlxs(self, prefix, psfCondition, tablename, filter): 308 308 #properly -999 these to start with: 309 310 sql = "UPDATE StackApFlx AS a, SkyChip_xrad AS b SET \ 311 "+prefix+"flxR1=-999, \ 312 "+prefix+"flxR1Err=-999, \ 313 "+prefix+"flxR1Std=-999, \ 314 "+prefix+"flxR1Fill=-999, \ 315 "+prefix+"flxR2=-999, \ 316 "+prefix+"flxR2Err=-999, \ 317 "+prefix+"flxR2Std=-999, \ 318 "+prefix+"flxR2Fill=-999, \ 319 "+prefix+"flxR3=-999, \ 320 "+prefix+"flxR3Err=-999, \ 321 "+prefix+"flxR3Std=-999, \ 322 "+prefix+"flxR3Fill=-999, \ 323 "+prefix+"flxR4=-999, \ 324 "+prefix+"flxR4Err=-999, \ 325 "+prefix+"flxR4Std=-999, \ 326 "+prefix+"flxR4Fill=-999, \ 327 "+prefix+"flxR5=-999, \ 328 "+prefix+"flxR5Err=-999, \ 329 "+prefix+"flxR5Std=-999, \ 330 "+prefix+"flxR5Fill=-999, \ 331 "+prefix+"flxR6=-999, \ 332 "+prefix+"flxR6Err=-999, \ 333 "+prefix+"flxR6Std=-999, \ 334 "+prefix+"flxR6Fill=-999, \ 335 "+prefix+"flxR7=-999, \ 336 "+prefix+"flxR7Err=-999, \ 337 "+prefix+"flxR7Std=-999, \ 338 "+prefix+"flxR7Fill=-999, \ 339 "+prefix+"flxR8=-999, \ 340 "+prefix+"flxR8Err=-999, \ 341 "+prefix+"flxR8Std=-999, \ 342 "+prefix+"flxR8Fill=-999, \ 343 "+prefix+"flxR9=-999, \ 344 "+prefix+"flxR9Err=-999, \ 345 "+prefix+"flxR9Std=-999, \ 346 "+prefix+"flxR9Fill=-999, \ 347 "+prefix+"flxR10=-999, \ 348 "+prefix+"flxR10Err=-999, \ 349 "+prefix+"flxR10Std=-999, \ 350 "+prefix+"flxR10Fill=-999 \ 351 WHERE a.ippDetectID=b.IPP_IDET " 309 f = filter 310 if tablename == 'StackModelFit': 311 sql = "UPDATE " + tablename + " AS a, "+f+"SkyChip_xrad AS b SET \ 312 "+f+prefix+"flxR1=-999, \ 313 "+f+prefix+"flxR1Err=-999, \ 314 "+f+prefix+"flxR1Std=-999, \ 315 "+f+prefix+"flxR1Fill=-999, \ 316 "+f+prefix+"flxR2=-999, \ 317 "+f+prefix+"flxR2Err=-999, \ 318 "+f+prefix+"flxR2Std=-999, \ 319 "+f+prefix+"flxR2Fill=-999, \ 320 "+f+prefix+"flxR3=-999, \ 321 "+f+prefix+"flxR3Err=-999, \ 322 "+f+prefix+"flxR3Std=-999, \ 323 "+f+prefix+"flxR3Fill=-999, \ 324 "+f+prefix+"flxR4=-999, \ 325 "+f+prefix+"flxR4Err=-999, \ 326 "+f+prefix+"flxR4Std=-999, \ 327 "+f+prefix+"flxR4Fill=-999, \ 328 "+f+prefix+"flxR5=-999, \ 329 "+f+prefix+"flxR5Err=-999, \ 330 "+f+prefix+"flxR5Std=-999, \ 331 "+f+prefix+"flxR5Fill=-999, \ 332 "+f+prefix+"flxR6=-999, \ 333 "+f+prefix+"flxR6Err=-999, \ 334 "+f+prefix+"flxR6Std=-999, \ 335 "+f+prefix+"flxR6Fill=-999, \ 336 "+f+prefix+"flxR7=-999, \ 337 "+f+prefix+"flxR7Err=-999, \ 338 "+f+prefix+"flxR7Std=-999, \ 339 "+f+prefix+"flxR7Fill=-999, \ 340 "+f+prefix+"flxR8=-999, \ 341 "+f+prefix+"flxR8Err=-999, \ 342 "+f+prefix+"flxR8Std=-999, \ 343 "+f+prefix+"flxR8Fill=-999, \ 344 "+f+prefix+"flxR9=-999, \ 345 "+f+prefix+"flxR9Err=-999, \ 346 "+f+prefix+"flxR9Std=-999, \ 347 "+f+prefix+"flxR9Fill=-999, \ 348 "+f+prefix+"flxR10=-999, \ 349 "+f+prefix+"flxR10Err=-999, \ 350 "+f+prefix+"flxR10Std=-999, \ 351 "+f+prefix+"flxR10Fill=-999 \ 352 WHERE a."+f+"ippDetectID=b.IPP_IDET " 352 353 #self.logger.infoPair("sql", sql) 353 self.scratchDb.execute(sql)354 self.scratchDb.execute(sql) 354 355 355 356 356 357 #we have variable numbers of these columns. find out which are in use 357 sql = "DESCRIBE SkyChip_xrad 'aper_fill_%'"358 sql = "DESCRIBE "+f+"SkyChip_xrad 'aper_fill_%'" 358 359 rs = self.scratchDb.executeQuery(sql) 359 360 rs.first() … … 369 370 370 371 numbers = [] 372 min = 1 373 max = 10 374 if tablename == 'StackApFlx': 375 min = 3 376 max = 5 371 377 for column in columns: 372 378 number = re.sub("APER_FILL_","",column) 373 if (int(number) >= 1 and int(number) <=10):379 if (int(number) >= min and int(number) <=max): 374 380 numbers.append(number) 375 381 self.logger.infoPair("Aperture Numbers",number) 376 382 377 383 #generate the sql to do the necessary ops on the columns 378 sql = "UPDATE StackApFlx AS a,SkyChip_xrad AS b SET "384 sql = "UPDATE " + tablename + " AS a, "+f+"SkyChip_xrad AS b SET " 379 385 cnt =0 386 exptime = self.safeDictionaryAccess(self.header, 'EXPTIME') 380 387 for number in numbers: 381 388 if (cnt>0): 382 389 sql=sql+" , " 383 sql=sql+ prefix+"flxR"+number+"=b.APER_FLUX_"+number +" / " + str(self.expTime) + ", "384 sql=sql+ prefix+"flxR"+number+"Err=b.APER_FLUX_ERR_"+number +" / " + str(self.expTime) + ", "385 sql=sql+ prefix+"flxR"+number+"Std=b.APER_FLUX_STDEV_"+number +" / " + str(self.expTime) + ", "386 sql=sql+ prefix+"flxR"+number+"Fill=b.APER_FILL_"+number + " "390 sql=sql+f+prefix+"flxR"+number+"=b.APER_FLUX_"+number +" / " + str(exptime) + ", " 391 sql=sql+f+prefix+"flxR"+number+"Err=b.APER_FLUX_ERR_"+number +" / " + str(exptime) + ", " 392 sql=sql+f+prefix+"flxR"+number+"Std=b.APER_FLUX_STDEV_"+number +" / " + str(exptime) + ", " 393 sql=sql+f+prefix+"flxR"+number+"Fill=b.APER_FILL_"+number + " " 387 394 cnt=cnt+1 388 395 389 sql=sql+"WHERE a.ippDetectID=b.IPP_IDET AND "+psfCondition 390 self.scratchDb.execute(sql) 391 392 #self.logger.infoPair("sql",sql) 393 394 #sql = "UPDATE StackApFlx AS a, SkyChip_xrad AS b SET \ 395 #"+prefix+"flxR1=b.APER_FLUX_1 / " + str(self.expTime) + ", \ 396 #"+prefix+"flxR1Err=b.APER_FLUX_ERR_1 / " + str(self.expTime) + ", \ 397 #"+prefix+"flxR1Std=b.APER_FLUX_STDEV_1 / " + str(self.expTime) + ", \ 398 #"+prefix+"flxR1Fill=b.APER_FILL_1, \ 399 #"+prefix+"flxR2=b.APER_FLUX_2 / " + str(self.expTime) + ", \ 400 ##"+prefix+"flxR2Err=b.APER_FLUX_ERR_2 / " + str(self.expTime) + ", \ 401 #"+prefix+"flxR2Std=b.APER_FLUX_STDEV_2 / " + str(self.expTime) + ", \ 402 #"+prefix+"flxR2Fill=b.APER_FILL_2, \ 403 #"+prefix+"flxR3=b.APER_FLUX_3 / " + str(self.expTime) + ", \ 404 #"+prefix+"flxR3Err=b.APER_FLUX_ERR_3 / " + str(self.expTime) + ", \ 405 #"+prefix+"flxR3Std=b.APER_FLUX_STDEV_3 / " + str(self.expTime) + ", \ 406 #"+prefix+"flxR3Fill=b.APER_FILL_3, \ 407 #"+prefix+"flxR4=b.APER_FLUX_4 / " + str(self.expTime) + ", \ 408 #"+prefix+"flxR4Err=b.APER_FLUX_ERR_4 / " + str(self.expTime) + ", \ 409 #"+prefix+"flxR4Std=b.APER_FLUX_STDEV_4 / " + str(self.expTime) + ", \ 410 #"+prefix+"flxR4Fill=b.APER_FILL_4, \ 411 #"+prefix+"flxR5=b.APER_FLUX_5 / " + str(self.expTime) + ", \ 412 #"+prefix+"flxR5Err=b.APER_FLUX_ERR_5 / " + str(self.expTime) + ", \ 413 #"+prefix+"flxR5Std=b.APER_FLUX_STDEV_5 / " + str(self.expTime) + ", \ 414 #"+prefix+"flxR5Fill=b.APER_FILL_5, \ 415 #"+prefix+"flxR6=b.APER_FLUX_6 / " + str(self.expTime) + ", \ 416 #"+prefix+"flxR6Err=b.APER_FLUX_ERR_6 / " + str(self.expTime) + ", \ 417 #"+prefix+"flxR6Std=b.APER_FLUX_STDEV_6 / " + str(self.expTime) + ", \ 418 #"+prefix+"flxR6Fill=b.APER_FILL_6, \ 419 #"+prefix+"flxR7=b.APER_FLUX_7 / " + str(self.expTime) + ", \ 420 #"+prefix+"flxR7Err=b.APER_FLUX_ERR_7 / " + str(self.expTime) + ", \ 421 #"+prefix+"flxR7Std=b.APER_FLUX_STDEV_7 / " + str(self.expTime) + ", \ 422 #"+prefix+"flxR7Fill=b.APER_FILL_7, \ 423 #"+prefix+"flxR8=b.APER_FLUX_8 / " + str(self.expTime) + ", \ 424 #"+prefix+"flxR8Err=b.APER_FLUX_ERR_8 / " + str(self.expTime) + ", \ 425 #"+prefix+"flxR8Std=b.APER_FLUX_STDEV_8 / " + str(self.expTime) + ", \ 426 #"+prefix+"flxR8Fill=b.APER_FILL_8, \ 427 #"+prefix+"flxR9=b.APER_FLUX_9 / " + str(self.expTime) + ", \ 428 #"+prefix+"flxR9Err=b.APER_FLUX_ERR_9 / " + str(self.expTime) + ", \ 429 #"+prefix+"flxR9Std=b.APER_FLUX_STDEV_9 / " + str(self.expTime) + ", \ 430 #"+prefix+"flxR9Fill=b.APER_FILL_9, \ 431 #"+prefix+"flxR10=b.APER_FLUX_10 / " + str(self.expTime) + ", \ 432 #"+prefix+"flxR10Err=b.APER_FLUX_ERR_10 / " + str(self.expTime) + ", \ 433 #"+prefix+"flxR10Std=b.APER_FLUX_STDEV_10 / " + str(self.expTime) + ", \ 434 #"+prefix+"flxR10Fill=b.APER_FILL_10 \ 435 #WHERE a.ippDetectID=b.IPP_IDET AND b.PSF_FWHM "+psfCondition 436 437 #self.scratchDb.execute(sql) 396 sql=sql+"WHERE a."+f+"ippDetectID=b.IPP_IDET AND "+psfCondition 397 self.logger.infoPair("sql",sql) 398 self.scratchDb.execute(sql) 399 438 400 439 401 ''' 440 402 Updates parameters for a particular model in the StackModelFit table 441 403 ''' 442 def updateModelFit(self, model, ippModelType): 443 444 if model == "ser": 445 modelLong = "sersic" 446 else: 447 modelLong = model; 448 449 #does it have the EXT_COVAR in there? 450 451 sql = "DESCRIBE SkyChip_xfit 'EXT_COVAR_%'" 452 rs = self.scratchDb.executeQuery(sql) 453 rs.first() 454 hasResult = rs.next() 455 if hasResult: 456 print "EXT_COVARs exist" 457 else: 458 print "No EXT_COVARS here" 459 460 ext_covar_sql = "" 461 462 if (hasResult): 463 ext_covar_sql = ", "+modelLong+"Covar11=b.EXT_COVAR_00_00, \ 464 "+modelLong+"Covar12=b.EXT_COVAR_00_01, \ 465 "+modelLong+"Covar13=b.EXT_COVAR_00_02, \ 466 "+modelLong+"Covar14=b.EXT_COVAR_00_03, \ 467 "+modelLong+"Covar15=b.EXT_COVAR_00_04, \ 468 "+modelLong+"Covar16=b.EXT_COVAR_00_05, \ 469 "+modelLong+"Covar17=b.EXT_COVAR_00_06, \ 470 "+modelLong+"Covar22=b.EXT_COVAR_01_01, \ 471 "+modelLong+"Covar23=b.EXT_COVAR_01_02, \ 472 "+modelLong+"Covar24=b.EXT_COVAR_01_03, \ 473 "+modelLong+"Covar25=b.EXT_COVAR_01_04, \ 474 "+modelLong+"Covar26=b.EXT_COVAR_01_05, \ 475 "+modelLong+"Covar27=b.EXT_COVAR_01_06, \ 476 "+modelLong+"Covar33=b.EXT_COVAR_02_02, \ 477 "+modelLong+"Covar34=b.EXT_COVAR_02_03, \ 478 "+modelLong+"Covar35=b.EXT_COVAR_02_04, \ 479 "+modelLong+"Covar36=b.EXT_COVAR_02_05, \ 480 "+modelLong+"Covar37=b.EXT_COVAR_02_06, \ 481 "+modelLong+"Covar44=b.EXT_COVAR_03_03, \ 482 "+modelLong+"Covar45=b.EXT_COVAR_03_04, \ 483 "+modelLong+"Covar46=b.EXT_COVAR_03_05, \ 484 "+modelLong+"Covar47=b.EXT_COVAR_03_06, \ 485 "+modelLong+"Covar55=b.EXT_COVAR_04_04, \ 486 "+modelLong+"Covar56=b.EXT_COVAR_04_05, \ 487 "+modelLong+"Covar57=b.EXT_COVAR_04_06, \ 488 "+modelLong+"Covar66=b.EXT_COVAR_05_05, \ 489 "+modelLong+"Covar67=b.EXT_COVAR_05_06, \ 490 "+modelLong+"Covar77=b.EXT_COVAR_06_06" 491 492 493 494 495 sql = "UPDATE StackModelFit AS a, SkyChip_xfit AS b SET \ 496 "+model+"Radius=b.EXT_WIDTH_MAJ, \ 497 "+model+"Flux=POW(10, -0.4 * b.EXT_INST_MAG) / " + str(self.expTime) + " , \ 498 "+model+"FluxErr=ABS(b.EXT_INST_MAG_SIG) * POW(10, -0.4 * b.EXT_INST_MAG) / " + str(self.expTime) + " / 1.085736, \ 499 "+model+"Ab=b.EXT_WIDTH_MAJ/b.EXT_WIDTH_MIN, \ 500 "+model+"Phi=b.EXT_THETA \ 501 "+ext_covar_sql+" \ 502 WHERE a.ippDetectID=b.IPP_IDET AND b.MODEL_TYPE = '"+ippModelType+"'" 404 def updateModelFit(self, model, ippModelType, filter, exptime): 405 f = filter 406 407 # idk what to do about PET 408 409 sql = "UPDATE StackModelFit AS a, " + f + "SkyChip_xfit AS b SET \ 410 "+f+model+"Radius=b.EXT_WIDTH_MAJ, \ 411 "+f+model+"Flux=POW(10, -0.4 * b.EXT_INST_MAG) / " + str(exptime) + " , \ 412 "+f+model+"FluxErr=ABS(b.EXT_INST_MAG_SIG) * POW(10, -0.4 * b.EXT_INST_MAG) / " + str(exptime) + " / 1.085736, \ 413 "+f+model+"Ab=b.EXT_WIDTH_MAJ/b.EXT_WIDTH_MIN, \ 414 "+f+model+"Phi=b.EXT_THETA \ 415 \ 416 WHERE a."+f+"ippDetectID=b.IPP_IDET AND b.MODEL_TYPE = '"+ippModelType+"'" 503 417 504 418 print sql … … 506 420 507 421 # sersic fit has an extra parameter 508 if (ippModelType == "PS_MODEL_SERSIC" and hasResult > 0): 509 sql = "UPDATE StackModelFit AS a, SkyChip_xfit AS b SET \ 510 "+modelLong+"Covar18=b.EXT_COVAR_00_07, \ 511 "+modelLong+"Covar28=b.EXT_COVAR_01_07, \ 512 "+modelLong+"Covar38=b.EXT_COVAR_02_07, \ 513 "+modelLong+"Covar48=b.EXT_COVAR_03_07, \ 514 "+modelLong+"Covar58=b.EXT_COVAR_04_07, \ 515 "+modelLong+"Covar68=b.EXT_COVAR_05_07, \ 516 "+modelLong+"Covar78=b.EXT_COVAR_06_07, \ 517 "+modelLong+"Covar88=b.EXT_COVAR_07_07, \ 518 "+"serNu=b.EXT_PAR_07, \ 519 "+"serNuErr=SQRT(EXT_COVAR_07_07) \ 520 WHERE a.ippDetectID=b.IPP_IDET AND b.MODEL_TYPE = '"+ippModelType+"'" 521 422 if (ippModelType == "PS_MODEL_SERSIC"): 423 sql = "UPDATE StackModelFit AS a, "+ f+ "SkyChip_xfit AS b SET \ 424 "+f+"serNu=b.EXT_PAR_07 \ 425 WHERE a."+f+"ippDetectID=b.IPP_IDET AND b.MODEL_TYPE = '"+ippModelType+"'" 426 # "+f+"serNuErr=SQRT(EXT_COVAR_07_07) \ 427 self.logger.infoPair("sql",sql) 522 428 self.scratchDb.execute(sql) 523 429 … … 651 557 skip = 0 652 558 if (f == "g"): 559 self.logger.infoPair("gstackID = ",self.gstackID) 653 560 if self.gstackID > 0: 654 561 stackid = self.gstackID … … 657 564 skip = 1 658 565 if (f == "r"): 566 self.logger.infoPair("rstackID = ",self.rstackID) 659 567 if self.rstackID > 0: 660 568 stackid = self.rstackID … … 663 571 skip = 1 664 572 if (f == "i"): 573 self.logger.infoPair("istackID = ",self.istackID) 665 574 if self.istackID > 0: 666 575 stackid = self.istackID … … 669 578 skip = 1 670 579 if (f == "z"): 580 self.logger.infoPair("zstackID = ",self.zstackID) 671 581 if self.zstackID > 0: 672 582 stackid = self.zstackID … … 675 585 skip = 1 676 586 if (f == "y"): 587 self.logger.infoPair("ystackID = ",self.ystackID) 677 588 if self.ystackID > 0: 678 589 stackid = self.ystackID … … 855 766 ''' 856 767 def populateStackApFlx(self): 857 self.logger.infoPair("getting","imageID") 858 imageID = self.scratchDb.getImageIDFromExternID(self.header['IMAGEID']) 859 self.logger.infoPair("obtained","imageID") 860 861 self.logger.infoPair("Procesing", "StackApFlx") 862 863 sql = "INSERT INTO StackApFlx \ 864 (ippDetectID ) \ 865 SELECT \ 866 DISTINCT IPP_IDET \ 867 FROM SkyChip_xrad" 868 869 try: 870 self.scratchDb.execute(sql) 871 except: return 872 873 # TODO temporarily loading 1st convolved fluxes into unconvolved fields 874 875 #This assumes that there are 3 different fluxs, the first is unconv, and the 2nd and 3rd are convolved. If there are more than 3 fluxes it will break. 876 # If there are more than 3 types of fluxes, we should do a count to find out how many there are and adjust this accordingly (make it more robust) 877 878 self.logger.infoPair("Adding fluxes", "un-convolved") 879 self.updateApFlxs("", "((b.table_index -1) % 3 = 0)") 880 self.logger.infoPair("Adding fluxes", "1st convolved") 881 self.updateApFlxs("c1", "((b.table_index -1) % 3 = 1)") 882 self.logger.infoPair("Adding fluxes", "2nd convolved") 883 self.updateApFlxs("c2", "((b.table_index -1) % 3 = 2)") 884 885 self.logger.infoPair("Adding", "petrosians for extended sources") 886 sql = "UPDATE StackApFlx AS a, SkyChip_xsrc AS b SET \ 887 petRadius=b.PETRO_RADIUS \ 888 ,petRadiusErr=b.PETRO_RADIUS_ERR \ 889 ,petFlux=POW(10.0, -0.4 * b.PETRO_MAG) /" + str(self.expTime) + " \ 890 ,petFluxErr=-999 \ 891 ,petR50=b.PETRO_RADIUS_50 \ 892 ,petR50Err=b.PETRO_RADIUS_50_ERR \ 893 ,petR90=b.PETRO_RADIUS_90 \ 894 ,petR90Err=b.PETRO_RADIUS_90_ERR \ 895 ,petCf=b.PETRO_FILL \ 896 WHERE a.ippDetectID=b.IPP_IDET" 897 self.scratchDb.execute(sql) 898 899 self.logger.infoPair("Adding", "petFluxErr for non nulls") 900 sql = "UPDATE StackApFlx as a, SkyChip_xsrc AS b SET \ 901 petFluxErr=ABS(b.PETRO_MAG_ERR) * POW(10.0, (-0.4*b.PETRO_MAG)) / " + str(self.expTime) + " / 1.085736 \ 902 WHERE a.ippDetectID=b.IPP_IDET \ 903 AND (b.PETRO_MAG_ERR is not NULL AND b.PETRO_MAG is not NULL AND PETRO_MAG_ERR < 1000.0)" 904 # added this because when the petromagerr is crazy large (10^29 it out of ranges the flux err calc) 905 self.logger.infoPair("sql", sql) 906 self.scratchDb.execute(sql) 907 908 909 910 self.logger.infoPair("adding"," PrimaryF to stackApFlx") 911 sql = "UPDATE StackApFlx AS a, " + self.scratchDb.dvoDetectionTable + " AS b SET \ 912 a.primaryF = ((b.flags & 0x10000) >> 16 ) \ 913 WHERE a.ippDetectID = b.ippDetectID \ 914 AND b.imageID = " + str(imageID) 915 916 print "update dvo sql: ", sql 917 # response = raw_input("update dvo...") 918 self.scratchDb.execute(sql) 919 920 921 922 self.scratchDb.updateAllRows("StackApFlx", "surveyID", str(self.surveyID)) 923 self.scratchDb.updateAllRows("StackApFlx", "dataRelease", str(self.skychunk.dataRelease)) 924 self.updateStackTypeID("StackApFlx") 925 self.updateDvoIDs("StackApFlx") 768 filter = ['g','r','i','z','y'] 769 770 for f in filter: 771 skip = 0 772 if (f == 'g'): 773 if self.gstackID > 0: 774 self.header = self.gheader 775 else: 776 skip = 1 777 if (f == 'r'): 778 if self.rstackID > 0: 779 self.header = self.rheader 780 else: 781 skip = 1 782 if (f == 'i'): 783 if self.istackID > 0: 784 self.header = self.iheader 785 else: 786 skip = 1 787 if (f == 'z'): 788 if self.zstackID > 0: 789 self.header = self.zheader 790 else: 791 skip = 1 792 if (f == 'y'): 793 if self.ystackID > 0: 794 self.header = self.yheader 795 else: 796 skip =1 797 798 if skip == 0: 799 self.logger.infoPair("Adding fluxes", "un-convolved") 800 self.updateModelFitFlxs("", "((b.table_index -1) % 3 = 0)", "StackApFlx", f) 801 self.logger.infoPair("Adding fluxes", "1st convolved") 802 self.updateModelFitFlxs("c1", "((b.table_index -1) % 3 = 1)","StackApFlx",f) 803 self.logger.infoPair("Adding fluxes", "2nd convolved") 804 self.updateModelFitFlxs("c2", "((b.table_index -1) % 3 = 2)","StackApFlx",f) 805 806 self.deleteDetectionsNotInStackObject("StackApFlx",f) 807 926 808 self.scratchDb.reportAndDeleteRowsWithNULLS("StackApFlx", "objID") 927 self.deleteDetectionsNotInStackObject("StackApFlx")809 928 810 929 811 … … 931 813 Populates the StackModelFit table 932 814 ''' 933 def populateStackModelFit(self): 815 def populateStackModelFit(self, filter): 816 # for each filter 817 f =filter 818 if (filter == 'g'): 819 self.header = self.gheader 820 821 if (filter == 'r'): 822 self.header = self.rheader 823 if (filter == 'i'): 824 self.header = self.iheader 825 if (filter == 'z'): 826 self.header = self.zheader 827 if (filter == 'y'): 828 self.header = self.yheader 829 830 831 832 833 934 834 self.logger.infoPair("getting","imageID") 935 835 imageID = self.scratchDb.getImageIDFromExternID(self.header['IMAGEID']) … … 939 839 940 840 # insert all the detections 941 sql = "INSERT INTO StackModelFit (ippDetectID) SELECT DISTINCT IPP_IDET from SkyChip_xfit"942 try:943 self.scratchDb.execute(sql)944 except:945 return946 841 947 842 # populate model parameters 948 843 self.logger.infoPair("Adding model fit", "deVaucouleurs") 949 self.updateModelFit("deV", "PS_MODEL_DEV" )844 self.updateModelFit("deV", "PS_MODEL_DEV", filter, self.header['EXPTIME']) 950 845 self.logger.infoPair("Adding model fit", "exponential") 951 self.updateModelFit(" exp", "PS_MODEL_EXP")846 self.updateModelFit("deV", "PS_MODEL_EXP", filter, self.header['EXPTIME']) 952 847 self.logger.infoPair("Adding model fit", "sersic") 953 self.updateModelFit("ser", "PS_MODEL_SERSIC") 848 self.updateModelFit("deV", "PS_MODEL_SERSIC", filter, self.header['EXPTIME']) 849 850 851 self.logger.infoPair("Adding fluxes", "un-convolved") 852 self.updateModelFitFlxs("", "((b.table_index -1) % 3 = 0)","StackModelFit",f) 853 self.logger.infoPair("Adding fluxes", "1st convolved") 854 self.updateModelFitFlxs("c1", "((b.table_index -1) % 3 = 1)","StackModelFit",f) 855 self.logger.infoPair("Adding fluxes", "2nd convolved") 856 self.updateModelFitFlxs("c2", "((b.table_index -1) % 3 = 2)","StackModelFit",f) 857 858 859 self.logger.infoPair("Adding", "petrosians for extended sources") 860 sql = "UPDATE StackModelFit as a, "+f+"SkyChip_xsrc AS b SET \ 861 "+f+"petRadius=b.PETRO_RADIUS \ 862 ,"+f+"petRadiusErr=b.PETRO_RADIUS_ERR \ 863 ,"+f+"petFlux=POW(10.0, -0.4 * b.PETRO_MAG) /" + str(self.header['EXPTIME']) + " \ 864 ,"+f+"petFluxErr=-999 \ 865 ,"+f+"petR50=b.PETRO_RADIUS_50 \ 866 ,"+f+"petR50Err=b.PETRO_RADIUS_50_ERR \ 867 ,"+f+"petR90=b.PETRO_RADIUS_90 \ 868 ,"+f+"petR90Err=b.PETRO_RADIUS_90_ERR \ 869 ,"+f+"petCf=b.PETRO_FILL \ 870 WHERE a."+f+"ippDetectID=b.IPP_IDET" 871 self.scratchDb.execute(sql) 872 873 self.logger.infoPair("Adding", "petFluxErr for non nulls") 874 sql = "UPDATE StackModelFit as a, "+f+"SkyChip_xsrc AS b SET \ 875 "+f+"petFluxErr=ABS(b.PETRO_MAG_ERR) * POW(10.0, (-0.4*b.PETRO_MAG)) / " + str(self.header['EXPTIME']) + " / 1.085736 \ 876 WHERE a."+f+"ippDetectID=b.IPP_IDET \ 877 AND (b.PETRO_MAG_ERR is not NULL AND b.PETRO_MAG is not NULL AND PETRO_MAG_ERR < 1000.0)" 878 # added this because when the petromagerr is crazy large (10^29 it out of ranges the flux err calc) 879 self.logger.infoPair("sql", sql) 880 self.scratchDb.execute(sql) 881 882 954 883 955 884 self.scratchDb.updateAllRows("StackModelFit", "surveyID", str(self.surveyID)) 956 self.scratchDb.updateFilterID("StackModelFit", self.filter)957 885 self.scratchDb.updateAllRows("StackModelFit", "dataRelease", str(self.skychunk.dataRelease)) 958 886 959 self.logger.infoPair(" adding"," PrimaryF to stackApFlx")887 self.logger.infoPair("not adding"," PrimaryF to stackApFlx") 960 888 sql = "UPDATE StackModelFit AS a, " + self.scratchDb.dvoDetectionTable + " AS b SET \ 961 889 a.primaryF = ((b.flags & 0x10000) >> 16 ) \ … … 963 891 AND b.imageID = " + str(imageID) 964 892 965 print "update dvo sql: ", sql 966 # response = raw_input("update dvo...") 967 try: 968 self.scratchDb.execute(sql) 969 except: 970 return 971 972 self.scratchDb.updateAllRows("StackModelFit", "activeFlag", "0") 893 # try: 894 # self.scratchDb.execute(sql) 895 # except: 896 # return 897 898 ## self.scratchDb.updateAllRows("StackModelFit", "activeFlag", "0") 973 899 ##self.updateStackMetaID("StackModelFit") 974 self.updateStackTypeID("StackModelFit")975 self.updateDvoIDs("StackModelFit")900 ## self.updateStackTypeID("StackModelFit") 901 976 902 self.scratchDb.reportAndDeleteRowsWithNULLS("StackModelFit", "objID") 977 self.deleteDetectionsNotInStackObject("StackModelFit" )903 self.deleteDetectionsNotInStackObject("StackModelFit", f) 978 904 979 905 ''' 980 906 Reports and deletes detections in this table that are not in StackObject 981 907 ''' 982 def deleteDetectionsNotInStackObject(self, table): 983 984 sql = "SELECT COUNT(*) FROM " + table + " WHERE ippDetectID NOT IN (SELECT ippDetectID FROM StackObject)" 908 def deleteDetectionsNotInStackObject(self, table, filter): 909 f= filter 910 911 sql = "SELECT COUNT(*) FROM " + table + " WHERE "+f+"ippDetectID NOT IN (SELECT "+f+"ippDetectID FROM StackObject)" 985 912 rs = self.scratchDb.executeQuery(sql) 986 913 rs.first() … … 989 916 if nMissing < 1: return 990 917 991 sql = "DELETE FROM " + table + " WHERE ippDetectID NOT IN (SELECTippDetectID FROM StackObject)"918 sql = "DELETE FROM " + table + " WHERE "+f+"ippDetectID NOT IN (SELECT "+f+"ippDetectID FROM StackObject)" 992 919 self.scratchDb.execute(sql) 993 920 self.logger.infoPair("Detections not in StackObject", "%d deleted from %s" % (nMissing, table)) … … 1028 955 1029 956 1030 def populateStack ObjectFromDvo(self):1031 1032 tableName = "StackObject"957 def populateStackIPPDetectIDFromDvo(self, tableName, all): 958 959 #tableName = "StackObject" 1033 960 self.logger.infoPair("Processing table", tableName) 1034 961 … … 1039 966 #first: do we skip this filter 1040 967 if f == 'g': 1041 self.header = self.gheader1042 968 if self.gstackID < 0: 1043 969 skip = 1 970 else: 971 self.header=self.gheader 972 stackmetaid = self.gstackID 1044 973 elif f == 'r': 1045 self.header = self.rheader1046 974 if self.rstackID < 0: 1047 975 skip = 1 976 else: 977 self.header = self.rheader 978 stackmetaid = self.rstackID 1048 979 elif f == 'i': 1049 self.header = self.iheader1050 980 if self.istackID < 0: 1051 981 skip = 1 982 else: 983 self.header = self.iheader 984 stackmetaid = self.istackID 1052 985 elif f == 'z': 1053 self.header = self.zheader1054 986 if self.zstackID < 0: 1055 987 skip = 1 988 else: 989 self.header = self.zheader 990 stackmetaid = self.zstackID 1056 991 elif f == 'y': 1057 self.header = self.yheader1058 992 if self.ystackID < 0: 1059 993 skip = 1 994 else: 995 self.header = self.yheader 996 stackmetaid = self.ystackID 1060 997 if skip == 0: 1061 998 imageID = self.scratchDb.getImageIDFromExternID(self.header['IMAGEID']) 1062 999 self.logger.infoPair("obtained","imageID") 1063 sql = "UPDATE " + tableName + " AS a, " + self.scratchDb.dvoDetectionTable + " AS b \ 1064 SET a." + f + "ra = b.ra, \ 1000 addsql = "" 1001 if (all == 1): 1002 addsql = "a." + f + "ra = b.ra, \ 1065 1003 a." + f + "dec = b.dec_, \ 1066 1004 a." + f + "raErr = b.raErr, \ 1067 1005 a." + f + "decErr = b.decErr, \ 1068 1006 a." + f + "zp = b.zp, \ 1069 a." + f + "expTime = b.expTime, \ 1070 a." + f + "ippDetectID = b.ippDetectID, \ 1071 a." + f + "stackDetectID = b.detectID \ 1072 WHERE a.objID = b.objID \ 1073 AND b.imageID = " + str(imageID) 1007 a." + f + "expTime = b.expTime," 1008 1009 1010 sql = "UPDATE " + tableName + " AS a, " + self.scratchDb.dvoDetectionTable + " AS b \ 1011 SET a." + f + "ippDetectID = b.ippDetectID, \ 1012 " + addsql + " \ 1013 a." + f + "stackDetectID = b.detectID, \ 1014 a." + f + "stackMetaID = " + str(stackmetaid) + " \ 1015 WHERE a.objID = b.objID AND b.imageID = " + str(imageID) 1074 1016 self.logger.infoPair('sql',sql) 1075 1017 self.scratchDb.execute(sql) … … 1078 1020 #out of the loops - give dataRelase to all 1079 1021 self.scratchDb.updateAllRows(tableName, "dataRelease", str(self.skychunk.dataRelease)) 1022 1023 1024 def deleteNULLippDetectIDs(self, tableName): 1025 1026 self.logger.infoPair("Deleting NULL ippdetectIDs from table", tableName) 1027 sql = "DELETE FROM " + tableName + " WHERE \ 1028 gippDetectID is NULL AND \ 1029 rippDetectID is NULL AND \ 1030 iippDetectID is NULL AND \ 1031 zippDetectID is NULL AND \ 1032 yippDetectID is NULL " 1033 self.logger.infoPair('sql',sql) 1034 self.scratchDb.execute(sql) 1080 1035 1081 1036 ''' … … 1225 1180 self.scratchDb.createIndex("StackObject", "objID") 1226 1181 #populate from dvo the (f)ippDetectID into StackObject 1227 self.populateStack ObjectFromDvo()1182 self.populateStackIPPDetectIDFromDvo("StackObject",1) 1228 1183 #index the ippDetectids for the next step 1229 1184 self.scratchDb.createIndex("StackObject", "gippDetectID") … … 1241 1196 self.scratchDb.createIndex("StackModelFit", "objID") 1242 1197 #populate from dvo the (f)ippdetectid into stackModelFit 1243 1198 self.populateStackIPPDetectIDFromDvo("StackModelFit",0) 1244 1199 #index the ippDetectIds for the next step 1245 1200 self.scratchDb.createIndex("StackModelFit", "gippDetectID") … … 1248 1203 self.scratchDb.createIndex("StackModelFit", "zippDetectID") 1249 1204 self.scratchDb.createIndex("StackModelFit", "yippDetectID") 1205 #cull the entries that should not be (how?) 1206 self.deleteNULLippDetectIDs("StackModelFit") 1250 1207 #populate stackModelFit 1251 #cull the entries that should not be (how?) 1252 1208 self.populateStackModelFit("g") 1209 self.populateStackModelFit("r") 1210 self.populateStackModelFit("i") 1211 self.populateStackModelFit("z") 1212 self.populateStackModelFit("y") 1213 1214 1253 1215 self.logger.infoPair("populating ","StackApFlx") 1254 1216 1255 1217 self.scratchDb.createIndex("StackApFlx", "objID") 1256 1218 #populate from dvo the (f)ippDetectID into StackApFlx 1257 1219 self.populateStackIPPDetectIDFromDvo("StackApFlx",0) 1258 1220 #index the ippDetectIDs for the next step 1259 1221 self.scratchDb.createIndex("StackApFlx", "gippDetectID") … … 1263 1225 self.scratchDb.createIndex("StackApFlx", "yippDetectID") 1264 1226 #populate StackApFlx 1227 self.deleteNULLippDetectIDs("StackApFlx") 1228 self.populateStackApFlx() 1265 1229 #cull the entries that should not be (how?) 1266 1230 … … 1270 1234 1271 1235 self.setMinMaxObjID(["StackObject"]) 1272 1236 # self.updateStackTypeID("StackModelFit") 1237 1273 1238 ##if self.totalDetections < 1: 1274 1239
Note:
See TracChangeset
for help on using the changeset viewer.
