def process_objlist(infilename, outfilename):
    """ Given filename of file containing ssmid / time of observation for series of objects, """
    """  generate ephemerides for all of those objects at all of the given times """
    
    # initialize JPL ephemerides for oorb
    ephem_datfile = ""
    oo.pyoorb.oorb_init(ephemeris_fname=ephem_datfile)

    # read input file and process objects / times for each object into dictionary of time lists
    filein = open(infilename, 'r')
    objidprev = 0
    objlist = []
    obsdatedict = {}
    for line in filein:
        objid, obsdate = line.split()
        objid = int(objid)
        obsdate = float(obsdate)
        if objid != objidprev: 
            objlist.append(objid)
            objidprev = objid
            obsdatedict[objid] = [obsdate]
        else:
            obsdatedict[objid].append(obsdate)
    filein.close()
        
    # open connection to orbit database
    db, cursor = ui.sqlConnect(dbname='ssm', verbose=False)
    objects = []    
    for id in objlist:
        keys = ('q', 'e', 'i', 'node', 'argperi', 't_peri', 'h_v', 'g_value', 'ssmid', 'objtype')
        query = "select q, e, i, node, argperi, t_peri, h_v, g_value, ssmid, objtype from orbits where ssmid=%d" %(id) 
        results = ui.sqlQuery(cursor, query, verbose=False)
        data = {}
        i = 0
        for key in keys:
            data[key] = float(results[0][i])
            i = i+1
        data['epoch'] = 49353.16
        mymo = mo.MovingObject(data['q'], data['e'], data['i'], data['node'],
                               data['argperi'], data['t_peri'], data['epoch'],
                               magHv=data['h_v'], phaseGv=data['g_value'],
                               objid=data['ssmid'], objtype=data['objtype'])
        objects.append(mymo)

    # generate ephemerides for each moving object
    
    fileout = open(outfilename, 'w')
    i = 0
    for mobj in objects:
        objname = objlist[i]
        mjdTaiList = obsdatedict[objname]
        mobj.calcEphemeris(mjdTaiList, obscode=807, timescale=4.0)
        i = i+1
        for mjdTai in mjdTaiList:
            thismjd = mobj.mjdTaiStr(mjdTai)
            obstime, ra, dec, dradt, ddecdt, magV = mobj.Ephemerides[thismjd].getPosition()
            print >>fileout, objname, obstime, ra, dec, dradt, ddecdt, magV
    fileout.close()
Exemple #2
0
def get_opsimValues(opsim, offset=0, drows=nobs):
    conn, cursor = ui.sqlConnect()
    query = 'select fieldRA*180/PI(), fieldDec*180/PI(), expmjd, filter, altitude*180/PI(), azimuth*180/PI(), airmass, xparency, seeing, sunAlt*180/PI(), sunAz*180/PI(), MoonAlt*180/PI(), moonPhase, moonIllum, skybrightness_modified, 5sigma_modified from %s group by expmjd' %(opsim)
    results = ui.sqlQueryLimited(cursor, query, offset=offset, drows=drows)
    keys = ('ra', 'dec', 'expmjd', 'filter', 'alt', 'az', 'airmass', 'cloud', 'seeing', 'sunalt', 'sunaz', 'moonalt', 'moonphase', 'moonillum', 
            'skybright', 'maglimit')
    opsimdata = ui.assignResults(results, keys)
    ui.sqlEndConnect(conn, cursor)
    return opsimdata
Exemple #3
0
def get_opsimObs_inputs(opsim, offset=0, drows=nobs):
    conn, cursor = ui.sqlConnect()
    query = 'select fieldRA*180/PI(), fieldDec*180/PI(), expmjd, filter, exptime from %s group by expmjd' %(opsim)
    results = ui.sqlQueryLimited(cursor, query, offset=offset, drows=drows)
    keys = ('ra', 'dec', 'expmjd', 'filter', 'exptime')
    keytypes = ('float', 'float', 'float', 'str', 'int')
    data = ui.assignResults(results, keys)
    ui.writeDatafile('test_%s' %(opsim), data, keys)
    ui.sqlEndConnect(conn, cursor)
    return
