From: Dan White Date: Mon, 10 Feb 2014 00:31:25 +0000 (-0600) Subject: WIP figure making X-Git-Tag: cheetah~35 X-Git-Url: http://git.whiteaudio.com/gitweb/?a=commitdiff_plain;h=02a64d1b70427ab44bf089b93e80f1cc78f3dcb5;p=430.git WIP figure making --- diff --git a/python-lib/cal-times.py b/python-lib/cal-times.py index 10dce77..83e9493 100644 --- a/python-lib/cal-times.py +++ b/python-lib/cal-times.py @@ -12,12 +12,19 @@ dt = diff(times) # remove gaps #dt = [d for d in dt if d<150] -plot(dt, 'o') + +figure(figsize=(5.0, 3.0)) +subplots_adjust(top=0.98, bottom=0.15, left=0.12, right=0.97) + +plot(dt, '.') ylim((0, 150)) -title('Calibration times') +#title('Calibration times') xlabel('Run number') ylabel('Time (s)') +savefig('cal-times.pdf') + + print len(dt) print 1.0*(dt[0]-dt[-1]) / dt[0] diff --git a/python-lib/test-data/chip01/cal-times.pdf b/python-lib/test-data/chip01/cal-times.pdf new file mode 100644 index 0000000..3e6666f Binary files /dev/null and b/python-lib/test-data/chip01/cal-times.pdf differ diff --git a/python-lib/test-data/chip01/chip01-cal-raw.pdf b/python-lib/test-data/chip01/chip01-cal-raw.pdf new file mode 100644 index 0000000..9fc2662 Binary files /dev/null and b/python-lib/test-data/chip01/chip01-cal-raw.pdf differ diff --git a/python-lib/test-data/chip01/chip01-cal-raw.py b/python-lib/test-data/chip01/chip01-cal-raw.py new file mode 100644 index 0000000..da3247c --- /dev/null +++ b/python-lib/test-data/chip01/chip01-cal-raw.py @@ -0,0 +1,212 @@ +#!/usr/bin/env python + +from pylab import * + +import os +from glob import glob +from random import sample as rand_sample + + +cal_values = [] +cal_outs = [] +cal_nevals = [] +cal_means = [] +cal_stds = [] + +infiles = sorted(glob('*.npz')) +#N_RUNS = min(len(infiles), 8) +N_RUNS = 0 +sample_runs = sorted(rand_sample(range(len(infiles)), N_RUNS)) +N_PLOTS = 2 +#N_PLOTS = 0 +#sample_channels = sorted(rand_sample(range(48), N_PLOTS)) +sample_channels = (0, 2) +N_COLS = 4 +#N_COLS = 0 +nrun = 0 +for infile in infiles: +#for infile in sorted(glob('*.npz')): +#for infile in sorted(glob('2012-09-03_1*.npz')): + d = np.load(infile) + + #print infile, d.keys() + + guesses = d['guesses'] + results = d['results'] + nevals = d['nevals'] + + d.close() # close file descriptor + + if nrun in sample_runs: + for i,k in enumerate(sample_channels): + g = guesses[:, 0, k] + r = 1e3*(2.5/2/2**13)*results[:, 0, k] + + if 0: + subplot(N_PLOTS, N_COLS, N_COLS*i+1) + plot(g[:nevals[0,k]+1], '-') + ylim((0, 127)) + ylabel('Channel %02i-A' % k) + + subplot(N_PLOTS, N_COLS, N_COLS*i+2) + plot(r[:nevals[0,k]+1], '-') + + subplot(N_PLOTS, N_COLS, N_COLS*i+3) + data = cv[:, 0, k] + hist(data, bins=range(128), align='left') + xlim((data.min()-1, data.max()+1)) + xlim((0, 127)) + + subplot(N_PLOTS, N_COLS, N_COLS*i+4) + data = 1e3*(2.5/2/2**13)*co[:, 0, k] + dm = max((abs(data.min()), abs(data.max()))) + print dm + dm = max(dm, 50) + hist(data, bins=100, range=(-dm, dm), align='left') + xlim((-dm, dm)) + #ylim((0, 50)) + + + cal_values.append(guesses[-1, :, :]) + + # results are zeros after [nevals:] + # pick off the last real measurement + r = zeros_like(results[-1, :, :]) + for i in range(r.shape[0]): + for j in range(r.shape[1]): + r[i, j] = results[nevals[i,j]-1, i, j] + cal_outs.append(r) + + map(cal_nevals.append, nevals.flat) + + #cal_outs.append(results[-1, :, :]) + nrun += 1 + +cv = array(cal_values) +co = array(cal_outs) + + + + +if 1: + figure(figsize=(6.0, 3.5)) + subplots_adjust(top=0.93, bottom=0.12, left=0.12, right=0.98) + + for i,k in enumerate(sample_channels): + g = guesses[:, 0, k] + r = 1e3*(2.5/2/2**13)*results[:, 0, k] + + subplot(N_PLOTS, N_COLS, N_COLS*i+1) + plot(g[:nevals[0,k]+1], '-') + ylim((0, 127)) + ylabel('Channel %02i-A' % k) + xlim((0, 12)) + + subplot(N_PLOTS, N_COLS, N_COLS*i+2) + plot(1e-3*r[:nevals[0,k]+1], '-') + xlim((0, 12)) + + subplot(N_PLOTS, N_COLS, N_COLS*i+3) + data = cv[:, 0, k] + hist(data, bins=range(128), align='left') + xlim((data.min()-1, data.max()+1)) + xlim((0, 127)) + + ax = subplot(N_PLOTS, N_COLS, N_COLS*i+4) + data = 1e3*(2.5/2/2**13)*co[:, 0, k] + dm = max((abs(data.min()), abs(data.max()))) + print dm + dm = max(dm, 50) + hist(data, bins=100, range=(-dm, dm), align='left') + xlim((-dm, dm)) + ylim((0, 50)) + dmean = data.mean() + dstd = data.std() + print nrun, dmean, dstd + + text(0.03, 0.95, r'$\sigma\!=\!%4.1f$' % dstd, + horizontalalignment='left', + verticalalignment='top', + bbox=dict(facecolor='r', alpha=0.5, boxstyle="round"), + transform = ax.transAxes) + + subplot(N_PLOTS, N_COLS, 1) + ax = plt.gca() + title('Offset code', fontsize='medium') + ax.set_xticks(range(0, 15, 4)) + + subplot(N_PLOTS, N_COLS, (N_PLOTS-1)*N_COLS+1) + ax = plt.gca() + ax.set_xticks(range(0, 15, 4)) + xlabel('Step') + + subplot(N_PLOTS, N_COLS, 2) + ax = plt.gca() + title('$V_{out}$', fontsize='medium') + ax.set_xticks(range(0, 15, 4)) + ax.set_yticklabels([''] * len(ax.get_yticks())) + + subplot(N_PLOTS, N_COLS, (N_PLOTS-1)*N_COLS+2) + ax = plt.gca() + ax.set_xticks(range(0, 15, 4)) + ax.set_yticklabels([''] * len(ax.get_yticks())) + xlabel('Step') + + subplot(N_PLOTS, N_COLS, 3) + ax = plt.gca() + title('Code hist.', fontsize='medium') + ax.set_xticks(range(0, 128, 32)) + ax.set_xticklabels([''] * len(ax.get_xticks())) + ax.set_yticklabels([''] * len(ax.get_yticks())) + + subplot(N_PLOTS, N_COLS, (N_PLOTS-1)*N_COLS+3) + ax = plt.gca() + ax.set_xticks(range(0, 128, 32)) + #ax.set_xticklabels([''] * len(ax.get_xticks())) + ax.set_yticklabels([''] * len(ax.get_yticks())) + xlabel('OTA tuning DAC') + + subplot(N_PLOTS, N_COLS, 4) + ax = plt.gca() + ax.set_xticks(range(-80, 81, 40)) + ax.set_xticklabels([''] * len(ax.get_xticks())) + ax.set_yticklabels([''] * len(ax.get_yticks())) + title('$V_{out}$ hist.', fontsize='medium') + + subplot(N_PLOTS, N_COLS, (N_PLOTS-1)*N_COLS+4) + ax = plt.gca() + ax.set_xticks(range(-80, 81, 40)) + #ax.set_xticklabels([''] * len(ax.get_xticks())) + ax.set_yticklabels([''] * len(ax.get_yticks())) + xlabel('V_{oos}$ (mV)') + + #suptitle('Calibration data from %s\nNruns = %i' % + #(os.path.basename(os.getcwd()), + #len(infiles))) + + savefig('chip01-cal-raw.pdf') + +#interactive(False) +interactive(True) + +if 0: + figure() + data = cv.flatten() + hist(data, bins=range(128), align='left') + xlabel('OTA tuning DAC value') + title('Channel offset tuning histogram\n48x2 channels x %i runs' % + (len(infiles),)) + savefig('caldac-hist.pdf') + + + figure() + data = co.flatten() + hist(data, bins=range(-1500, 1500, 10), align='left') + xlabel('Tuned channel output offset voltage (mV)') + title('Channel offset tuning histogram\n48x2 channels x %i runs' % + (len(infiles),)) + savefig('calout-hist.pdf') + +print sample_runs +print [infiles[s] for s in sample_runs] + diff --git a/python-lib/test-data/chip01/matplotlibrc b/python-lib/test-data/chip01/matplotlibrc new file mode 120000 index 0000000..3ed05f3 --- /dev/null +++ b/python-lib/test-data/chip01/matplotlibrc @@ -0,0 +1 @@ +../chip14/arb0/vios-offset-gm/matplotlibrc \ No newline at end of file