Mercurial Hosting > traffic-intelligence
changeset 143:436b87d4b992
wrote the code to load positions from sqlite database
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Wed, 24 Aug 2011 19:43:44 -0400 |
parents | a3532db00c28 |
children | b32947b002da |
files | python/storage.py |
diffstat | 1 files changed, 35 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/python/storage.py Wed Aug 24 02:12:06 2011 -0400 +++ b/python/storage.py Wed Aug 24 19:43:44 2011 -0400 @@ -11,7 +11,42 @@ 'car':2, 'truck':3} +def loadSqlite(filename, objectNumbers = -1): + '''Loads nObjects or the indices in objectNumbers from the database + TODO: load velocities''' + import sqlite3 + connection = sqlite3.connect(filename) # add test if it open + cursor = connection.cursor() + + if type(objectNumbers) == int: + if objectNumbers == -1: + cursor.execute('SELECT * from positions order by trajectory_id, frame_number') + else: + cursor.execute('SELECT * from positions where trajectory_id between 0 and {0} order by trajectory_id, frame_number'.format(objectNumbers)) + elif type(objectNumbers) == list: + cursor.execute('SELECT * from positions where trajectory_id in (' + +', '.join([str(n) for n in objectNumbers]) + +') order by trajectory_id, frame_number') + + objId = -1 + obj = None + objects = [] + for row in cursor: + if row[0] != objId: + objId = row[0] + if obj: + objects.append(obj) + obj = moving.MovingObject(row[0], timeInterval = moving.TimeInterval(row[1], row[1]), positions = moving.Trajectory([[row[2]],[row[3]]])) + else: + obj.timeInterval.last = row[1] + obj.positions.addPositionXY(row[2],row[3]) + + if obj: + objects.append(obj) + + connection.close() + return objects def loadNgsimFile(filename, nObjects = -1, sequenceNum = -1): '''Reads data from the trajectory data provided by NGSIM project