Automatic commit. Mon Aug 20 16:00:10 WST 2012
[matches/honours.git] / research / TCS / process.py
1 #!/usr/bin/python -u
2
3 #
4 # @file process.py
5 # @purpose Process TCS data
6 #               Takes S(E) = dI/dE
7 # @author Sam Moore
8 # @date August 2012
9 #
10
11 import sys
12 import os
13 import re # Regular expressions - for removing comments
14 import odict #ordered dictionary
15
16 def main():
17                 
18         if (len(sys.argv) != 2):
19                 sys.stderr.write(sys.argv[0] + " - Require 1 argument (filename)\n")
20                 return 1
21
22         input_file = open(sys.argv[1], "r")
23         data = odict.odict([])
24         for line in input_file:
25                 line = re.sub("#.*", "", line).strip("\r\n ")
26                 if len(line) == 0:
27                         continue
28                 line = line.split("\t")
29                 #sys.stdout.write(str(line))
30                 if float(line[1]) in data:
31                         data[float(line[1])].append(float(line[2]))
32                 else:
33                         data[float(line[1])] = [float(line[2])]
34
35         
36         for dac in data.keys():
37                 avg = sum(data[dac], 0.0) / len(data[dac])
38                 data[dac] = avg
39
40
41         result = []
42         for i in range(0, len(data.keys())-1, 1):
43                 dE = data.keys()[i+1] - data.keys()[i]
44                 dI = data[data.keys()[i+1]] - data[data.keys()[i]]
45                 result.append((data.keys()[i], dI/dE))
46                 sys.stdout.write(str(data.keys()[i]) + "\t" + str(data[data.keys()[i]]) + "\t" + str(dI/dE) + "\n")
47
48         #for dac in data:
49         #       sys.stdout.write(str(dac) + "\t" + str(data[dac]) + "\n")
50
51         return 0
52
53
54 if __name__ == "__main__":
55         sys.exit(main())

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