forked from XiangGuo1992/ORCL_VR_EyeTracking
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1.ReadingTxtFile.py
216 lines (181 loc) · 12.9 KB
/
1.ReadingTxtFile.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
# -*- coding: utf-8 -*-
"""
Created on Thu Jan 23 17:03:02 2020
@author: Xiang Guo
"""
import os
import xml.etree.ElementTree as ET
import pandas as pd
import glob
os.chdir('C:\\research\\VR-EyeTracking')
txtfile_list = glob.glob('*.xml')
for file_name in txtfile_list:
tree = ET.parse(file_name)
root = tree.getroot()
GazeData_TimeStamp, Pose_Position, Pose_Rotation, Pose_Valid = ([] for i in range(4))
LeftGazeDirection, LeftGazeDirectionValid, LeftGazeOrigin, LeftGazeOriginValid,\
LeftPupilDiameter, LeftPupilDiameterValid, LeftGazeRayWorldOrigin, LeftGazeRayWorldDirection,\
LeftGazeRayWorldValid = ([] for i in range(9))
RightGazeDirection, RightGazeDirectionValid, RightGazeOrigin, RightGazeOriginValid,\
RightPupilDiameter, RightPupilDiameterValid, RightGazeRayWorldOrigin, RightGazeRayWorldDirection,\
RightGazeRayWorldValid = ([] for i in range(9))
CombinedGazeRayWorldOrigin, CombinedGazeRayWorldDirection, CombinedGazeRayWorldValid = ([] for i in range(3))
DeviceTimeStamp, SystemTimeStamp = [],[]
OriginalLeftGazeDirection, OriginalLeftGazeDirectionValid, OriginalLeftGazeOriginPositionInHMD, OriginalLeftGazeOriginPositionInHMDValid,\
OriginalLeftPupilDiameter, OriginalLeftPupilDiameterValid, OriginalLeftPupilPositionInTrackingArea,\
OriginalLeftPupilPositionInTrackingAreaValid = ([] for i in range(8))
OriginalRightGazeDirection, OriginalRightGazeDirectionValid, OriginalRightGazeOriginPositionInHMD, OriginalRightGazeOriginPositionInHMDValid,\
OriginalRightPupilDiameter, OriginalRightPupilDiameterValid, OriginalRightPupilPositionInTrackingArea,\
OriginalRightPupilPositionInTrackingAreaValid = ([] for i in range(8))
for gazedata in root:
gaze_data_TimeStamp = gazedata.attrib['TimeStamp']
GazeData_TimeStamp.append(gaze_data_TimeStamp)
# pose
pose = gazedata[0]
pose_position = pose.attrib['Position']
pose_rotation = pose.attrib['Rotation']
pose_valid = pose.attrib['Valid']
Pose_Position.append(pose_position)
Pose_Rotation.append(pose_rotation)
Pose_Valid.append(pose_valid)
#left
left = gazedata[1]
left_gaze_direction = left[0].attrib['Value']
left_gaze_direction_valid = left[0].attrib['Valid']
left_gaze_origin = left[1].attrib['Value']
left_gaze_origin_valid = left[1].attrib['Valid']
left_pupil_diameter = left[2].attrib['Value']
left_pupil_diameter_valid = left[2].attrib['Valid']
left_gaze_ray_world_origin = left[3].attrib['Origin']
left_gaze_ray_world_direction = left[3].attrib['Direction']
left_gaze_ray_world_valid = left[3].attrib['Valid']
LeftGazeDirection.append(left_gaze_direction)
LeftGazeDirectionValid.append(left_gaze_direction_valid)
LeftGazeOrigin.append(left_gaze_origin)
LeftGazeOriginValid.append(left_gaze_origin_valid)
LeftPupilDiameter.append(left_pupil_diameter)
LeftPupilDiameterValid.append(left_pupil_diameter_valid)
LeftGazeRayWorldOrigin.append(left_gaze_ray_world_origin)
LeftGazeRayWorldDirection.append(left_gaze_ray_world_direction)
LeftGazeRayWorldValid.append(left_gaze_ray_world_valid)
#right
right = gazedata[2]
right_gaze_direction = right[0].attrib['Value']
right_gaze_direction_valid = right[0].attrib['Valid']
right_gaze_origin = right[1].attrib['Value']
right_gaze_origin_valid = right[1].attrib['Valid']
right_pupil_diameter = right[2].attrib['Value']
right_pupil_diameter_valid = right[2].attrib['Valid']
right_gaze_ray_world_origin = right[3].attrib['Origin']
right_gaze_ray_world_direction = right[3].attrib['Direction']
right_gaze_ray_world_valid = right[3].attrib['Valid']
RightGazeDirection.append(right_gaze_direction)
RightGazeDirectionValid.append(right_gaze_direction_valid)
RightGazeOrigin.append(right_gaze_origin)
RightGazeOriginValid.append(right_gaze_origin_valid)
RightPupilDiameter.append(right_pupil_diameter)
RightPupilDiameterValid.append(right_pupil_diameter_valid)
RightGazeRayWorldOrigin.append(right_gaze_ray_world_origin)
RightGazeRayWorldDirection.append(right_gaze_ray_world_direction)
RightGazeRayWorldValid.append(right_gaze_ray_world_valid)
#combined
combinedgazerayworld = gazedata[3]
combinedgazerayworld_origin = combinedgazerayworld.attrib['Origin']
combinedgazerayworld_direction = combinedgazerayworld.attrib['Direction']
combinedgazerayworld_valid = combinedgazerayworld.attrib['Valid']
CombinedGazeRayWorldOrigin.append(combinedgazerayworld_origin)
CombinedGazeRayWorldDirection.append(combinedgazerayworld_direction)
CombinedGazeRayWorldValid.append(combinedgazerayworld_valid)
if len(gazedata) != 4:
originalgaze = gazedata[4]
originalgaze_device_TimeStamp = originalgaze.attrib['DeviceTimeStamp']
originalgaze_system_TimeStamp = originalgaze.attrib['SystemTimeStamp']
DeviceTimeStamp.append(originalgaze_device_TimeStamp)
SystemTimeStamp.append(originalgaze_system_TimeStamp)
#Original Left
original_left = originalgaze[0]
original_left_gaze_direction = original_left[0].attrib['UnitVector']
original_left_gaze_direction_valid = original_left[0].attrib['Validity']
original_left_gaze_origin_inHMD = original_left[1].attrib['PositionInHMDCoordinates']
original_left_gaze_origin_inHMD_valid = original_left[1].attrib['Validity']
original_left_pupil_diameter = original_left[2].attrib['PupilDiameter']
original_left_pupil_diameter_valid = original_left[2].attrib['Validity']
original_left_gaze_PupilPosition = original_left[3].attrib['PositionInTrackingArea']
original_left_gaze_PupilPosition_valid = original_left[3].attrib['Validity']
OriginalLeftGazeDirection.append(original_left_gaze_direction)
OriginalLeftGazeDirectionValid.append(original_left_gaze_direction_valid)
OriginalLeftGazeOriginPositionInHMD.append(original_left_gaze_origin_inHMD)
OriginalLeftGazeOriginPositionInHMDValid.append(original_left_gaze_origin_inHMD_valid)
OriginalLeftPupilDiameter.append(original_left_pupil_diameter)
OriginalLeftPupilDiameterValid.append(original_left_pupil_diameter_valid)
OriginalLeftPupilPositionInTrackingArea.append(original_left_gaze_PupilPosition)
OriginalLeftPupilPositionInTrackingAreaValid.append(original_left_gaze_PupilPosition_valid)
original_right = originalgaze[1]
original_right_gaze_direction = original_right[0].attrib['UnitVector']
original_right_gaze_direction_valid = original_right[0].attrib['Validity']
original_right_gaze_origin_inHMD = original_right[1].attrib['PositionInHMDCoordinates']
original_right_gaze_origin_inHMD_valid = original_right[1].attrib['Validity']
original_right_pupil_diameter = original_right[2].attrib['PupilDiameter']
original_right_pupil_diameter_valid = original_right[2].attrib['Validity']
original_right_gaze_PupilPosition = original_right[3].attrib['PositionInTrackingArea']
original_right_gaze_PupilPosition_valid = original_right[3].attrib['Validity']
OriginalRightGazeDirection.append(original_right_gaze_direction)
OriginalRightGazeDirectionValid.append(original_right_gaze_direction_valid)
OriginalRightGazeOriginPositionInHMD.append(original_right_gaze_origin_inHMD)
OriginalRightGazeOriginPositionInHMDValid.append(original_right_gaze_origin_inHMD_valid)
OriginalRightPupilDiameter.append(original_right_pupil_diameter)
OriginalRightPupilDiameterValid.append(original_right_pupil_diameter_valid)
OriginalRightPupilPositionInTrackingArea.append(original_right_gaze_PupilPosition)
OriginalRightPupilPositionInTrackingAreaValid.append(original_right_gaze_PupilPosition_valid)
AdjustedTime = [(int(i)-int(GazeData_TimeStamp[0]))/1000000 for i in GazeData_TimeStamp]
if len(gazedata) != 4:
d = {'AdjustedTime':AdjustedTime, 'DeviceTimeStamp': DeviceTimeStamp, 'SystemTimeStamp':SystemTimeStamp,\
#'GazeData_TimeStamp': GazeData_TimeStamp, \
'Pose_Position':Pose_Position, \
'Pose_Rotation': Pose_Rotation, 'Pose_Valid':Pose_Valid, 'LeftGazeDirection':LeftGazeDirection, \
'LeftGazeDirectionValid': LeftGazeDirectionValid, 'LeftGazeOrigin': LeftGazeOrigin, \
'LeftGazeOriginValid': LeftGazeOriginValid, 'LeftPupilDiameter': LeftPupilDiameter, \
'LeftPupilDiameterValid':LeftPupilDiameterValid, 'LeftGazeRayWorldOrigin': LeftGazeRayWorldOrigin, \
'LeftGazeRayWorldDirection': LeftGazeRayWorldDirection, 'LeftGazeRayWorldValid':LeftGazeRayWorldValid,\
'RightGazeDirection':RightGazeDirection, 'RightGazeDirection':RightGazeDirection, \
'RightGazeDirectionValid': RightGazeDirectionValid, 'RightGazeOrigin':RightGazeOrigin, \
'RightGazeOriginValid': RightGazeOriginValid, 'RightPupilDiameter': RightPupilDiameter, \
'RightPupilDiameterValid': RightPupilDiameterValid, 'RightGazeRayWorldOrigin':RightGazeRayWorldOrigin,\
'RightGazeRayWorldDirection': RightGazeRayWorldDirection, 'RightGazeRayWorldValid':RightGazeRayWorldValid,\
'CombinedGazeRayWorldOrigin': CombinedGazeRayWorldOrigin, 'CombinedGazeRayWorldDirection': CombinedGazeRayWorldDirection, \
'CombinedGazeRayWorldValid': CombinedGazeRayWorldValid, 'OriginalLeftGazeDirection': OriginalLeftGazeDirection, \
'OriginalLeftGazeDirectionValid': OriginalLeftGazeDirectionValid, \
'OriginalLeftGazeOriginPositionInHMD': OriginalLeftGazeOriginPositionInHMD,\
'OriginalLeftGazeOriginPositionInHMDValid': OriginalLeftGazeOriginPositionInHMDValid,\
'OriginalLeftPupilDiameter':OriginalLeftPupilDiameter, \
'OriginalLeftPupilDiameterValid': OriginalLeftPupilDiameterValid, \
'OriginalLeftPupilPositionInTrackingArea':OriginalLeftPupilPositionInTrackingArea,\
'OriginalLeftPupilPositionInTrackingAreaValid':OriginalLeftPupilPositionInTrackingAreaValid,\
'OriginalRightGazeDirection': OriginalRightGazeDirection, \
'OriginalRightGazeDirectionValid': OriginalRightGazeDirectionValid, \
'OriginalRightGazeOriginPositionInHMD': OriginalRightGazeOriginPositionInHMD, \
'OriginalRightGazeOriginPositionInHMDValid':OriginalRightGazeOriginPositionInHMDValid,\
'OriginalRightPupilDiameter':OriginalRightPupilDiameter, \
'OriginalRightPupilDiameterValid':OriginalRightPupilDiameterValid, \
'OriginalRightPupilPositionInTrackingArea': OriginalRightPupilPositionInTrackingArea,\
'OriginalRightPupilPositionInTrackingAreaValid': OriginalRightPupilPositionInTrackingAreaValid
}
else:
d = {'AdjustedTime':AdjustedTime, \
'GazeData_TimeStamp': GazeData_TimeStamp, \
'Pose_Position':Pose_Position, \
'Pose_Rotation': Pose_Rotation, 'Pose_Valid':Pose_Valid, 'LeftGazeDirection':LeftGazeDirection, \
'LeftGazeDirectionValid': LeftGazeDirectionValid, 'LeftGazeOrigin': LeftGazeOrigin, \
'LeftGazeOriginValid': LeftGazeOriginValid, 'LeftPupilDiameter': LeftPupilDiameter, \
'LeftPupilDiameterValid':LeftPupilDiameterValid, 'LeftGazeRayWorldOrigin': LeftGazeRayWorldOrigin, \
'LeftGazeRayWorldDirection': LeftGazeRayWorldDirection, 'LeftGazeRayWorldValid':LeftGazeRayWorldValid,\
'RightGazeDirection':RightGazeDirection, 'RightGazeDirection':RightGazeDirection, \
'RightGazeDirectionValid': RightGazeDirectionValid, 'RightGazeOrigin':RightGazeOrigin, \
'RightGazeOriginValid': RightGazeOriginValid, 'RightPupilDiameter': RightPupilDiameter, \
'RightPupilDiameterValid': RightPupilDiameterValid, 'RightGazeRayWorldOrigin':RightGazeRayWorldOrigin,\
'RightGazeRayWorldDirection': RightGazeRayWorldDirection, 'RightGazeRayWorldValid':RightGazeRayWorldValid,\
'CombinedGazeRayWorldOrigin': CombinedGazeRayWorldOrigin, 'CombinedGazeRayWorldDirection': CombinedGazeRayWorldDirection, \
'CombinedGazeRayWorldValid': CombinedGazeRayWorldValid
}
df = pd.DataFrame(d)
df.to_csv(file_name.replace('.xml','.csv'),index = False)