#! python3 # read_trc.py import pandas as pd from functools import reduce # sample file, change for destination filesystem f = "/Users/lucasmckay/Desktop/fog-sample/trc/FOG-006/offmed-TUG-cognitive1.trc" def read_trc(f): # set number of columns to read, default is 60 x/y/z coordinates. nVar = 60 nCol = 2+3*nVar # creates a dataFrame with names like X1, Y36, etc. numericVals = pd.read_csv(f,sep='\t',skiprows=5) # read the row of names; the first two are always frame number and time in seconds. # data are collected at 120 Hz by default. varNames = [v for v in pd.read_csv(f,sep='\t',skiprows=3,nrows=1).columns if not v.startswith("Unnamed")][2:] # add _X, _Y, _Z to variable names varNamesXYZ = [[f"{v}_X",f"{v}_Y",f"{v}_Z"] for v in varNames] # add constant columns and flatten varNamesFlat = ["Frame","Seconds"] + reduce(lambda a,b:a+b, varNamesXYZ) # get rid of extraneous columns varNamesFlat = varNamesFlat[:nCol] numericVals = numericVals.iloc[:,:nCol] # set names numericVals.columns = varNamesFlat return numericVals