Changeset 215


Ignore:
Timestamp:
08/09/14 16:22:23 (5 years ago)
Author:
mjuckes
Message:

some comp_mip updates

Location:
CCCC/trunk/ceda_cc
Files:
1 added
2 edited
10 moved

Legend:

Unmodified
Added
Removed
  • CCCC/trunk/ceda_cc/comp_mip.py

    r214 r215  
    1919cordex_dkrz_pat = 'cordex_dkrz_oct/CORDEX_variables_requirement_table_%s.csv' 
    2020re_sn = re.compile( 'entry id="(.*)"' ) 
     21re_snax = re.compile( '</alias>' ) 
     22re_snar = re.compile( '<entry_id>(.*)<' ) 
    2123re_sna = re.compile( 'alias id="(.*)"' ) 
    2224##alias id="atmosphere_water_vapor_content" 
     
    2426def gen_sn_list( pathn ): 
    2527  assert os.path.isfile( pathn ), '%s not found ' % pathn 
     28  inAlias = False 
    2629  snl = [] 
    2730  snla = [] 
     31  aliasses = {} 
    2832  for l in open(pathn).readlines(): 
    2933    m = re_sn.findall(l ) 
     
    3337    m = re_sna.findall(l ) 
    3438    if len(m) > 0: 
     39      inAlias = True 
    3540      for i in m: 
    3641        snla.append( i ) 
    37   return (snl,snla) 
     42    if inAlias: 
     43      m = re_snax.findall(l ) 
     44      if len(m) > 0: 
     45        inAlias = False 
     46      else: 
     47        m = re_snar.findall(l ) 
     48        if len(m) > 0: 
     49          aliasses[snla[-1]] = m[0] 
     50          assert len(m) == 1, 'Unexpected length of results, %s [%s]' % (str(m),l) 
     51  ##<alias id="station_wmo_id"> 
     52    ##<entry_id>platform_id</entry_id> 
     53  ##</alias> 
     54  return (snl,snla,aliasses) 
    3855 
    3956def tlist_to_dict( ll ): 
     
    128145                v1 = map( lambda x: e1[k][1][x], nmm ) 
    129146                v2 = map( lambda x: e2[k][1][x], nmm ) 
    130                 print 'ERROR[4A]: Anomaly between MIP tables: %s:: %s -- %s -- %s {%s} ' % (k, str(nmm), str(v1), str(v2), tag ) 
     147                ##if k == 'clivi': 
     148                  ##print k, nmm, v1, v2 
     149                  ##print snaliasses.keys() 
     150                  ##print snaliasses.get(v1[0],'xxx') 
     151                  ##print snaliasses.get(v2[0],'xxx') 
     152                  ##raise 
     153                weakmatch = False 
     154                if nmm[0] == 'standard_name': 
     155                  if snaliasses.get(v1[0],'xxx') == v2[0] or snaliasses.get(v2[0],'xxx') == v1[0]: 
     156                    weakmatch = True 
     157                if weakmatch: 
     158                  print 'WARNING[4A*]: Anomaly between MIP tables: %s:: %s -- %s -- %s {%s} ' % (k, str(nmm), str(v1), str(v2), tag ) 
     159                else: 
     160                  print 'ERROR[4A]: Anomaly between MIP tables: %s:: %s -- %s -- %s {%s} ' % (k, str(nmm), str(v1), str(v2), tag ) 
    131161          else: 
    132162             if not suppress4B: 
     
    157187base=CC_CONFIG_DIR 
    158188print base 
    159 snl,snla = gen_sn_list( os.path.join(base, cfsntab) ) 
     189snl,snla, snaliasses = gen_sn_list( os.path.join(base, cfsntab) ) 
    160190print 'Len snl = %s' % len(snl) 
    161191 
  • CCCC/trunk/ceda_cc/extractMipInfo.py

    r180 r215  
    9898snsubber = snsub() 
    9999 
    100 mips = ( NT_mip( 'cmip5','cmip5_vocabs/mip/', 'CMIP5_*' ), ) 
     100mips = ( NT_mip( 'cmip5','cmip5_vocabs/mip/', 'CMIP5_*' ), 
     101         NT_mip( 'ccmi', 'ccmi_vocabs/mip/', 'CCMI1_*')  ) 
    101102 
    102103cmip5_ignore = ['pfull','phalf','depth','depth_c','eta','nsigma','vertices_latitude','vertices_longitude','ztop','ptop','p0','z1','z2','href','k_c','a','a_bnds','ap','ap_bnds','b','b_bnds','sigma','sigma_bnds','zlev','zlev_bnds','zfull','zhalf'] 
    103104 
    104105vl0 = [] 
     106tl = [] 
     107td = {} 
     108 
    105109for mip in mips: 
    106110 ## dl = glob.glob( '%s%s' % (mip.dir,mip.pattern) ) 
    107111  dl = glob.glob( '%s/%s%s' % (CC_CONFIG_DIR, mip.dir,mip.pattern) ) 
    108112  dl.sort() 
    109   tl = [] 
    110   td = {} 
    111113  for d in dl: 
    112114    tab = string.split( d, '/')[-1] 
     
    211213          else: 
    212214            vd2[v] = (1, av) 
    213   else: 
     215  elif len(l) == 1: 
    214216        tab = vdict[v][0] 
    215217        a = td[tab][v][1].get('standard_name','__ABSENT__') 
     
    221223          vd2[v] = (1, a) 
    222224        ##print 'MULTIPLE VALUES: ',v,att,av 
     225  else: 
     226   print 'Zero length element: %s' % v 
    223227    
    224228 
Note: See TracChangeset for help on using the changeset viewer.