Ignore:
Timestamp:
12/02/16 13:06:56 (4 years ago)
Author:
mjuckes
Message:

Updated setup for tag 01.beta.20

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CMIP6dreq/trunk/dreqPy/scope.py

    r586 r594  
    1111 
    1212import collections, string, operator 
     13import makeTables 
    1314import sys 
    1415 
     
    2526  from utilP2 import mlog 
    2627  mlg = mlog() 
     28 
     29class c1(object): 
     30  def __init__(self): 
     31    self.a = collections.defaultdict( int ) 
    2732 
    2833class baseException(Exception): 
     
    626631      raise baseException( 'rqiByMip: "mip" (1st explicit argument) should be type string or set: %s -- %s' % (mip, type(mip))   ) 
    627632    return l1 
     633 
     634  def xlsByMipExpt(self,m,ex,pmax,odir='xls'): 
     635 
     636    mips = ['AerChemMIP', 'C4MIP', 'CFMIP', 'DAMIP', 'DCPP', 'FAFMIP', 'GeoMIP', 'GMMIP', 'HighResMIP', 'ISMIP6', 'LS3MIP', 'LUMIP', 'OMIP', 'PMIP', 'RFMIP', 'ScenarioMIP', 'VolMIP', 'CORDEX', 'DynVar', 'SIMIP', 'VIACSAB'] 
     637    tabs = makeTables.tables( self, mips, odir=odir ) 
     638    cc = collections.defaultdict( c1 ) 
     639    mlab = tabs.setMlab( m ) 
     640    cc[mlab].dd = {} 
     641    cc[mlab].ee = {} 
     642    if m == 'TOTAL': 
     643        l1 = self.rqiByMip( set( mips ) ) 
     644    else: 
     645        l1 = self.rqiByMip( m ) 
     646 
     647    ###print 'len l1:',len(l1) 
     648    tabs.doTable(m,l1,ex,pmax,cc, mlab=mlab) 
    628649       
    629650  def volByMip( self, mip, pmax=2, retainRedundantRank=False, intersection=False, adsCount=False, exptid=None): 
     
    709730  def __init__(self,args): 
    710731    self.adict = {} 
    711     self.knownargs = {'-m':('m',True), '-p':('p',True), '-e':('e',True), '-t':('t',True), '-h':('h',False), '--printLinesMax':('plm',True), '--printVars':('vars',False), '--intersection':('intersection',False),'--count':('count',False)}  
     732    self.knownargs = {'-m':('m',True), '-p':('p',True), '-e':('e',True), '-t':('t',True), \ 
     733                      '-h':('h',False), '--printLinesMax':('plm',True), \ 
     734                      '--printVars':('vars',False), '--intersection':('intersection',False), \ 
     735                      '--count':('count',False), \ 
     736                      '--xlsDir':('xlsdir',True), '--xls':('xls',False) \ 
     737                       }  
    712738    aa = args[:] 
    713739    while len(aa) > 0: 
     
    745771      self.dq = None 
    746772 
    747     sc = dreqQuery( dq=self.dq ) 
     773    self.sc = dreqQuery( dq=self.dq ) 
    748774 
    749775    ok = True 
    750776    for i in self.adict['m']: 
    751         if i not in sc.mips: 
     777        if i not in self.sc.mips: 
    752778          ok = False 
    753779          mlg.prnt ( 'NOT FOUND: %s' % i ) 
    754780 
    755781    eid = None 
     782    ex = None 
    756783    if self.adict.has_key('e'): 
     784      ex = self.adict['e'] 
    757785      for i in self.dq.coll['experiment'].items: 
    758786        if i.label == self.adict['e']: 
    759787          eid = i.uid 
    760788      assert eid != None, 'Experiment %s not found' % self.adict['e'] 
    761     print ( 'eid=%s' % eid ) 
    762     assert ok,'Available MIPs: %s' % str(sc.mips) 
     789    ##print ( 'eid=%s' % eid ) 
     790    assert ok,'Available MIPs: %s' % str(self.sc.mips) 
    763791    adsCount = self.adict.get( 'count', False ) 
    764792 
    765793    tierMax = self.adict.get( 't', 1 ) 
    766     sc.setTierMax(  tierMax ) 
     794    self.sc.setTierMax(  tierMax ) 
    767795    pmax = self.adict.get( 'p', 1 ) 
    768     v0 = sc.volByMip( self.adict['m'], pmax=pmax, intersection=self.intersection, adsCount=adsCount, exptid=eid ) 
     796    self.getVolByMip(pmax,eid,adsCount) 
     797    makeXls = self.adict.get( 'xls', False ) 
     798    if makeXls: 
     799      mips = self.adict['m'] 
     800      odir = self.adict.get( 'xlsdir', 'xls' ) 
     801      print 'odir:::::::::: ',odir 
     802      ##m = list( mips )[0] 
     803      self.sc.xlsByMipExpt(mips,eid,pmax,odir=odir) 
     804  
     805 
     806  def getVolByMip(self,pmax,eid,adsCount): 
     807 
     808    v0 = self.sc.volByMip( self.adict['m'], pmax=pmax, intersection=self.intersection, adsCount=adsCount, exptid=eid ) 
    769809    #mlg.prnt ( '%7.2fTb' % (v0*2.*1.e-12) ) 
    770810    mlg.prnt ( '%s' % v0 ) 
    771811    cc = collections.defaultdict( int ) 
    772     for e in sc.volByE: 
    773       for v in sc.volByE[e][2]: 
    774           cc[v] += sc.volByE[e][2][v] 
     812    for e in self.sc.volByE: 
     813      for v in self.sc.volByE[e][2]: 
     814          cc[v] += self.sc.volByE[e][2][v] 
    775815    x = 0 
    776816    for v in cc: 
Note: See TracChangeset for help on using the changeset viewer.