changeset 986:3be8aaa47651

work in progress
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Tue, 06 Mar 2018 23:54:10 -0500
parents 668a85c963c3
children f026ce2af637
files scripts/process.py
diffstat 1 files changed, 21 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/scripts/process.py	Tue Mar 06 22:44:33 2018 -0500
+++ b/scripts/process.py	Tue Mar 06 23:54:10 2018 -0500
@@ -3,6 +3,10 @@
 import sys, argparse
 from pathlib2 import Path
 
+import matplotlib
+matplotlib.use('Agg')
+import matplotlib.pyplot as plt
+
 import storage, events, prediction
 from metadata import *
 
@@ -36,7 +40,7 @@
 
 if args.process == 'interaction':
     # safety analysis TODO make function in safety analysis script
-    predictionParameters = prediction.CVExactPredictionParameters()
+    predictionParameters = prediction.CVDirectPredictionParameters()#prediction.CVExactPredictionParameters()
     for videoId in args.videoIds:
         vs = session.query(VideoSequence).get(videoId)
         print('Processing '+vs.getDatabaseFilename())
@@ -59,18 +63,29 @@
 
 if args.analyze == 'interaction':
     indicatorIds = [2,5,7,10]
+    conversionFactors = {2: 1., 5: 30.*3.6, 7:1./30, 10:1./30}
     indicators = {}
     interactions = {}
     for videoId in args.videoIds:
         vs = session.query(VideoSequence).get(videoId)
         if not vs.cameraView.siteIdx in interactions:
             interactions[vs.cameraView.siteIdx] = []
+            indicators[vs.cameraView.siteIdx] = {}
             for i in indicatorIds:
-                indicators[events.Interaction.indicatorNames[i]][vs.cameraView.siteIdx] = []
-        interactions[vs.cameraView.siteIdx].append(storage.loadInteractionsFromSqlite(str(parentDir/vs.getDatabaseFilename())))
-        print(vs.getDatabaseFilename(), len(interactions))
-        for inter in interactions[videoId]:
+                indicators[vs.cameraView.siteIdx][i] = []
+        interactions[vs.cameraView.siteIdx] += storage.loadInteractionsFromSqlite(str(parentDir/vs.getDatabaseFilename()))
+        print(vs.getDatabaseFilename(), len(interactions[vs.cameraView.siteIdx]))
+        for inter in interactions[vs.cameraView.siteIdx]:
             for i in indicatorIds:
                 indic = inter.getIndicator(events.Interaction.indicatorNames[i])
                 if indic is not None:
-                    indicators[events.Interaction.indicatorNames[i]][vs.cameraView.siteIdx].append(indic.getMostSevereValue())
+                    indicators[vs.cameraView.siteIdx][i].append(indic.getMostSevereValue()*conversionFactors[i])
+
+    for i in indicatorIds:
+        tmp = [indicators[siteId][i] for siteId in indicators]
+        plt.ioff()
+        plt.figure()
+        plt.boxplot(tmp, labels = [session.query(Site).get(siteId).name for siteId in indicators])
+        plt.title(events.Interaction.indicatorNames[i])
+        plt.savefig(events.Interaction.indicatorNames[i]+'.png')
+        plt.close()