Mercurial Hosting > traffic-intelligence
diff trafficintelligence/processing.py @ 1066:862b55a87e63
work on extracting information
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Mon, 16 Jul 2018 01:14:37 -0400 |
parents | 25db2383e7ae |
children | 092bd9c7deaf |
line wrap: on
line diff
--- a/trafficintelligence/processing.py Mon Jul 16 00:05:17 2018 -0400 +++ b/trafficintelligence/processing.py Mon Jul 16 01:14:37 2018 -0400 @@ -3,7 +3,7 @@ import numpy as np -from trafficintelligence import ml +from trafficintelligence import ml, storage, utils def extractSpeeds(objects, zone): speeds = {} @@ -18,6 +18,26 @@ objectsNotInZone.append(o) return speeds, objectsNotInZone +def extractVideoSequenceSpeeds(dbFilename, siteName, nObjects, startTime, frameRate, minUserDurationSeconds, aggFunctions): + data = [] + d = startTime.date() + t1 = startTime.time() + minUserDuration = minUserDurationSeconds*frameRate + print('Extracting speed from '+dbFilename) + objects = storage.loadTrajectoriesFromSqlite(dbFilename, 'object', nObjects) + for o in objects: + if o.length() > minUserDuration: + row = [siteName, d, utils.framesToTime(o.getFirstInstant(), frameRate, t1), o.getUserType()] + tmp = o.getSpeeds() + for method,func in aggFunctions.items(): + aggSpeeds = frameRate*3.6*func(tmp) + if method == 'centile': + row += aggSpeeds.tolist() + else: + row.append(aggSpeeds) + data.append(row) + return data + def learnAssignMotionPatterns(learn, assign, objects, similarities, minSimilarity, similarityFunc, minClusterSize = 0, optimizeCentroid = False, randomInitialization = False, removePrototypesAfterAssignment = False, initialPrototypes = []): '''Learns motion patterns