Changeset 554


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

further debugging on overview tables; per expt view

Location:
CMIP6dreqbuild/trunk/src/framework
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • CMIP6dreqbuild/trunk/src/framework/Makefile

    r539 r554  
    7474 
    7575localHtml: 
     76        cp -r tab2/* /var/www/f/data/tabs02/ 
     77        cp -r tabs03/* /var/www/f/tabs03/ 
     78        cp tab01_1_1.html tab01_3_3.html /var/www/f 
    7679        cp data2.js /var/www/f/data/mipVarsData.js 
    7780        cp websiteExtras/dreq.css /var/www/f/css 
     
    8184        cp -r html/index.html /var/www/f/ 
    8285 
     86 
    8387sHtml: 
    8488        zip -r html.zip data2.js html  
  • CMIP6dreqbuild/trunk/src/framework/dreqPy/scope.py

    r553 r554  
    327327         if inx.uid[u]._h.label != 'remarks': 
    328328           rql.add( u )  
     329    else: 
     330      exi = self.dq.inx.uid[ex] 
     331      if exi._h.label == 'experiment': 
     332        exset = set( [ex,exi.egid,exi.mip] ) 
    329333 
    330334##### 
     
    442446        if i.esid in exset and v in e[i.rlid]: 
    443447          ix = inx.uid[i.esid] 
    444           if ix._h.label == 'experiment': 
     448          if exi._h.label == 'experiment': 
     449            if ex in self.rqiExp[i.uid][1]: 
     450              this = self.rqiExp[i.uid][1][ex] 
     451              cc2[i.esid].add( this[-1]*this[-2] ) 
     452          elif ix._h.label == 'experiment': 
    445453            cc2[i.esid].add( self.rqiExp[i.uid][irqi] ) 
    446454          else: 
    447455            if 'experiment' in inx.iref_by_sect[i.esid].a: 
    448456              for u in inx.iref_by_sect[i.esid].a['experiment']: 
    449                 cc2[u].add( self.rqiExp[i.uid][irqi] ) 
     457                if u in self.rqiExp[i.uid][1]: 
     458                  this = self.rqiExp[i.uid][1][u] 
     459                  cc2[u].add( this[-1]*this[-2] ) 
     460                ###cc2[u].add( self.rqiExp[i.uid][irqi] ) 
    450461            ##else: 
    451462              ##print 'WARNING .... empty experiment set' 
     
    563574        if i._h.label != 'experiment': 
    564575          mlg.prnt ( 'ERROR: %s, %s, %s ' % ( u,i._h.label, i.label, i.title ) ) 
    565       dat = [ (i.ntot, i.yps, i.ensz, i.tier, i.nstart, filter1(i.yps,rqi.nymax), filter2(i.ensz,rqi.nenmax,i.tier,self.tierMax) ) for i in e] 
    566       nytot = sum( [x[-2]*x[-1] for x in dat ] ) 
    567       netot = sum( [x[-1] for x in dat ] ) 
     576      ##dat = [ (i.ntot, i.yps, i.ensz, i.tier, i.nstart, filter1(i.yps,rqi.nymax), filter2(i.ensz,rqi.nenmax,i.tier,self.tierMax) ) for i in e] 
     577      dat2 = {} 
     578      for i in e: 
     579        dat2[i.uid] = (i.ntot, i.yps, i.ensz, i.tier, i.nstart, filter1(i.yps,rqi.nymax), filter2(i.ensz,rqi.nenmax,i.tier,self.tierMax) ) 
     580      ### number of  
     581      nytot = sum( [dat2[x][-2]*dat2[x][-3] for x in dat2 ] ) 
     582      netot = sum( [dat2[x][-1] for x in dat2 ] ) 
    568583      ##print 'debug1:: ',dat, nytot, netot 
    569584    else: 
    570       dat = [ (0,0,0,0,0) ] 
     585      dat2 = {} 
    571586      nytot = 0 
    572587      netot = 0 
    573588     
    574     return (expts, dat, nytot, netot ) 
     589    return (expts, dat2, nytot, netot ) 
    575590 
    576591  def setTierMax( self, tierMax ): 
  • CMIP6dreqbuild/trunk/src/framework/makeTables.py

    r553 r554  
    8989       
    9090class makeTab(object): 
    91   def __init__(self, subset=None, dest='tables/test.xlsx'): 
     91  def __init__(self, subset=None, dest='tables/test.xlsx', skipped=set()): 
    9292    if subset != None: 
    9393      cmv = [x for x in dq.coll['CMORvar'].items if x.uid in subset] 
     
    163163 
    164164          if not ok: 
    165             print 'skipping %s %s' % (t,v.label) 
     165            if (t,v.label) not in skipped: 
     166              print 'makeTables: skipping %s %s' % (t,v.label) 
     167              skipped.add( (t,v.label) ) 
    166168          else: 
    167169            dims = [] 
  • 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.