Blame view

mstm_simparser.py 2.52 KB
de89d3bc   dmayerich   Initial commit.
1
2
3
4
  class SimParserClass:
  
      simResults = dict()
  
6f131540   dmayerich   Additional UI cha...
5
6
7
8
9
10
      def __init__(self, parameters):
          
          self.params = parameters;
          
          self.simResults['lambda'] = list()      
  
de89d3bc   dmayerich   Initial commit.
11
12
13
          self.simResults['extinction_unpolarized'] = list()
          self.simResults['extinction_parallel'] = list()
          self.simResults['extinction_perpendicular'] = list()
6f131540   dmayerich   Additional UI cha...
14
15
16
          self.simResults['extinction_total'] = list()
              
              
de89d3bc   dmayerich   Initial commit.
17
18
19
20
21
      
      def parseSimFile(self, l, fileName):
          self.simResults['lambda'].append(l)
          inFile = open(fileName, 'r')
  
6f131540   dmayerich   Additional UI cha...
22
          
de89d3bc   dmayerich   Initial commit.
23
          while True:
6f131540   dmayerich   Additional UI cha...
24
              
de89d3bc   dmayerich   Initial commit.
25
26
              line = inFile.readline().strip()
  
6f131540   dmayerich   Additional UI cha...
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
              if int(self.params['fixed_or_random_orientation']) == 0:
                  if line == 'scattering matrix elements':
                      break
                  elif line == 'unpolarized total ext, abs, scat efficiencies, w.r.t. xv, and asym. parm':
                      values = inFile.readline().strip().split(' ')
                      self.simResults['extinction_unpolarized'].append(values[0])
                  elif line == 'parallel total ext, abs, scat efficiencies':
                      values = inFile.readline().strip().split(' ')
                      self.simResults['extinction_parallel'].append(values[0])
                  elif line == 'perpendicular total ext, abs, scat efficiencies':
                      values = inFile.readline().strip().split(' ')
                      self.simResults['extinction_perpendicular'].append(values[0])
              
              else:
                  #print('making it here')
                  #print(self.params['fixed_or_random_orientation'])
                  if line == 'scattering matrix elements':
                      break
                  elif line == 'total ext, abs, scat efficiencies, w.r.t. xv, and asym. parm':
                      values = inFile.readline().strip().split(' ')
                      self.simResults['extinction_total'].append(values[0])
de89d3bc   dmayerich   Initial commit.
48
49
50
51
  
      def saveFile(self, fileName):
          outFile = open(fileName, 'w')
          outFile.write(str(self))
6f131540   dmayerich   Additional UI cha...
52
          outFile.close()
de89d3bc   dmayerich   Initial commit.
53
54
55
56
57
58
59
60
61
62
63
64
65
66
  
      def __getitem__(self, key):
          return self.simResults[key];
  
      def __str__(self):
          result = '';
  
          for i in range(len(self.simResults['lambda'])):
              result += str(self.simResults['lambda'][i]) + '\t'
              result += str(self.simResults['extinction_unpolarized'][i]) + '\t'
              result += str(self.simResults['extinction_parallel'][i]) + '\t'
              result += str(self.simResults['extinction_perpendicular'][i]) + '\n'
  
          return result