Esempio n. 1
0
def alter_clos(pairings, bm_intpl, cutoff=0.):
    clos_app = {}
    cnt = 0
    #print "alter_clos: len(pairings)=", len(pairings)
    for key in pairings:
        cnt = cnt+1
        #if (cnt/20)*20 == cnt:
        #    print 'alter_clos: Processing key %d out of %d:' % (cnt,len(pairings))
        L = len(pairings[key])
        for i in range(L):  # get the points pairwise
            for j in range(i+1,L):
                pt1,pt2 = pairings[key][i],pairings[key][j]
                if pt1[0] == pt2[0]:
                    #print "alter_clos: ignore self-correlating baseline: ", pt1[0]
                    continue
                duv = tuple(x - y for x,y in zip(pt1[2], pt2[2]))
                val = export_beam.get_overlap(bm_intpl,*duv)
                blkey = (pt1[0],pt2[0])
                #if blkey==((92,112),(0,91)) or blkey==((0,91),(92,112)): print blkey,val, duv
                clos_app[blkey] = clos_app.get(blkey,[])+[(val,pt1[1],pt2[1],pt1[2])]
    for blkey in clos_app.keys():
        N = len(clos_app[blkey])
        #if N > 10:
        #    print "Found simultaneously redundant baseline:", blkey
        #    del clos_app[blkey]
        #    continue
        max,max_val = 0,0.
        for i in range(N):
            if max_val < abs(clos_app[blkey][i][0]):
                max,max_val = i, abs(clos_app[blkey][i][0])
        clos_app[blkey] = clos_app[blkey][max]
    return clos_app
Esempio n. 2
0
def pair_sort(pairings, bm_intpl, cutoff=0.):
    sorted = []
    for key in pairings:
        L = len(pairings[key])
        for i in range(L):  # get the points pairwise
            for j in range(i+1,L):
                pt1,pt2 = pairings[key][i],pairings[key][j]
                duv = tuple(x - y for x,y in zip(pt1[2], pt2[2]))
                val = export_beam.get_overlap(bm_intpl,*duv)
                if abs(val) > cutoff:
                    sorted.append((val,(pt1[0],pt1[1]),(pt2[0],pt2[1]),pt1[2]))
    quick_sort.quick_sort(sorted,0,len(sorted)-1)
    return sorted
Esempio n. 3
0
def get_corr(aa, src, bm_intpl, t1,t2, bl1, bl2):
    aa.set_jultime(t1)
    src.compute(aa)
    if src.alt>0:
        uvw1 = aa.gen_uvw(*bl1,src=src).flatten()
        if uvw1[0] < 0: uvw1 = -uvw1
    else: return 0  #if src below horizon, will break out of while loop
    aa.set_jultime(t2)
    src.compute(aa)
    if src.alt>0:
        uvw2 = aa.gen_uvw(*bl2,src=src).flatten()
        if uvw2[0] < 0: uvw2 = -uvw2
        duv = (uvw1[0]-uvw2[0],uvw1[1]-uvw2[1])
    else: return 0
    #print n.sqrt(duv[0]*duv[0]+duv[1]*duv[1])
    return export_beam.get_overlap(bm_intpl,*duv), (uvw1,uvw2)
Esempio n. 4
0
def alter_clos_p1(ev, que,freq,fbmamp,clos_app):
    while not ev.is_set():
        try: arr = que.get(block=True, timeout=1)
        except(mp.queues.Empty): continue
        L = len(arr)
        print L
        for i in range(L):  # get the points pairwise
            for j in range(i+1,L):
                pt1,pt2 = arr[i],arr[j]
                if pt1[0] == pt2[0]:
                    #print "alter_clos: ignore self-correlating baseline: ", pt1[0]
                    continue
                duv = tuple(x - y for x,y in zip(pt1[2], pt2[2]))
                val = export_beam.get_overlap(freq,fbmamp,*duv)
                blkey = (pt1[0],pt2[0])
                #if blkey==((92,112),(0,91)) or blkey==((0,91),(92,112)): print blkey,val, duv
                clos_app[blkey] = clos_app.get(blkey,[])+[(val,pt1[1],pt2[1],pt1[2])]
    #print "exiting parallel 1"
    #if que.empty(): print "queue is empty"
    return
Esempio n. 5
0
    #u0,v0,w0 = aa.gen_uvw(ant1,ant2,src=src)
    #u0,v0 = u0[0][0], v0[0][0]
    #if u0<0: u0,v0 = -u0,-v0
    u1,v1,w1 = aa.gen_uvw(ant3,ant4,src=src)
    u1,v1 = u1[0][0], v1[0][0]
    if u1<0: u1,v1 = -u1,-v1
    u,v = u0-u1,v0-v1
    U.append(u)
    V.append(v)


U,V = n.array(U), n.array(V)
U,V = U.flatten(), V.flatten()
ntop = n.array([X,Y,Z])
bmp = export_beam.beam_real(aa[ant1], ntop, shape0, 'x')
freq, fbmamp = export_beam.beam_fourier(bmp, d, 400)
val = export_beam.get_overlap(freq,fbmamp,U,V)

fig = p.figure()
ax1 = fig.add_subplot(121)
p.plot(times,val)
ax1.set_xlabel('jultime',size=12)
ax1.set_ylabel('FT(A^2)',size=12)
#p.plot(TIME,U)
#p.plot(TIME,V)
ax2 = fig.add_subplot(122)
p.plot(U,V)
ax2.set_xlabel('U',size=12)
ax2.set_ylabel('v',size=12)
plt.show()
Esempio n. 6
0
fig = p.figure()
ax1 = fig.add_subplot(121)
im1 = ax1.imshow(bmp, interpolation='nearest', extent=rax)
ax1.set_xlabel('l')
ax1.set_ylabel('m')
cbar1 = p.colorbar(im1,fraction=0.046, pad=0.04)
ax2 = fig.add_subplot(122)
ax2.set_xlabel('u')
ax2.set_ylabel('v')
im2 = plt.imshow(fbmamp[f_range[:,None],f_range], interpolation='nearest', extent=freqax)
cbar2 = p.colorbar(im2,fraction=0.046, pad=0.04)

fig2 = p.figure()
u_range = n.linspace(-3,3,100)
f = export_beam.beam_interpol(freq,fbmamp)
z = export_beam.get_overlap(f, u_range,u_range)
#z = z/n.amax(n.abs(z))
U,V = n.meshgrid(u_range,u_range)
#z = abs(z)
ax3 = fig2.add_subplot(121,projection='3d')
ax3.set_xlabel('u')
ax3.set_ylabel('v')
surf = ax3.plot_surface(U,V,z,cmap=cm.coolwarm)
#p.colorbar(surf, shrink=0.5, aspect=5)


ax4 = fig2.add_subplot(122)
ax4.set_xlabel('u')
ax4.set_ylabel('FT')
for v in [0.,1.]:
    z = export_beam.get_overlap(f,u_range,v)
Esempio n. 7
0
    src.compute(aa)
    #u0,v0,w0 = aa.gen_uvw(ant1,ant2,src=src)
    #u0,v0 = u0[0][0], v0[0][0]
    #if u0<0: u0,v0 = -u0,-v0
    u1, v1, w1 = aa.gen_uvw(ant3, ant4, src=src)
    u1, v1 = u1[0][0], v1[0][0]
    if u1 < 0: u1, v1 = -u1, -v1
    u, v = u0 - u1, v0 - v1
    U.append(u)
    V.append(v)

U, V = n.array(U), n.array(V)
U, V = U.flatten(), V.flatten()
ntop = n.array([X, Y, Z])
bmp = export_beam.beam_real(aa[ant1], ntop, shape0, 'x')
freq, fbmamp = export_beam.beam_fourier(bmp, d, 400)
val = export_beam.get_overlap(freq, fbmamp, U, V)

fig = p.figure()
ax1 = fig.add_subplot(121)
p.plot(times, val)
ax1.set_xlabel('jultime', size=12)
ax1.set_ylabel('FT(A^2)', size=12)
#p.plot(TIME,U)
#p.plot(TIME,V)
ax2 = fig.add_subplot(122)
p.plot(U, V)
ax2.set_xlabel('U', size=12)
ax2.set_ylabel('v', size=12)
plt.show()
Esempio n. 8
0
im1 = ax1.imshow(bmp, interpolation='nearest', extent=rax)
ax1.set_xlabel('l')
ax1.set_ylabel('m')
cbar1 = p.colorbar(im1, fraction=0.046, pad=0.04)
ax2 = fig.add_subplot(122)
ax2.set_xlabel('u')
ax2.set_ylabel('v')
im2 = plt.imshow(fbmamp[f_range[:, None], f_range],
                 interpolation='nearest',
                 extent=freqax)
cbar2 = p.colorbar(im2, fraction=0.046, pad=0.04)

fig2 = p.figure()
u_range = n.linspace(-3, 3, 100)
f = export_beam.beam_interpol(freq, fbmamp)
z = export_beam.get_overlap(f, u_range, u_range)
#z = z/n.amax(n.abs(z))
U, V = n.meshgrid(u_range, u_range)
#z = abs(z)
ax3 = fig2.add_subplot(111, projection='3d')
ax3.set_xlabel('u')
ax3.set_ylabel('v')
surf = ax3.plot_surface(U, V, z, cmap=cm.coolwarm)
#p.colorbar(surf, shrink=0.5, aspect=5)

#ax4 = fig2.add_subplot(122)
#ax4.set_xlabel('u')
#ax4.set_ylabel('FT')
#for v in [0.,1.]:
#    z = export_beam.get_overlap(f,u_range,v)
#    curv, = p.plot(u_range,z,label='v= %f' % v)