Ignore:
Timestamp:
15/02/17 12:02:45 (3 years ago)
Author:
mjuckes
Message:

updates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CMIP6dreqbuild/trunk/src/framework/ifiles.py

    r903 r947  
    3131    self.f = '../workbook/inputs/structRef.xls' 
    3232    self.ih = ['Label', 'Title', 'Spatial shape', 'Other dims', 'coords', 'cell methods', 'cell measures', 'flag meanings', 'flag values', 'Spatial shape (title)', 'Spatial dimensions'] 
    33     ii = open( '../workbook/inputs/strUidMap.txt' ) 
    34     self.uByLab = {} 
     33 
     34    old = False 
     35    if old: 
     36      ii = open( '../workbook/inputs/strUidMap.txt' ) 
     37      self.uByLab = {} 
     38      for l in ii.readlines(): 
     39        l,u = l.strip().split() 
     40        self.uByLab[ l ] = u 
     41      ii.close() 
     42    else: 
     43      self.refStr() 
    3544    self.ldsp = loadSpatial() 
    3645    self.summary = {} 
    37     for l in ii.readlines(): 
    38       l,u = l.strip().split() 
    39       self.uByLab[ l ] = u 
    40     ii.close() 
    4146    ii = open( 'strRef2.txt' ) 
    4247    self.labs = set() 
     
    5964 
    6065 
     66  def refStr(self): 
     67    wb = workbook( '../workbook/inputs/refStructure.xlsx' ) 
     68    sht = wb.book.sheet_by_name( 's1' ) 
     69    self.uByLab = {} 
     70    for i in range(1,sht.nrows): 
     71      r = [x.value for x in sht.row(i)] 
     72      if r[0][0] != '#': 
     73        uid = str( r[-1] ) 
     74        lab = r[2] 
     75        self.uByLab[lab] = uid 
     76    ii = open( '../workbook/inputs/strUidMap.txt' ) 
     77    for l in ii.readlines(): 
     78      l,u = l.strip().split() 
     79      if l not in self.uByLab: 
     80        self.uByLab[ l ] = u 
     81      ii.close() 
     82 
     83 
     84 
    6185  def read(self): 
    6286    self.map = dict() 
     
    6690      if sn != '__mods__': 
    6791       sht = wb.book.sheet_by_name( sn ) 
     92       nf = 0 
    6893       for i in range( sht.nrows ): 
    6994         r = [x.value for x in sht.row(i)] 
    7095         print '>>> ',r 
    71          if r[1] != 'Label': 
     96         if r[1] != 'Label' and not( len(r[0]) > 0 and r[0][0] == '#' ): 
     97           if r[1] not in self.uByLab: 
     98             nf += 1 
     99             print 'LABEL NOT FOUND: ',r 
     100 
     101       assert nf == 0,'nf= %s [%s]' % (nf,sn) 
     102       for i in range( sht.nrows ): 
     103         r = [x.value for x in sht.row(i)] 
     104         if r[1] != 'Label' and not( len(r[0]) > 0 and r[0][0] == '#' ): 
     105           print '>>> ',r 
    72106           u = self.uByLab[ r[1] ] 
    73107           if u in self.summary: 
     
    104138    sh['__cols__'] = ['tmid', 'spid', 'odims', 'coords', 'cell_methods', 'cell_measures', 'flag_meanings', 'uid','label','title','description','flag_values', 'time_label'] 
    105139    s1 = set() 
     140    ubl = dict() 
    106141    for k in self.map: 
    107142      u = self.map[k][0] 
    108143      sh[u] = list(k) + list(self.map[k]) 
     144      u,l = sh[u][7:9] 
     145      ubl[l] = u 
    109146      rr = sh[u][:7] 
    110147      rr[0] = self.map[k][-1] 
     
    115152      if tt[5] == '@OPT': 
    116153         print tt, u, sh[u] 
     154    sh.close() 
     155    sh = shelve.open( 'inSh/structRef02', 'n' ) 
     156    sh['__info__'] = 'Created by ifiles.struct .. label to uid' 
     157    sh['__cols__'] = ['uid','label'] 
     158    for l in self.uByLab: 
     159      if l not in ubl: 
     160        sh[str(l)] = str( self.uByLab[l] ) 
     161        print 'INFO.structure.50080: adding uid-by-lab record: %s  %s' % (self.uByLab[l],l) 
    117162    sh.close() 
    118163 
Note: See TracChangeset for help on using the changeset viewer.