changeset 42:1a2ac2d4f53a

added loading of the rest of the data for objects
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Thu, 01 Jul 2010 10:44:32 -0400
parents eb78c6edc0c8
children 6d11d9e7ad4e
files python/tests/utils.txt python/ubc_utils.py python/utils.py
diffstat 3 files changed, 34 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/python/tests/utils.txt	Fri May 28 20:25:45 2010 -0400
+++ b/python/tests/utils.txt	Thu Jul 01 10:44:32 2010 -0400
@@ -26,3 +26,16 @@
 'test-adfasdf.asdfa'
 >>> removeExtension('test-adfasdf')
 'test-adfasdf'
+
+>>> values = line2Ints('1 2 3 5 6')
+>>> values[0]
+1
+>>> values[-1]
+6
+>>> values = line2Floats('1.3 2.45 7.158e+01 5 6')
+>>> values[0]
+1.3
+>>> values[2] #doctest: +ELLIPSIS
+71.5...
+>>> values[-1]
+6.0
--- a/python/ubc_utils.py	Fri May 28 20:25:45 2010 -0400
+++ b/python/ubc_utils.py	Thu Jul 01 10:44:32 2010 -0400
@@ -26,16 +26,27 @@
 
     objects = []
     objNum = 0
+    isObjectFile = filename.endswith('objects.txt');
     lines = getLines(file)
     while (lines != []) and ((nObjects<0) or (objNum<nObjects)):
         l = lines[0].split(' ')
         parsedLine = [int(n) for n in l[:4]]
         obj = MovingObject(num = objNum, timeInterval = TimeInterval(parsedLine[1],parsedLine[2]))
-        add = True
-        if (len(lines) >= 3):
+        #add = True
+        if len(lines) >= 3:
             obj.positions = Trajectory(lines[1], lines[2])
-            if (len(lines) >= 5):
+            if len(lines) >= 5:
                 obj.velocities = Trajectory(lines[3], lines[4])
+                if (isObjectFile):
+                    obj.userType = parsedLine[3]
+                    obj.nObjects = float(l[4])
+                    obj.featureNumbers = [int(n) for n in l[5:]]
+                    
+                    # load contour data if available
+                    if len(lines) >= 6:
+                        obj.contourType = utils.line2Floats(lines[6])
+                        obj.contourOrigins = Trajectory(lines[7], lines[8])
+                        obj.contourSizes = Trajectory(lines[9], lines[10])
 
         if len(lines) != 2:
             objects.append(obj)
--- a/python/utils.py	Fri May 28 20:25:45 2010 -0400
+++ b/python/utils.py	Thu Jul 01 10:44:32 2010 -0400
@@ -176,6 +176,13 @@
     tmp = array(poly.exterior)
     plot(tmp[:,0], tmp[:,1], options)
 
+def line2Floats(l, separator=' '):
+    '''Returns the list of floats corresponding to the string'''
+    return [float(x) for x in l.split(separator)]
+
+def line2Ints(l, separator=' '):
+    '''Returns the list of ints corresponding to the string'''
+    return [int(x) for x in l.split(separator)]
 
 #########################
 # running tests