Created
October 13, 2016 16:57
-
-
Save matham/ecef207139ac4258c28c56913c86823b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from os import listdir | |
from os.path import join, splitext | |
from re import match | |
import re | |
import numpy as np | |
import operator | |
from glitter.logger import DataLogger | |
filename_pat = re.compile('Carvone Trial([0-9]+) +([0-9]+)_updated_\\.h5') | |
def update_files(root): | |
logger = DataLogger() | |
for fname in listdir(root): | |
src = join(root, fname) | |
dest = '{}_updated_{}'.format(*splitext(src)) | |
logger.upgrade_legacy_file(src, dest) | |
def get_dig_latency(root, pat=filename_pat): | |
data = {} | |
logger = DataLogger() | |
for fname in listdir(root): | |
fname_full = join(root, fname) | |
m = match(pat, fname) | |
if m is None: | |
continue | |
day, rat = m.groups() | |
logger.open_file(fname_full) | |
s = logger.t_h5.TrialStart_0 | |
d = logger.t_h5.DigStart_1 | |
pts = logger.pts_h5 | |
vals = [] | |
for item in (pts, s, d): | |
vals.append(np.concatenate(item._f_list_nodes())) | |
if len(vals[0]) != len(vals[1]) or len(vals[1]) != len(vals[2]): | |
raise Exception('Unequal data sizes') | |
pts, s, d = vals | |
st, dt = pts[s], pts[d] | |
if len(st) != len(dt): | |
print( | |
"{}: The number of trial start times and digging start times " | |
"doesn't match; {}, {}".format(fname, len(st), len(dt))) | |
continue | |
latency = dt - st | |
if not all(map(lambda x: x >= 0, latency)): | |
raise Exception('Not all latencies are non-negative') | |
data[(fname, day, rat)] = latency | |
logger.close_file() | |
return data | |
if __name__ == '__main__': | |
root = r'C:\kivy-glitter-build\erin' | |
update_files(root) | |
data = get_dig_latency(root) | |
print('Name,Day,Rat,Count,Trial,Latency') | |
for (fname, day, rat), latency in data.items(): | |
for i, val in enumerate(latency): | |
print('{},{},{},{},{},{}'.format(fname, day, rat, len(latency), i + 1, val)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment