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
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