Exemple #4
0
def get_opsimValues(opsim, offset=0, drows=nobs):
    conn, cursor = ui.sqlConnect()
    query = 'select fieldRA*180/PI(), fieldDec*180/PI(), expmjd, filter, altitude*180/PI(), azimuth*180/PI(), airmass, xparency, seeing, sunAlt*180/PI(), sunAz*180/PI(), MoonAlt*180/PI(), moonPhase, moonIllum, skybrightness_modified, 5sigma_modified from %s group by expmjd' % (
        opsim)
    results = ui.sqlQueryLimited(cursor, query, offset=offset, drows=drows)
    keys = ('ra', 'dec', 'expmjd', 'filter', 'alt', 'az', 'airmass', 'cloud',
            'seeing', 'sunalt', 'sunaz', 'moonalt', 'moonphase', 'moonillum',
            'skybright', 'maglimit')
    opsimdata = ui.assignResults(results, keys)
    ui.sqlEndConnect(conn, cursor)
    return opsimdata
Exemple #5
0
def get_opsimObs_inputs(opsim, offset=0, drows=nobs):
    conn, cursor = ui.sqlConnect()
    query = 'select fieldRA*180/PI(), fieldDec*180/PI(), expmjd, filter, exptime from %s group by expmjd' % (
        opsim)
    results = ui.sqlQueryLimited(cursor, query, offset=offset, drows=drows)
    keys = ('ra', 'dec', 'expmjd', 'filter', 'exptime')
    keytypes = ('float', 'float', 'float', 'str', 'int')
    data = ui.assignResults(results, keys)
    ui.writeDatafile('test_%s' % (opsim), data, keys)
    ui.sqlEndConnect(conn, cursor)
    return
Exemple #6
0
def process_objlist(infilename, outfilename):
    """ Given filename of file containing ssmid / time of observation for series of objects, """
    """  generate ephemerides for all of those objects at all of the given times """

    # initialize JPL ephemerides for oorb
    ephem_datfile = ""
    oo.pyoorb.oorb_init(ephemeris_fname=ephem_datfile)

    # read input file and process objects / times for each object into dictionary of time lists
    filein = open(infilename, 'r')
    objidprev = 0
    objlist = []
    obsdatedict = {}
    for line in filein:
        objid, obsdate = line.split()
        objid = int(objid)
        obsdate = float(obsdate)
        if objid != objidprev:
            objlist.append(objid)
            objidprev = objid
            obsdatedict[objid] = [obsdate]
        else:
            obsdatedict[objid].append(obsdate)
    filein.close()

    # open connection to orbit database
    db, cursor = ui.sqlConnect(dbname='ssm', verbose=False)
    objects = []
    for id in objlist:
        keys = ('q', 'e', 'i', 'node', 'argperi', 't_peri', 'h_v', 'g_value',
                'ssmid', 'objtype')
        query = "select q, e, i, node, argperi, t_peri, h_v, g_value, ssmid, objtype from orbits where ssmid=%d" % (
            id)
        results = ui.sqlQuery(cursor, query, verbose=False)
        data = {}
        i = 0
        for key in keys:
            data[key] = float(results[0][i])
            i = i + 1
        data['epoch'] = 49353.16
        mymo = mo.MovingObject(data['q'],
                               data['e'],
                               data['i'],
                               data['node'],
                               data['argperi'],
                               data['t_peri'],
                               data['epoch'],
                               magHv=data['h_v'],
                               phaseGv=data['g_value'],
                               objid=data['ssmid'],
                               objtype=data['objtype'])
        objects.append(mymo)

    # generate ephemerides for each moving object

    fileout = open(outfilename, 'w')
    i = 0
    for mobj in objects:
        objname = objlist[i]
        mjdTaiList = obsdatedict[objname]
        mobj.calcEphemeris(mjdTaiList, obscode=807, timescale=4.0)
        i = i + 1
        for mjdTai in mjdTaiList:
            thismjd = mobj.mjdTaiStr(mjdTai)
            obstime, ra, dec, dradt, ddecdt, magV = mobj.Ephemerides[
                thismjd].getPosition()
            print >> fileout, objname, obstime, ra, dec, dradt, ddecdt, magV
    fileout.close()