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/workbook/isd3b.py

    r939 r947  
    3030 
    3131#up: 
    32 varPositive = {'rlus':'up', 'rlut':'up', 'rlutcs':'up', 'hfls':'up', 'hfss':'up', 'mcu':'up', 'rsus':'up', 'rsut':'up', 'rsutcs':'up', 'rlds':'down', 'rsds':'down' } 
     32varPositive = {'rlus':'up', 'rlut':'up', 'rlutcs':'up', 'hfls':'up', 'hfss':'up', 'mcu':'up', \ 
     33               'rsus':'up', 'rsut':'up', 'rsutcs':'up', 'rlds':'down', 'rsds':'down', \ 
     34                'fg13co2':'down', 'expc':'down', 'fg14co2abio':'down', 'fgco2':'down', 'fgco2nat':'down', 'fgco2abio':'down' } 
    3335 
    3436refMips =  ['AerChemMIP', 'C4MIP', 'CFMIP', 'DAMIP', 'DCPP', 'FAFMIP', 'GeoMIP', 'GMMIP', 'HighResMIP', 'ISMIP6', 'LS3MIP', 'LUMIP', 'OMIP', 'PMIP', 'RFMIP', 'ScenarioMIP', 'VolMIP', 'CORDEX', 'DynVar', 'SIMIP', 'VIACSAB'] 
     
    114116                'landIce land':['snc'], 
    115117               'landIce':['icem', 'sftflf', 'sftgrf','acabf','snicefreez', 'snicem', 'hfgeoubed', 'lithk', 'topg','areacelli','lialb', 'libmassbffl', 'libmassbfgr', 'licalvf', 'lifmassbf', 'litempbotfl', 'litempbotgr', 'litemptop', 'mrroIs','strbasemag', 'topg', 'xvelbase', 'xvelmean', 'xvelsurf', 'yvelbase', 'yvelmean', 'yvelsurf', 'zvelbase', 'zvelsurf','snmIs','sncIs','tsnIs','sbl'], 
    116                'atmos':['prra','prsn','prrc','sbl','tas','prCrop', 'tasmaxCrop', 'tasminCrop','hfls', 'hfss','rlds', 'rlus', 'rsds', 'rsus'] } 
     118               'atmos':['prra','prsn','prrc','sbl','tas','prCrop', 'tasmaxCrop', 'tasminCrop','hfls', 'hfss','rlds', 'rlus', 
     119                        'rv850','zg1000', 
     120                        'rsds', 'rsus'] } 
    117121varRealmMapsInv = {} 
    118122for k in varRealmMaps: 
     
    148152                   'Oclim':'monClim', \ 
    149153                   'cfMon':'mon', 'emMonZ':'mon', \ 
     154                   '6hrLev_aer':'6hr', \ 
    150155                   '3hr':'3hr', 'cfOff':'subhr', 'OMIP-Omon':'mon', '6hrLev':'6hr', 'fx':'fx', 'OMIP-Oyr':'yr', 'cfDay':'day', 'Lmon':'day', \ 
    151156                  u'cf3hr':'3hr', u'Amon':'mon', u'aero':'mon', u'aero_3d':'mon', u'6hrPlev':'6hr', u'aero_oth':'mon', \ 
     
    819824                if tt.out_name == 'msftmyz': 
    820825                       print 'INFO.msftmyz.00002: ',self.cmv[-1] 
     826                if 'fx' in tt.mipTable.lower() and 'time' in tt.dimensions: 
     827                   print 'SEVERE.fxtime.00001: ',tt.__dict__ 
    821828                  
    822829                ds2.add( (tt.dimensions,tt.cell_methods,tt.cell_measures,tt.flag_values, tt.flag_meanings) ) 
     830                badcm = 'time1' in tt.dimensions and 'time: mean' in tt.cell_methods 
     831                assert not badcm, 'BAD CM: %s' % str( tt.__dict__) 
    823832                ovuu[tt.vid].add( tt.modeling_realm ) 
    824833                ovll[tt.vid].append( tt ) 
     
    958967                  u'where ridge':(True,'area: mean where sea_ice_ridge over sea_ice'), \ 
    959968                  u'where sea ice':(True,'area: mean where sea_ice'), \ 
     969                  u'partial mean over sea':(True,''), \ 
    960970                  u'floating ice shelf':(True,'area: mean where floating_ice_sheet'), \ 
    961971                  u'seaIce':(True,'area: mean where sea_ice over sea'), \ 
     
    10791089                else: 
    10801090                  ntab = 'em%s' % string.capwords( fr ) 
    1081  
    1082                 if fr == '6hr' and tt.levels in ['7h',4.0, '4']: 
    1083                   ntab = '6hrPlev' 
     1091  
     1092 
     1093                tstyle = tt.tstyle 
     1094 
     1095                if fr == '6hr': 
     1096                  if tt.levels in [4.0, '4']: 
     1097                    ntab = '6hrPlev' 
     1098                    tstyle = 'time-mean' 
     1099                  elif tt.levels in ['7h']: 
     1100                    ntab = '6hrPlevpt' 
     1101                    tstyle = 'time-point' 
    10841102                  print 'INFO.033.00001: adding to 6hrPlev ....',lab, tt.__dict__ 
    10851103 
     
    10941112                  ntab += 'Z' 
    10951113 
    1096                 dset.add( (thissh, tt.levels,tt.tstyle,gr) ) 
     1114                if 'fx' in ntab.lower(): 
     1115                  print 'INFO.fxtsty.00001: setting tstyle fixed: ',tt.__dict__, ntab, thissh, smdd[tt.mask], tt.mask 
     1116                  tstyle = '' 
     1117                dset.add( (thissh, tt.levels,tstyle,gr) ) 
    10971118                if 'area: mean where ice_sheet' == smdd[tt.mask][1] and gr == 'o': 
    10981119                   print 'SEVERE.structure.30001: ',tt.__dict__,gr 
    1099                 dsgpi.add( (thissh,tt.levels,tt.tstyle,gr,smdd[tt.mask], 'None', 'None', grprov) ) 
     1120 
     1121                dsgpi.add( (thissh,tt.levels,tstyle,gr,smdd[tt.mask], 'None', 'None', grprov) ) 
    11001122# 
    11011123# picking out re-purposed CMIP5 variables 
     
    11271149                    self.cmvMap002[tt.uid] = uid 
    11281150 
    1129                   thiscmv = (uid, (thissh,tt.levels,tt.tstyle,gr,smdd[tt.mask],tt1.flag_values,tt1.flag_meanings), 
     1151                  thiscmv = (uid, (thissh,tt.levels,tstyle,gr,smdd[tt.mask],tt1.flag_values,tt1.flag_meanings), 
    11301152                    lab, ttl, tt.descriptionEx, tt1.vid, \ 
    11311153                    tt1.deflate_level, tt1.shuffle, tt1.ok_max_mean_abs, tt1.flag_meanings, tt1.type, tt1.ok_min_mean_abs, \ 
     
    12031225                  if uid in eeu: 
    12041226                     print 'WARN.cmv.90001: duplicate cmv uid: ',uid,tt.__dict__,eeu[uid] 
    1205                   thiscmv = (uid, (thissh,tt.levels,tt.tstyle,gr,smdd[tt.mask], 'None', 'None'), lab, ttl, tt.descriptionEx, tt.vid, \ 
     1227 
     1228                  tstyle = tt.tstyle 
     1229                  if 'fx' in ntab.lower(): 
     1230                    tstyle = '' 
     1231 
     1232                  thiscmv = (uid, (thissh,tt.levels,tstyle,gr,smdd[tt.mask], 'None', 'None'), lab, ttl, tt.descriptionEx, tt.vid, \ 
    12061233                    0, 0, None, 0, '', None, \ 
    12071234                    0,None,0, thisrealm, None, '', ntab, \ 
     
    12701297    etd = self.spsh.etd 
    12711298    for s in std: 
    1272       assert s in etd, 'Temporal dimension record not found for %s (see importWbMods.loadSpatial)' % s 
     1299      assert s in etd, 'Temporal dimension record not found for %s (see importWbMods.loadSpatial): %s' % (s, str(std) ) 
    12731300 
    12741301    kk = 0 
     
    13261353        prov = 'CMIP5/OMIP' 
    13271354        desc = '' 
    1328         ##print 'INFO.zzz01: ',dims, crd 
     1355        print 'INFO.zzz01: ',dims, crd, tlab, tmid, cmet 
    13291356        t0 = (dims,cmet,cmea,flgv,flgm) 
    13301357        if cmet in ['None',None]: 
     
    13371364        if cmea in ['None',None]: 
    13381365            cmea = '' 
     1366 
     1367        badtlab = "time: mean" in cmet and tlab == "time-point" 
     1368        assert not badtlab, 'BAD TLAB: %s' % str( [dims,cmet,cmea,flgv, flgm] ) 
    13391369           
    13401370        if flgv in ['None',None,u'None']: 
     
    14001430            else: 
    14011431              cmet = cmetl[i] 
     1432 
    14021433        if cmet == '': 
    14031434          cmet = msk 
     
    14081439          else: 
    14091440            cmet = msk + ' ' + cmet 
    1410         kk += 1 
    1411         label = 'str-b%3.3i' % kk 
     1441 
     1442        label = None 
     1443        while label == None or label in self.lls.xRecByLab or label in self.lls.uidByLab: 
     1444          kk += 1 
     1445          label = 'str-b%3.3i' % kk 
     1446 
    14121447        proc = '' 
    14131448        if prov == '': 
     
    14341469        if sty == u'Synoptic': 
    14351470          print 'yyyy: ',(shp,lvls,sty,gr,tmsk,flgv,flgm) 
     1471        print 'INFO.strdd.00001: ',(shp,lvls,sty,gr,tmsk,flgv,flgm),u 
    14361472        strdd[(shp,lvls,sty,gr,tmsk,flgv,flgm)] = u 
    14371473        if flgv == 'None' and flgm == 'None': 
     
    14391475        self.structInfo[u] = (label,cmet,spid,tmid) 
    14401476 
    1441     ##nt_dims = collections.namedtuple( 'dims', ['uid','label','spid','tmid','odims','coords','cell_methods','cell_measures','flag_values','flag_meanings','description','procNote','prov'] ) 
    1442     ##self.lls.close() 
    14431477    self.strdd = strdd 
    14441478       
     
    15531587        ## aim is to extract spatial, other, temporal dimensions + coords.  
    15541588        sss = [set(),set(),set()] 
    1555         ttt = [ ('time1', u'Instantaneous (end of year)', 'instantaneous', 'point', 'Synoptic', u'synoptic', u'time: point'), 
    1556         ('Daily max', 'Daily min', 'time', 'Mean', u'time: mean', u'Time mean', u'daily mean', u'mean', u'time mean', u'time: day', u'time: mean', u'weighted time mean', 'Cumulative annual fraction','partial mean over sea'), 
     1589        ttt = [ ('time-point', 'time1', u'Instantaneous (end of year)', 'instantaneous', 'point', 'Synoptic', u'synoptic', u'time: point'), 
     1590        ('time-mean', 'Daily max', 'Daily min', 'time', 'Mean', u'time: mean', u'Time mean', u'daily mean', u'mean', u'time mean', u'time: day', u'time: mean', u'weighted time mean', 'Cumulative annual fraction','partial mean over sea'), 
    15571591        (), 
    15581592        ('diurnal','time3'), ('',)] 
     
    15781612             'XYZKdbT':('longitude|latitude|%s','dbze','time','',True), \ 
    15791613             'XYZKscT':('longitude|latitude|%s','scatratio','time','',True), \ 
     1614             'XYZhT':('longitude|latitude|alevhalf','','time','',False), \ 
    15801615             'XYZT':('longitude|latitude|%s','','time','',True), \ 
    15811616             'XYST':('longitude|latitude|sdepth','','time','',False), \ 
     
    18771912            else: 
    18781913              thisl = string.strip(str( ll[0] ) ) 
     1914              thistab = string.strip(str( ll[1] ) ) 
    18791915              if len( thisl ) > 6 and thisl[-6:] == 'Adjust': 
     1916                dothis = False 
     1917              if thistab == 'aer6hr': 
    18801918                dothis = False 
    18811919 
     
    19021940                item.setAttribute('vid',vid) 
    19031941 
    1904               print 'INFO.isd005.0001: ',thisl, uid, vgid, vid 
     1942              print 'INFO.isd005.0001: ',thisl, uid, vgid, vid, thistab 
    19051943              item.setAttribute( 'title', thisl + ' ((isd.005))' ) 
    19061944              item.setAttribute( 'uid', thisuuid ) 
    19071945              item.setAttribute( 'vgid', vgid ) 
    19081946              item.setAttribute( 'vid', vid ) 
    1909  
    1910               ##thisd['title'] = thisl + ' ((isd.005))' 
    1911               ##thisd['uid'] = thisuuid 
    1912  
    1913               ##thisd['vid'] = vid 
    1914               ##thisd['vgid'] = vgid 
    19151947 
    19161948################################## 
     
    21472179                  else: 
    21482180                    print '+++ ',k 
    2149                 print 'SEVERE.999.00099: strdd key not found: %s' % str(r[1]) 
     2181                print 'SEVERE.999.00099: strdd key not found: %s' % str(r[1]), r[ktable], u0 
    21502182                print r 
    21512183                stid = '__struct_not_found_001__' 
     
    24192451              d1['cids'] = ooc 
    24202452            t = (tlab,slab,d1['odims'],d1['coords'],d1['cell_methods'],d1['cell_measures'],d1['flag_meanings']) 
     2453            badtlab = "time: mean" in d1['cell_methods'] and tlab == "time-point" 
     2454            assert not badtlab, 'BAD TLAB [2]: %s, %s' % (u,str( nt.__dict__) ) 
    24212455 
    24222456            dothis = True 
Note: See TracChangeset for help on using the changeset viewer.