示例#1
0
def test_pivot_smoke():
    M, N = 3, 10
    evs = list(_pivot_data_helper(M, N))
    ev_dict = {ev['uid']: ev for ev in evs}
    pevs = list(pivot_timeseries(evs, 'abg', 'cdh'))
    for j, ev in enumerate(pevs):
        assert j == ev['seq_no']
        assert ev['data']['_ind'] == j % M

        desc = ev['descriptor']
        for k in 'abgcdh':
            assert k in desc['data_keys']
        assert desc['data_keys']['a']['shape'] == ()
        assert desc['data_keys']['b']['shape'] == ()
        assert desc['data_keys']['c']['shape'] == (3, )
        assert desc['data_keys']['g']['shape'] == (2, 2)
        assert desc['data_keys']['h']['shape'] == (3, 2, 2)
        assert set(desc['data_keys']) == set(ev['data'])
        assert set(desc['data_keys']) == set(ev['timestamps'])
        for k in 'cdh':
            assert desc['data_keys'][k]['source'] == 'syn'
            assert_array_equal(ev['data'][k], evs[j // M]['data'][k])

        for k in 'abg':
            src = desc['data_keys'][k]['source']
            assert src == str(j // M)
            source_ev = ev_dict[src]
            assert_array_equal(ev['data'][k],
                               source_ev['data'][k][ev['data']['_ind']])
示例#2
0
def test_pivot_smoke():
    M, N = 3, 10
    evs = list(_pivot_data_helper(M, N))
    ev_dict = {ev['uid']: ev for ev in evs}
    pevs = list(pivot_timeseries(evs, 'abg', 'cdh'))
    for j, ev in enumerate(pevs):
        assert j == ev['seq_no']
        assert ev['data']['_ind'] == j % M

        desc = ev['descriptor']
        for k in 'abgcdh':
            assert k in desc['data_keys']
        assert desc['data_keys']['a']['shape'] == ()
        assert desc['data_keys']['b']['shape'] == ()
        assert desc['data_keys']['c']['shape'] == (3, )
        assert desc['data_keys']['g']['shape'] == (2, 2)
        assert desc['data_keys']['h']['shape'] == (3, 2, 2)
        assert set(desc['data_keys']) == set(ev['data'])
        assert set(desc['data_keys']) == set(ev['timestamps'])
        for k in 'cdh':
            assert desc['data_keys'][k]['source'] == 'syn'
            assert_array_equal(ev['data'][k], evs[j // M]['data'][k])

        for k in 'abg':
            src = desc['data_keys'][k]['source']
            assert src == str(j // M)
            source_ev = ev_dict[src]
            assert_array_equal(ev['data'][k],
                               source_ev['data'][k][ev['data']['_ind']])
示例#3
0
def clean_images(header, pivot_key, timesource_key, dark_images=None, static_keys=None):
    if static_keys is None:
        static_keys = ['sx', 'sy', 'temp_a', 'temp_b', 'sz']
    # sort out which descriptor has the key we want to pivot on
    pv_desc = [d for d in header['descriptors'] if pivot_key in d['data_keys']][0]
    # sort out which descriptor has the key that we want to zip with to get time stamps
    ts_desc = [d for d in header['descriptors'] if timesource_key in d['data_keys']][0]

    ts_events = get_events_generator(ts_desc)
    pv_events = get_events_generator(pv_desc)
    # fill_event works in place, sillyness to work around that
    pv_events = ((ev, fill_event(ev))[0] for ev in pv_events)
    pivoted_events = pivot_timeseries(pv_events, [pivot_key], static_keys)

    if dark_images:
        pivoted_events = correct_events(pivoted_events, pivot_key, dark_images)
    merged_events = zip_events(pivoted_events, ts_events)
    out_ev = reset_time(merged_events, timesource_key)
    yield from out_ev
示例#4
0
def clean_images(header, pivot_key, timesource_key, dark_images=None, static_keys=None):
    if static_keys is None:
        static_keys = ["sx", "sy", "temp_a", "temp_b", "sz"]
    # sort out which descriptor has the key we want to pivot on
    pv_desc = [d for d in header["descriptors"] if pivot_key in d["data_keys"]][0]
    # sort out which descriptor has the key that we want to zip with to get time stamps
    ts_desc = [d for d in header["descriptors"] if timesource_key in d["data_keys"]][0]

    ts_events = get_events_generator(ts_desc)
    pv_events = get_events_generator(pv_desc)
    # fill_event works in place, sillyness to work around that
    pv_events = ((ev, fill_event(ev))[0] for ev in pv_events)
    pivoted_events = pivot_timeseries(pv_events, [pivot_key], static_keys)

    if dark_images:
        pivoted_events = correct_events(pivoted_events, pivot_key, dark_images)
    merged_events = zip_events(pivoted_events, ts_events)
    out_ev = reset_time(merged_events, timesource_key)
    yield from out_ev