예제 #1
0
def photo_spec_analysis():
    # l, b, r;  plate #, p_ra, p_dec, in Sgr, out Sgr
    path="/home/newbym2/Desktop/starfiles"
    wd="/home/newbym2/Dropbox/Research/sgrLetter/"
    files = glob.glob(path+"/stars*")
    plates = np.loadtxt(wd+"plate_stars.csv", delimiter=",")
    radius = 1.49
    for i, plate in enumerate(plates[:,0]):
        print "starting plate", str(plate).split(".")[0], plates[i,3], plates[i,4]
        p_ra, p_dec = plates[i,1], plates[i,2]
        pl, pb = ac.EqTolb(p_ra, p_dec)
        print pl, pb
        stars = []
        for f in files:
            data = open(f, "r") #np.loadtxt(f) #, delimiter="\t")
            print "    starting file", f
            wedge = int(f.split("-")[1].split(".")[0])
            skip = 0
            for line in data:
                if skip < 1:  skip =+ 1;  continue
                if line.strip()=="":  continue
                temp = line.split()
                ll, bb, g0 = float(temp[0]), float(temp[1]), ac.getg(float(temp[2]))                
                if g0 < 20.0:  continue
                if g0 > 20.5:  continue
                del_l, del_b = (ll-pl), (bb-pb)
                dd = ma.sqrt( (del_l*del_l) + (del_b*del_b) )
                if dd > radius: continue
                if ac.SDSS_primary(ll,bb,wedge,fmt="lb",low=9,high=27)==0:  continue
                stars.append([ll,bb,g0])
            data.close()
        svname = wd+"plate_"+str(plate).split(".")[0]+"_stars.csv"
        np.savetxt(svname, sc.array(stars), delimiter=",")
        print "saved {0}".format(svname)
예제 #2
0
def test_coords():
    # test Li Jing's coord transforms
    #ra,dec,l,b,j0,k0,w10,w20,lambda,beta
    arcsec = 1.0 / 3600.0
    data = np.loadtxt("/home/newbym/Desktop/Mgiant_wise_sgr.csv",
                      delimiter=",",
                      skiprows=1)
    ra, dec = data[:, 0], data[:, 1]
    l, b = data[:, 2], data[:, 3]
    lam, bet = data[:, 8], data[:, 9]
    badl, badb, badlam, badbet, badlam2, badbet2 = [], [], [], [], [], []
    for i in range(data.shape[0]):
        new_l, new_b = ac.EqTolb(ra[i], dec[i])
        if np.abs(new_l - l[i]) > arcsec: badl.append(new_l - l[i])
        if np.abs(new_b - b[i]) > arcsec: badb.append(new_b - b[i])
        new_lam, new_bet = ac.lb2sgr(l[i], b[i], 30.)[3:5]
        if np.abs(new_lam - lam[i]) > arcsec: badlam.append(lam[i])
        if np.abs(new_bet - bet[i]) > arcsec: badbet.append(bet[i])
        new_lam2, new_bet2 = ac.lb2sgr(new_l, new_b, 30.)[3:5]
        if np.abs(new_lam2 - lam[i]) > arcsec: badlam2.append(lam[i])
        if np.abs(new_bet2 - bet[i]) > arcsec: badbet2.append(bet[i])
    print data.shape[0]
    print np.mean(badl), np.mean(badb)
    print np.mean(badlam), np.mean(badbet), np.std(badbet)
    print np.mean(badlam2), np.mean(badbet2), np.std(badbet2)
    print "Done"
예제 #3
0
def process_spec():
    pp = np.loadtxt("/home/newbym2/Dropbox/Research/sgrLetter/plate_stars.csv", delimiter=",")
    pl,pb = ac.EqTolb(pp[:,1], pp[:,2])
    pd = 20.0
    pX,pY,pZ, plsgr, pbsgr, pr_sgr = ac.lb2sgr(pl, pb, pd)
    norm = pp[:,3] + pp[:,4]
    out = []
    for i in range(len(pp[:,0])):
        out.append([plsgr[i], pbsgr[i], pp[i,4]/norm[i], norm[i]])
    np.savetxt("/home/newbym2/Dropbox/Research/sgrLetter/plate_data.csv", np.array(out), delimiter=",")
예제 #4
0
def get_bif():
    bifra = [230.0, 220.0, 215.0, 210.0, 200.0, 190.0, 185.0, 180.0, 176.6, 173.3, 170.0, 160.0, 150.0, 140.0, 130.0]
    bifdec = [2.0, 4.0, 6.5, 9.0, 12.0, 15.0, 18.0, 21.0, 23.0, 25.0, 27.0, 28.0, 29.0, 31.0, 31.2]
    stripes = range(9,24)
    for i in range(len(bifra)):
        l,b = ac.EqTolb(bifra[i], bifdec[i])
        for s in stripes:
            if test_primary(l,b,s,low=9,high=23) == 1:
                mu, nu = ac.lb2GC(l,b,s)
                print "RA {0}, dec {1}, is in stripe {2}; mu {3}, nu {4}".format(bifra[i], bifdec[i], s, mu, nu)
