diff --git a/site_ansto/instrument/TEST_SICS/tests/plot-tracking.py b/site_ansto/instrument/TEST_SICS/tests/plot-tracking.py new file mode 100755 index 00000000..25aa866b --- /dev/null +++ b/site_ansto/instrument/TEST_SICS/tests/plot-tracking.py @@ -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()