Exemplo n.º 1
0
def integrate(fpath, poly):
        
    fnames = os.listdir(fpath)
    fnames = np.sort(fnames)
    
    description = [('video_ts',np.float32), ('x', np.float32), ('y', np.float32)]
    
    for i, fname in enumerate(fnames):
        session_file = os.path.join(fpath,fname)
        with open(session_file) as file:
            
            sid = int(fname[:-4])
            data = np.genfromtxt(file, dtype=description, delimiter=',', names=None)
            
            se_ts = (data['video_ts'] - poly[i][1]) / poly[i][0]
            se_ts = np.around(se_ts)
            se_ts = se_ts.astype(np.int)
            
            data = append_field(data, 'se_ts', se_ts)
            data = append_field(data, 'session_id', sid)
            
            if i == 0:
                naksu_data = data
            else:
                naksu_data = rowstack((naksu_data, data))
                #naksu_data = np.vstack((naksu_data, data))

    return naksu_data
Exemplo n.º 2
0
def integrate_manual(fpath):
    sid_paths = os.listdir(fpath)
    sid_paths = np.sort(sid_paths)

    description = [('video_ts',np.float32), ('x', np.float32), ('y', np.float32), 
                    ('se_ts', np.int), ('session_id', np.int)]
    naksu_data = np.array([], dtype=description)

    for sid in sid_paths:        
        bend_paths = os.listdir(os.path.join(fpath,sid))
        for b in bend_paths:
            print sid, b
            lap_paths = os.listdir(os.path.join(fpath, sid, b))
            for l in lap_paths:
                files = os.listdir(os.path.join(fpath, sid, b, l))
                files = [os.path.join(fpath, sid, b, l, x) for x in files if x.lower().endswith('.mrk')]
                for f in files:
                    with open(f) as file:
                        fdata = np.genfromtxt(file, dtype=[('point', np.int), 
                                   ('x', np.float), ('y', np.float)])
                        if np.size(fdata) == 0: continue
                        fdata = fdata if np.size(fdata['x']) == 1 else fdata[0] 
                        
                        impath = f[:-4] + ".jpg"
                        img = Image.open(impath)
                        imstr = StringIO()
                        pos, size = (3, 24), (80, 24)
                        img = img.crop((pos[0], pos[1], pos[0]+size[0], pos[1]+size[1]))
                        img = ImageOps.invert(img)
                        img.save(imstr, format="PPM")
                        imstr = imstr.getvalue()

                        cmd = "gocr -C 0-9. -"
                        proc = subprocess.Popen(cmd, shell=True,
                            stdin=subprocess.PIPE,
                            stderr=subprocess.PIPE,
                            stdout=subprocess.PIPE)
                        timestamp = proc.communicate(imstr)[0]
                        timestamp = timestamp.strip()
                        timestamp = timestamp.strip('_')
                        try:
                            timestamp = float(timestamp)
                        except ValueError:
                            continue


                        d = np.array((0, fdata['x'], fdata['y'], timestamp, sid), dtype=description)
                        naksu_data = rowstack((naksu_data, d))
    
    naksu_data.sort(order=['session_id', 'se_ts'])                    
    return naksu_data
Exemplo n.º 3
0
def get_merged_data():
    # this is not needed unless TP location is an issue!
    # cdata, h5file = get_cleaned_data(DATA_FILE)
    cdata, h5file = get_uncleaned_data(DATA_FILE)
    naksu_raw = h5file.root.ramppi11.naksu_data.read()
    merged = []

    for d in foreach(cdata, ["session_id", "lap"]):
        naksu_x, naksu_y, lap_d = get_interp_naksu(d, naksu_raw)

        naksu_d = np.rec.fromarrays((naksu_x, naksu_y), names="naksu_x,naksu_y")
        merged.append(colstack(lap_d, naksu_d))

    merged = rowstack(merged)
    return merged