gain_arr[nu, :, tt] = evl[-1]**0.5 * evec[:, -1] return gain_arr, eval_arr if __name__ == '__main__': import argparse parser = argparse.ArgumentParser(description="Reads in point source transit and solve for complex gains") parser.add_argument("files", help=".h5 files to read") args = parser.parse_args() feed_locx = [0,1,2,12,13,14,15] feed_locy = [4,5,6,8,9,10,11] print args.files X, vis, t, RA, fpga_count = misc.get_data(args.files + '*') vis = vis #- np.median(vis[..., 175:450, np.newaxis], axis=-2) print "Read in data with shape:", vis.shape print "Starting xpol eigendecomposition" gainmatx, evmatx = solve_gain(np.median(vis.reshape(-1, 1, 136, vis.shape[-1]), 1), 16, feed_loc=feed_locx) print "Starting ypol eigendecomposition" gainmaty, evmaty = solve_gain(np.median(vis.reshape(-1, 1, 136, vis.shape[-1]), 1), 16, feed_loc=feed_locy) gainmatx *= gainmatx[:,0,np.newaxis] gainmaty *= gainmaty[:,0,np.newaxis] g = h5py.File('gainsolmed.hdf5','w') g.create_dataset('gainmatx', data=gainmatx) g.create_dataset('gainmaty', data=gainmaty) g.create_dataset('evmatx', data=evmatx)
n_corr = 36 parser = argparse.ArgumentParser(description="This programs tries to fit beam from point-source trans\ its.") parser.add_argument("Data", help="Directory containing acquisition files.") parser.add_argument("--Objects", help="Celestial objects to fit", default='All') parser.add_argument("--minfile", help="Minfile number e.g. 0051", default="") parser.add_argument("--maxfile", help="Maxfile number e.g. 0051", default="") args = parser.parse_args() files = np.str(args.Data) + '*h5.' + args.maxfile + '*' print "" print "Reading in Data:", files Data, vis, utime, RA = misc.get_data(files) print "RA range of data:", RA.min(),":",RA.max() RA_sun = eph.transit_RA(eph.solar_transit(utime[0])) sun_RA_low = RA_sun - 6 sun_RA_high = RA_sun + 6 print "" print "Das sun was at: %f" % RA_sun # Create a dictionary with each fitting object's information in the form: {"Obj": [RA_min, RA_max, Declination]}. celestial_object = { "CasA": [344, 358, 58.83], "TauA": [77, 87, 83.6], "CygA": [297, 302, 40.73], "Sun": [sun_RA_low, sun_RA_high, 0]} if args.Objects != "All": srcs2fit = [args.Objects] else: srcs2fit = celestial_object.keys()
list = glob.glob(args.data_dir + '/*h5*') list.sort() list = list[0:0 + file_chunk * nnodes] nchunks = len(list) / file_chunk print "Total of %i files" % len(list) jj = comm.rank print "Starting chunk %i of %i" % (jj+1, nchunks) print "Getting", file_chunk*jj, ":", file_chunk*(jj+1) corrs = [misc.feed_map(i, i, 16) for i in range(16)] #+ [misc.feed_map(i, 3, 16) for i in range(16)] data_arr, time_full, RA, fpga_count = misc.get_data(list[file_chunk*jj:file_chunk*(jj+1)])[1:] data_arr = data_arr[:, corrs, :] ntimes = len(time_full) time = time_full time_int = args.time_int freq_int = args.freq_int fpga_tag = '' if args.use_fpga==1: time = (fpga_count - fpga_count[0]) * (np.diff(time_full)[0]) / np.diff(fpga_count)[0] print "We're going with the fpga counts:", np.median(np.diff(fpga_count)) fpga_tag = 'fpga'
RA_src, dec, DM, p1 = np.float(sources[sources[:,0]==args.pulsar][0][1]), np.float(sources[sources[:,0]==args.pulsar][0][2]), np.float(sources[sources[:,0]==args.pulsar][0][3]),\ np.float(sources[sources[:,0]==args.pulsar][0][4]) ncorr = args.ncorr dat_name = args.data_dir[-16:] list = glob.glob(args.data_dir + '/*h5*') list.sort() list = list[0:0 + args.nfiles] print "Total of %i files" % len(list) corrs = [misc.feed_map(i, i, 16) for i in range(16)] #+ [misc.feed_map(i, 3, 16) for i in range(16)] data_arr, time_full, RA, fpga_count = misc.get_data(list)[1:] data_arr = data_arr[:, corrs, :] ntimes = len(time_full) time = time_full time_int = args.time_int freq_int = args.freq_int if args.use_fpga==1: time = (fpga_count - fpga_count[0]) * (np.diff(time_full)[0]) / np.diff(fpga_count)[0] print "We're going with the fpga counts:", np.median(np.diff(fpga_count)) fpga_tag = 'fpga' print "The median time diff is:", np.median(np.diff(time))