changeset 2988:d5c20bd0eb62

Preliminary fixes re robustness against 'repeated pages' (repeatCount)
author Brecht De Man <brecht.deman@bcu.ac.uk>
date Wed, 25 Apr 2018 15:19:46 +0200
parents 1a1d37f2b4e5
children 543f28dea505
files python/score_parser.py python/timeline_view_movement.py
diffstat 2 files changed, 20 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/python/score_parser.py	Mon Apr 23 16:45:05 2018 +0200
+++ b/python/score_parser.py	Wed Apr 25 15:19:46 2018 +0200
@@ -4,6 +4,7 @@
 import os
 import sys
 import csv
+import re
 
 # COMMAND LINE ARGUMENTS
 
@@ -60,9 +61,12 @@
             if storage.get(page_name) == None:
                 storage[page_name] = {'header':[], 'axis':{}} # add to the store
             
+            # strip repetitions
+            page_name_root = re.sub('-repeat-.$', '', page_name)
+
             # Get the axis names
-            pageConfig = root.find('./waet/page/[@id="'+page_name+'"]')
-            for interface in pageConfig.findall('./interface'):    # Get the <interface> noeds
+            pageConfig = root.find('./waet/page/[@id="'+page_name_root+'"]')
+            for interface in pageConfig.findall('./interface'):    # Get the <interface> nodes
                 interfaceName = interface.get("name"); # Get the axis name
                 if interfaceName == None:
                     interfaceName = "default"   # If name not set, make name 'default'
--- a/python/timeline_view_movement.py	Mon Apr 23 16:45:05 2018 +0200
+++ b/python/timeline_view_movement.py	Wed Apr 25 15:19:46 2018 +0200
@@ -5,7 +5,7 @@
 import sys # command line arguments
 import matplotlib.pyplot as plt # plots
 import matplotlib.patches as patches # rectangles
-
+import re # regular expressions
 
 # COMMAND LINE ARGUMENTS
 
@@ -113,11 +113,17 @@
                     if initial_position_temp is None:
                         print("Skipping "+page_name+" from "+subject_id+": does not have initial positions specified.")
                         break
-                    
-                    # get move events, initial and eventual position
-                    initial_position = float(initial_position_temp.text)
-                    move_events = audioelement.findall("./metric/metricresult/[@name='elementTrackerFull']/movement")
-                    final_position = float(audioelement.find("./value").text)
+
+                    # if reference, only display 'listen' events
+                    if audioelement.get('type')=="outside-reference":
+                        initial_position = 1.0
+                        move_events = []
+                        final_position = 1.0
+                    else:
+                        # get move events, initial and eventual position
+                        initial_position = float(initial_position_temp.text)
+                        move_events = audioelement.findall("./metric/metricresult/[@name='elementTrackerFull']/movement")
+                        final_position = float(audioelement.find("./value").text)
                     
                     # get listen events
                     start_times_global = []
@@ -292,7 +298,8 @@
 
                 # Y axis title and tick labels as specified in 'setup'
                 # for corresponding page
-                page_setup = root.find("./waet/page[@id='"+page_name+"']") 
+                page_name_root = re.sub('-repeat-.$', '', page_name)
+                page_setup = root.find("./waet/page[@id='"+page_name_root+"']") 
                     # 'ref' of page is 'id' in page setup
 
                 # Different plots for different axes