예제 #5
0
def shift_sgr(filein="streamgen_bif50Good.txt", fileout="stream_50shift.txt"):
    prime = [ -5.25124491e-03, 1.57254414e+00, -1.00216868e+02]
    second = [ -7.76551199e-03, 2.31737724e+00, -1.41690141e+02]
    #file1="/home/newbym2/Dropbox/Research/sgrLetter/"+filein
    file1="/home/newbym2/Dropbox/Research/sgrLetter/"+filein
    data = np.loadtxt(file1)
    for i in range(len(data[:,0])):
        data[i,0], data[i,1] = ac.lbToEq(data[i,0], data[i,1])
        deldel = data[i,1] - (data[i,0]*data[i,0]*prime[0] + data[i,0]*prime[1] + prime[2])
        data[i,1] = deldel + (data[i,0]*data[i,0]*second[0] + data[i,0]*second[1] + second[2])
        data[i,0], data[i,1] = ac.EqTolb(data[i,0], data[i,1])
    np.savetxt(fileout, data, delimiter=" ")
예제 #6
0
def sgr_rv_skyplot():
    data = np.loadtxt("/home/newbym2/Dropbox/Research/sgrLetter/sgr_spec_all.csv", delimiter=",")
    #dered_g,dered_r,l,b,ELODIERVFINAL,ELODIERVFINALERR,plate,p_ra,p_dec
    g0, r0 = data[:,0], data[:,1]
    l, b = data[:,2], data[:,3]
    rv, rv_err = data[:,4], data[:,5]
    plates = data[:,6]
    p_ra, p_dec = data[:,7], data[:,8]
    d = ac.getr(g0)
    # Transform to vgsr from Yanny+ 2009
    vgsr = ac.rv_to_vgsr(rv,l,b)
    X,Y,Z, lsgr, bsgr, r_sgr = ac.lb2sgr(l, b, d)
    pl,pb = ac.EqTolb(p_ra, p_dec)
    pd = 20.0*sc.ones(len(pl))
    pX,pY,pZ, plsgr, pbsgr, pr_sgr = ac.lb2sgr(pl, pb, pd)
    mean, stdev, nsig = -118.233333, 30.222222, 1.0
    #plates = plate_center_utils()
    locs = []
    for i in range(len(data[:,0])):
        if g0[i] < 20.0:  continue
        if g0[i] > 23.0:  continue
        #if lsgr[i] > 230.0:  continue
        locs.append([lsgr[i], bsgr[i], vgsr[i], plsgr[i], pbsgr[i] ])
    locs = np.array(locs)
    sgr = []
    for i in range(len(locs[:,0])):
        if locs[i,2] < (mean - stdev*nsig):  continue
        if locs[i,2] > (mean + stdev*nsig):  continue
        sgr.append([locs[i,0], locs[i,1]])
    sgr = np.array(sgr)
    plt.figure()
    plt.scatter(locs[:,0], locs[:,1], c="k", s=1)
    plt.scatter(sgr[:,0], sgr[:,1], c='r', s=10)
    plt.scatter(locs[:,3], locs[:,4], c='b', s=10)
    plt.plot([190.0, 250.0, 250.0, 190.0],[10.0, 10.0, -10.0, -10.0], "b-")
    plt.plot([190.0, 320.0], [0.0, 0.0], "b--")
    plt.text(195.0, 33.0, "$\mu=$-118.2, $\sigma=$30.2\n{0} stars in {1}$\sigma$".format(len(sgr), nsig), fontsize=16)
    plt.xlim(190.0, 320.0)
    #plt.ylim(-75.0, 40.0)
    plt.ylim(40.0, -75.0)
    plt.xlabel(r"$\Lambda$", fontsize=16)
    plt.ylabel(r"$B$", fontsize=16)
    plt.show()
    """
    hist, edges = np.histogram(sgr[:,1], bins=23, range=(-75.0, 40.0))
    plt.bar(edges[:-1], hist, width=5.0, color="grey")
    plt.xlabel("B", fontsize=16)
    plt.text(-50.0, 25.0, "Stars within "+str(nsig)+r"$\sigma$ of mean $v_{\rm gsr}$; $\Lambda<230$", fontsize=12)
    plt.show()"""
    plt.close()
예제 #7
0
def convert(filename, RaDec=0):
    readfile = open(filename, "r")
    holder, MW = [], []
    for line in readfile:
        if line[0] == "#": continue
        if line.strip() == "": continue
        holder = line.split(",")
        for i in range(len(holder)):
            holder[i] = eval(holder[i])
        if RaDec == 1:
            l, b = coor.EqTolb(holder[0], holder[1])
            holder[0], holder[1] = round(l, 6), round(b, 6)
        r = coor.getr(holder[2], 4.2)
        holder[2] = round(r, 6)
        MW.append(holder[:3])
    readfile.close()
    nstars = len(MW)
    out = sc.array(MW)
    fi.write_data(out, filename[:-4] + "_new.txt", " ", str(nstars))