From 1ca28396352fd122bcaa1128723dae9553df7a70 Mon Sep 17 00:00:00 2001 From: Théo de la Hogue Date: Wed, 12 Jul 2023 14:25:57 +0200 Subject: Rewriting basic metrics plugin. --- src/argaze/GazeAnalysis/Basic.py | 48 +++++++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/src/argaze/GazeAnalysis/Basic.py b/src/argaze/GazeAnalysis/Basic.py index d6a8ca1..03b2878 100644 --- a/src/argaze/GazeAnalysis/Basic.py +++ b/src/argaze/GazeAnalysis/Basic.py @@ -22,17 +22,31 @@ class ScanPathAnalyzer(GazeFeatures.ScanPathAnalyzer): super().__init__() - self.__length = 0 + self.__steps_number = 0 + self.__step_fixation_durations_average = 0 def analyze(self, scan_path: GazeFeatures.ScanPathType): """Analyze scan path.""" - self.__length = len(scan_path) + self.__steps_number = len(scan_path) + + sum_fixation_durations = 0 + + for scan_step in scan_path: + + sum_fixation_durations += scan_step.fixation_duration + + self.__step_fixation_durations_average = sum_fixation_durations / self.__steps_number @property - def length(self) -> float: + def steps_number(self) -> float: - return self.__length + return self.__steps_number + + @property + def step_fixation_durations_average(self) -> float: + + return self.__step_fixation_durations_average @dataclass class AOIScanPathAnalyzer(GazeFeatures.AOIScanPathAnalyzer): @@ -42,14 +56,28 @@ class AOIScanPathAnalyzer(GazeFeatures.AOIScanPathAnalyzer): super().__init__() - self.__length = 0 + self.__steps_number = 0 + self.__step_fixation_durations_average = 0 - def analyze(self, scan_path: GazeFeatures.ScanPathType): - """Analyze scan path.""" + def analyze(self, aoi_scan_path: GazeFeatures.ScanPathType): + """Analyze aoi scan path.""" + + self.__steps_number = len(aoi_scan_path) + + sum_fixation_durations = 0 + + for aoi_scan_step in aoi_scan_path: + + sum_fixation_durations += aoi_scan_step.fixation_duration + + self.__step_fixation_durations_average = sum_fixation_durations / self.__steps_number + + @property + def steps_number(self) -> float: - self.__length = len(scan_path) + return self.__steps_number @property - def length(self) -> float: + def step_fixation_durations_average(self) -> float: - return self.__length \ No newline at end of file + return self.__step_fixation_durations_average \ No newline at end of file -- cgit v1.1