Mercurial Hosting > traffic-intelligence
changeset 47:e27598865af3
modified loadtrajectories to load objects and prototypes
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Thu, 23 Sep 2010 17:12:09 -0400 |
parents | b5d007612e16 |
children | 8aed225f71d8 |
files | python/ubc_utils.py |
diffstat | 1 files changed, 36 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/python/ubc_utils.py Fri Aug 06 19:45:47 2010 -0400 +++ b/python/ubc_utils.py Thu Sep 23 17:12:09 2010 -0400 @@ -8,6 +8,14 @@ delimiterChar = '%'; +def getFileType(s): + filePrefix = utils.removeExtension(s) + i = filePrefix.rfind('-') + if i>0: + return filePrefix[i+1:] + else: + return '' + def getLines(f): '''Gets a complete entry (all the lines) in between delimiterChar.''' dataStrings = [] @@ -17,6 +25,29 @@ s = utils.readline(f) return dataStrings +def saveTrajectorieUserTypes(inFilename, outFilename, objects): + '''The program saves the objects, + by just copying the corresponding trajectory and velocity data + from the inFilename, and saving the characteristics in objects (first line) + into outFilename''' + infile = utils.openCheck(inFilename) + outfile = utils.openCheck(outFilename) + + if (not infile) | (not outfile): + return + + lines = getLines(file) + objNum = 0 + while lines != []: + i = 0 + while (i<len(objects)) and (objects[i].num != objNum): + i+=1 + if i<len(objects): + l = lines[0].split(' ') + outfile.write() + # next object + objNum += 1 + def loadTrajectories(filename, nObjects = -1): '''Loads trajectories''' @@ -26,7 +57,7 @@ objects = [] objNum = 0 - isObjectFile = filename.endswith('objects.txt'); + objectType = getFileType(filename) lines = getLines(file) while (lines != []) and ((nObjects<0) or (objNum<nObjects)): l = lines[0].split(' ') @@ -37,7 +68,7 @@ obj.positions = Trajectory.load(lines[1], lines[2]) if len(lines) >= 5: obj.velocities = Trajectory.load(lines[3], lines[4]) - if (isObjectFile): + if objectType == 'objects': obj.userType = parsedLine[3] obj.nObjects = float(l[4]) obj.featureNumbers = [int(n) for n in l[5:]] @@ -47,6 +78,9 @@ obj.contourType = utils.line2Floats(lines[6]) obj.contourOrigins = Trajectory.load(lines[7], lines[8]) obj.contourSizes = Trajectory.load(lines[9], lines[10]) + elif objectType == 'prototypes': + obj.userType = parsedLine[3] + obj.nMatchings = int(l[4]) if len(lines) != 2: objects.append(obj)