IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 7, 2014, 6:21:58 AM (12 years ago)
Author:
eugene
Message:

add platescale; fix ra,dec; change likelihood to chisq (for now)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20140717/ippToPsps/jython/stackbatch.py

    r37191 r37200  
    428428            sqlLine.group("a."+filter+"ApRadius",      "b.AP_MAG_RADIUS")
    429429            sqlLine.group("a."+filter+"KronRad",       "b.MOMENTS_R1 * 2.5")
     430            sqlLine.group("a."+filter+"PlateScale",    "b.PLTSCALE")
    430431
    431432            sql = sqlLine.makeEquals("WHERE a." + filter + "ippDetectID = b.IPP_IDET")
     
    519520                     
    520521        sqlLine.group("a." + filter + model + "Radius",    "b.EXT_WIDTH_MAJ")
    521         sqlLine.group("a." + filter + model + "Ab",        "b.EXT_WIDTH_MAJ/b.EXT_WIDTH_MIN")
    522         sqlLine.group("a." + filter + model + "Phi",       "b.EXT_THETA")
     522        sqlLine.group("a." + filter + model + "Ab",        "b.EXT_WIDTH_MIN/b.EXT_WIDTH_MAJ")
     523        sqlLine.group("a." + filter + model + "Phi",       "DEGREES(b.EXT_THETA)")
    523524
    524525        sqlLine.group("a." + filter + model + "RadiusErr", "b.EXT_WIDTH_MAJ_ERR") # these are not correctly defined.
     
    526527        sqlLine.group("a." + filter + model + "PhiErr",    "b.EXT_THETA_ERR") # these are not correctly defined.
    527528
     529        sqlLine.group("a." + filter + model + "Chisq",     "b.EXT_CHISQ / b.EXT_NDOF")
     530
     531        # I have raExp = X_EXT
     532
    528533        # XXX this is tricky: RA_EXT is not defined, but X_EXT is...
    529         # sqlLine.group("a." + filter + model + "RaOff",     "b.X_EXT")
    530         # sqlLine.group("a." + filter + model + "DecOff",    "b.Y_EXT")
    531         # sqlLine.group("a." + filter + model + "RaErr",     "b.X_EXT_SIG * b.PLTSCALE")
    532         # sqlLine.group("a." + filter + model + "DecErr",    "b.Y_EXT_SIG * b.PLTSCALE")
     534        sqlLine.group("a." + filter + model + "Ra",        "b.X_EXT")
     535        sqlLine.group("a." + filter + model + "Dec",       "b.Y_EXT")
     536        sqlLine.group("a." + filter + model + "RaErr",     "b.X_EXT_SIG") # need to modify by platescale
     537        sqlLine.group("a." + filter + model + "DecErr",    "b.Y_EXT_SIG")
    533538
    534539        # sersic fit has an extra parameter
     
    547552
    548553        # insert detection information for each filter based on the DVO contents
     554        # XXX since I already have extracted StackObjectRaw, this is probably faster using that table:
    549555        sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + self.scratchDb.dvoDetectionTable + " as b SET")
    550556        sqlLine.group("a." + filter + model + "Mag",       "a." + filter + model + "Mag + b.zp")
    551557        sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a." + filter + "ippDetectID = b.ippDetectID")
     558
     559        self.logger.infoPair('sql', sql)     
     560        try:
     561            self.scratchDb.execute(sql)
     562        except:
     563            self.logger.errorPair('failed sql',sql)
     564            return
     565
     566        # we have (modulo signs):
     567        # gRaExp  = gra  + (X_EXT - gxPos)*gPlateScale / cos(gdec)
     568        # gDecExp = gdec + (Y_EXT - gyPos)*gPlateScale
     569
     570        rawS  = "c." + filter + "PlateScale"
     571
     572        extR  = "a." + filter + model + "Ra"
     573        rawR  = "b." + filter + "ra"
     574        rawX  = "c." + filter + "xPos"
     575
     576        extD  = "a." + filter + model + "Dec"
     577        rawD  = "b." + filter + "dec"
     578        rawY  = "c." + filter + "yPos"
     579
     580        # dRA / dX = -PlateScale
     581        # b.+filter+ra  - (a.+filter+model+Ra - c.+filter+xPos)*c.+filter+PlateScale / cos(+filter+dec)
     582        # extR = rawR - (extR - rawX)*rawS / 3600.0 / cos(rawD)
     583
     584        # dDEC / dY = +PlateScale
     585        # b.+filter+dec + (a.+filter+model+Dec - c.+filter+xPos)*c.+filter+PlateScale / cos(+filter+dec)
     586        # extD = rawD + (extD - rawY)*rawS / 3600.0
     587
     588        # insert detection information for each filter based on the DVO contents
     589        sqlLine = sqlUtility("UPDATE " + tablename + " AS a, StackObjectThin as b, StackObjectRaw as c SET ")
     590        sqlLine.group(extR, rawR + " - (" + extR + " - " + rawX + ")*" + rawS + " / 3600.0 / cos(radians(" + rawD + "))")
     591        sqlLine.group(extD, rawD + " + (" + extD + " - " + rawY + ")*" + rawS + " / 3600.0")
     592        field = "a." + filter + model + "RaErr"
     593        sqlLine.group(field, field + "*" + rawS)
     594        field = "a." + filter + model + "DecErr"
     595        sqlLine.group(field, field + "*" + rawS)
     596        sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a.objID = c.objID")
    552597
    553598        self.logger.infoPair('sql', sql)     
     
    760805        self.scratchDb.execute(sql)
    761806
     807        # instrumental flux, AB mags, Jy:
     808        # flux_inst = cts / sec
     809        # mag_AB = -2.5*log(flux_inst) + ZP [with appropriate definition of zero point]
     810        # mag_AB = -2.5*log(flux_cgs) - 48.6 [by construction with ~Vega flux in V-band]
     811        # flux_cgs = ten(-0.4*(mag_AB + 48.6))
     812        # flux_cgs = ten(-0.4*((-2.5*log(flux_inst) + ZP) + 48.6))
     813        # flux_cgs = flux_inst * ten(-0.4*(ZP + 48.6))
     814        # flux_Jy  = flux_cgs * 10^23
     815        # flux_Jy  = flux_inst * ten(-0.4*(ZP + 48.6) + 23.0)  [23.0 - 0.4*48.6 = 3.56]
     816        # flux_Jy  = flux_inst * ten(-0.4*ZP + 3.56)
     817        # flux_Jy  = flux_inst * ten(-0.4*ZP) * 3630.78
     818
    762819        # modify flux to apply the zero point
    763         # sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + self.scratchDb.dvoDetectionTable + " as b SET")
    764         # field = filter + prefix + "flxR" + number
    765         # sqlLine.group(field,               field         + " * POW(10, 3.56 - 0.4* b.zp)")
    766         # sqlLine.group(field + "Err",       field + "err" + " * POW(10, 3.56 - 0.4* b.zp)")
    767         # sqlLine.group(field + "Std",       field + "Std" + " * POW(10, 3.56 - 0.4* b.zp)")
    768         # sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a." + filter + "ippDetectID = b.ippDetectID")
     820        sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + self.scratchDb.dvoDetectionTable + " as b SET")
     821        for number in numbers:
     822            field = filter + prefix + "flxR" + number
     823            sqlLine.group(field,               field         + " * POW(10, 3.56 - 0.4* b.zp)")
     824            sqlLine.group(field + "Err",       field + "err" + " * POW(10, 3.56 - 0.4* b.zp)")
     825            sqlLine.group(field + "Std",       field + "Std" + " * POW(10, 3.56 - 0.4* b.zp)")
     826        sql = sqlLine.makeEquals("WHERE a.objID = b.objID AND a." + filter + "ippDetectID = b.ippDetectID")
    769827
    770828    '''
Note: See TracChangeset for help on using the changeset viewer.