Ignore:
Timestamp:
12/05/16 13:23:47 (4 years ago)
Author:
mjuckes
Message:

bugs in volume estimates in tables

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CMIP6dreqbuild/trunk/src/framework/dreqPy/makeTables.py

    r650 r655  
    446446        x = self.acc 
    447447      else: 
    448         x = self.sc.volByExpt( l1, m2, expFullEx=(m2 in self.mips), pmax=pmax ) 
     448        x = self.sc.volByExpt( l1, m2, pmax=pmax ) 
     449 
     450##self.volByExpt( l1, e, pmax=pmax, cc=cc, retainRedundantRank=retainRedundantRank, intersection=intersection, adsCount=adsCount ) 
     451        v0 = self.sc.volByMip( m, pmax=pmax,  exptid=m2 ) 
     452#### 
     453        cc = collections.defaultdict( int ) 
     454        for e in self.sc.volByE: 
     455          for v in self.sc.volByE[e][2]: 
     456             cc[v] += self.sc.volByE[e][2][v] 
     457        xxx = 0 
     458        for v in cc: 
     459          xxx += cc[v] 
     460        print m,m2,'%12.5e' % x[0],'%12.5e' % xxx, '%12.5e' % v0 
     461#### 
    449462        if acc: 
    450           self.accAdd(x) 
    451  
    452       if x[0] > 0: 
    453         if m2 not in [ None, 'TOTAL']: 
     463          for e in self.sc.volByE: 
     464            self.accAdd(self.sc.volByE[e]) 
     465      if m2 not in [ None, 'TOTAL']: 
    454466          im2 = self.dq.inx.uid[m2] 
    455467          mlab2 = im2.label 
     468      else: 
     469          mlab2 = 'TOTAL' 
     470 
     471      for e in self.sc.volByE: 
     472       x = self.sc.volByE[e] 
     473       if x[0] > 0: 
    456474          collector[mlab].a[mlab2] += x[0] 
    457         else: 
    458           mlab2 = 'TOTAL' 
     475 
     476      if collector[mlab].a[mlab2] > 0: 
    459477# 
    460478# create sum for each table 
    461479# 
     480        x0 = collector[mlab].a[mlab2] 
    462481        xs = 0 
    463482        kkc = '_%s_%s' % (mlab,mlab2) 
    464         for k in x[2].keys(): 
    465           i = self.dq.inx.uid[k] 
    466           xxx =  x[2][k] 
    467           xs += xxx 
    468           if xxx > 0: 
     483        if m2 in [None, 'TOTAL']: 
     484          x = self.acc 
     485          for k in x[2].keys(): 
     486           i = self.dq.inx.uid[k] 
     487           xxx =  x[2][k] 
     488           xs += xxx 
     489           if xxx > 0: 
    469490            collector[kkc].a[i.mipTable] += xxx 
    470         assert x[0] == xs, 'ERROR.0088: consistency problem %s  %s %s %s' % (m,m2,x[0],xs) 
    471         if x[0] == 0: 
     491        for e in self.sc.volByE: 
     492          x = self.sc.volByE[e] 
     493          for k in x[2].keys(): 
     494           i = self.dq.inx.uid[k] 
     495           xxx =  x[2][k] 
     496           xs += xxx 
     497           if xxx > 0: 
     498            collector[kkc].a[i.mipTable] += xxx 
     499        ##if m2 != None: 
     500        assert x0 == xs, 'ERROR.0088: consistency problem %s  %s %s %s' % (m,m2,x0,xs) 
     501        if x0 == 0: 
    472502          print ( 'Zero size: %s, %s' % (m,m2) ) 
    473503          if len( x[2].keys() ) > 0: 
     
    475505 
    476506        if acc and m2 not in [ None, 'TOTAL']: 
    477           collector[mlab].a['TOTAL'] += x[0] 
     507          collector[mlab].a['TOTAL'] += x0 
    478508 
    479509        dd = collections.defaultdict( list ) 
Note: See TracChangeset for help on using the changeset viewer.