Ignore:
Timestamp:
12/02/16 16:24:04 (5 years ago)
Author:
mjuckes
Message:

final adjustments

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CMIP6dreqbuild/trunk/src/workbook/importWbMods.py

    r546 r600  
    1616      self.records.append( nt__mapr._make(  rr ) ) 
    1717    self.ss = collections.defaultdict( list ) 
     18    self.ee = {} 
    1819    for r in self.records: 
    1920      self.ss[r.vid1].append( r ) 
     21      self.ee[r.lab1] = r.lab2 
    2022 
    2123class loadVars(object): 
    22   def __init__(self,opt=1): 
     24  def __init__(self,opt=1,map01=None): 
    2325    if opt == 0: 
    2426      wb = workbook( 'inputs/var.xls' ) 
    2527    else: 
    2628      wb = workbook( 'inputs/vars_20151201.xls' ) 
    27     #x = ['label', 'title', 'description', 'procComment', 'procnote', 'prov', 'provmip', 'sn', 'units', 'uid','defaultp','tags','alias'] 
     29    #x = ['label', 'title', 'description', 'procComment', 'procnote', 'prov', 'provmip', 'sn', 'units', 'uid','defaultp','replaced_by'] 
    2830    #nt_var = collections.namedtuple( 'var', x ) 
     31 
     32    self.mapx1 = {} 
     33    ii = open( 'inputs/simip_rename.csv', 'r' ) 
     34    for l in ii.readlines(): 
     35      bits = string.split( string.strip( l ), '\t' ) 
     36      if bits[1] != '*': 
     37        print 'ERROR: unexpected line in inputs/simip_rename.csv: ',l 
     38      else: 
     39        self.mapx1[bits[4]]  = bits[2] 
     40    ii.close() 
    2941 
    3042    self.d1 = {} 
    3143    self.c1 = collections.defaultdict(list) 
     44    d2 = {} 
    3245    s1 = wb.book.sheet_by_name(u'var') 
    3346    for i in range(1,s1.nrows): 
     
    4356        self.d1[uid] = [str(x) for x in rr] 
    4457        self.c1[rr[0]].append( uid ) 
     58        if string.strip( rr[11] ) != '': 
     59          d2[uid] = (string.strip(rr[11]),rr[0] ) 
    4560      except: 
    4661        print rr 
    4762        raise 
     63 
     64    mm = [] 
     65    mmm = [] 
     66 
     67    self.vmap= {} 
     68    for k in d2: 
     69      if d2[k][0] not in self.c1: 
     70        mm.append( (d2[k],k) ) 
     71      elif len( self.c1[ d2[k][0] ] ) > 1: 
     72        mmm.append( (k,  self.c1[ d2[k][0] ] ) ) 
     73      else: 
     74        self.vmap[k] = self.c1[ d2[k][0] ][0] 
     75 
     76 
     77    if map01 != None: 
     78      for k in map01: 
     79    ##for k in self.mapx1: 
     80        u1 = None 
     81        u2 = None 
     82        if len( self.c1[k] ) == 1: 
     83          u1  =  self.c1[k][0] 
     84        else: 
     85          print 'ERROR: ambigous variable label: %s' % k 
     86        k2 = map01[k] 
     87        if len( self.c1[k2] ) == 1: 
     88          u2  =  self.c1[k2][0] 
     89        else: 
     90          print 'ERROR: ambigous variable label: %s' % k2 
     91        if None not in [u1,u2]: 
     92           self.vmap[u1] = u2 
     93           rr = self.d1[u1] 
     94           if rr[4] == '': 
     95             rr[4] = 'OBSOLETE' 
     96           else: 
     97             rr[4] += ' OBSOLETE' 
     98           self.d1[u1] = rr 
     99    assert len( mm ) == 0, 'Mappings not all valid: %s' % str(mm) 
     100    assert len( mmm ) == 0, 'Mappings not all unambiguous: %s' % str(mmm) 
    48101     
    49102class loadFixes(object): 
     
    98151  def __init__(self): 
    99152    self.fx = loadFixes() 
    100     self.vars = loadVars() 
    101153    self.ls = loadSpatial() 
    102154    self.cm = loadCmorDims() 
    103155    self.mmsi = loadMipMaps( 'SIMIP' ) 
     156    self.vars = loadVars(map01=self.mmsi.ee) 
Note: See TracChangeset for help on using the changeset viewer.