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)
예제 #2
0
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()
예제 #3
0
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'
예제 #4
0
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))