예제 #1
0
파일: meat.py 프로젝트: AndreaCensi/rcl
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
예제 #2
0
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
예제 #3
0
    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
예제 #4
0
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
예제 #5
0
파일: meat.py 프로젝트: AndreaCensi/rcl
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
예제 #6
0
    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