From dc7ef64b2699221d80cfbf447ab46b91fa9d0b79 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Thu, 15 Oct 2015 11:38:04 +0200 Subject: Improved scripts/plot-predict-refine --- scripts/plot-predict-refine | 71 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 62 insertions(+), 9 deletions(-) (limited to 'scripts') diff --git a/scripts/plot-predict-refine b/scripts/plot-predict-refine index 68baffdc..04f6ffa8 100755 --- a/scripts/plot-predict-refine +++ b/scripts/plot-predict-refine @@ -1,11 +1,64 @@ -#!/bin/sh +#!/usr/bin/env python -INFILE=$1 +# +# Visualise behaviour of prediction refinement +# +# Copyright (c) 2015 Deutsches Elektronen-Synchrotron DESY, +# a research centre of the Helmholtz Association. +# +# Author: +# 2015 Thomas White +# + +import sys +import os +import re +import matplotlib.pyplot as plt + + +def show_frac(ratios, v): + n = len([x for x in ratios if x < v]) + print "%4i (%.2f%%) new/old ratios are below %.2f" % (n, 100*float(n)/len(ratios), v) + + +f = open(sys.argv[1], 'r') + +oldR = [] +newR = [] + +prog1 = re.compile("^predict_refine/R\sold\s=\s([0-9\.\-]+)\snew\s=\s([0-9\.\-]+)\s") + +while True: + + fline = f.readline() + if not fline: + break + + match = prog1.match(fline) + if match: + old = float(match.group(1)) + new = float(match.group(2)) + oldR.append(old) + newR.append(new) + +f.close() + +mean_oldR = sum(oldR) / len(oldR) +mean_newR = sum(newR) / len(newR) +ratios = [new/old for new,old in zip(newR, oldR)]; +print 'Mean profile radius before: %.2e, after: %.2e nm^-1' % (mean_oldR,mean_newR) +show_frac(ratios, 1.2) +show_frac(ratios, 1.1) +show_frac(ratios, 1.0) +show_frac(ratios, 0.9) +show_frac(ratios, 0.8) + +#plt.plot(oldR, newR, 'rx') +plt.hist(ratios, 50) +#plt.axis([-2,2,-2,2]) +plt.title('Profile radius before and after refinement') +plt.xlabel('x shift / mm') +plt.ylabel('y shift / mm') +plt.grid(True) +plt.show() -grep "predict_refine/R" $INFILE > plotme.dat -gnuplot -persist << EOF -set xlabel "Profile radius before refinement / nm^-1" -set ylabel "Profile radius after refinement / nm^-1" -plot "plotme.dat" using 4:7 -replot x -EOF -- cgit v1.2.3