Mercurial Hosting > traffic-intelligence
changeset 72:575340e6fce3
corrected most of the method to load NGSIM data (adapted to the current MovingObject class
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Fri, 14 Jan 2011 19:49:20 -0500 |
parents | 45e958ccd9bd |
children | 930a6282c9a9 |
files | python/storage.py |
diffstat | 1 files changed, 28 insertions(+), 29 deletions(-) [+] |
line wrap: on
line diff
--- a/python/storage.py Fri Jan 14 19:34:00 2011 -0500 +++ b/python/storage.py Fri Jan 14 19:49:20 2011 -0500 @@ -25,18 +25,18 @@ def createObject(numbers): firstFrameNum = int(numbers[1]) - time = moving.TimeInterval(firstFrameNum, firstFrameNum+int(numbers[2])-1) - obj = moving.MovingObject(num = int(numbers[0]), timeInterval = time) # do the geometry and usertype -# firstFrameNum = int(numbers[1]) -# lastFrameNum = firstFrameNum+int(numbers[2])-1 -# f = Feature(sequenceNum, firstFrameNum, lastFrameNum, int(numbers[0])) -# f.sizeLength = float(numbers[8]) -# f.sizeWidth = float(numbers[9]) -# f.userType = int(numbers[10]) -# f.positions = [[float(numbers[6])],[float(numbers[7])]] -# f.speeds = [float(numbers[11])] + firstFrameNum = int(numbers[1]) + lastFrameNum = firstFrameNum+int(numbers[2])-1 + #time = moving.TimeInterval(firstFrameNum, firstFrameNum+int(numbers[2])-1) + obj = moving.MovingObject(num = int(numbers[0]), + timeInterval = moving.TimeInterval(firstFrameNum, lastFrameNum), + positions = moving.Trajectory([[float(numbers[6])],[float(numbers[7])]]), + userType = int(numbers[10])) + obj.curvilinearPositions = moving.Trajectory([[float(numbers[5])],[float(numbers[4])]]) # X is the longitudinal coordinate + obj.speeds = [float(numbers[11])] + obj.size = [float(numbers[8]), float(numbers[9])] # 8 lengh, 9 width # TODO: temporary, should use a geometry object return obj numbers = input.readline().strip().split() @@ -47,25 +47,24 @@ numbers = line.strip().split() if obj.num != int(numbers[0]): # check and adapt the length to deal with issues in NGSIM data - #objLength = f.length() - #if (objLength != len(f.positions[0])): - # print 'length pb with object %s (%d,%d)' % (f.num,objLength,len(f.positions[0])) - # f.lastFrameNum = f.getFirstFrameNum()+len(f.positions[0])-1 - #f.velocities = utils.computeVelocities(f.positions) # compare norm to speeds ? + if (obj.length() != obj.positions.length()): + print 'length pb with object %s (%d,%d)' % (obj.num,obj.length(),obj.positions.length()) + obj.last = obj.getFirstInstant()+obj.positions.length()-1 + #obj.velocities = utils.computeVelocities(f.positions) # compare norm to speeds ? objects.append(obj) if (nObjects>0) and (len(objects)>=nObjects): break obj = createObject(numbers) else: print(numbers[6]) -# f.positions[0] += [float(numbers[6])] -# f.positions[1] += [float(numbers[7])] -# f.speeds += [float(numbers[11])] + obj.positions.addPositionXY(float(numbers[6]), float(numbers[7])) + obj.curvilinearPositions.addPositionXY(float(numbers[5]), float(numbers[4])) + obj.speeds.append(float(numbers[11])) -# if (f.sizeWidth != float(numbers[9])): -# print 'changed width obj %d' % (f.num) -# if (f.sizeLength != float(numbers[8])): -# print 'changed length obj %d' % (f.num) + if (obj.size[0] != float(numbers[8])): + print 'changed length obj %d' % (f.num) + if (obj.size[1] != float(numbers[9])): + print 'changed width obj %d' % (f.num) input.close() return objects @@ -91,10 +90,10 @@ -if __name__ == "__main__": - import doctest - import unittest - suite = doctest.DocFileSuite('tests/ubc_utils.txt') - unittest.TextTestRunner().run(suite) - #doctest.testmod() - #doctest.testfile("example.txt") +# if __name__ == "__main__": +# import doctest +# import unittest +# suite = doctest.DocFileSuite('tests/ubc_utils.txt') +# unittest.TextTestRunner().run(suite) +# #doctest.testmod() +# #doctest.testfile("example.txt")