comparison python/objectsmoothing.py @ 650:d74e8c175d6b

minor cleaning
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Thu, 16 Apr 2015 16:13:05 +0200
parents e54751e71d61
children dc70d9e711f5
comparison
equal deleted inserted replaced
649:df9ddeaee4a6 650:d74e8c175d6b
1 import storage, moving, utils 1 import storage, moving, utils
2 from math import * #atan2,asin,degrees,sin,cos,pi 2 from math import atan2, degrees, sin, cos, pi
3 import numpy as np 3 from numpy import median
4 4
5 import matplotlib.pyplot as plt 5 import matplotlib.pyplot as plt
6 6
7 def findNearest(feat, featureSet,t,reverse=True): 7 def findNearest(feat, featureSet,t,reverse=True):
8 dist={} 8 dist={}
65 bearing2 = (90 - angle2) % 360 65 bearing2 = (90 - angle2) % 360
66 dist= moving.Point.distanceNorm2(p1, p2) 66 dist= moving.Point.distanceNorm2(p1, p2)
67 return [dist,bearing1,bearing2,bearing2-bearing1] 67 return [dist,bearing1,bearing2,bearing2-bearing1]
68 68
69 #Quantitative analysis "CSJ" functions 69 #Quantitative analysis "CSJ" functions
70 def computeVelocities(obj,smoothing=True,halfWidth=3): #compute velocities from positions 70 def computeVelocities(obj, smoothing=True, halfWidth=3): #compute velocities from positions
71 velocities={} 71 velocities={}
72 for i in list(obj.timeInterval)[:-1]: 72 for i in list(obj.timeInterval)[:-1]:
73 p1= obj.getPositionAtInstant(i) 73 p1= obj.getPositionAtInstant(i)
74 p2= obj.getPositionAtInstant(i+1) 74 p2= obj.getPositionAtInstant(i+1)
75 velocities[i]=p2-p1 75 velocities[i]=p2-p1
130 p1= feature.getPositionAtInstant(t-1) 130 p1= feature.getPositionAtInstant(t-1)
131 p3= feature.getPositionAtInstant(t) 131 p3= feature.getPositionAtInstant(t)
132 bearing[t]= getBearing(p1,p2,p3)[1] 132 bearing[t]= getBearing(p1,p2,p3)[1]
133 results.append(getBearing(p1,p2,p3)) 133 results.append(getBearing(p1,p2,p3))
134 134
135 medianResults=np.median(results,0) 135 medianResults=median(results,0)
136 dist= medianResults[0] 136 dist= medianResults[0]
137 angle= medianResults[3] 137 angle= medianResults[3]
138 138
139 for i in sorted(bearing.keys()): 139 for i in sorted(bearing.keys()):
140 bearing[i]= bearing[i]+angle 140 bearing[i]= bearing[i]+angle
202 if i.existsAtInstant(t): 202 if i.existsAtInstant(t):
203 p1= i.getPositionAtInstant(t) 203 p1= i.getPositionAtInstant(t)
204 xCoord.append(p1.x) 204 xCoord.append(p1.x)
205 yCoord.append(p1.y) 205 yCoord.append(p1.y)
206 if xCoord != []: 206 if xCoord != []:
207 tmp= moving.Point(np.median(xCoord),np.median(yCoord)) 207 tmp= moving.Point(median(xCoord), median(yCoord))
208 newInterval.append(t) 208 newInterval.append(t)
209 newTranslated.addPosition(tmp) 209 newTranslated.addPosition(tmp)
210 210
211 newObj= moving.MovingObject(newNum, timeInterval = moving.TimeInterval(min(newInterval),max(newInterval)),positions=newTranslated) 211 newObj= moving.MovingObject(newNum, timeInterval = moving.TimeInterval(min(newInterval),max(newInterval)),positions=newTranslated)
212 212