Add motor tracking plotting in python

This commit is contained in:
Douglas Clowes
2013-08-08 11:19:41 +10:00
parent 4069e71748
commit de6410f089

View File

@@ -0,0 +1,60 @@
#!/usr/bin/env python
# vim: ts=8 sts=4 sw=4 expandtab autoindent smartindent
# plotting for the motor tracking CSV file
# Author Douglas Clowes 2013 (dcl@ansto.gov.au)
#
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
def make_delta(q):
delta_q = np.arange(len(q), dtype=np.float)
delta_q[0] = 0.0
for i in range(1, len(q)):
delta_q[i] = q[i] - q[i - 1]
return delta_q
if False:
data = np.genfromtxt("s2_tracking.csv", delimiter=",", skip_header=1,
names=['time', 'position', 'steps', 'counts'])
else:
data = np.loadtxt("s2_tracking.csv", delimiter=",", skiprows=1, unpack=True)
t, p, s, c = data
if False:
print dir(data)
#print data.T
print len(data)
print len(t)
delta_t = make_delta(t)
delta_p = make_delta(p)
delta_s = make_delta(s)
delta_c = make_delta(c)
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.set_title("Motion Tracking")
ax1.set_xlabel('position')
ax1.set_ylabel('Steps/Count')
delta_spc = np.arange(len(t), dtype=np.float)
for i in range(len(delta_spc)):
if delta_c[i] == 0:
delta_spc[i] = 0
else:
delta_spc[i] = delta_s[i] / delta_c[i]
if False:
print len(t), len(delta_s), len(delta_spc)
print delta_spc
for i in range(len(t)):
print "%4d: %18.6f %18.6f %18.6f %18.6f %18.6f" % (i, t[i], delta_t[i], delta_s[i], delta_c[i], delta_spc[i])
ax1.plot(p, delta_spc, c='r', label='delta steps per count')
ax1.plot(p, c / s / 70, c='b', label='counts / steps')
leg = ax1.legend()
plt.show()