diff options
Diffstat (limited to 'src/argaze/utils/tobii_segment_gaze_metrics_export.py')
-rw-r--r-- | src/argaze/utils/tobii_segment_gaze_metrics_export.py | 44 |
1 files changed, 2 insertions, 42 deletions
diff --git a/src/argaze/utils/tobii_segment_gaze_metrics_export.py b/src/argaze/utils/tobii_segment_gaze_metrics_export.py index a138087..1e530e0 100644 --- a/src/argaze/utils/tobii_segment_gaze_metrics_export.py +++ b/src/argaze/utils/tobii_segment_gaze_metrics_export.py @@ -60,7 +60,6 @@ def main(): fixations_json_filepath = f'{destination_path}/gaze_fixations.json' saccades_json_filepath = f'{destination_path}/gaze_saccades.json' - movements_json_filepath = f'{destination_path}/gaze_movements.json' gaze_status_json_filepath = f'{destination_path}/gaze_status.json' gaze_metrics_period_filepath = f'{destination_path}/gaze_metrics_{int(args.period)}s.csv' @@ -72,13 +71,11 @@ def main(): # Load gaze movements ts_fixations = GazeFeatures.TimeStampedGazeMovements.from_json(fixations_json_filepath) ts_saccades = GazeFeatures.TimeStampedGazeMovements.from_json(saccades_json_filepath) - ts_movements = GazeFeatures.TimeStampedGazeMovements.from_json(movements_json_filepath) ts_status = GazeFeatures.TimeStampedGazeStatus.from_json(gaze_status_json_filepath) print(f'\nLoaded gaze movements count:') print(f'\tFixations: {len(ts_fixations)}') print(f'\tSaccades: {len(ts_saccades)}') - print(f'\tMovements: {len(ts_movements)}') # Load tobii segment tobii_segment = TobiiEntities.TobiiSegment(args.segment_path, int(args.time_range[0] * 1e6), int(args.time_range[1] * 1e6) if args.time_range[1] != None else None) @@ -98,7 +95,6 @@ def main(): positions_exist = len(ts_gaze_positions) > 0 fixations_exist = len(ts_fixations) > 0 saccades_exist = len(ts_saccades) > 0 - movements_exist = len(ts_movements) > 0 status_exist = len(ts_status) > 0 if positions_exist: @@ -131,17 +127,6 @@ def main(): # Add 'end' column saccades_dataframe['end'] = saccades_dataframe.index + saccades_dataframe.duration - if movements_exist: - - # Create pandas dataframe - movements_dataframe = ts_movements.as_dataframe() - - # Reset time range offset - movements_dataframe.index = movements_dataframe.index - movements_dataframe.index[0] - - # Add 'end' column - movements_dataframe['end'] = movements_dataframe.index + movements_dataframe.duration - # Define a function to export metrics for a period of time def metrics_for_period(period_start_ts, period_end_ts): @@ -220,35 +205,10 @@ def main(): period_metrics['saccades_duration_ratio (%)'] = saccades_duration_sum / period_duration * 100 period_metrics['saccades_distance_mean (px)'] = saccades_period_dataframe.distance.mean() - # Default movements movement analysis - movements_duration_sum = 0.0 - period_metrics['movements_number'] = 0 - period_metrics['movements_duration_mean (ms)'] = None - period_metrics['movements_duration_sum (ms)'] = None - period_metrics['movements_duration_ratio (%)'] = None - period_metrics['movements_distance_mean (px)'] = None - - # Analyse movements movements - if movements_exist: - - # Select period - movements_period_dataframe = movements_dataframe[(movements_dataframe.index >= period_start_ts) & (movements_dataframe.end < period_end_ts)] - - if not movements_period_dataframe.empty: - - #print('\n* Unknown movements:\n', movements_period_dataframe) - - movements_duration_sum = movements_period_dataframe.duration.sum() - period_metrics['movements_number'] = movements_period_dataframe.shape[0] - period_metrics['movements_duration_mean (ms)'] = movements_period_dataframe.duration.mean() * 1e-3 - period_metrics['movements_duration_sum (ms)'] = movements_duration_sum * 1e-3 - period_metrics['movements_duration_ratio (%)'] = movements_duration_sum / period_duration * 100 - period_metrics['movements_distance_mean (px)'] = movements_period_dataframe.distance.mean() - # Analyse exploit/explore - if saccades_duration_sum != 0.0 or movements_duration_sum != 0.0: + if saccades_duration_sum != 0.0: - period_metrics['exploit_explore_ratio'] = fixations_duration_sum / (saccades_duration_sum + movements_duration_sum) + period_metrics['exploit_explore_ratio'] = fixations_duration_sum / saccades_duration_sum else: |