parser.add_argument('--d', type=str) parser.add_argument('--f_start', default=200e6, type=float) parser.add_argument('--f_stop', default=300e6, type=float) parser.add_argument('--array_geometry_file', default=None) args = parser.parse_args() directory = args.d correlator = FakeCorrelator() correlator.add_cable_length_calibrations('/home/jgowans/workspace/directionFinder_backend/config/cable_length_calibration_actual_array.json') correlator.add_time_domain_calibration('/home/jgowans/workspace/directionFinder_backend/config/time_domain_calibration_through_rf_chain.json') fs = correlator.fs array = AntennaArray.mk_from_config(args.array_geometry_file) df = DirectionFinder(correlator, array, args.f_start, logger.getChild('df')) df.set_time() contents = os.listdir(directory) contents.sort() for timestamp_str in contents: try: timestamp = float(timestamp_str) except ValueError: continue #fig = plt.figure() correlator.time_domain_signals = None num_channels = 4 for channel in range(num_channels): filename = "{c}.npy".format(c = channel) with open("{d}/{t}/{f}".format(d = directory, t = timestamp, f = filename)) as f:
continue correlations = {} num_channels = 4 cross_combinations = list( itertools.combinations(range(num_channels), 2)) for comb in cross_combinations: filename = "{a}x{b}.npy".format(a=comb[0], b=comb[1]) with open("{d}/{t}/{f}".format(d=directory, t=timestamp, f=filename)) as f: signal = np.load(f) correlations[comb] = signal correlator = FakeCorrelator(signals=correlations) correlator.add_cable_length_calibrations( '/home/jgowans/workspace/directionFinder_backend/config/cable_length_calibration_actual_array.json' ) correlator.add_frequency_bin_calibrations( '/home/jgowans/workspace/directionFinder_backend/config/frequency_domain_calibration_through_chain.json' ) correlator.apply_frequency_domain_calibrations() array = AntennaArray.mk_from_config(args.array_geometry_file) df = DirectionFinder(correlator, array, args.f_start, logger.getChild('df')) df.df_strongest_signal(args.f_start, args.f_stop, directory, t=timestamp)
args = parser.parse_args() df_raw_dir = '/home/jgowans/Documents/df_raw/{c}/'.format(c=args.comment) if not os.path.exists(df_raw_dir): os.mkdir(df_raw_dir) array = AntennaArray.mk_from_config(args.array_geometry_file) correlator = Correlator(logger=logger.getChild('correlator')) correlator.set_accumulation_len(args.acc_len) correlator.add_cable_length_calibrations( '/home/jgowans/workspace/directionFinder_backend/config/cable_length_calibration_actual_array.json' ) correlator.add_frequency_bin_calibrations( '/home/jgowans/workspace/directionFinder_backend/config/frequency_domain_calibration_through_chain.json' ) df = DirectionFinder(correlator, array, args.f_start, logger.getChild('df')) if args.impulse == True: df.set_time() # go into time mode # 100 impulse filter len = 0.5 us correlator.set_impulse_filter_len(100) correlator.set_impulse_setpoint(args.impulse_setpoint) correlator.re_sync() time.sleep(0.1) correlator.impulse_arm() while True: if args.impulse == True: if df.fetch_impulse() == True: correlator.save_time_domain_snapshots(df_raw_dir) # not necessary to apply cal as it's done in the correlation routine
for elements in [3, 4]: array = AntennaArray.mk_circular(args.radius * (elements / 4.0), elements) named_antenna_arrays.append(NamedArray(str(elements), array)) if args.array_geometry_file: array = AntennaArray.mk_from_config(args.array_geometry_file) named_antenna_arrays.append(NamedArray("4'", array)) for elements in [5, 6, 7]: array = AntennaArray.mk_circular(args.radius * (elements / 4.0), elements) named_antenna_arrays.append(NamedArray(str(elements), array)) for named_arr in named_antenna_arrays: name = named_arr.name arr = named_arr.array df = DirectionFinder(None, arr, args.freq, logger.getChild('df')) logging.info("Doing array: {arr}".format(arr=name)) y = [] for visibility_rms_err in visibility_rms_errs: logging.info("Doing rms visibility error: {er}".format( er=visibility_rms_err)) df_errors = [] for phi in phi_domain: array_response = arr.each_pair_phase_difference_at_angle( phi, args.freq) visibility_errors = np.random.normal(0, visibility_rms_err, array_response.shape) array_response += visibility_errors angle_out = df.find_closest_point(array_response) angular_error = np.arctan2(np.sin(phi - angle_out), np.cos(phi - angle_out))
args = parser.parse_args() directory = args.d correlator = FakeCorrelator() correlator.add_cable_length_calibrations( '/home/jgowans/workspace/directionFinder_backend/config/cable_length_calibration_actual_array.json' ) correlator.add_time_domain_calibration( '/home/jgowans/workspace/directionFinder_backend/config/time_domain_calibration_through_rf_chain.json' ) fs = correlator.fs array = AntennaArray.mk_from_config(args.array_geometry_file) df = DirectionFinder(correlator, array, args.f_start, logger.getChild('df')) df.set_time() contents = os.listdir(directory) contents.sort() for timestamp_str in contents: try: timestamp = float(timestamp_str) except ValueError: continue #fig = plt.figure() correlator.time_domain_signals = None num_channels = 4 for channel in range(num_channels): filename = "{c}.npy".format(c=channel) with open("{d}/{t}/{f}".format(d=directory,
parser.add_argument('--impulse', type=bool, default=False) parser.add_argument('--impulse_setpoint', type=int) parser.add_argument('--acc_len', type=int, default=40000) parser.add_argument('--comment', type=str) args = parser.parse_args() df_raw_dir = '/home/jgowans/Documents/df_raw/{c}/'.format(c = args.comment) if not os.path.exists(df_raw_dir): os.mkdir(df_raw_dir) array = AntennaArray.mk_from_config(args.array_geometry_file) correlator = Correlator(logger = logger.getChild('correlator')) correlator.set_accumulation_len(args.acc_len) correlator.add_cable_length_calibrations('/home/jgowans/workspace/directionFinder_backend/config/cable_length_calibration_actual_array.json') correlator.add_frequency_bin_calibrations('/home/jgowans/workspace/directionFinder_backend/config/frequency_domain_calibration_through_chain.json') df = DirectionFinder(correlator, array, args.f_start, logger.getChild('df')) if args.impulse == True: df.set_time() # go into time mode # 100 impulse filter len = 0.5 us correlator.set_impulse_filter_len(100) correlator.set_impulse_setpoint(args.impulse_setpoint) correlator.re_sync() time.sleep(0.1) correlator.impulse_arm() while True: if args.impulse == True: if df.fetch_impulse() == True: correlator.save_time_domain_snapshots(df_raw_dir) # not necessary to apply cal as it's done in the correlation routine
parser.add_argument('--array_geometry_file', default=None) args = parser.parse_args() directory = args.d contents = os.listdir(directory) contents.sort() for timestamp_str in contents: try: timestamp = float(timestamp_str) except ValueError: continue correlations = {} num_channels = 4 cross_combinations = list(itertools.combinations(range(num_channels), 2)) for comb in cross_combinations: filename = "{a}x{b}.npy".format(a = comb[0], b = comb[1]) with open("{d}/{t}/{f}".format(d = directory, t = timestamp, f = filename)) as f: signal = np.load(f) correlations[comb] = signal correlator = FakeCorrelator(signals = correlations) correlator.add_cable_length_calibrations('/home/jgowans/workspace/directionFinder_backend/config/cable_length_calibration_actual_array.json') correlator.add_frequency_bin_calibrations('/home/jgowans/workspace/directionFinder_backend/config/frequency_domain_calibration_through_chain.json') correlator.apply_frequency_domain_calibrations() array = AntennaArray.mk_from_config(args.array_geometry_file) df = DirectionFinder(correlator, array, args.f_start, logger.getChild('df')) df.df_strongest_signal(args.f_start, args.f_stop, directory, t = timestamp)