X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=research%2FTCS%2Fprocess.py;h=efd5dce86baa111ec8c8c212bc95cb32fa5cc630;hb=67e090787dba82515ec95660006cdfd5b95ca9be;hp=8c53dfd62039f4e256de72d89bad2b6d35b950d5;hpb=91a05d0f816b5f8ccb1f123ae1dcbc3c853afb17;p=matches%2Fhonours.git diff --git a/research/TCS/process.py b/research/TCS/process.py index 8c53dfd6..efd5dce8 100755 --- a/research/TCS/process.py +++ b/research/TCS/process.py @@ -13,41 +13,61 @@ import os import re # Regular expressions - for removing comments import odict #ordered dictionary -def main(): - - if (len(sys.argv) != 2): - sys.stderr.write(sys.argv[0] + " - Require 1 argument (filename)\n") - return 1 +import Gnuplot, Gnuplot.funcutils + +gnuplot = Gnuplot.Gnuplot() - input_file = open(sys.argv[1], "r") - data = odict.odict([]) +def GetData(filename): + input_file = open(filename, "r") + data = [] for line in input_file: line = re.sub("#.*", "", line).strip("\r\n ") if len(line) == 0: continue - line = line.split("\t") - #sys.stdout.write(str(line)) - if float(line[1]) in data: - data[float(line[1])].append(float(line[2])) - else: - data[float(line[1])] = [float(line[2])] + data.append(map(lambda e : float(e), line.split("\t"))) + return data - - for dac in data.keys(): - avg = sum(data[dac], 0.0) / len(data[dac]) - data[dac] = avg +def GetTCS(data): + result = [] + n = 0 + dI = 0 + dE = 0 + for i in range(2, len(data)-1): + dE = data[i+1][1] - data[i-1][1] + if (dE != 0): + n = 0 + dI = 0 + + n += 1 + dI += data[i+1][2] - data[i-1][2] + if (dE != 0): + result.append([data[i][1], dI / (n * dE)]) + return result +def Plot(*args): + gnuplot.plot(args) + +def FitTCS(data): + - result = [] - for i in range(0, len(data.keys())-1, 1): - dE = data.keys()[i+1] - data.keys()[i] - dI = data[data.keys()[i+1]] - data[data.keys()[i]] - result.append((data.keys()[i], dI/dE)) - sys.stdout.write(str(data.keys()[i]) + "\t" + str(data[data.keys()[i]]) + "\t" + str(dI/dE) + "\n") - #for dac in data: - # sys.stdout.write(str(dac) + "\t" + str(data[dac]) + "\n") +def main(): + + if (len(sys.argv) < 2): + sys.stderr.write(sys.argv[0] + " - Require arguments (filename)\n") + return 1 + tcs = [] + gnuplot("set style data lp") + for i in range(1, len(sys.argv)): + tcs.append(GetTCS(GetData(sys.argv[i]))) + if (len(tcs[i-1]) > 0): + gnuplot.replot(tcs[i-1]) + + + print("Press enter to exit") + sys.stdin.readline() + return 0