Mercurial Hosting > traffic-intelligence
changeset 1040:20799ac9524e
integrating code of learn-motion-patterns in storage.py
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Wed, 04 Jul 2018 15:37:04 -0400 |
parents | 5621e4ad2428 |
children | fc7c0f38e8a6 |
files | trafficintelligence/storage.py |
diffstat | 1 files changed, 14 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/trafficintelligence/storage.py Wed Jul 04 12:24:37 2018 -0400 +++ b/trafficintelligence/storage.py Wed Jul 04 15:37:04 2018 -0400 @@ -240,15 +240,24 @@ userTypes[row[0]] = row[1] return userTypes -def loadTrajectoriesFromSqlite(filename, trajectoryType, objectNumbers = None, withFeatures = False, timeStep = None): +def loadTrajectoriesFromSqlite(filename, trajectoryType, objectNumbers = None, withFeatures = False, timeStep = None, maxNObjectFeatures = 1): '''Loads the trajectories (in the general sense, - either features, objects (feature groups) or bounding box series) + either features, objects (feature groups), longest features per object, or bounding box series) + The number loaded is either the first objectNumbers objects, or the indices in objectNumbers from the database''' objects = [] with sqlite3.connect(filename) as connection: - objects = loadTrajectoriesFromTable(connection, 'positions', trajectoryType, objectNumbers, timeStep) - objectVelocities = loadTrajectoriesFromTable(connection, 'velocities', trajectoryType, objectNumbers, timeStep) + if trajectoryType == 'objectfeature': + objectFeatureNumbers = loadObjectFeatureFrameNumbers(filename, objectNumbers) + featureNumbers = [] + for numbers in objectFeatureNumbers.values(): + featureNumbers += numbers[:min(len(numbers), maxNObjectFeatures)] + objects = loadTrajectoriesFromTable(connection, 'positions', 'feature', featureNumbers, timeStep) + objectVelocities = loadTrajectoriesFromTable(connection, 'velocities', 'feature', featureNumbers, timeStep) + else: + objects = loadTrajectoriesFromTable(connection, 'positions', trajectoryType, objectNumbers, timeStep) + objectVelocities = loadTrajectoriesFromTable(connection, 'velocities', trajectoryType, objectNumbers, timeStep) if len(objectVelocities) > 0: for o,v in zip(objects, objectVelocities): @@ -419,7 +428,7 @@ with sqlite3.connect(outputFilename) as connection: try: - saveTrajectoriesToTable(connection, objects, trajectoryType, None) + saveTrajectoriesToTable(connection, objects, trajectoryType) except sqlite3.OperationalError as error: printDBError(error)