Ignore:
Timestamp:
19/01/16 21:19:26 (5 years ago)
Author:
mjuckes
Message:

further debugging on overview tables; per expt view

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CMIP6dreqbuild/trunk/src/framework/overviewTabs.py

    r553 r554  
    2020            elif x < 1.e15: 
    2121              s = '%3iT' % int( x*1.e-12 ) 
     22            elif x < 1.e18: 
     23              s = '%3iP' % int( x*1.e-15 ) 
    2224            else: 
    2325              s = '{:,.2f}'.format( x*1.e-9 )  
     
    5759## sss=True not yet tested 
    5860## 
    59         sss = False 
     61        sss = True 
    6062        if sss: 
    6163          for i in xx: 
    62             self.doTable(m,l1,i.uid,self.cc) 
     64            self.doTable(m,l1,i.uid,self.cc,acc=False) 
     65          self.makeMMhtml(m,m2) 
     66          self.doTable(m,l1,m2,self.cc) 
    6367        else: 
    6468          self.doTable(m,l1,m2,self.cc) 
    6569 
    66     self.writeMips() 
    67  
    68   def writeMips(self): 
     70    self.writeMips(sss) 
     71 
     72  def makeMMhtml(self,m,m2): 
     73    fss = '%s-%s_%s_%s.html' % (m,m2,self.tiermax, self.pmax) 
     74    oo = open( 'tabs03/%s' % fss, 'w' ) 
     75    ttl = 'Date requested by %s from %s experiments' % (m,m2) 
     76    jsh = '' 
     77    bdy = '<p>All variables in one <a href="../data/tabs02/%s-%s_%s_%s.xlsx">Excel file</a></p>\n' % (m,m2,self.tiermax, self.pmax) 
     78 
     79    bdy += '<table>\n' 
     80    for i in self.cc[m].ee[m2]: 
     81      x = self.cc[m].a[i.uid]*2. 
     82      s = vfmt( x ) 
     83      bdy += '<tr><td>%s</td><td><a href="../data/tabs02/%s-%s_%s_%s.xlsx">%s</a></td></tr>\n' % (i.label,m,i.uid,self.tiermax, self.pmax,s) 
     84    bdy += '</table>\n' 
     85 
     86    oo.write( self.dq.pageTmpl % (ttl, jsh, '../', '../index.html', bdy ) ) 
     87    oo.close() 
     88     
     89     
     90 
     91  def writeMips(self,sss=False): 
    6992 
    7093    oo = open( 'tab01_%s_%s.texfrag' % (self.tiermax,self.pmax), 'w' ) 
     
    102125        oo1.write( '</body></html>' ) 
    103126         
    104          
    105127       if m2 in self.cc[m].dd or m2 == 'TOTAL': 
    106128        if self.cc[m].a[m2] == 0: 
     
    117139            fn = '%s-%s_%s_%s.xlsx' % (m,m2,self.tiermax, self.pmax) 
    118140            kc = '_%s_%s' % (m,m2) 
    119             sm = string.join( ['%s: %s' % (k,vfmt(self.cc[kc].a[k])) for k in sorted( self.cc[kc].a.keys() ) ], '; ' ) 
     141            sm = string.join( ['%s: %s' % (k,vfmt(self.cc[kc].a[k]*2.)) for k in sorted( self.cc[kc].a.keys() ) ], '; ' ) 
    120142            if m2 == 'TOTAL': 
    121143              llh.append( s1 ) 
     144            elif sss: 
     145              fss = '%s-%s_%s_%s.html' % (m,m2,self.tiermax, self.pmax) 
     146              llh.append( '<a title="Excel variable list: %s" href="tabs03/%s">%s</a>' % (sm,fss,s) ) 
    122147            else: 
    123148              llh.append( '<a title="Excel variable list: %s" href="data/tabs02/%s">%s</a>' % (sm,fn,s) ) 
     
    128153          ll.append( '' ) 
    129154          llh.append( '' ) 
    130       print ll 
    131155      oo.write( string.join(ll, ' & ' ) + '\\\\ \n\\hline\n' ) 
    132156      mmh.append( '<tr>' + string.join(['<td>%s</td>' % x for x in llh] ) + '</tr>\n' ) 
     
    143167    oo.close() 
    144168 
    145   def doTable(self,m,l1,m2,collector): 
     169  def doTable(self,m,l1,m2,collector,acc=True): 
     170        """acc allows accumulation of values to be switched off when called in single expt mode""" 
    146171         
    147         x = sc.volByExpt( l1, m2, expFullEx=True,pmax=self.pmax ) 
     172        x = sc.volByExpt( l1, m2, expFullEx=(m2 in self.mips), pmax=self.pmax ) 
    148173        collector[m].a[m2] += x[0] 
    149174# 
    150175# create sum for each table 
    151176# 
     177        xs = 0 
    152178        for k in x[2].keys(): 
    153179          i = self.dq.inx.uid[k] 
    154180          xxx =  x[2][k] 
     181          xs += xxx 
    155182          if xxx > 0: 
    156183            collector['_%s_%s' % (m,m2)].a[i.mipTable] += xxx 
     184        assert x[0] == xs, 'ERROR.0088: consistency problem %s  %s %s %s' % (m,m2,x[0],xs) 
    157185        if m == 'FAFMIP' and m2 == 'DECK': 
    158186          print 'FAFMIP [1]:: ',x[1].keys() 
    159187          print 'FAFMIP [2]:: ',collector['_FAFMIP_DECK'].a.keys() 
    160188 
    161         collector[m].a['TOTAL'] += x[0] 
     189        if acc: 
     190          collector[m].a['TOTAL'] += x[0] 
    162191        dd = collections.defaultdict( list ) 
    163192        lll = set() 
     
    171200          collector[m].dd[m2] = dd 
    172201          makeTables.makeTab( subset=lll, dest='tab2/%s-%s_%s_%s.xlsx' % (m,m2,self.tiermax,self.pmax) ) 
    173           
    174202 
    175203if __name__ == "__main__": 
    176204  sc = scope.dreqQuery() 
    177   #r = r1( sc, tiermax=1, pmax=1 ) 
     205  r = r1( sc, tiermax=1, pmax=1 ) 
    178206  r = r1( sc, tiermax=3, pmax=3 ) 
Note: See TracChangeset for help on using the changeset viewer.