Skip to content

Commit edff277

Browse files
committed
Adding support for QTM files with header information included.
1 parent 10ebff5 commit edff277

File tree

1 file changed

+35
-16
lines changed

1 file changed

+35
-16
lines changed

mocaptoolbox.py

+35-16
Original file line numberDiff line numberDiff line change
@@ -12,51 +12,70 @@
1212

1313
#---- The mocap data class ----
1414
class data:
15-
15+
1616
timederOrder = 0;
1717
filename = ''
18-
18+
1919
#--- initializer ---
20-
def __init__(self, freq, nMarkers, nFrames, markerNames, data, filename):
20+
def __init__(self, freq, nMarkers, nCameras, nFrames, markerNames, data, filename, timestamp, trajectoryTypes, header):
2121
self.freq = freq
2222
self.nMarkers = nMarkers
23+
self.nCameras = nCameras
2324
self.nFrames = nFrames
2425
self.markerNames = markerNames
2526
self.data = data
2627
self.filename = filename
28+
self.timestamp = timestamp
29+
self.trajectoryTypes = trajectoryTypes
30+
self.header = header
2731

2832
#--- class method to read tsv files ---
2933
@classmethod
3034
def readTsv(cls, filename):
31-
35+
3236
file = open(filename)
33-
37+
3438
#reading tsv header until marker names line
3539
line = 'asdfasdfa'
3640
while line[0:8] != 'MARKER_N':
3741
line = file.readline()
38-
42+
3943
if line[0:8] == 'NO_OF_FR':
40-
nFrames = int(line.split()[1])
44+
nFrames = int(line.split()[1])
45+
if line[0:8] == 'NO_OF_CA':
46+
nCameras = int(line.split()[1])
4147
if line[0:8] == 'NO_OF_MA':
4248
nMarkers = int(line.split()[1])
4349
if line[0:8] == 'FREQUENC':
44-
freq = float(line.split()[1])
45-
46-
#line is now marker names line
50+
freq = float(line.split()[1])
51+
if line[0:8] == 'TIME_STA':
52+
timestamp = str(line.split()[1:4])
53+
54+
#reading marker names
4755
markerNames = line.split()[1:]
48-
56+
57+
#reading additional lines (not in all QTM-TSV files)
58+
line = file.readline()
59+
60+
if line[0:8] == 'TRAJECTO':
61+
trajectoryTypes = str(line.split()[1:])
62+
63+
line = file.readline()
64+
65+
if line[0:5] == 'Frame':
66+
header = line.split("\t")
67+
4968
#the rest is marker data
50-
data = np.genfromtxt(file)
51-
69+
data = np.genfromtxt(file, delimiter='\t', invalid_raise = False)
70+
5271
file.close
53-
54-
return cls(freq, nMarkers, nFrames, markerNames, data, filename)
72+
73+
return cls(freq, nMarkers, nCameras, nFrames, markerNames, data, filename, timestamp, trajectoryTypes, header)
5574

5675

5776
#---- A norm data class ---- ### this class should probably be removed see todo comment at the top..
5877
class normData:
59-
78+
6079
#--- initializer ---
6180
def __init__(self, data):
6281
self.freq = data.freq

0 commit comments

Comments
 (0)