import csv import math import random import sage.plot.line import sage.plot.plot3d.shapes2 import sage.rings.polynomial.convolution import scipy.fftpack def difflimit(v1,v2): x1=v1[0] y1=v1[1] z1=v1[2] x2=v2[0] y2=v2[1] z2=v2[2] if abs(x1-x2)>0.1 or abs(y1-y2)>0.1 or abs(z1-z2)>0.1: return True return False def loadvectors_with_timestamp(csvname): global x_ts_vec x_ts_vec=[] global y_ts_vec y_ts_vec=[] global z_ts_vec z_ts_vec=[] reader=csv.reader(open(csvname),delimiter=',') for row in reader: if len(row) >= 4: ts=float(row[0]) x_ts_vec.append((ts,float(row[1]))) y_ts_vec.append((ts,float(row[2]))) z_ts_vec.append((ts,float(row[3]))) print "sample count: ",len(x_ts_vec) def loadphonedata(csvname): global accelvector accelvector=[] global compassvector compassvector=[] global correctedcompassvector correctedcompassvector=[] global simvector simvector=[] global diffvector diffvector=[] global rotated_diffvector rotated_diffvector=[] prev_simul=() prev_diff=() prev_rotated_diff=() reader=csv.reader(open(csvname),delimiter=',') for row in reader: if len(row) >= 5: typeString = row[1] rowlist=(float(row[2]), float(row[3]), float(row[4])) if typeString == 'accel': accelvector.append(rowlist) if typeString == 'compass': compassvector.append(rowlist) if typeString == 'correctedcompass': correctedcompassvector.append(rowlist) if typeString == 'simvec': simvector.append(rowlist) if typeString == 'diffvec': diffvector.append(rowlist) if typeString == 'rotateddiffvec': rotated_diffvector.append(rowlist) def plot2lists(list1,list2): tuple1=zip(range(len(list1)),list1) tuple2=zip(range(len(list2)),list2) p1=sage.plot.line.line(tuple1,rgbcolor=(1,0,0)) p2=sage.plot.line.line(tuple2,rgbcolor=(0,0,1)) return p1+p2 def plot3lists(list1,list2,list3): tuple1=zip(range(len(list1)),list1) tuple2=zip(range(len(list2)),list2) tuple3=zip(range(len(list3)),list3) p1=sage.plot.line.line(tuple1,rgbcolor=(1,0,0)) p2=sage.plot.line.line(tuple2,rgbcolor=(0,0,1)) p3=sage.plot.line.line(tuple3,rgbcolor=(0,1,0)) return p1+p2+p3 def plot_rotated_diffvec(): return sage.plot.plot3d.shapes2.line3d(rotated_diffvector) def process_capture(): loadphonedata("capture.csv")