Changeset 215
- Timestamp:
- 08/09/14 16:22:23 (6 years ago)
- 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 19 19 cordex_dkrz_pat = 'cordex_dkrz_oct/CORDEX_variables_requirement_table_%s.csv' 20 20 re_sn = re.compile( 'entry id="(.*)"' ) 21 re_snax = re.compile( '</alias>' ) 22 re_snar = re.compile( '<entry_id>(.*)<' ) 21 23 re_sna = re.compile( 'alias id="(.*)"' ) 22 24 ##alias id="atmosphere_water_vapor_content" … … 24 26 def gen_sn_list( pathn ): 25 27 assert os.path.isfile( pathn ), '%s not found ' % pathn 28 inAlias = False 26 29 snl = [] 27 30 snla = [] 31 aliasses = {} 28 32 for l in open(pathn).readlines(): 29 33 m = re_sn.findall(l ) … … 33 37 m = re_sna.findall(l ) 34 38 if len(m) > 0: 39 inAlias = True 35 40 for i in m: 36 41 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) 38 55 39 56 def tlist_to_dict( ll ): … … 128 145 v1 = map( lambda x: e1[k][1][x], nmm ) 129 146 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 ) 131 161 else: 132 162 if not suppress4B: … … 157 187 base=CC_CONFIG_DIR 158 188 print base 159 snl,snla = gen_sn_list( os.path.join(base, cfsntab) )189 snl,snla, snaliasses = gen_sn_list( os.path.join(base, cfsntab) ) 160 190 print 'Len snl = %s' % len(snl) 161 191 -
CCCC/trunk/ceda_cc/extractMipInfo.py
r180 r215 98 98 snsubber = snsub() 99 99 100 mips = ( NT_mip( 'cmip5','cmip5_vocabs/mip/', 'CMIP5_*' ), ) 100 mips = ( NT_mip( 'cmip5','cmip5_vocabs/mip/', 'CMIP5_*' ), 101 NT_mip( 'ccmi', 'ccmi_vocabs/mip/', 'CCMI1_*') ) 101 102 102 103 cmip5_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'] 103 104 104 105 vl0 = [] 106 tl = [] 107 td = {} 108 105 109 for mip in mips: 106 110 ## dl = glob.glob( '%s%s' % (mip.dir,mip.pattern) ) 107 111 dl = glob.glob( '%s/%s%s' % (CC_CONFIG_DIR, mip.dir,mip.pattern) ) 108 112 dl.sort() 109 tl = []110 td = {}111 113 for d in dl: 112 114 tab = string.split( d, '/')[-1] … … 211 213 else: 212 214 vd2[v] = (1, av) 213 el se:215 elif len(l) == 1: 214 216 tab = vdict[v][0] 215 217 a = td[tab][v][1].get('standard_name','__ABSENT__') … … 221 223 vd2[v] = (1, a) 222 224 ##print 'MULTIPLE VALUES: ',v,att,av 225 else: 226 print 'Zero length element: %s' % v 223 227 224 228
Note: See TracChangeset
for help on using the changeset viewer.