diff --git a/site_ansto/instrument/TEST_SICS/tests/plot-tracking.py b/site_ansto/instrument/TEST_SICS/tests/plot-tracking.py index 25aa866b..8be66ca1 100755 --- a/site_ansto/instrument/TEST_SICS/tests/plot-tracking.py +++ b/site_ansto/instrument/TEST_SICS/tests/plot-tracking.py @@ -6,19 +6,24 @@ import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt +import argparse def make_delta(q): - delta_q = np.arange(len(q), dtype=np.float) + delta_q = np.zeros(len(q)) 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']) +parser = argparse.ArgumentParser() +parser.add_argument("csv_file", help="TrackingFile.csv", nargs="?") +args = parser.parse_args() +if args.csv_file: + csv_file = args.csv_file else: - data = np.loadtxt("s2_tracking.csv", delimiter=",", skiprows=1, unpack=True) + csv_file = "s2_tracking.csv" + +data = np.loadtxt(csv_file, delimiter=",", skiprows=1, unpack=True) t, p, s, c = data @@ -36,11 +41,14 @@ 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') +ax1.set_title("Motion Tracking (" + csv_file + ")") +ax1.set_xlabel("position (%.3f to %.3f)" % (p[0], p[-1])) +ax1.set_ylabel("Steps/Count") -delta_spc = np.arange(len(t), dtype=np.float) +steps_per_count = ((s[-1] - s[0]) / (c[-1] - c[0])) +print "StepsPerCount: %.6f" % steps_per_count + +delta_spc = np.zeros(len(t)) for i in range(len(delta_spc)): if delta_c[i] == 0: delta_spc[i] = 0 @@ -52,9 +60,10 @@ if False: 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') - +ax1.plot(p, delta_spc - steps_per_count, c='r', label='delta steps per count') +ax1.plot(p, (s - s[0])/(c - c[0]) - steps_per_count, c='b', label='steps / counts') +ax1.get_xaxis().grid(True, 'both') +ax1.get_yaxis().grid(True, 'both') leg = ax1.legend() plt.show()