示例#1
0
def readluck05(file):
    names,el,abund,err = \
        fxwid.rdfixwid(file,[[0,6],[37,42],[43,48],[49,53]],
                       ['|S10','|S10',np.float,np.float])
    idx = (np.where(el == 'C I  '))[0]

    stop
    c_abund = abund[idx]
    c_staterr = err[idx]
    names = names[idx]

    return names,c_abund,c_staterr
示例#2
0
def mkdb():
#    metadata.bind.echo = True
    metadata.bind = "sqlite:///"+os.environ['STARSDB']

    # if the file already exists destroy it
    if os.path.exists(os.environ['STARSDB']):
        os.system('rm '+os.environ['STARSDB'])


    #### Add in mydata ####
    stars = readstars.ReadStars(os.environ['PYSTARS'])
    idxarr,oidarr = res2id('Comparison/myresults.sim')

    setup_all(True)
    for i in range(len(stars.name)):        
        if (idxarr == i).any():
            oid = str(oidarr[np.where(idxarr == i)[0][0]])
        else:
            oid = None

        #ni abnd normalized to the sun
        ni_abund = stars.smeabund[i][27]-np.log10(stars.smeabund[i][0])+12.-6.17

        Mystars(name=stars.name[i],
                oid = oid,

                vsini = round(stars.vsini[i],3),
                teff  = round(stars.teff[i],0),
                pop_flag = stars.pop_flag[i],
                vmag = round(stars.vmag[i],3),
                d = 1/stars.prlx[i],
                logg = round(stars.logg[i],3),
                monh = round(stars.monh[i],3),


                o_nfits = float(stars.o_nfits[i]),
                c_nfits = float(stars.c_nfits[i]),

                o_abund_nt = round(stars.o_abund[i],3),
                c_abund_nt = round(stars.c_abund[i],3),

                #place holders for the temperature corrected abundances
                o_abund = round(stars.o_abund[i],3),
                c_abund = round(stars.c_abund[i],3),

                fe_abund = round(stars.feh[i],3),
                ni_abund = round(ni_abund,3),

                o_staterrlo = round(stars.o_staterr[i,0],3),
                o_staterrhi = round(stars.o_staterr[i,1],3),
                
                c_staterrlo = round(stars.c_staterr[i,0],3),
                c_staterrhi =  round(stars.c_staterr[i,1],3),

                o_scatterlo = round(stars.o_scatter[i,0],3),
                o_scatterhi = round(stars.o_scatter[i,1],3),
                
                c_scatterlo = round(stars.c_scatter[i,0],3),
                c_scatterhi =  round(stars.c_scatter[i,1],3),

                
                o_nierrlo = round(stars.o_nierr[i,0],3),
                o_nierrhi = round(stars.o_nierr[i,1],3),
                )


    #### Add in Luck Data ####
    luckname,luckc505,luckc538,luckc659,luckc514,lucko = \
        fxwid.rdfixwid('Comparison/Luck06/Luck06py.txt',
                       [[0,10],[31,36],[43,48],[54,59],[65,69],[80,84]],
                       ['|S10',np.float,np.float,np.float,np.float,np.float],
                       empstr='')

    idxarr,oidarr = res2id('Comparison/Luck06/luckresults.sim')

    for i in range(len(luckname)):        
        if (idxarr == i).any():
            oid = str(oidarr[np.where(idxarr == i)[0][0]])
        else:
            oid = None
            
        carr = np.array([luckc505[i],luckc538[i],luckc659[i],luckc514[i]])
        cavg = np.mean(carr)
        cstd = np.std(carr)
        Luckstars(name=luckname[i],
                  oid = oid,
                  o_abund = round(lucko[i],3),
                  c_abund = round(cavg,3),
                  c_staterr = round(cstd,3)
                  )

    #### Add in Exo Data ####
    idxarr,oidarr = res2id('Comparison/exoresults.sim')
    rec = matplotlib.mlab.csv2rec('Comparison/exoplanets-org.csv')
    for i in range(len(rec['star'])):        
        if (idxarr == i).any():
            oid = str(oidarr[np.where(idxarr == i)[0][0]])

        else:
            oid = None

        Exo(name=rec['star'][i],
            oid = oid,
            msini = round(rec['msini'][i],3),
            ecc   = round(rec['ecc'][i],3),
            a     = round(rec['a'][i],3),
            per   = round(rec['per'][i],3)
            )            


    #### Add in Ramirez Data ####
    idxarr,oidarr = res2id('Comparison/Ramirez07/ramirezresults.sim')
    names,teff,o,o_err = readramirez('Comparison/Ramirez07/ramirez.dat')

    for i in range(len(names)):        
        if (idxarr == i).any():
            oid = str(oidarr[np.where(idxarr == i)[0][0]])
        else:
            oid = None

        Ramstars(name=names[i],
                  oid = oid,
                  teff = round(teff[i],0),
                  o_abund = round(o[i],3),
                  o_err = round(o_err[i],3)
                  )

    #### Add in Bensby Data ####
    idxarr,oidarr = res2id('Comparison/Bensby04/bensby04results.sim')
    #This abundance has been "n-LTE corrected" meaning shifted 0.1 dex away from
    #mine!
    names,o_abund = fxwid.rdfixwid('Comparison/Bensby04/bensby04.dat',
                                   [[0,6],[8,13]],['|S10',np.float],empstr='')


    for i in range(len(names)):        
        if (idxarr == i).any():
            oid = str(oidarr[np.where(idxarr == i)[0][0]])
        else:
            oid = None

        Ben04(name=names[i],
              oid = oid,
              o_abund = round(o_abund[i],3),
              )
        

    idxarr,oidarr = res2id('Comparison/Bensby06/bensby06results.sim')
    names,c_abund = readbensby06('Comparison/Bensby06/bensby06.dat')

    for i in range(len(names)):        
        if (idxarr == i).any():
            oid = str(oidarr[np.where(idxarr == i)[0][0]])
        else:
            oid = None

        Ben06(name=names[i],
              oid = oid,
              c_abund = round(c_abund[i],3),
              )
        

    idxarr,oidarr = res2id('Comparison/Reddy03/reddy03results.sim')
    names,feh = fxwid.rdfixwid('Comparison/Reddy03/table1.dat',
                                  [[0,6],[17,22]],['|S10',np.float])
    
    names,c_abund,o_abund = fxwid.rdfixwid('Comparison/Reddy03/table5.dat',
                               [[0,6],[7,12],[19,23]],
                               ['|S10',np.float,np.float],empstr='----')
    

    for i in range(len(names)):        
        if (idxarr == i).any():
            oid = str(oidarr[np.where(idxarr == i)[0][0]])
        else:
            oid = None

        Red03(name=names[i],
              oid = oid,
              feh = round(feh[i],3),
              c_abund = round(c_abund[i]+feh[i],3),
              o_abund = round(o_abund[i]+feh[i],3),
              )
        




    idxarr,oidarr = res2id('Comparison/Reddy06/reddy06results.sim')    
    names,feh,c_abund,o_abund = fxwid.rdfixwid('Comparison/Reddy06/table45.dat',
                               [[17,23],[24,29],[30,35],[36,41]],
                               ['|S10',np.float,np.float,np.float],empstr='---')
    

    for i in range(len(names)):        
        if (idxarr == i).any():
            oid = str(oidarr[np.where(idxarr == i)[0][0]])
        else:
            oid = None

        Red06(name=names[i],
              oid = oid,
              c_abund = round(c_abund[i]+feh[i],3),
              o_abund = round(o_abund[i]+feh[i],3),
              )


    idxarr,oidarr = res2id('Comparison/Bensby05/bensby05results.sim')    
    names,o_abund = fxwid.rdfixwid('Comparison/Bensby05/table9.dat',
                               [[0,6],[293,299]],
                               ['|S10',np.float],empstr='')
    

    for i in range(len(names)):        
        if (idxarr == i).any():
            oid = str(oidarr[np.where(idxarr == i)[0][0]])
        else:
            oid = None

        Ben05(name=names[i],
              oid = oid,
              o_abund = round(o_abund[i],3),
              )
        


    session.commit()
    session.close()
