def filter_phase(log, pipeline, f_min, f_max, fd, pd, n_stop=0): transitions = aer_pipeline_transitions1_all(log, pipeline) stream = aer_filtered_cutoff(transitions, f_min, f_max) P = np.zeros((fd, pd)) frequencies = np.linspace(f_min, f_max, fd) phases = np.linspace(0, 1, pd) count = 0 for ae in stream: f = ae['frequency'] t = ae['timestamp'] delta = 1 / f s = t / delta phase = s - np.floor(s) i = np.digitize([f], frequencies) - 1 j = np.digitize([phase], phases) - 1 P[i, j] += 1 count += 1 if n_stop != 0 and count >= n_stop: break stats = {} stats['P'] = P return stats
def __init__(self, log, pipeline, sigma, outdir, tracks_filename, interval=None, min_led_distance=0, weight_others=0, detect_smooth_sigma=1.0, detect_neighbors=10, write_png=False): # get configuration blink_detect_config = get_blink_config(log) # create trackers frequencies = blink_detect_config.get_frequencies() self.trackers = [] for f in frequencies: others = list(frequencies) others.remove(f) tracker = TrackerFixedFreq(f, others=others, others_weight=weight_others, sigma=sigma, interval=interval) self.trackers.append(tracker) # start track log # tracks_filename = os.path.splitext(log)[0] + '.%s.tracks' % suffix self.tracklog = AERTrackLogWriter(tracks_filename) params = dict(frequencies=frequencies, sigma=sigma, weight_others=weight_others, interval=interval) self.tracklog.write_comment('params: %s' % params) # open files if False: raw_sequence = aer_load_log_generic(log) self.transitions = aer_pipeline_transitions1( raw_sequence, pipeline) else: self.transitions = aer_pipeline_transitions1_all(log, pipeline) # save params needed later self.detect_smooth_sigma = detect_smooth_sigma self.detect_neighbors = detect_neighbors self.min_led_distance = int(min_led_distance) self.write_png = write_png self.outdir = outdir
def aer_stats_freq_meat(log, pipeline): events = aer_pipeline_transitions1_all(log, pipeline) r = Report('index') with r.subsection('all') as sub: report_band(sub, events, min_f=20.0, max_f=3000.0) with r.subsection('high') as sub: report_band(sub, events, min_f=500.0, max_f=3000.0) return r
def __init__(self, log, pipeline, sigma, outdir, tracks_filename, interval=None, min_led_distance=0, weight_others=0, detect_smooth_sigma=1.0, detect_neighbors=10, write_png=False): # get configuration blink_detect_config = get_blink_config(log) # create trackers frequencies = blink_detect_config.get_frequencies() self.trackers = [] for f in frequencies: others = list(frequencies) others.remove(f) tracker = TrackerFixedFreq(f, others=others, others_weight=weight_others, sigma=sigma, interval=interval) self.trackers.append(tracker) # start track log # tracks_filename = os.path.splitext(log)[0] + '.%s.tracks' % suffix self.tracklog = AERTrackLogWriter(tracks_filename) params = dict(frequencies=frequencies, sigma=sigma, weight_others=weight_others, interval=interval) self.tracklog.write_comment('params: %s' % params) # open files if False: raw_sequence = aer_load_log_generic(log) self.transitions = aer_pipeline_transitions1(raw_sequence, pipeline) else: self.transitions = aer_pipeline_transitions1_all(log, pipeline) # save params needed later self.detect_smooth_sigma = detect_smooth_sigma self.detect_neighbors = detect_neighbors self.min_led_distance = int(min_led_distance) self.write_png = write_png self.outdir = outdir