示例#1
0
    lowerFreq = float(sys.argv[2])
    upperFreq = float(sys.argv[3])
    freqSpace = float(sys.argv[4])
    beam_sig = float(sys.argv[5])
    del_bl = float(sys.argv[6])
    sqGridSideLen = int(sys.argv[7])
    variableBeam = int(sys.argv[8])
    save_loc = sys.argv[9]

    if variableBeam == 0:
        savekey = 'grid_del_bl_{0:.2f}_sqGridSideLen_{1}_fixedWidth_beam_sig_{2:.2f}'.format(del_bl,sqGridSideLen,beam_sig)
    elif variableBeam == 1:
        savekey = 'grid_del_bl_{0:.2f}_sqGridSideLen_{1}_lambdaBeam_beam_sig_{2:.2f}'.format(del_bl,sqGridSideLen,beam_sig)

    #baselines = agg.make_pos_array(del_bl,sqGridSideLen)
    baselines = agg.make_uhp_bls(del_bl,sqGridSideLen)
    numBl = len(baselines)
    dOmega = 4 * np.pi / npix

    beamMap = ap.map.Map(nside)
    directionVects_xyz = beamMap.map.px2crd(np.array([i for i in range(npix)]))
    directionVects_xyz = np.array(directionVects_xyz).T
    directionVects_thetas = beamMap.map.px2crd(np.array([i for i in range(npix)]),ncrd=2)[0]
    
    fqs = np.arange(lowerFreq,upperFreq+freqSpace,freqSpace)
    fqs /= 1000. # Convert from MHz to GHz

    if variableBeam == 0:
        beam_sig_fqs = beam_sig * np.ones_like(fqs)
    elif variableBeam == 1:
        #beam_sig_fqs = beam_sig * 0.15 / fqs
示例#2
0
global Rdata
Rdata = healmap.map.map
global Rsq
Rsq = Rdata * Rdata
global dOmega
dOmega = 4 * n.pi / px_array.shape[0]
phi, theta = n.array(healmap.px2crd(px_array, ncrd=2))
#print 'theta max = ',max(theta)
#print 'phi max = ',max(phi)

amp = n.zeros((fqs.shape[0], len(phi)))
for i, beamSize in enumerate(beam_sig_fqs):
    #amp[i,:] = uf.gaussian(beamSize,n.zeros_like(theta),phi)
    amp[i, :] = uf.cosine_gaussian(beamSize, phi)
#baselines = agg.make_pos_array(del_bl,sqGridSideLen)
baselines = agg.make_uhp_bls(del_bl, sqGridSideLen)

#print "defined calculation parameters"

# define matrix to be calculated
num = len(baselines)
matrix = n.zeros([num, num, len(fqs)], dtype=n.complex)
# define parameters related to task-mastering
numToDo = num * (num + 1) / 2
#print 'numToDo = ',numToDo
assn_inds = []
for ii in range(num + 1):
    for jj in range(ii + 1):
        assn_inds.append((ii, jj))
num_sent = 0  # this functions both as a record of how many assignments have
# been sent and as a tag marking which matrix entry was calculated