source: CMIP6dreqbuild/trunk/src/framework/dreqPy/scope_utils.py @ 661

Subversion URL: http://proj.badc.rl.ac.uk/svn/exarch/CMIP6dreqbuild/trunk/src/framework/dreqPy/scope_utils.py@661
Revision 661, 1.8 KB checked in by mjuckes, 4 years ago (diff)

removed python version dependencies

Line 
1import makeTables
2import collections
3
4
5class c1(object):
6  def __init__(self):
7    self.a = collections.defaultdict( int )
8
9class xlsTabs(object):
10  def __init__(self,sc,tiermax=1,pmax=1):
11    self.pmax=pmax
12    self.tiermax=tiermax
13    self.sc = sc
14    sc.setTierMax( tiermax )
15    self.cc = collections.defaultdict( c1 )
16    self.dq = sc.dq
17
18    self.mips = ['AerChemMIP', 'C4MIP', 'CFMIP', 'DAMIP', 'DCPP', 'FAFMIP', 'GeoMIP', 'GMMIP', 'HighResMIP', 'ISMIP6', 'LS3MIP', 'LUMIP', 'OMIP', 'PMIP', 'RFMIP', 'ScenarioMIP', 'VolMIP', 'CORDEX', 'DynVar', 'SIMIP', 'VIACSAB']
19    self.mipsp = ['DECK','CMIP6',] + self.mips[:-4]
20
21    self.tabs = makeTables.tables( sc, self.mips )
22
23  def run(self,m,colCallback=None,verb=False,mlab=None):
24      if m == 'TOTAL':
25        l1 = self.sc.rqiByMip( set( self.mips ) )
26      else:
27        l1 = self.sc.rqiByMip( m )
28
29      if mlab == None:
30        mlab = m
31
32      if verb:
33        print 'r1: m=%s, len(l1)=%s' % (mlab,len(l1))
34
35      self.cc[mlab].dd = {}
36      self.cc[mlab].ee = {}
37      self.tabs.accReset()
38      vcc = collections.defaultdict( int )
39      for m2 in self.mipsp + ['TOTAL',]:
40        if m2 == 'TOTAL':
41          xx = self.dq.coll['experiment'].items
42        else:
43          xx = [i for i in self.dq.coll['experiment'].items if i.mip == m2]
44        self.cc[mlab].ee[m2] = xx
45        xxi = set( [i.label for i in xx] )
46##
47## need to check this option, and add a template for a view summarising the experiments for each mip-mip combinations
48##
49        if m2 != 'TOTAL':
50          for i in xx:
51              self.tabs.doTable(m,l1,i.uid,self.pmax,self.cc,acc=False,cc=vcc,exptids=xxi,mlab=None)
52
53        self.tabs.doTable(m,l1,m2,self.pmax,self.cc,cc=vcc,exptids=xxi,mlab=None)
54
55        if verb:
56          print 'r1: mlab=%s,m2=%s, len(l1)=%s' % (mlab,m2,len(l1))
57
58        if colCallback != None:
59          colCallback( m,m2,mlab=mlab )
60
61
Note: See TracBrowser for help on using the repository browser.