示例#3
0
def simquery(code):
    """
    Generates scripted queries to SIMBAD database.  Must rerun anytime the
    ORDER of the structure changes.

    Future work:
    Automate the calls to SIMBAD.
    """

    dir = os.environ['COMP']
    files = ['mystars.sim','Luck06/luckstars.sim','exo.sim','Ramirez07/ramirez.sim','Bensby04/bensby.sim','Bensby06/bensby06.sim','Reddy03/reddy03.sim','Reddy06/reddy06.sim','Bensby05/bensby05.sim','Luck05/luck05.sim']

    datfiles = ['mystars.sim','Luck06/Luck06py.txt','exo.sim','Ramirez07/ramirez.dat','Bensby04/bensby04.dat','Bensby06/bensby06.dat','Reddy03/table1.dat','Reddy06/table45.dat','Bensby05/table9.dat','Luck05/table7.dat']


    for i in range(len(files)):
        files[i] = dir+files[i]
        datfiles[i] = dir+datfiles[i]

    if code == 0:
        stars = readstars.ReadStars(os.environ['PYSTARS'])
        names = stars.name
        simline = names2sim(names,cat='HD')
    if code == 1:
        names, c, o = postfit.readluck(datfiles[code])
        simline = names2sim(names,cat='')
    if code == 2:
        rec = mlab.csv2rec('smefiles/exoplanets-org.csv')
        names = rec['simbadname']
        simline = names2sim(names,cat='')
    if code == 3:
        names,a,a,a = starsdb.readramirez(datfiles[code])
        simline = names2sim(names,cat='HIP')

    if code == 4:
        names,o = starsdb.readbensby(datfiles[code])
        simline = names2sim(names,cat='HIP')

    if code == 5:
        names,c = starsdb.readbensby06(datfiles[code])
        simline = names2sim(names,cat='HD')

    if code == 6:
        names = (fxwid.rdfixwid(datfiles[code],[[0,6]],['|S10']))[0]
        simline = names2sim(names,cat='HD')

    if code == 7:
        names = (fxwid.rdfixwid(datfiles[code],[[17,23]],['|S10']))[0]
        simline = names2sim(names,cat='HIP')

    if code == 8:
        names = (fxwid.rdfixwid(datfiles[code],[[0,6]],['|S10']))[0]
        simline = names2sim(names,cat='HIP')

    if code == 9:
        names,x,x = starsdb.readluck05(datfiles[code])
        simline = names2sim(names,cat='HD')


    f = open(files[code],'w')
    f.writelines(simline)
    f.close()