Example #1
0
    plt.show()


if __name__ == '__main__':
    # logging infrastructure
    logger = logging.getLogger('main')
    handler = logging.StreamHandler()
    colored_formatter = ColoredFormatter(
        "%(log_color)s%(asctime)s%(levelname)s:%(name)s:%(message)s")
    handler.setFormatter(colored_formatter)
    logger.addHandler(handler)
    logger.setLevel(logging.DEBUG)

    correlator = Correlator(logger=logger.getChild('correlator'))
    correlator.set_shift_schedule(0b00000000000)
    correlator.set_accumulation_len(40000)
    correlator.add_frequency_bin_calibrations('baseline.json')
    time.sleep(1)
    correlator.re_sync()

    siggen = SCPI(host='localhost')

    offsets = {}
    offsets['axis'] = []
    for a, b in correlator.cross_combinations:
        offsets["{a}{b}".format(a=a, b=b)] = []

    for f in correlator.frequency_correlations[(0, 1)].frequency_bins:
        siggen.setFrequency(f)
        time.sleep(1)
        correlator.fetch_crosses()
    parser.add_argument('--f_start', default=220e6, type=float)
    parser.add_argument('--f_stop', default=261e6, type=float)
    parser.add_argument('--array_geometry_file', default=None)
    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()
Example #3
0
        #a, b = baselines[idx]
        #to_plot = np.angle(np.fft.rfft(time[a]) * np.conj(np.fft.rfft(time[b])))[0:-1]
        lines[2][idx].set_ydata(to_plot)
        lines[3][idx].set_ydata(np.angle(cross[idx]))
    plt.pause(0.05)

if __name__ == '__main__':
    logger = logging.getLogger('main')
    handler = logging.StreamHandler()
    colored_formatter = ColoredFormatter("%(log_color)s%(asctime)s%(levelname)s:%(name)s:%(message)s")
    handler.setFormatter(colored_formatter)
    logger.addHandler(handler)
    logger.setLevel(logging.DEBUG)
    correlator = Correlator(logger = logger.getChild('correlator'))
    correlator.set_shift_schedule(0b00000000000)
    correlator.set_accumulation_len(40000)
    correlator.re_sync()
    correlator.fetch_autos()
    correlator.fetch_time_domain_snapshot(force=True)
    correlator.add_cable_length_calibrations('/home/jgowans/workspace/directionFinder_backend/config/cable_length_calibration.json')
    #correlator.apply_frequency_bin_calibrations('/home/jgowans/workspace/directionFinder_backend/config/frequency_domain_calibration_through_chain.json')
    correlator.add_frequency_bin_calibrations('/home/jgowans/workspace/directionFinder_backend/config/frequency_domain_calibration_direct_in_phase.json')
    created = False
    while True:
        time = []
        correlator.fetch_time_domain_snapshot(force=True)
        for antenna_idx in range(4):
            time.append(correlator.time_domain_signals[antenna_idx][0:2048])
        correlator.fetch_all()
        correlator.apply_frequency_domain_calibrations()
        frequency = [(correlator.frequency_correlations[(0,0)].signal)]
    parser.add_argument('--f_start', default=220e6, type=float)
    parser.add_argument('--f_stop', default=261e6, type=float)
    parser.add_argument('--array_geometry_file', default=None)
    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: