Ignore:
Timestamp:
24/11/16 16:09:19 (3 years ago)
Author:
mjuckes
Message:

Updated setup for tag 01.beta.43

File:
1 edited

Legend:

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

    r872 r880  
    4747##NT_txtopts = collections.namedtuple( 'txtopts', ['mode'] ) 
    4848 
    49 def setMlab( m ): 
     49setMlab = misc_utils.setMlab 
     50def setMlab_xx( m ): 
    5051      if type(m) == type(''): 
    5152        if m == '_all_': 
     
    121122     if self.xls: 
    122123        for i in range(len(orec)): 
    123            self.sht.write( j,i, orec[i], self.cell_format ) 
     124           if str( type(orec[i]) ) == "<class 'dreq.dreqItem_CoreAttributes'>": 
     125             self.sht.write( j,i, '', self.cell_format ) 
     126           else: 
     127             ##print i, orec[i], type( orec[i] ) 
     128             self.sht.write( j,i, orec[i], self.cell_format ) 
    124129 
    125130     if self.txt: 
     
    155160        self.oo.write( '\n' ) 
    156161 
    157   def cmvtab(self,t,addMips,mode='c'): 
     162  def cmvtab(self,t,addMips,mode='c',tslice=False,byFreqRealm=False): 
    158163      if self.xls: 
    159164        self.sht = self.newSheet( t ) 
     
    174179      else: 
    175180        hrec = ['','Long name', 'units', 'description', '', 'Variable Name', 'CF Standard Name', '','', 'cell_methods', 'valid_min', 'valid_max', 'ok_min_mean_abs', 'ok_max_mean_abs', 'positive', 'type', 'dimensions', 'CMOR name', 'modeling_realm', 'frequency', 'cell_measures', 'flag_values', 'flag_meanings', 'prov', 'provNote','rowIndex','UID'] 
    176  
    177181      if addMips: 
    178182        hrec.append( 'MIPs (requesting)' ) 
    179183        hrec.append( 'MIPs (by experiment)' ) 
     184 
     185      if byFreqRealm: 
     186        hrec = ['Table',] + hrec 
     187        hcmt = ['CMOR table',] + hcmt 
     188      if tslice: 
     189          hrec += ['Number of Years','Slice Type','Years'] 
     190          hcmt += ['','',''] 
    180191 
    181192      if self.xls: 
     
    296307       
    297308class makeTab(object): 
    298   def __init__(self, dq, subset=None, mcfgNote=None, dest='tables/test', skipped=set(), collected=None,xls=True,txt=False,txtOpts=None,byFreqRealm=False): 
     309  def __init__(self, dq, subset=None, mcfgNote=None, dest='tables/test', skipped=set(), collected=None,xls=True,txt=False,txtOpts=None,byFreqRealm=False, tslice=None): 
    299310    """txtOpts: gives option to list MIP variables instead of CMOR variables""" 
    300311    if subset != None: 
     
    302313    else: 
    303314      cmv = dq.coll['CMORvar'].items 
     315    self.byFreqRealm=byFreqRealm 
    304316 
    305317    ixt = collections.defaultdict(list) 
    306318    if not byFreqRealm: 
    307       ##if oldpython: 
    308         ##tables = sorted( list( set( [i.mipTable for i in cmv] ) ), cmp=cmpAnnex ) 
    309       ##else: 
    310         ##tables = sorted( list( set( [i.mipTable for i in cmv] ) ), key=kAnnex ) 
    311319      for i in cmv: 
    312320        ixt[i.mipTable].append( i.uid ) 
     
    350358        if withoo: 
    351359          oo = open( 'tables/test_%s.csv' % t, 'w' ) 
    352         wb.cmvtab(t,addMips,mode='c') 
     360        wb.cmvtab(t,addMips,mode='c',tslice=tslice != None,byFreqRealm=byFreqRealm) 
    353361 
    354362        j = 0 
     
    387395            else: 
    388396              orec = ['',cv.title, cv.units, v.description, '', cv.label, cv.sn, '','', strc.cell_methods, v.valid_min, v.valid_max, v.ok_min_mean_abs, v.ok_max_mean_abs, v.positive, v.type, dims, v.label, v.modeling_realm, v.frequency, strc.cell_measures, strc.flag_values, strc.flag_meanings,v.prov,v.provNote,str(v.rowIndex),cv.uid] 
     397 
     398            if byFreqRealm: 
     399              orec = [v.mipTable,] + orec 
     400 
    389401            if addMips: 
    390402              thismips = c.chkCmv( v.uid ) 
     
    393405              orec.append( ','.join( sorted( list( thismips2) ) ) ) 
    394406 
     407            if tslice != None: 
     408              if v.uid not in tslice: 
     409                orec += ['All', '',''] 
     410              else: 
     411                tslab,tsmode,a,b = tslice[v.uid] 
     412                if tsmode[:4] in ['simp','bran']: 
     413                   nys = b + 1 - a 
     414                   ys = range(a,b+1) 
     415                   orec += [str(nys), '',str(ys)] 
     416                elif tsmode[:4] in ['YEAR']: 
     417                   nys = a 
     418                   ys = b 
     419                   orec += [str(nys), '',str(ys)] 
     420                else: 
     421                   orec += ['slice', tslab,''] 
     422                 
    395423            if withoo: 
    396424              oo.write( '\t'.join(orec ) + '\n' ) 
Note: See TracChangeset for help on using the changeset viewer.