Automatic commit. Wed Sep 5 00:00:03 WST 2012
[matches/honours.git] / research / TCS / process.py
index 8c53dfd..5d89001 100755 (executable)
@@ -13,41 +13,60 @@ 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(1, len(data)-1):
+               dE = data[i+1][1] - data[i][1]
+               if (dE != 0):
+                       n = 0
+                       dI = 0
+               
+               n += 1
+               dI += data[i+1][2] - data[i][2]                 
+               if (dE != 0):                   
+                       result.append([data[i][1], (dI / (n * dE)) ] ) #/ data[i][2]])
+       return result
 
+def Plot(*args):
+       gnuplot.plot(args)
+
+def FitTCS(data):
+       pass
 
-       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(map(lambda e : [e[1], e[2]], 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
 
 

UCC git Repository :: git.ucc.asn.au