Ignore:
Timestamp:
28/04/17 13:19:55 (3 years ago)
Author:
mjuckes
Message:

new ingest stream

File:
1 edited

Legend:

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

    r980 r989  
    33import xlsxwriter 
    44 
    5 dq = dreq.loadDreq(manifest=None) 
     5def extend(a,x): 
     6  if len( a.intersection( set( x) ) ) > 0: 
     7    print 'ERROR: intersection in class lists: ',a.intersection( set( x) )  
     8  return a.union( set( x ) ) 
     9 
     10 
     11dq = dreq.loadDreq() 
    612 
    713##cell_format = wb.add_format({'text_wrap': True, 'font_size': 14, 'font_color':'#0000ff', 'bold':1, 'fg_color':'#aaaacc'}) 
    8 def dumpSect(key,tags,fn): 
     14def dumpSect(key,tags,fn, flagwith=None): 
    915    wb = xlsxwriter.Workbook('exports/%s.xlsx' % fn) 
    1016    s = wb.add_worksheet(name='data') 
    11     ir = 0 
     17    s.write( 0,0, key ) 
     18    ir = 3 
     19    for k in range( len(tags) ): 
     20      s.write( ir, k+1, tags[k] ) 
     21    ir += 1 
     22    print 'Starting %s: %s' % (key,str(tags)) 
    1223    for i in dq.coll[key].items: 
     24      if flagwith != None: 
     25        for k in flagwith.keys(): 
     26           if i.label in flagwith[k]: 
     27             s.write( ir, 0, k ) 
    1328      for k in range( len(tags) ): 
    14         if i.__class__.__dict__[ tags[k] ].type == 'aa:st__stringList': 
    15           val = ' '.join( i.__dict__.get(tags[k],('',)) ) 
     29        ttype =  i.__class__.__dict__[ tags[k] ].type 
     30        v0 = i.__dict__.get(tags[k],'') 
     31        if ttype == 'aa:st__stringList': 
     32          val = ' '.join( v0 ) 
     33        elif ttype in [u'aa:st__floatList', u'aa:st__floatListMonInc', u'aa:st__integerList', u'aa:st__integerListMonInc']: 
     34          val = ' '.join( [str(x) for x in v0] ) 
     35        elif ttype == 'aa:st__stringList': 
     36          val = ' '.join( v0 ) 
    1637        else: 
    17           val = str( i.__dict__.get(tags[k],'') ) 
     38          val = str( v0 ) 
    1839        s.write( ir, k+1, val ) 
    1940      ir += 1 
    2041    wb.close() 
    2142 
    22 key='requestVar' 
    23 fn = key 
    24 tags = [u'label', u'mip', u'priority', u'title', u'uid', u'vgid', u'vid'] 
    25 dumpSect( key, tags, fn ) 
     43def expAll(dq,exports): 
     44  for k in dq.coll: 
     45    if k not in exports: 
     46      c0 = sorted( dq.coll[k].attDefn.keys() ) 
     47      c1 = ['label','title','uid'] 
     48      assert all( [x in c0 for x in c1] ), 'Missing keys: %s' % k 
     49      for c in c0: 
     50        if c not in c1: 
     51          c1.append(c) 
     52      exports[k] = c1[:] 
     53  return exports 
    2654 
    27 key='var' 
    28 fn = key 
    29 tags = [u'description', u'label', u'procComment', u'procnote', u'prov', u'provmip', u'sn', u'title', u'uid', u'unid', u'units'] 
    30 dumpSect( key, tags, fn ) 
     55def expDef(): 
     56  exports = {} 
    3157 
    32 key='CMORvar' 
    33 fn = key 
    34 tags = [u'label', u'mipTable',u'description', u'frequency',u'defaultPriority', u'deflate', u'deflate_level', u'mipTableSection', u'modeling_realm', u'mtid', u'positive', u'processing', u'prov', u'provNote', u'rowIndex', u'shuffle', u'stid', u'subGroup', u'title', u'type', u'uid', u'vid'] 
    35 dumpSect( key, tags, fn ) 
     58  exports['requestVar'] = [u'label', u'mip', u'priority', u'title', u'uid', u'vgid', u'vid'] 
     59  exports['temporalShape'] = [u'label', u'title', u'dimensions', u'uid', u'dimid'] 
     60  exports['units'] = [u'label', u'text', u'title', u'group', u'uid'] 
     61  exports['cellMethods'] = [u'label', u'title', u'cell_methods', u'uid', u'description'] 
     62  exports['standardname'] = [u'label', u'title', u'uid', u'description', u'units'] 
     63  exports['mip'] = [u'label', u'title', u'uid', u'url'] 
     64  exports['grids'] = [u'label', u'title',u'altLabel',u'standardName', u'axis', u'bounds', u'boundsRequested', u'boundsValues', u'coords', u'description', u'direction', u'isGrid', u'isIndex', u'positive', u'requested', u'tables', u'tolRequested', u'type', u'uid', u'units', u'valid_max', u'valid_min', u'value'] 
     65 
     66  exports['var'] = [u'description', u'label', u'procComment', u'procnote', u'prov', u'provmip', u'sn', u'title', u'uid', u'unid', u'units'] 
     67  exports['miptable'] = [u'label', u'title', u'altLabel', u'comment', u'description', u'frequency', u'uid'] 
     68 
     69  exports['CMORvar'] = [u'label', u'mipTable',u'description', u'frequency',u'defaultPriority', u'deflate', u'deflate_level', u'mipTableSection', u'modeling_realm', u'mtid', u'positive', u'processing', u'prov', u'provNote', u'rowIndex', u'shuffle', u'stid', u'subGroup', u'title', u'type', u'uid', u'vid'] 
     70 
     71  exports['structure'] = [u'label', u'title', u'description', u'cids', u'procNote', u'uid', u'odims', u'flag_meanings', u'prov', u'tmid', u'cmid', u'flag_values', u'cell_methods', u'dids', u'coords', u'spid', u'cell_measures'] 
     72  all = set() 
     73  oneleva = ['str-h053', 'str-345', 'str-d32', 'str-209', 'str-063', 'str-116', 'str-295', 'str-043', 'str-d30', 'str-d78', 'str-122', 'str-181', 'str-d29'] 
     74  all = all.union( set( oneleva ) ) 
     75  onelevb = ['str-b114', 'str-376', 'str-d65', 'str-b121', 'str-013', 'str-d54', 'str-d53', 'str-d50'] 
     76  all = all.union( set( onelevb ) ) 
     77  atype = ['str-h031', 'str-h061', 'str-h025', 'str-h036', 'str-h038', 'str-h068', 'str-h039', 'str-h037', 'str-h033', 'str-h071', 'str-h034', 'str-h027', 'str-h032', 'str-h035', 'str-h043', 'str-h022', 'str-h020', 'str-h028', 'str-h060', 'str-h065', 'str-h066'] 
     78  all = all.union( set( atype ) ) 
     79 
     80  tmglsl = ['str-a014', 'str-b107', 'str-387', 'str-b222', 'str-h023', 'str-041', 'str-x212', 'str-h042', 'str-h044', 'str-h046', 'str-d64', 'str-013', 'str-h064', 'str-447', 'str-d67', 'str-a049', 'str-a423', 'str-b220'] 
     81 
     82  glsl = ['str-348', 'str-a014', 'str-b107', 'str-387', 'str-b222', 'str-h023', 'str-041', 'str-d11', 'str-d44', 'str-x212', 'str-h042', 'str-h044', 'str-h046', 'str-a062', 'str-d64', 'str-013', 'str-h064', 'str-447', 'str-d67', 'str-a049', 'str-a423', 'str-b220', 'str-h041', 'str-340', 'str-054'] 
     83  all = extend( all, glsl ) 
     84 
     85  h2mcm = ['str-189', 'str-130', 'str-082', 'str-083', 'str-d54'] 
     86  all = extend( all, h2mcm ) 
     87 
     88  tmglslo = ['str-d02', 'str-d04', 'str-h049', 'str-a043', 'str-147', 'str-037'] 
     89  glslo = ['str-d39', 'str-d02', 'str-d04', 'str-h049', 'str-a043', 'str-147', 'str-a019', 'str-037'] 
     90  all = extend( all, glslo ) 
     91 
     92  tmgm = ['str-032', 'str-x188', 'str-x185', 'str-b193', 'str-x184', 'str-135', 'str-106'] 
     93  gm = ['str-032', 'str-x188', 'str-x185', 'str-b193', 'str-x184', 'str-135', 'str-a449', 'str-106'] 
     94  all = extend( all, gm ) 
     95 
     96  xyza = ['str-a023', 'str-245', 'str-210', 'str-b192', 'str-287', 'str-055', 'str-078'] 
     97  xyzb = ['str-318', 'str-311', 'str-018', 'str-296', 'str-268', 'str-010'] 
     98  xyzc = ['str-a090', 'str-a063', 'str-a468'] 
     99  xyzd = ['str-b120', 'str-d49'] 
     100  xyz = xyza + xyzb + xyzc + xyzd 
     101  all = extend( all, xyz ) 
     102 
     103  print 'LEN ALL: ',len(all) 
     104 
     105  flagdict = {'structure':{'class::oneLevel':set( oneleva + onelevb ), 
     106                           'class::areaType': set( atype ), 
     107                           'class::tmglsl': set(glsl), 
     108                           'class::h2mcm': set(h2mcm), 
     109                           'class::gm': set(gm), 
     110                           'class::xyz': set(xyz), 
     111                           'class::tmglslo': set( glslo) } 
     112                } 
     113  return exports, flagdict 
     114 
     115exports, flagdict = expDef() 
     116exports = expAll(dq,exports) 
     117 
     118for key in exports.keys(): 
     119  fn = key 
     120  if key in flagdict: 
     121    dumpSect( key, exports[key], fn, flagwith=flagdict[key] ) 
     122  else: 
     123    dumpSect( key, exports[key], fn ) 
Note: See TracChangeset for help on using the changeset viewer.