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)