diff --git a/gstlal-calibration/tests/check_calibration/latency_plot.py b/gstlal-calibration/tests/check_calibration/latency_plot.py index 920fc3395fb7a21286e87547cb082a42b2939073..a64a7dbdace11d67b84dba96476cd9f5903752bc 100644 --- a/gstlal-calibration/tests/check_calibration/latency_plot.py +++ b/gstlal-calibration/tests/check_calibration/latency_plot.py @@ -7,7 +7,7 @@ import time import matplotlib matplotlib.rcParams['font.family'] = 'Times New Roman' matplotlib.rcParams['font.size'] = 16 -matplotlib.rcParams['legend.fontsize'] = 14 +matplotlib.rcParams['legend.fontsize'] = 12 matplotlib.rcParams['mathtext.default'] = 'regular' matplotlib.use('Agg') import matplotlib.pyplot as plt @@ -51,10 +51,18 @@ common_dt = long_dt while common_dt % short_dt: common_dt = common_dt + long_dt -# Number of sample of input and output corresponding to least common multiple sample period +# Number of samples of input and output corresponding to least common multiple sample period in_step = round(common_dt / in_dt) out_step = round(common_dt / out_dt) +# Sometimes the incoming data has dropouts... we need to deal with this :( +for i in range(0, len(intimes)): + j = 1 + while j < len(intimes[i]): + if round((intimes[i][j][0] - intimes[i][j - 1][0]) / in_dt) > 1: + intimes[i] = numpy.insert(intimes[i], j, [intimes[i][j - 1][0] + in_dt, intimes[i][j - 1][1] + in_dt], axis = 0) + j = j + 1 + # Find a start time that is not before any of the data sets start and an end time that is not after any of the data sets end t_start = intimes[0][0][0] t_end = intimes[0][-1][0] @@ -99,33 +107,31 @@ for i in range(0, len(intimes)): latency[i].append(outtimes[i][outtimes_start_index + j * out_step][1] - intimes[i][intimes_start_index + j * in_step][1]) # Make the plot -colors = ['purple', 'b', 'c', 'g', 'y', 'r'] -markersize = 200.0 * numpy.sqrt(len(intimes[0])) -markersize = min(markersize, 10.0) -markersize = max(markersize, 0.2) -plt.figure(figsize = (10, 5)) +colors = ['b', 'c', 'g', 'm', 'y', 'r'] +markersize = 150.0 / numpy.sqrt(len(intimes[0])) +markersize = min(markersize, 8.0) +markersize = max(markersize, 1.0) +plt.figure(figsize = (10, 6)) if len(labels[0]): plt.plot(gps_time, latency[0], colors[0], linestyle = 'None', marker = '.', markersize = markersize, label = labels[0]) + leg = plt.legend(fancybox = True, loc = 'upper right', markerscale = 4.0 / markersize, numpoints = 3) + leg.get_frame().set_alpha(0.8) else: plt.plot(gps_time, latency[0], colors[0], linestyle = 'None', marker = '.', markersize = markersize) if len(options.plot_title): plt.title(options.plot_title) plt.ylabel('Latency [s]') plt.xlabel('Time in %s since %s UTC' % (t_unit, time.strftime("%b %d %Y %H:%M:%S", time.gmtime(t_start + 315964782)))) -plt.ylim(0, 15) +plt.ylim(0, 8) plt.grid(True, which = "both", linestyle = ':', linewidth = 0.3, color = 'black') -if len(labels[0]): - leg = plt.legend(fancybox = True, loc = 'upper right') - leg.get_frame().set_alpha(0.8) for i in range(1, len(intimes)): if len(labels) > 1: plt.plot(gps_time, latency[i], colors[i % len(colors)], linestyle = 'None', marker = '.', markersize = markersize, label = labels[i]) + leg = plt.legend(fancybox = True, loc = 'upper right', markerscale = 4.0 / markersize, numpoints = 3) + leg.get_frame().set_alpha(0.8) else: plt.plot(gps_time, latency[i], colors[i % len(colors)], linestyle = 'None', marker = '.', markersize = markersize) - if len(options.labels): - leg = plt.legend(fancybox = True, loc = 'upper right') - leg.get_frame().set_alpha(0.8) # Save the plot to a file plt.savefig('%s_%d-%d.png' % (options.plot_filename_prefix, int(t_start), int(dur)))