Changeset 909 for CMIP6dreqbuild


Ignore:
Timestamp:
20/12/16 22:52:47 (3 years ago)
Author:
mjuckes
Message:

draft code to edit tables

Location:
CMIP6dreqbuild/trunk/src/framework
Files:
5 added
9 edited
1 copied

Legend:

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

    r903 r909  
    2222class checkUnits(object): 
    2323 
    24   def __init__(self, cc): 
     24  def __init__(self, cc, extra=None): 
    2525    assert python2, 'The checkUnits module requires cf, which is not available in python 3' 
    2626    import cf 
     27    if extra != None: 
     28      for k in sorted( extra.keys() ): 
     29        try: 
     30          a = cf.units.Units( k ) 
     31        except: 
     32          log.warn( 'WARN.001.0004: bad units %s (%s)' % (k,str(extra[k])) ) 
     33 
    2734    for k in sorted( cc.keys() ): 
    2835      try: 
     
    131138    cc = collections.defaultdict( list ) 
    132139    ss = collections.defaultdict( c1 ) 
     140    ssx = collections.defaultdict( set ) 
    133141    umap = { 'Wm-2':'W m-2', 'string':''} 
    134142    for i in self.dq.coll['var'].items: 
     
    138146        u = umap.get( isn.units, isn.units ) 
    139147        ss[u].a[i.units].append( i.label ) 
     148      else: 
     149        ssx[i.units].add( i.label ) 
    140150 
    141151    ii = [k for k in cc if len(cc[k]) > 1] 
     
    156166      log.warn( 'Skipping the units check .. not available in python3' ) 
    157167    else: 
    158       checkUnits( ss ) 
     168      checkUnits( ss, extra=ssx ) 
    159169    
    160170  def audit_str(self): 
  • CMIP6dreqbuild/trunk/src/framework/dreqPy/scope.py

    r903 r909  
    2424import collections, string, operator 
    2525import sys, os 
     26 
     27def intdict(): 
     28    return collections.defaultdict( int ) 
    2629 
    2730if sys.version_info >= (2,7): 
     
    178181    self.gridPolicyForce = None 
    179182    self.retainRedundantRank = False 
     183    self.intersection = False 
    180184    self.gridPolicyTopOnly = True 
    181185    self.exptFilter = None 
     
    991995      cc = collections.defaultdict( set ) 
    992996      ccts = collections.defaultdict( set ) 
     997 
     998    mipsByVar = collections.defaultdict( set ) 
    993999    ss = set() 
    9941000    for pr in ee: 
     
    10161022 
    10171023                if i.uid in expys: 
     1024                  mipsByVar[i1.vid].add( i.mip ) 
    10181025                  if rtl: 
    10191026                    for e,grd in expys[i.uid]: 
     
    10431050                print ( 'SKIPPING %s: %s' % (i1.label,i1.vid) ) 
    10441051                ss.add( i1.vid ) 
     1052 
     1053    if self.intersection and type(mip) == type( set() ) and len(mip) > 1: 
     1054      sint = {k for k in mipsByVar if len( mipsByVar[k] ) == len(mip)} 
     1055      print ( 'INTERSECTION: %s out of %s variables [%s]' % (len(sint),len(mipsByVar.keys()),str(mip)) ) 
     1056      xxx = [t for t in cc if t[0] not in sint] 
     1057      for t in xxx: 
     1058          del cc[t] 
    10451059    if includeYears: 
    10461060      l2 = collections.defaultdict( dict ) 
     
    10751089              rc, ts, msg = sortTimeSlice( ccts[(v,e)] ) 
    10761090              if rc == 1: 
    1077                 l2ts[v][e] = ts 
     1091                l2ts[v][e] = tuple( list(ts) + [g,] ) 
    10781092              elif rc == 2: 
    1079                 yl = range( ts[0][0][2], ts[0][0][3] + 1) + range( ts[0][1][2], ts[0][1][3] + 1) 
    1080                 l2ts[v][e] = ('_union', 'YEARLIST', len(yl), yl, ts[1] ) 
     1093                try: 
     1094##(('abrupt5', 'simpleRange', 0, 5), 1), (('abrupt30', 'simpleRange', 121, 150), 1)] 
     1095                  yl = list( range( ts[0][0][2], ts[0][0][3] + 1) ) + list( range( ts[1][0][2], ts[1][0][3] + 1) ) 
     1096                except: 
     1097                  print ( 'FAILED TO GENERATE YEARLIST' ) 
     1098                  print ( str((v,e) ) ) 
     1099                  print ( 'range( ts[0][0][2], ts[0][0][3] + 1) + range( ts[1][0][2], ts[1][0][3] + 1)' ) 
     1100                  print ( str(ts) ) 
     1101                  raise 
     1102                l2ts[v][e] = ('_union', 'YEARLIST', len(yl), str(yl), ts[1], g ) 
    10811103              else: 
    10821104                print ('TIME SLICE MULTIPLE OPTIONS FOR : %s, %s, %s, %s' % (v,e,str(ccts[(v,e)]), msg ) ) 
     
    10841106              a,b = ccts[(v,e)].pop() 
    10851107              if type(a) == type( [] ): 
    1086                 l2ts[v][e] = a + [b,] 
     1108                l2ts[v][e] = a + [b,g,] 
    10871109              elif type(a) == type( () ): 
    1088                 l2ts[v][e] = list(a) + [b,] 
     1110                l2ts[v][e] = list(a) + [b,g,] 
    10891111              elif a == None: 
    1090                 l2ts[v][e] = [None,b] 
     1112                l2ts[v][e] = [None,b,g] 
    10911113              else: 
    10921114                assert False, 'Bad type for ccts record: %s' % type( a) 
     
    13841406           mlg.prnt ( 'Frequency: %s: %s' % (f, vs.res['vf'][f]*2.*1.e-12 ) ) 
    13851407      ttl = sum( [x for k,x in vs.res['vu'].items()] ) 
     1408      self.res = vs.res 
     1409      self.indexedVol = collections.defaultdict( dict ) 
     1410      for u in vs.res['vu']: 
     1411        cmv = self.dq.inx.uid[u] 
     1412        self.indexedVol[cmv.frequency]['%s.%s' % (cmv.mipTable,cmv.label)] = vs.res['vu'][u] 
    13861413      return ttl 
    13871414 
     
    14751502      --xls : Create Excel file with requested variables; 
    14761503      --sf : Print summary of variable count by structure and frequency [default]; 
    1477       --legacy : Use legacy approach to volume estimation (depricated); 
     1504      --legacy : Use legacy approach to volume estimation (deprecated); 
    14781505      --xfr : Output variable lists in sheets organised by frequency and realm instead of by MIP table; 
    14791506      --SF : Print summary of variable count by structure and frequency for all MIPs; 
     
    16481675 
    16491676    self.sc = dreqQuery( dq=self.dq ) 
     1677    self.sc.intersection = self.intersection 
    16501678 
    16511679    if 'grdforce' in self.adict: 
     
    17411769        ttl = sum( [x for k,x in vs.res['vu'].items()] )*2.*1.e-12 
    17421770        mlg.prnt( 'TOTAL volume: %8.2fTb' % ttl ) 
     1771        self.printListCc(vs.res['vu']) 
    17431772        return 
    17441773       
     
    17601789        thisd[m] = sum( [x for k,x in vs.rres[m].items()] ) 
    17611790        mlg.prnt( '%s:: TOTAL volume: %8.2fTb' % (m, thisd[m]*2.*1.e-12 )  ) 
     1791      self.printListCc(vs.rresu['*TOTAL']) 
    17621792      return 
    1763  
    17641793 
    17651794    adsCount = self.adict.get( 'count', False ) 
     
    17791808 
    17801809      self.sc.xlsByMipExpt(mips,eid,pmax,odir=xlsOdir,xls=makeXls,txt=makeTxt,txtOpts=txtOpts) 
     1810 
     1811  def printListCc(self,cc): 
     1812    if self.adict.get( 'vars', False ): 
     1813      if python2: 
     1814            vl = sorted( cc.keys(), cmp=cmpd(cc).cmp, reverse=True ) 
     1815      else: 
     1816            vl = sorted( cc.keys(), key=lambda x: cc[x], reverse=True ) 
     1817      printLinesMax = self.adict.get( 'plm', 20 ) 
     1818      if printLinesMax > 0: 
     1819        mx = min( [printLinesMax,len(vl)] ) 
     1820      else: 
     1821        mx = len(vl) 
     1822 
     1823      for k in vl[:mx]: 
     1824            cmv = self.dq.inx.uid[k] 
     1825            print ('%s.%s::   %sTb' % (cmv.mipTable, cmv.label, cc[k]*2.*1.e-12) ) 
    17811826 
    17821827  def printList(self): 
  • CMIP6dreqbuild/trunk/src/framework/dreqPy/table_utils.py

    r903 r909  
    1212  import dreqPy.vrev as vrev 
    1313  import dreqPy.misc_utils as misc_utils 
     14 
     15python2 = True 
     16if sys.version_info[0] == 3: 
     17  python2 = False 
     18  def cmp(x,y): 
     19    if x == y: 
     20      return 0 
     21    elif x > y: 
     22      return 1 
     23    else: 
     24      return -1 
    1425 
    1526if sys.version_info >= (2,7): 
     
    121132           else: 
    122133             ##print i, orec[i], type( orec[i] ) 
    123              self.sht.write( j,i, orec[i], self.cell_format ) 
     134             try: 
     135                self.sht.write( j,i, orec[i], self.cell_format ) 
     136             except: 
     137               print ('FAILED TO WRITE RECORD: %s' % str(orec)) 
     138               print ('FAILED TO WRITE RECORD: %s' % str(orec[i])) 
     139               raise 
    124140 
    125141     if self.txt: 
     
    182198        hcmt = ['CMOR table',] + hcmt 
    183199      if tslice: 
    184           hrec += ['Number of Years','Slice Type','Years'] 
    185           hcmt += ['','',''] 
     200          hrec += ['Number of Years','Slice Type','Years','Grid'] 
     201          hcmt += ['','','',''] 
    186202 
    187203      if self.xls: 
     
    334350            if tslice != None: 
    335351              if v.uid not in tslice: 
    336                 orec += ['All', '',''] 
     352                orec += ['All', '','',''] 
    337353              elif type( tslice[v.uid] ) == type( 0 ): 
    338354                print ( 'ERROR: unexpected tslice type: %s, %s' % (v.uid, tslice[v.uid] ) ) 
    339               elif len(  tslice[v.uid] ) == 2: 
    340                 x,priority = tslice[v.uid] 
     355              elif len(  tslice[v.uid] ) == 3: 
     356                x,priority,grid = tslice[v.uid] 
    341357                orec[0] = priority 
     358                orec += ['','','',grid] 
    342359              else: 
    343                 tslab,tsmode,a,b,priority = tslice[v.uid] 
     360                tslab,tsmode,a,b,priority,grid = tslice[v.uid] 
     361                if type( priority ) != type(1): 
     362                  thisp = priority 
     363                  priority = thisp[1] 
     364                  ##print 'ERROR in priority type[2]: ',priority, tslice[v.uid] 
    344365                orec[0] = priority 
    345366                      
     
    354375                else: 
    355376                   orec += ['slice', tslab,''] 
     377                orec.append( grid ) 
    356378                 
    357379            if withoo: 
  • CMIP6dreqbuild/trunk/src/framework/dreqPy/volsum.py

    r903 r909  
    9797 
    9898      self.rres = {} 
     99      self.rresu = {} 
    99100     
    100101      for m in theseMips: 
     
    125126        volsue[m] = self.res['uve'] 
    126127        self.rres[m] = self.res['vf'].copy() 
     128        self.rresu[m] = self.res['vu'].copy() 
    127129        if m == 'TOTAL': 
    128130          cmvTotal = self.sc.selectedCmv.copy() 
     
    327329    if not doxlsx: 
    328330      return 
    329     print ('Writing %s' % fn ) 
     331    print ('Writing %s.xlsx' % fn ) 
    330332    self.x = xlsx( fn ) 
    331333    self.sht = self.x.newSheet( 'Volume' ) 
  • CMIP6dreqbuild/trunk/src/framework/ingest/AerChemMIP_consol.csv

    r904 r909  
    2828mole_fraction_of_acetone_in_air CH3COCH3  volume mixing ratio   ch3coch3        mole mole-1             aermonthly-3d   monthly XY-A    mean 
    2929cloud_area_fraction_in_atmosphere_layer Cloud Area Fraction     cl      1.0     cloud area fraction     aermonthly-3d   monthly XY-A    mean 
    30 convective_cloud_area_fraction_in_atmospheric_layer     Convective Cloud Area Fraction  convcl  1.0     Convective cloud fraction       aermonthly-3d   monthly XY-A    mean 
     30convective_cloud_area_fraction_in_atmospheric_layer     Convective Cloud Area Fraction  clc     1.0     Convective cloud fraction       aermonthly-3d   monthly XY-A    mean 
    3131mole_fraction_of_hydroxyl_radical_in_air        OH volume mixing ratio  oh      mole mole-1             aermonthly-3d   monthly XY-A    mean 
    3232mass_fraction_of_pm10_ambient_aerosol_particles_in_air  PM10 mass mixing ratio  mmrpm10 kg kg-1         aermonthly-3d   monthly XY-A    mean 
     
    138138surface_albedo  surface albedo  albsrfc 1.0             aermonthly-2d   monthly XY-na   mean 
    139139cloud_area_fraction     Total Cloud Fraction    clt     1.0     cloud area fraction     aermonthly-2d   monthly XY-na   mean 
    140 convective_cloud_area_fraction  Convective Cloud Area Fraction  convclt 1.0     Convective cloud fraction       aermonthly-2d   monthly XY-na   mean 
     140convective_cloud_area_fraction  Convective Cloud Area Fraction  cltc    1.0     Convective cloud fraction       aermonthly-2d   monthly XY-na   mean 
    141141atmosphere_optical_thickness_due_to_cloud       cloud optical depth     cod     1.0             aermonthly-2d   monthly XY-na   mean 
    142142number_concentration_of_cloud_condensation_nuclei_at_stp_in_air cloud condensation nuclei concentration at liquid cloud top     ccn     m-3             aermonthly-2d   monthly XY-na   mean 
  • CMIP6dreqbuild/trunk/src/framework/ingest/util_anal.py

    r903 r909  
    135135    fl = sorted( glob.glob( '%s/sh__newVar_*' % sdir ) ) 
    136136    kml = [] 
     137    oo = open( 'sn_changes.csv', 'w' ) 
    137138    for f in fl: 
    138139      mip = f.split( '_' )[-1] 
     
    144145          print 'MISSING NEW: %s, %s, %s' % (k,f,str(sh[k])) 
    145146        else: 
     147         try: 
     148          print f,k,sh[k] 
    146149          sn0 = sh[k][1] 
    147150          sn = self.vars[k][2] 
     151          units = str(sh[k][4]) 
     152          title = sh[k][5] 
     153          desc = sh[k][6] 
    148154          if sn0 != sn: 
    149155            a0 = sn0 in cf.names or sn0 in cf.alias 
     
    152158              if sn in cf.names and sn0 in cf.names: 
    153159                print 'WARN.standard_name.00001: template standard names different from ref: [%s] %s: %s -- %s' % (mip, k, sn0, sn) 
     160                oo.write( '\t'.join( ['','1',mip,k,units,'',sn0,cf.names[sn0][1],sn,cf.names[sn][1],title,desc] ) + '\n' ) 
    154161              elif sn in cf.alias and sn0 in cf.names: 
    155162                print 'WARN.standard_name.00002: replace sn alias with new ....: [%s] %s: %s -- %s' % (mip, k, sn0, sn) 
     163                oo.write( '\t'.join( ['','2',mip,k,units,'',sn0,cf.names[sn0][1],sn,'',title,desc] ) + '\n' ) 
    156164              elif sn in cf.names and sn0 in cf.alias: 
    157165                print 'WARN.standard_name.00003: attempt to replace sn new with alias ....: [%s] %s: %s -- %s' % (mip, k, sn0, sn) 
    158               elif sn in cf.alas and sn0 in cf.alias: 
     166                oo.write( '\t'.join( ['','3',mip,k,units,'',sn0,cf.names[cf.alias[sn0]][1],sn,cf.names[sn][1],title,desc] ) + '\n' ) 
     167              elif sn in cf.alias and sn0 in cf.alias: 
    159168                print 'WARN.standard_name.00004: two aliasses ...... : [%s] %s: %s -- %s' % (mip, k, sn0, sn) 
     169                oo.write( '\t'.join( ['','4',mip,k,units,'',sn0,cf.names[cf.alias[sn0]][1],sn,'',title,desc] ) + '\n' ) 
    160170              else: 
    161171                assert False, 'Should not be able to reach this code' 
     
    164174            elif not a: 
    165175              print 'WARN.standard_name.00006: standard name needs updating: [%s] %s: %s -- %s' % (mip, k, sn0, sn) 
     176              if sn0 in cf.names: 
     177                oo.write( '\t'.join( ['','6',mip,k,units,'',sn0,cf.names[sn0][1],sn,'',title,desc] ) + '\n' ) 
     178              else: 
     179                oo.write( '\t'.join( ['','7',mip,k,units,'',sn0,cf.names[cf.alias[sn0]][1],sn,'',title,desc] ) + '\n' ) 
     180         except: 
     181          print f,k,sh[k] 
     182          raise 
     183    oo.close() 
    166184              
    167185 
     
    314332    iix = self.tabInfo.oh.index( 'rowIndex' ) 
    315333    iv = self.tabInfo.oh.index( 'out_name' ) 
     334    iu = self.tabInfo.oh.index( 'units' ) 
    316335    ivid = self.tabInfo.oh.index( 'vid' ) 
    317336    idim = self.tabInfo.oh.index( 'dimensions' ) 
    318337    iln = self.tabInfo.oh.index( 'title' ) 
     338    ides = self.tabInfo.oh.index( 'comment' ) 
    319339    iss = self.tabInfo.oh.index( 'ssect' ) 
    320340    isn = self.tabInfo.oh.index( 'sn' ) 
     
    336356    oonv = None 
    337357    vml = [] 
     358    oo = open( 'sn_changes_ref.csv', 'w' ) 
    338359    for f in fl: 
    339360      self.actions = collections.defaultdict(int) 
     
    346367       uid = rr[0] 
    347368       var = rr[iv] 
     369       units = rr[iu] 
     370       title = rr[iln] 
     371       desc = rr[ides] 
    348372       if var.find( '_' ) != -1: 
    349373         print 'ERROR.var.00001: underscore in variable: %s' % str(rr) 
     
    380404              if sn in cf.names and sn0 in cf.names: 
    381405                print 'WARN.standard_name.10001: template standard names different from ref: [%s] %s: %s -- %s' % (mip, var, sn0, sn) 
     406                oo.write( '\t'.join( ['','11',mip,var,units,k,sn0,cf.names[sn0][1],sn,cf.names[sn][1],title,desc] ) + '\n' ) 
    382407                vml.append( (mip,var,'1',sn,sn0) ) 
    383408              elif sn in cf.alias and sn0 in cf.names: 
    384409                print 'WARN.standard_name.10002: replace sn alias with new ....: [%s] %s: %s -- %s' % (mip, var, sn0, sn) 
     410                oo.write( '\t'.join( ['','12',mip,var,units,k,sn0,cf.names[sn0][1],sn,'',title,desc] ) + '\n' ) 
    385411                vml.append( (mip,var,'2',sn,sn0) ) 
    386412              elif sn in cf.names and sn0 in cf.alias: 
    387413                print 'WARN.standard_name.10003: attempt to replace sn new with alias ....: [%s] %s: %s -- %s' % (mip, var, sn0, sn) 
     414                oo.write( '\t'.join( ['','13',mip,var,units,k,sn0,cf.names[cf.alias[sn0]][1],sn,cf.names[sn][1],title,desc] ) + '\n' ) 
    388415              elif sn in cf.alas and sn0 in cf.alias: 
    389416                print 'WARN.standard_name.10004: two aliasses ...... : [%s] %s: %s -- %s' % (mip, var, sn0, sn) 
     417                oo.write( '\t'.join( ['','14',mip,var,units,k,sn0,cf.names[cf.alias[sn0]][1],sn,'',title,desc] ) + '\n' ) 
    390418              else: 
    391419                assert False, 'Should not be able to reach this code' 
     
    394422            elif not a: 
    395423              print 'WARN.standard_name.10006: standard name needs updating: [%s] %s: %s -- %s' % (mip, var, sn0, sn) 
     424              if sn0 in cf.names: 
     425                oo.write( '\t'.join( ['','16',mip,var,units,k,sn0,cf.names[sn0][1],sn,'',title,desc] ) + '\n' ) 
     426              else: 
     427                oo.write( '\t'.join( ['','17',mip,var,units,k,sn0,cf.names[cf.alias[sn0]][1],sn,'',title,desc] ) + '\n' ) 
    396428              vml.append( (mip,var,'6',sn,sn0) ) 
    397429             
     
    458490           print 'INFO.msftmyz.00001: ',vid, rr 
    459491        self.sh[k] = rr[:] 
     492 
     493    oo.close() 
    460494    if oonv != None: 
    461495      oonv.close() 
  • CMIP6dreqbuild/trunk/src/framework/ingest/util_checkUpd.py

    r903 r909  
    44 
    55from xceptions import baseException 
    6 import os, stat, shelve, uuid, collections 
     6import os, stat, shelve, uuid, collections, json 
    77import dreq_cfg 
    88import dreq_utils 
     
    1717targTabs = ['CFMIP.cfOff', 'CFMIP.cfMon', 'CMIP5_6hrPlev', 'CMIP5_day', 'OMIP.Oyr', 'CFMIP.cfSites', 'OMIP.Omon', 'CMIP5_aero', 'CMIP5_LImon', 'CMIP5_Amon', 'CMIP5_Oclim', 'CMIP5_6hrLev', 'CMIP5_Lmon', 'CMIP5_3hr', 'CMIP5_fx', 'CFMIP.cfDay', 'CFMIP.cf3hr', 'OMIP.fx', 'OMIP.day'] 
    1818targTabs = ['CFMIP.cfOff', 'CFMIP.cfMon', 'CMIP5_6hrPlev', 'CMIP5_day', 'OMIP.Oyr', 'CFMIP.cfSites', 'OMIP.Omon', 'CMIP5_aero', 'CMIP5_Amon', 'CMIP5_Oclim', 'CMIP5_6hrLev', 'CMIP5_Lmon', 'CMIP5_3hr', 'CMIP5_fx', 'CFMIP.cfDay', 'CFMIP.cf3hr', 'OMIP.fx', 'OMIP.day', 'OMIP.Odec', 'CMIP5_LImon'] 
     19 
     20oimon_varmap = json.load( open( 'varmap.json', 'r' ) ) 
    1921 
    2022nt__grphd = collections.namedtuple( 'grphd', ['withPriority','thisl', 'iv', 'it','start','tv'] ) 
     
    7274              print self.hdgs 
    7375              raise 
     76          self.cmv = ih.index( 'CMOR variable name' ) 
    7477          cfrule = [ ih.index(x) for x in ['CF standard name AP','CF standard_name'] ] 
    7578          unrule =  [ ih.index(x) for x in ['Units AP','unformatted units'] ] 
     
    8184    return (0,None) 
    8285 
    83   def filter(self,ir): 
     86  def filter(self,ir,raw=None): 
    8487    assert self.mode != None, 'Not initialised (with parseh)' 
    8588    if self.mode == 0: 
     
    101104          orec[self.iu] = ir[x] 
    102105          break 
    103       return orec 
     106      return orec, raw[self.cmv].ctype 
    104107       
    105108           
     
    613616        rr  = sht.row(k) 
    614617        rrr = [cleanStr(x) for x in rr] 
     618 
    615619        for i in range( len(self.shCols) - len( rr) ): 
    616620          rrr.append( '' ) 
     621 
    617622        if isc == 1: 
    618           rrr = osc.filter( rrr ) 
     623          rrr, cmvt = osc.filter( rrr, raw=rr ) 
     624        else: 
     625          cmvt = rr[17].ctype 
     626        if mip == 'OMIP': 
     627            print 'INFO.omip.00003: ',mip,snn, rr, cmvt 
     628 
    619629        for i in range( 25 - len( rrr) ): 
    620630          rrr.append( '' ) 
     
    629639            log.info( 'WARN.var.0002: %s:%s[%s]: skipping: %s' % (mip,sname,k,str(rrr)) ) 
    630640        else: 
    631           if rr[17].ctype == 1: 
     641          if cmvt == 1: 
    632642                  vr = rrr[17] 
    633643          else: 
     
    697707          vr = rrr[17] 
    698708          vo = rrr[5] 
     709          if snn: 
     710            if vr in oimon_varmap: 
     711              vr0 = vr 
     712              vr = oimon_varmap[vr] 
     713              vo = oimon_varmap.get( vo, vo ) 
     714              print 'INFO.varmap.0001: mapping %s --> %s' % (vr0,vr) 
     715          if mip == 'OMIP': 
     716            print 'INFO.omip.00003: ',vo,vr, mip,snn, rrr 
     717          if vo != vr: 
     718            print 'WARN.outname.00001: out name issue: ',vo,vr, mip,snn 
    699719          ##snn = {'OImon':'SImon'}.get(snn,snn) 
    700720          ##snn = {'aero':'aermonthly'}.get(snn,snn) 
  • CMIP6dreqbuild/trunk/src/framework/ingest/util_gen.py

    r871 r909  
    9595class loadAerChem(object): 
    9696  def __init__(self): 
    97     ii = open( '../workbook/inputs/AerChemMIP_consol.csv', 'r' ) 
     97    ii = open( 'ingest/AerChemMIP_consol.csv', 'r' ) 
    9898    self.cc2 = collections.defaultdict( c1 ) 
    9999    for l in ii.readlines(): 
  • CMIP6dreqbuild/trunk/src/framework/out/supplement_20150731.xml

    r903 r909  
    55<dc:description>The CMIP6 Data Request will specify the variables requested for the CMIP6 archive, and the detail the experiments and time slices for which they are required.</dc:description> 
    66<dc:creator>Martin Juckes</dc:creator> 
    7 <dc:date>2016-12-14</dc:date> 
     7<dc:date>2016-12-20</dc:date> 
    88<pav:version>01.beta.45</pav:version> 
    99</prologue> 
     
    1111<qcranges id="" label="qcranges" title="Quality Control Ranges" uid="SECTION:qcranges" useClass="vocab"> 
    1212<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    13 <item comment="" label="Amon-ci" ok_max_mean_abs_status="suggested" ok_min_mean_abs="0.9" ok_min_mean_abs_status="suggested" prov="CMIP5 data" title="Guide ranges for ci (table Amon)" uid="290e460e-c1cf-11e6-a1c6-ac72891c3257" valid_max="1.001" valid_max_status="robust" valid_min="-0.001" valid_min_status="robust" vid="baaa3984-e5dd-11e5-8482-ac72891c3257"/> 
    14 <item comment="" label="Amon-sci" ok_max_mean_abs_status="robust" ok_min_mean_abs="0.9" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for sci (table Amon)" uid="290f96ee-c1cf-11e6-a1c6-ac72891c3257" valid_max="1.001" valid_max_status="robust" valid_min="-0.001" valid_min_status="robust" vid="bab6d180-e5dd-11e5-8482-ac72891c3257"/> 
    15 <item comment="One CMIP5 model is an outlier in mean abs values, being a factor 1000 out: a clear scaling error. Many models exceed the CMIP5 max: relaxed significantly to allow for further increase in modelled convective activity" label="Amon-prc" ok_max_mean_abs_status="robust" ok_min_mean_abs="4e-05" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for prc (table Amon)" uid="2911cc84-c1cf-11e6-a1c6-ac72891c3257" valid_max="0.0015" valid_max_status="robust" valid_min="-1e-06" valid_min_status="robust" vid="bab3f8a2-e5dd-11e5-8482-ac72891c3257"/> 
    16 <item comment="" label="Amon-tas" ok_max_mean_abs_status="robust" ok_min_mean_abs="295.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for tas (table Amon)" uid="29132dae-c1cf-11e6-a1c6-ac72891c3257" valid_max="350.0" valid_max_status="robust" valid_min="170.0" valid_min_status="robust" vid="bab9237c-e5dd-11e5-8482-ac72891c3257"/> 
    17 <item comment="CMIP5 values too limited: expanded here." label="Amon-rsuscs" ok_max_mean_abs_status="robust" ok_min_mean_abs="90.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rsuscs (table Amon)" uid="29147858-c1cf-11e6-a1c6-ac72891c3257" valid_max="480.0" valid_max_status="robust" valid_min="-0.1" valid_min_status="robust" vid="bab670b4-e5dd-11e5-8482-ac72891c3257"/> 
    18 <item comment="CMIP5 values too restrictive .. resolution dependent extremes expected .. generous extension of range" label="Amon-uas" ok_max_mean_abs_status="robust" ok_min_mean_abs="10.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for uas (table Amon)" uid="29152ac8-c1cf-11e6-a1c6-ac72891c3257" valid_max="80.0" valid_max_status="robust" valid_min="-80.0" valid_min_status="robust" vid="babb67c2-e5dd-11e5-8482-ac72891c3257"/> 
    19 <item comment="CMIP5 table max/min values OK apart from one outlier; mean abs values too tight" label="Amon-huss" ok_max_mean_abs_status="robust" ok_min_mean_abs="0.012" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for huss (table Amon)" uid="29155bba-c1cf-11e6-a1c6-ac72891c3257" valid_max="0.03" valid_max_status="robust" valid_min="0.0" valid_min_status="robust" vid="bab01dfe-e5dd-11e5-8482-ac72891c3257"/> 
    20 <item comment="" label="Amon-hfss" ok_max_mean_abs_status="suggested" ok_min_mean_abs="38.0" ok_min_mean_abs_status="suggested" prov="" title="Guide ranges for hfss (table Amon)" uid="29159670-c1cf-11e6-a1c6-ac72891c3257" valid_max="1200.0" valid_max_status="suggested" valid_min="-400.0" valid_min_status="suggested" vid="baaf86a0-e5dd-11e5-8482-ac72891c3257"/> 
    21 <item comment="" label="Amon-rlutcs" ok_max_mean_abs_status="robust" ok_min_mean_abs="270.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rlutcs (table Amon)" uid="2915ceb0-c1cf-11e6-a1c6-ac72891c3257" valid_max="390.0" valid_max_status="robust" valid_min="65.0" valid_min_status="robust" vid="bab5bcdc-e5dd-11e5-8482-ac72891c3257"/> 
    22 <item comment="All models in CMIP5 range, but close to max: relaxed slightly" label="Amon-prw" ok_max_mean_abs_status="robust" ok_min_mean_abs="26.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for prw (table Amon)" uid="2915fcaa-c1cf-11e6-a1c6-ac72891c3257" valid_max="90.0" valid_max_status="robust" valid_min="0.0" valid_min_status="robust" vid="bab45df6-e5dd-11e5-8482-ac72891c3257"/> 
    23 <item comment="CMIP5 models all consistent; several exceed CMOR table max;" label="Amon-prsn" ok_max_mean_abs_status="robust" ok_min_mean_abs="8e-06" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for prsn (table Amon)" uid="291632ba-c1cf-11e6-a1c6-ac72891c3257" valid_max="0.0008" valid_max_status="robust" valid_min="-1e-06" valid_min_status="robust" vid="bab42b88-e5dd-11e5-8482-ac72891c3257"/> 
    24 <item comment="" label="Amon-rldscs" ok_max_mean_abs_status="robust" ok_min_mean_abs="310.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rldscs (table Amon)" uid="29166082-c1cf-11e6-a1c6-ac72891c3257" valid_max="550.0" valid_max_status="robust" valid_min="25.0" valid_min_status="robust" vid="bab5540e-e5dd-11e5-8482-ac72891c3257"/> 
    25 <item comment="Only 3 models .. positive definate in CMIP5, but may turn negative in CMIP6" label="Amon-fco2antt" ok_max_mean_abs_status="tentative" ok_min_mean_abs="1e-09" ok_min_mean_abs_status="tentative" prov="" title="Guide ranges for fco2antt (table Amon)" uid="291697fa-c1cf-11e6-a1c6-ac72891c3257" valid_max="2e-07" valid_max_status="tentative" valid_min="-1e-07" valid_min_status="suggested" vid="baaddada-e5dd-11e5-8482-ac72891c3257"/> 
    26 <item comment="CMIP5 table values OK, but expanded slightly here to allow for greater spatial and scenario variability" label="Amon-pr" ok_max_mean_abs_status="robust" ok_min_mean_abs="4e-05" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for pr (table Amon)" uid="2916c608-c1cf-11e6-a1c6-ac72891c3257" valid_max="0.0015" valid_max_status="robust" valid_min="-1e-06" valid_min_status="robust" vid="bab3cb52-e5dd-11e5-8482-ac72891c3257"/> 
    27 <item comment="CMIP5 values OK .. abs range tightened slightly" label="Amon-ps" ok_max_mean_abs_status="robust" ok_min_mean_abs="100000.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for ps (table Amon)" uid="2916ff06-c1cf-11e6-a1c6-ac72891c3257" valid_max="112000.0" valid_max_status="robust" valid_min="47500.0" valid_min_status="robust" vid="bab47b56-e5dd-11e5-8482-ac72891c3257"/> 
    28 <item comment="" label="Amon-rlus" ok_max_mean_abs_status="robust" ok_min_mean_abs="380.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rlus (table Amon)" uid="2917357a-c1cf-11e6-a1c6-ac72891c3257" valid_max="660.0" valid_max_status="robust" valid_min="43.0" valid_min_status="robust" vid="bab578d0-e5dd-11e5-8482-ac72891c3257"/> 
    29 <item comment="Relaxed mean abs slightly" label="Amon-rlds" ok_max_mean_abs_status="robust" ok_min_mean_abs="330.0" ok_min_mean_abs_status="robust" prov="CMIP5 data" title="Guide ranges for rlds (table Amon)" uid="29176356-c1cf-11e6-a1c6-ac72891c3257" valid_max="520.0" valid_max_status="robust" valid_min="30.0" valid_min_status="robust" vid="bab52da8-e5dd-11e5-8482-ac72891c3257"/> 
    30 <item comment="" label="Amon-fco2nat" ok_max_mean_abs_status="suggested" ok_min_mean_abs="1e-07" ok_min_mean_abs_status="suggested" prov="" title="Guide ranges for fco2nat (table Amon)" uid="291797d6-c1cf-11e6-a1c6-ac72891c3257" valid_max="2e-06" valid_max_status="suggested" valid_min="-2e-05" valid_min_status="suggested" vid="baaded68-e5dd-11e5-8482-ac72891c3257"/> 
    31 <item comment="" label="Amon-ts" ok_max_mean_abs_status="robust" ok_min_mean_abs="295.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for ts (table Amon)" uid="2917c648-c1cf-11e6-a1c6-ac72891c3257" valid_max="340.0" valid_max_status="robust" valid_min="170.0" valid_min_status="robust" vid="babaef0e-e5dd-11e5-8482-ac72891c3257"/> 
    32 <item comment="" label="Amon-clt" ok_max_mean_abs_status="robust" ok_min_mean_abs="85.0" ok_min_mean_abs_status="robust" prov="CMIP5 request/data" title="Guide ranges for clt (table Amon)" uid="2917fd2a-c1cf-11e6-a1c6-ac72891c3257" valid_max="100.001" valid_max_status="robust" valid_min="-0.001" valid_min_status="robust" vid="baaad7e0-e5dd-11e5-8482-ac72891c3257"/> 
    33 <item comment="CMIP5 values too restrictive .. resolution dependent extremes expected .. generous extension of range" label="Amon-vas" ok_max_mean_abs_status="robust" ok_min_mean_abs="10.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for vas (table Amon)" uid="291835f6-c1cf-11e6-a1c6-ac72891c3257" valid_max="80.0" valid_max_status="robust" valid_min="-80.0" valid_min_status="robust" vid="babbcd34-e5dd-11e5-8482-ac72891c3257"/> 
    34 <item comment="CMIP5 values OK: one model has clear outliers not picked up by the limits: could be tightened?" label="Amon-psl" ok_max_mean_abs_status="robust" ok_min_mean_abs="106000.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for psl (table Amon)" uid="2918642c-c1cf-11e6-a1c6-ac72891c3257" valid_max="109000.0" valid_max_status="robust" valid_min="91000.0" valid_min_status="robust" vid="bab48ce0-e5dd-11e5-8482-ac72891c3257"/> 
    35 <item comment="" label="Amon-rlut" ok_max_mean_abs_status="robust" ok_min_mean_abs="305.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rlut (table Amon)" uid="29189a14-c1cf-11e6-a1c6-ac72891c3257" valid_max="385.0" valid_max_status="robust" valid_min="65.0" valid_min_status="robust" vid="bab5aad0-e5dd-11e5-8482-ac72891c3257"/> 
    36 <item comment="" label="Amon-hurs" ok_max_mean_abs_status="suggested" ok_min_mean_abs="99.0" ok_min_mean_abs_status="suggested" prov="CMIP5 data" title="Guide ranges for hurs (table Amon)" uid="2918c6a6-c1cf-11e6-a1c6-ac72891c3257" valid_max="100.001" valid_max_status="robust" valid_min="-0.001" valid_min_status="robust" vid="baaff41e-e5dd-11e5-8482-ac72891c3257"/> 
    37 <item comment="CMIP5 values too limited: expanded here." label="Amon-rsds" ok_max_mean_abs_status="robust" ok_min_mean_abs="200.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rsds (table Amon)" uid="2918fcb6-c1cf-11e6-a1c6-ac72891c3257" valid_max="550.0" valid_max_status="robust" valid_min="-0.1" valid_min_status="robust" vid="bab5e1b2-e5dd-11e5-8482-ac72891c3257"/> 
    38 <item comment="One model family in CMIP5 (NASA-GISS) has substantially larger values than all others. Broad limits set here to encompass all values." label="Amon-sbl" ok_max_mean_abs_status="robust" ok_min_mean_abs="0.0001" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for sbl (table Amon)" uid="29192b5a-c1cf-11e6-a1c6-ac72891c3257" valid_max="0.001" valid_max_status="robust" valid_min="-0.0005" valid_min_status="robust" vid="bab6b948-e5dd-11e5-8482-ac72891c3257"/> 
    39 <item comment="CMIP5 values too limited: expanded here." label="Amon-rtmt" ok_max_mean_abs_status="robust" ok_min_mean_abs="150.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rtmt (table Amon)" uid="291970ec-c1cf-11e6-a1c6-ac72891c3257" valid_max="250.0" valid_max_status="robust" valid_min="-250.0" valid_min_status="robust" vid="bab6a91c-e5dd-11e5-8482-ac72891c3257"/> 
    40 <item comment="Convection can occur at any level in the atmosphere." label="Amon-cct" ok_max_mean_abs_status="suggested" ok_min_mean_abs="100000.0" ok_min_mean_abs_status="suggested" prov="CMIP6 discussion" title="Guide ranges for cct (table Amon)" uid="2919a8c8-c1cf-11e6-a1c6-ac72891c3257" valid_max="115000.0" valid_max_status="robust" valid_min="0.0" valid_min_status="robust" vid="baa96a0e-e5dd-11e5-8482-ac72891c3257"/> 
    41 <item comment="Two models  (one institution) in CMIP5 were under this valid_min, but acknowledged this as an error." label="Amon-rsutcs" ok_max_mean_abs_status="robust" ok_min_mean_abs="120.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rsutcs (table Amon)" uid="2919d776-c1cf-11e6-a1c6-ac72891c3257" valid_max="480.0" valid_max_status="robust" valid_min="-0.1" valid_min_status="robust" vid="bab69c06-e5dd-11e5-8482-ac72891c3257"/> 
    42 <item comment="Maximum in CMIP5 archive 28 ... but resolution dependent." label="Amon-sfcWind" ok_max_mean_abs_status="robust" ok_min_mean_abs="15.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for sfcWind (table Amon)" uid="291a0c46-c1cf-11e6-a1c6-ac72891c3257" valid_max="80.0" valid_max_status="robust" valid_min="0.0" valid_min_status="robust" vid="bab6f494-e5dd-11e5-8482-ac72891c3257"/> 
    43 <item comment="CMIP5 values exceeded ... appear to have been too restrictive" label="Amon-tauv" ok_max_mean_abs_status="robust" ok_min_mean_abs="0.2" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for tauv (table Amon)" uid="291a3360-c1cf-11e6-a1c6-ac72891c3257" valid_max="10.0" valid_max_status="robust" valid_min="-10.0" valid_min_status="robust" vid="bab9888a-e5dd-11e5-8482-ac72891c3257"/> 
    44 <item comment="" label="Amon-tasmin" ok_max_mean_abs_status="robust" ok_min_mean_abs="290.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for tasmin (table Amon)" uid="291a6a9c-c1cf-11e6-a1c6-ac72891c3257" valid_max="345.0" valid_max_status="robust" valid_min="165.0" valid_min_status="robust" vid="bab955ea-e5dd-11e5-8482-ac72891c3257"/> 
    45 <item comment="CMIP5 values exceeded ... appear to have been too restrictive" label="Amon-tauu" ok_max_mean_abs_status="robust" ok_min_mean_abs="0.2" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for tauu (table Amon)" uid="291aa0d4-c1cf-11e6-a1c6-ac72891c3257" valid_max="10.0" valid_max_status="robust" valid_min="-10.0" valid_min_status="robust" vid="bab96cc4-e5dd-11e5-8482-ac72891c3257"/> 
    46 <item comment="" label="Amon-tasmax" ok_max_mean_abs_status="robust" ok_min_mean_abs="300.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for tasmax (table Amon)" uid="291acfa0-c1cf-11e6-a1c6-ac72891c3257" valid_max="355.0" valid_max_status="robust" valid_min="175.0" valid_min_status="robust" vid="bab942a8-e5dd-11e5-8482-ac72891c3257"/> 
    47 <item comment="CMIP5 values too limited: expanded here." label="Amon-rsus" ok_max_mean_abs_status="robust" ok_min_mean_abs="90.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rsus (table Amon)" uid="291b0466-c1cf-11e6-a1c6-ac72891c3257" valid_max="480.0" valid_max_status="robust" valid_min="-0.1" valid_min_status="robust" vid="bab6537c-e5dd-11e5-8482-ac72891c3257"/> 
    48 <item comment="" label="Amon-hfls" ok_max_mean_abs_status="robust" ok_min_mean_abs="80.0" ok_min_mean_abs_status="robust" prov="CMIP5 data" title="Guide ranges for hfls (table Amon)" uid="291b3184-c1cf-11e6-a1c6-ac72891c3257" valid_max="850.0" valid_max_status="robust" valid_min="-90.0" valid_min_status="robust" vid="baaefe2e-e5dd-11e5-8482-ac72891c3257"/> 
    49 <item comment="Two models  (one institution) in CMIP5 were under this valid_min, but acknowledged this as an error." label="Amon-rsut" ok_max_mean_abs_status="robust" ok_min_mean_abs="160.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rsut (table Amon)" uid="291b650a-c1cf-11e6-a1c6-ac72891c3257" valid_max="480.0" valid_max_status="robust" valid_min="-0.1" valid_min_status="robust" vid="bab68ebe-e5dd-11e5-8482-ac72891c3257"/> 
    50 <item comment="Convection can occur at any level in the atmosphere." label="Amon-ccb" ok_max_mean_abs_status="suggested" ok_min_mean_abs="100000.0" ok_min_mean_abs_status="suggested" prov="CMIP6 discussion" title="Guide ranges for ccb (table Amon)" uid="291b928c-c1cf-11e6-a1c6-ac72891c3257" valid_max="115000.0" valid_max_status="robust" valid_min="0.0" valid_min_status="robust" vid="baa92652-e5dd-11e5-8482-ac72891c3257"/> 
    51 <item comment="" label="day-clt" ok_max_mean_abs_status="robust" ok_min_mean_abs="90.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for clt (table day)" uid="291bca04-c1cf-11e6-a1c6-ac72891c3257" url="http://w3id.org/cmip6dr/ranges/day_clt.html" valid_max="100.001" valid_max_status="robust" valid_min="-0.001" valid_min_status="robust" vid="baaace4e-e5dd-11e5-8482-ac72891c3257"/> 
    52 <item comment="" label="day-hfss" ok_max_mean_abs_status="robust" ok_min_mean_abs="60.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for hfss (table day)" uid="291c0302-c1cf-11e6-a1c6-ac72891c3257" valid_max="2000.0" valid_max_status="robust" valid_min="-1000.0" valid_min_status="robust" vid="baaf91cc-e5dd-11e5-8482-ac72891c3257"/> 
    53 <item comment="" label="day-hfls" ok_max_mean_abs_status="robust" ok_min_mean_abs="110.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for hfls (table day)" uid="291c3070-c1cf-11e6-a1c6-ac72891c3257" valid_max="1800.0" valid_max_status="robust" valid_min="-400.0" valid_min_status="robust" vid="baaf0a9a-e5dd-11e5-8482-ac72891c3257"/> 
    54 <item comment="" label="Omon-agessc" ok_max_mean_abs_status="suggested" ok_min_mean_abs="5000.0" ok_min_mean_abs_status="suggested" prov="" title="Guide ranges for agessc (table Omon)" uid="291c6590-c1cf-11e6-a1c6-ac72891c3257" valid_max="20000.0" valid_max_status="suggested" valid_min="-0.001" valid_min_status="robust" vid="baa56de6-e5dd-11e5-8482-ac72891c3257"/> 
    55 <item uid="291c9754-c1cf-11e6-a1c6-ac72891c3257" valid_max="100.0" valid_max_status="suggested" valid_min="0.0" valid_min_status="suggested" vid="baaaeeec-e5dd-11e5-8482-ac72891c3257"/> 
    56 <item uid="291c9d76-c1cf-11e6-a1c6-ac72891c3257" valid_max="90.0" valid_max_status="suggested" valid_min="-90.0" valid_min_status="suggested" vid="a952af50-817c-11e6-a4e2-5404a60d96b5"/> 
    57 <item uid="291ca32a-c1cf-11e6-a1c6-ac72891c3257" valid_max="360.0" valid_max_status="suggested" valid_min="0.0" valid_min_status="suggested" vid="a952a3ac-817c-11e6-a4e2-5404a60d96b5"/> 
    58 <item ok_max_mean_abs="299.8" ok_max_mean_abs_status="suggested" ok_min_mean_abs="194.3" ok_min_mean_abs_status="suggested" uid="291cb522-c1cf-11e6-a1c6-ac72891c3257" valid_max="336.3" valid_max_status="suggested" valid_min="157.1" valid_min_status="suggested" vid="bab8fa0a-e5dd-11e5-8482-ac72891c3257"/> 
    59 <item ok_max_mean_abs="7558" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-149.1" ok_min_mean_abs_status="suggested" uid="291cbbda-c1cf-11e6-a1c6-ac72891c3257" valid_max="1.162e+04" valid_max_status="suggested" valid_min="-419.2" valid_min_status="suggested" vid="babada1e-e5dd-11e5-8482-ac72891c3257"/> 
    60 <item ok_max_mean_abs="0.2846" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-0.03549" ok_min_mean_abs_status="suggested" uid="291cc242-c1cf-11e6-a1c6-ac72891c3257" valid_max="3.364" valid_max_status="suggested" valid_min="-3.827e-06" valid_min_status="suggested" vid="baab1818-e5dd-11e5-8482-ac72891c3257"/> 
    61 <item ok_max_mean_abs="315.8" ok_max_mean_abs_status="suggested" ok_min_mean_abs="282.6" ok_min_mean_abs_status="suggested" uid="291cc94a-c1cf-11e6-a1c6-ac72891c3257" valid_max="580.4" valid_max_status="suggested" valid_min="0" valid_min_status="suggested" vid="bab6219a-e5dd-11e5-8482-ac72891c3257"/> 
    62 <item ok_max_mean_abs="26.07" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-0.04479" ok_min_mean_abs_status="suggested" uid="291cd02a-c1cf-11e6-a1c6-ac72891c3257" valid_max="105" valid_max_status="suggested" valid_min="0" valid_min_status="suggested" vid="baaa4302-e5dd-11e5-8482-ac72891c3257"/> 
    63 <item ok_max_mean_abs="0.04256" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-0.005083" ok_min_mean_abs_status="suggested" uid="291cd71e-c1cf-11e6-a1c6-ac72891c3257" valid_max="2.319" valid_max_status="suggested" valid_min="-1.126" valid_min_status="suggested" vid="babd0906-e5dd-11e5-8482-ac72891c3257"/> 
    64 <item ok_max_mean_abs="3.299e+04" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-113.4" ok_min_mean_abs_status="suggested" uid="291cdebc-c1cf-11e6-a1c6-ac72891c3257" valid_max="3.437e+04" valid_max_status="suggested" valid_min="-719.7" valid_min_status="suggested" vid="babd9ace-e5dd-11e5-8482-ac72891c3257"/> 
    65 <item ok_max_mean_abs="97" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-10.31" ok_min_mean_abs_status="suggested" uid="291ce524-c1cf-11e6-a1c6-ac72891c3257" valid_max="135.7" valid_max_status="suggested" valid_min="-2.642" valid_min_status="suggested" vid="baafe578-e5dd-11e5-8482-ac72891c3257"/> 
    66 <item ok_max_mean_abs="0.01041" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-0.0003539" ok_min_mean_abs_status="suggested" uid="291cec9a-c1cf-11e6-a1c6-ac72891c3257" valid_max="0.02841" valid_max_status="suggested" valid_min="-0.000299" valid_min_status="suggested" vid="bab00b98-e5dd-11e5-8482-ac72891c3257"/> 
    67 <item ok_max_mean_abs="22.42" ok_max_mean_abs_status="suggested" ok_min_mean_abs="1.101" ok_min_mean_abs_status="suggested" uid="291cf2f8-c1cf-11e6-a1c6-ac72891c3257" valid_max="136.6" valid_max_status="suggested" valid_min="-68.65" valid_min_status="suggested" vid="babb4b34-e5dd-11e5-8482-ac72891c3257"/> 
    68 <item ok_max_mean_abs="4.679" ok_max_mean_abs_status="suggested" ok_min_mean_abs="0.9886" ok_min_mean_abs_status="suggested" uid="291cf906-c1cf-11e6-a1c6-ac72891c3257" valid_max="69.93" valid_max_status="suggested" valid_min="-71.1" valid_min_status="suggested" vid="babbb25e-e5dd-11e5-8482-ac72891c3257"/> 
    69 <item ok_max_mean_abs="0.1187" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-0.0348" ok_min_mean_abs_status="suggested" uid="291d0504-c1cf-11e6-a1c6-ac72891c3257" valid_max="1.535" valid_max_status="suggested" valid_min="-1.872e-06" valid_min_status="suggested" vid="baaa9852-e5dd-11e5-8482-ac72891c3257"/> 
    70 <item ok_max_mean_abs="97" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-10.31" ok_min_mean_abs_status="suggested" uid="291d0eaa-c1cf-11e6-a1c6-ac72891c3257" valid_max="135.7" valid_max_status="suggested" valid_min="-2.642" valid_min_status="suggested" vid="baafe8fc-e5dd-11e5-8482-ac72891c3257"/> 
    71 <item ok_max_mean_abs="0.01041" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-0.0003539" ok_min_mean_abs_status="suggested" uid="291d14ea-c1cf-11e6-a1c6-ac72891c3257" valid_max="0.02841" valid_max_status="suggested" valid_min="-0.000299" valid_min_status="suggested" vid="bab00f1c-e5dd-11e5-8482-ac72891c3257"/> 
    72 <item ok_max_mean_abs="299.8" ok_max_mean_abs_status="suggested" ok_min_mean_abs="194.3" ok_min_mean_abs_status="suggested" uid="291d1bac-c1cf-11e6-a1c6-ac72891c3257" valid_max="336.3" valid_max_status="suggested" valid_min="157.1" valid_min_status="suggested" vid="bab8ff64-e5dd-11e5-8482-ac72891c3257"/> 
    73 <item uid="291d2412-c1cf-11e6-a1c6-ac72891c3257" valid_max="30.0" valid_max_status="suggested" valid_min="0.0" valid_min_status="suggested" vid="bab5c7fe-e5dd-11e5-8482-ac72891c3257"/> 
    74 <item uid="291d289a-c1cf-11e6-a1c6-ac72891c3257" valid_max="10000.0" valid_max_status="suggested" valid_min="-700.0" valid_min_status="suggested" vid="bab2f9d4-e5dd-11e5-8482-ac72891c3257"/> 
    75 <item uid="291d2ce6-c1cf-11e6-a1c6-ac72891c3257" valid_max="100.0" valid_max_status="suggested" valid_min="0.0" valid_min_status="suggested" vid="bab74ca0-e5dd-11e5-8482-ac72891c3257"/> 
    76 <item uid="291d311e-c1cf-11e6-a1c6-ac72891c3257" valid_max="100.0" valid_max_status="suggested" valid_min="0.0" valid_min_status="suggested" vid="bab742c8-e5dd-11e5-8482-ac72891c3257"/> 
    77 <item ok_max_mean_abs="1e+15" ok_max_mean_abs_status="suggested" ok_min_mean_abs="0.0" ok_min_mean_abs_status="suggested" uid="291d3664-c1cf-11e6-a1c6-ac72891c3257" valid_max="1e+15" valid_max_status="suggested" valid_min="0.0" valid_min_status="suggested" vid="babcc39c-e5dd-11e5-8482-ac72891c3257"/> 
    78 <item ok_max_mean_abs="1e+12" ok_max_mean_abs_status="suggested" ok_min_mean_abs="100000.0" ok_min_mean_abs_status="suggested" uid="291d3d4e-c1cf-11e6-a1c6-ac72891c3257" valid_max="1e+12" valid_max_status="suggested" valid_min="100000.0" valid_min_status="suggested" vid="baa83a12-e5dd-11e5-8482-ac72891c3257"/> 
    79 <item uid="291d4442-c1cf-11e6-a1c6-ac72891c3257" valid_max="100.0" valid_max_status="suggested" valid_min="0.0" valid_min_status="suggested" vid="bab73a76-e5dd-11e5-8482-ac72891c3257"/> 
    80 <item ok_max_mean_abs="0.2998" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-0.0511" ok_min_mean_abs_status="suggested" uid="291d50d6-c1cf-11e6-a1c6-ac72891c3257" valid_max="0.3734" valid_max_status="suggested" valid_min="-0.1375" valid_min_status="suggested" vid="baa51058-e5dd-11e5-8482-ac72891c3257"/> 
    81 <item ok_max_mean_abs="2.364e+14" ok_max_mean_abs_status="suggested" ok_min_mean_abs="5.91e+13" ok_min_mean_abs_status="suggested" uid="291d6e04-c1cf-11e6-a1c6-ac72891c3257" valid_max="2.691e+15" valid_max_status="suggested" valid_min="-1.772e+15" valid_min_status="suggested" vid="baa5ef8c-e5dd-11e5-8482-ac72891c3257"/> 
    82 <item ok_max_mean_abs="303.5" ok_max_mean_abs_status="suggested" ok_min_mean_abs="272" ok_min_mean_abs_status="suggested" uid="291d73d6-c1cf-11e6-a1c6-ac72891c3257" valid_max="325.2" valid_max_status="suggested" valid_min="257.4" valid_min_status="suggested" vid="baa52de0-e5dd-11e5-8482-ac72891c3257"/> 
    83 <item ok_max_mean_abs="6.051e-05" ok_max_mean_abs_status="suggested" ok_min_mean_abs="1.831e-05" ok_min_mean_abs_status="suggested" uid="291d7d04-c1cf-11e6-a1c6-ac72891c3257" valid_max="0.03952" valid_max_status="suggested" valid_min="-0.005411" valid_min_status="suggested" vid="baa63578-e5dd-11e5-8482-ac72891c3257"/> 
    84 <item ok_max_mean_abs="8.156e+14" ok_max_mean_abs_status="suggested" ok_min_mean_abs="2.039e+14" ok_min_mean_abs_status="suggested" uid="291d8484-c1cf-11e6-a1c6-ac72891c3257" valid_max="1.305e+16" valid_max_status="suggested" valid_min="-6.263e+15" valid_min_status="suggested" vid="baa5f3ba-e5dd-11e5-8482-ac72891c3257"/> 
    85 <item ok_max_mean_abs="6.11e-06" ok_max_mean_abs_status="suggested" ok_min_mean_abs="1.449e-06" ok_min_mean_abs_status="suggested" uid="291d8a38-c1cf-11e6-a1c6-ac72891c3257" valid_max="0.0002987" valid_max_status="suggested" valid_min="0" valid_min_status="suggested" vid="baa61c28-e5dd-11e5-8482-ac72891c3257"/> 
    86 <item ok_max_mean_abs="1.572" ok_max_mean_abs_status="suggested" ok_min_mean_abs="0.008384" ok_min_mean_abs_status="suggested" uid="291d9014-c1cf-11e6-a1c6-ac72891c3257" valid_max="9.575" valid_max_status="suggested" valid_min="-13.97" valid_min_status="suggested" vid="baa507f2-e5dd-11e5-8482-ac72891c3257"/> 
    87 <item uid="291d9cb2-c1cf-11e6-a1c6-ac72891c3257" valid_max="80.0" valid_max_status="suggested" valid_min="-80.0" valid_min_status="suggested" vid="8bae5aba-4a5b-11e6-9cd2-ac72891c3257"/> 
    88 <item uid="291da11c-c1cf-11e6-a1c6-ac72891c3257" valid_max="145.0" valid_max_status="suggested" valid_min="-90.0" valid_min_status="suggested" vid="8bae55ba-4a5b-11e6-9cd2-ac72891c3257"/> 
    89 <item uid="291da54a-c1cf-11e6-a1c6-ac72891c3257" valid_max="113000.0" valid_max_status="suggested" valid_min="92500.0" valid_min_status="suggested" vid="bab48ab0-e5dd-11e5-8482-ac72891c3257"/> 
    90 <item uid="291da9b4-c1cf-11e6-a1c6-ac72891c3257" valid_max="330.0" valid_max_status="suggested" valid_min="144.0" valid_min_status="suggested" vid="6a35d178-aa6a-11e6-9736-5404a60d96b5"/> 
    91 <item ok_max_mean_abs="3038" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-1424" ok_min_mean_abs_status="suggested" uid="291db4fe-c1cf-11e6-a1c6-ac72891c3257" valid_max="5717" valid_max_status="suggested" valid_min="-64.17" valid_min_status="suggested" vid="bab1a782-e5dd-11e5-8482-ac72891c3257"/> 
    92 <item ok_max_mean_abs="123.3" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-35.89" ok_min_mean_abs_status="suggested" uid="291dbb52-c1cf-11e6-a1c6-ac72891c3257" valid_max="146.5" valid_max_status="suggested" valid_min="-2.008" valid_min_status="suggested" vid="bab1c85c-e5dd-11e5-8482-ac72891c3257"/> 
    93 <item ok_max_mean_abs="1.302e-05" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-5.867e-06" ok_min_mean_abs_status="suggested" uid="291dc976-c1cf-11e6-a1c6-ac72891c3257" valid_max="0.0009825" valid_max_status="suggested" valid_min="-6.802e-06" valid_min_status="suggested" vid="bab19ff8-e5dd-11e5-8482-ac72891c3257"/> 
    94 <item ok_max_mean_abs="940.3" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-419" ok_min_mean_abs_status="suggested" uid="291dd056-c1cf-11e6-a1c6-ac72891c3257" valid_max="5763" valid_max_status="suggested" valid_min="0" valid_min_status="suggested" vid="bab1688a-e5dd-11e5-8482-ac72891c3257"/> 
    95 <item ok_max_mean_abs="1.874e-05" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-6.668e-06" ok_min_mean_abs_status="suggested" uid="291dd70e-c1cf-11e6-a1c6-ac72891c3257" valid_max="0.001065" valid_max_status="suggested" valid_min="-0.0002019" valid_min_status="suggested" vid="bab17a6e-e5dd-11e5-8482-ac72891c3257"/> 
    96 <item ok_max_mean_abs="4.503" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-1.961" ok_min_mean_abs_status="suggested" uid="291dde16-c1cf-11e6-a1c6-ac72891c3257" valid_max="962.9" valid_max_status="suggested" valid_min="0" valid_min_status="suggested" vid="bab7e05c-e5dd-11e5-8482-ac72891c3257"/> 
    97 <item ok_max_mean_abs="6.123e-06" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-2.092e-06" ok_min_mean_abs_status="suggested" uid="291de424-c1cf-11e6-a1c6-ac72891c3257" valid_max="0.0003926" valid_max_status="suggested" valid_min="0" valid_min_status="suggested" vid="bab802f8-e5dd-11e5-8482-ac72891c3257"/> 
    98 <item ok_max_mean_abs="78.46" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-29.01" ok_min_mean_abs_status="suggested" uid="291deac8-c1cf-11e6-a1c6-ac72891c3257" valid_max="105" valid_max_status="suggested" valid_min="0" valid_min_status="suggested" vid="bab7c2d4-e5dd-11e5-8482-ac72891c3257"/> 
    99 <item ok_max_mean_abs="1.213e+04" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-6025" ok_min_mean_abs_status="suggested" uid="291df112-c1cf-11e6-a1c6-ac72891c3257" valid_max="9.555e+05" valid_max_status="suggested" valid_min="-0.007542" valid_min_status="suggested" vid="bab81e50-e5dd-11e5-8482-ac72891c3257"/> 
    100 <item ok_max_mean_abs="9.61e-05" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-5.521e-05" ok_min_mean_abs_status="suggested" uid="291df75c-c1cf-11e6-a1c6-ac72891c3257" valid_max="0.0009936" valid_max_status="suggested" valid_min="-0.004959" valid_min_status="suggested" vid="bab6bba0-e5dd-11e5-8482-ac72891c3257"/> 
    101 <item uid="291e0314-c1cf-11e6-a1c6-ac72891c3257" valid_max="90.0" valid_max_status="suggested" valid_min="-90.0" valid_min_status="suggested" vid="a9561136-817c-11e6-a4e2-5404a60d96b5"/> 
    102 <item uid="291e0882-c1cf-11e6-a1c6-ac72891c3257" valid_max="360.0" valid_max_status="suggested" valid_min="0.0" valid_min_status="suggested" vid="a95605f6-817c-11e6-a4e2-5404a60d96b5"/> 
     13<item comment="" label="Amon-ci" ok_max_mean_abs_status="suggested" ok_min_mean_abs="0.9" ok_min_mean_abs_status="suggested" prov="CMIP5 data" title="Guide ranges for ci (table Amon)" uid="84ecd914-c69c-11e6-8e5a-ac72891c3257" valid_max="1.001" valid_max_status="robust" valid_min="-0.001" valid_min_status="robust" vid="baaa3984-e5dd-11e5-8482-ac72891c3257"/> 
     14<item comment="" label="Amon-sci" ok_max_mean_abs_status="robust" ok_min_mean_abs="0.9" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for sci (table Amon)" uid="84ee03a2-c69c-11e6-8e5a-ac72891c3257" valid_max="1.001" valid_max_status="robust" valid_min="-0.001" valid_min_status="robust" vid="bab6d180-e5dd-11e5-8482-ac72891c3257"/> 
     15<item comment="One CMIP5 model is an outlier in mean abs values, being a factor 1000 out: a clear scaling error. Many models exceed the CMIP5 max: relaxed significantly to allow for further increase in modelled convective activity" label="Amon-prc" ok_max_mean_abs_status="robust" ok_min_mean_abs="4e-05" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for prc (table Amon)" uid="84eff414-c69c-11e6-8e5a-ac72891c3257" valid_max="0.0015" valid_max_status="robust" valid_min="-1e-06" valid_min_status="robust" vid="bab3f8a2-e5dd-11e5-8482-ac72891c3257"/> 
     16<item comment="" label="Amon-tas" ok_max_mean_abs_status="robust" ok_min_mean_abs="295.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for tas (table Amon)" uid="84f1499a-c69c-11e6-8e5a-ac72891c3257" valid_max="350.0" valid_max_status="robust" valid_min="170.0" valid_min_status="robust" vid="bab9237c-e5dd-11e5-8482-ac72891c3257"/> 
     17<item comment="CMIP5 values too limited: expanded here." label="Amon-rsuscs" ok_max_mean_abs_status="robust" ok_min_mean_abs="90.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rsuscs (table Amon)" uid="84f28e5e-c69c-11e6-8e5a-ac72891c3257" valid_max="480.0" valid_max_status="robust" valid_min="-0.1" valid_min_status="robust" vid="bab670b4-e5dd-11e5-8482-ac72891c3257"/> 
     18<item comment="CMIP5 values too restrictive .. resolution dependent extremes expected .. generous extension of range" label="Amon-uas" ok_max_mean_abs_status="robust" ok_min_mean_abs="10.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for uas (table Amon)" uid="84f324cc-c69c-11e6-8e5a-ac72891c3257" valid_max="80.0" valid_max_status="robust" valid_min="-80.0" valid_min_status="robust" vid="babb67c2-e5dd-11e5-8482-ac72891c3257"/> 
     19<item comment="CMIP5 table max/min values OK apart from one outlier; mean abs values too tight" label="Amon-huss" ok_max_mean_abs_status="robust" ok_min_mean_abs="0.012" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for huss (table Amon)" uid="84f3574e-c69c-11e6-8e5a-ac72891c3257" valid_max="0.03" valid_max_status="robust" valid_min="0.0" valid_min_status="robust" vid="bab01dfe-e5dd-11e5-8482-ac72891c3257"/> 
     20<item comment="" label="Amon-hfss" ok_max_mean_abs_status="suggested" ok_min_mean_abs="38.0" ok_min_mean_abs_status="suggested" prov="" title="Guide ranges for hfss (table Amon)" uid="84f38444-c69c-11e6-8e5a-ac72891c3257" valid_max="1200.0" valid_max_status="suggested" valid_min="-400.0" valid_min_status="suggested" vid="baaf86a0-e5dd-11e5-8482-ac72891c3257"/> 
     21<item comment="" label="Amon-rlutcs" ok_max_mean_abs_status="robust" ok_min_mean_abs="270.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rlutcs (table Amon)" uid="84f3a79e-c69c-11e6-8e5a-ac72891c3257" valid_max="390.0" valid_max_status="robust" valid_min="65.0" valid_min_status="robust" vid="bab5bcdc-e5dd-11e5-8482-ac72891c3257"/> 
     22<item comment="All models in CMIP5 range, but close to max: relaxed slightly" label="Amon-prw" ok_max_mean_abs_status="robust" ok_min_mean_abs="26.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for prw (table Amon)" uid="84f3d642-c69c-11e6-8e5a-ac72891c3257" valid_max="90.0" valid_max_status="robust" valid_min="0.0" valid_min_status="robust" vid="bab45df6-e5dd-11e5-8482-ac72891c3257"/> 
     23<item comment="CMIP5 models all consistent; several exceed CMOR table max;" label="Amon-prsn" ok_max_mean_abs_status="robust" ok_min_mean_abs="8e-06" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for prsn (table Amon)" uid="84f40324-c69c-11e6-8e5a-ac72891c3257" valid_max="0.0008" valid_max_status="robust" valid_min="-1e-06" valid_min_status="robust" vid="bab42b88-e5dd-11e5-8482-ac72891c3257"/> 
     24<item comment="" label="Amon-rldscs" ok_max_mean_abs_status="robust" ok_min_mean_abs="310.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rldscs (table Amon)" uid="84f42890-c69c-11e6-8e5a-ac72891c3257" valid_max="550.0" valid_max_status="robust" valid_min="25.0" valid_min_status="robust" vid="bab5540e-e5dd-11e5-8482-ac72891c3257"/> 
     25<item comment="Only 3 models .. positive definate in CMIP5, but may turn negative in CMIP6" label="Amon-fco2antt" ok_max_mean_abs_status="tentative" ok_min_mean_abs="1e-09" ok_min_mean_abs_status="tentative" prov="" title="Guide ranges for fco2antt (table Amon)" uid="84f453f6-c69c-11e6-8e5a-ac72891c3257" valid_max="2e-07" valid_max_status="tentative" valid_min="-1e-07" valid_min_status="suggested" vid="baaddada-e5dd-11e5-8482-ac72891c3257"/> 
     26<item comment="CMIP5 table values OK, but expanded slightly here to allow for greater spatial and scenario variability" label="Amon-pr" ok_max_mean_abs_status="robust" ok_min_mean_abs="4e-05" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for pr (table Amon)" uid="84f47976-c69c-11e6-8e5a-ac72891c3257" valid_max="0.0015" valid_max_status="robust" valid_min="-1e-06" valid_min_status="robust" vid="bab3cb52-e5dd-11e5-8482-ac72891c3257"/> 
     27<item comment="CMIP5 values OK .. abs range tightened slightly" label="Amon-ps" ok_max_mean_abs_status="robust" ok_min_mean_abs="100000.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for ps (table Amon)" uid="84f4a342-c69c-11e6-8e5a-ac72891c3257" valid_max="112000.0" valid_max_status="robust" valid_min="47500.0" valid_min_status="robust" vid="bab47b56-e5dd-11e5-8482-ac72891c3257"/> 
     28<item comment="" label="Amon-rlus" ok_max_mean_abs_status="robust" ok_min_mean_abs="380.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rlus (table Amon)" uid="84f4c642-c69c-11e6-8e5a-ac72891c3257" valid_max="660.0" valid_max_status="robust" valid_min="43.0" valid_min_status="robust" vid="bab578d0-e5dd-11e5-8482-ac72891c3257"/> 
     29<item comment="Relaxed mean abs slightly" label="Amon-rlds" ok_max_mean_abs_status="robust" ok_min_mean_abs="330.0" ok_min_mean_abs_status="robust" prov="CMIP5 data" title="Guide ranges for rlds (table Amon)" uid="84f4ef0a-c69c-11e6-8e5a-ac72891c3257" valid_max="520.0" valid_max_status="robust" valid_min="30.0" valid_min_status="robust" vid="bab52da8-e5dd-11e5-8482-ac72891c3257"/> 
     30<item comment="" label="Amon-fco2nat" ok_max_mean_abs_status="suggested" ok_min_mean_abs="1e-07" ok_min_mean_abs_status="suggested" prov="" title="Guide ranges for fco2nat (table Amon)" uid="84f51d40-c69c-11e6-8e5a-ac72891c3257" valid_max="2e-06" valid_max_status="suggested" valid_min="-2e-05" valid_min_status="suggested" vid="baaded68-e5dd-11e5-8482-ac72891c3257"/> 
     31<item comment="" label="Amon-ts" ok_max_mean_abs_status="robust" ok_min_mean_abs="295.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for ts (table Amon)" uid="84f5439c-c69c-11e6-8e5a-ac72891c3257" valid_max="340.0" valid_max_status="robust" valid_min="170.0" valid_min_status="robust" vid="babaef0e-e5dd-11e5-8482-ac72891c3257"/> 
     32<item comment="" label="Amon-clt" ok_max_mean_abs_status="robust" ok_min_mean_abs="85.0" ok_min_mean_abs_status="robust" prov="CMIP5 request/data" title="Guide ranges for clt (table Amon)" uid="84f56f70-c69c-11e6-8e5a-ac72891c3257" valid_max="100.001" valid_max_status="robust" valid_min="-0.001" valid_min_status="robust" vid="baaad7e0-e5dd-11e5-8482-ac72891c3257"/> 
     33<item comment="CMIP5 values too restrictive .. resolution dependent extremes expected .. generous extension of range" label="Amon-vas" ok_max_mean_abs_status="robust" ok_min_mean_abs="10.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for vas (table Amon)" uid="84f59464-c69c-11e6-8e5a-ac72891c3257" valid_max="80.0" valid_max_status="robust" valid_min="-80.0" valid_min_status="robust" vid="babbcd34-e5dd-11e5-8482-ac72891c3257"/> 
     34<item comment="CMIP5 values OK: one model has clear outliers not picked up by the limits: could be tightened?" label="Amon-psl" ok_max_mean_abs_status="robust" ok_min_mean_abs="106000.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for psl (table Amon)" uid="84f5c358-c69c-11e6-8e5a-ac72891c3257" valid_max="109000.0" valid_max_status="robust" valid_min="91000.0" valid_min_status="robust" vid="bab48ce0-e5dd-11e5-8482-ac72891c3257"/> 
     35<item comment="" label="Amon-rlut" ok_max_mean_abs_status="robust" ok_min_mean_abs="305.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rlut (table Amon)" uid="84f5ee78-c69c-11e6-8e5a-ac72891c3257" valid_max="385.0" valid_max_status="robust" valid_min="65.0" valid_min_status="robust" vid="bab5aad0-e5dd-11e5-8482-ac72891c3257"/> 
     36<item comment="" label="Amon-hurs" ok_max_mean_abs_status="suggested" ok_min_mean_abs="99.0" ok_min_mean_abs_status="suggested" prov="CMIP5 data" title="Guide ranges for hurs (table Amon)" uid="84f61380-c69c-11e6-8e5a-ac72891c3257" valid_max="100.001" valid_max_status="robust" valid_min="-0.001" valid_min_status="robust" vid="baaff41e-e5dd-11e5-8482-ac72891c3257"/> 
     37<item comment="CMIP5 values too limited: expanded here." label="Amon-rsds" ok_max_mean_abs_status="robust" ok_min_mean_abs="200.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rsds (table Amon)" uid="84f63e64-c69c-11e6-8e5a-ac72891c3257" valid_max="550.0" valid_max_status="robust" valid_min="-0.1" valid_min_status="robust" vid="bab5e1b2-e5dd-11e5-8482-ac72891c3257"/> 
     38<item comment="One model family in CMIP5 (NASA-GISS) has substantially larger values than all others. Broad limits set here to encompass all values." label="Amon-sbl" ok_max_mean_abs_status="robust" ok_min_mean_abs="0.0001" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for sbl (table Amon)" uid="84f664c0-c69c-11e6-8e5a-ac72891c3257" valid_max="0.001" valid_max_status="robust" valid_min="-0.0005" valid_min_status="robust" vid="bab6b948-e5dd-11e5-8482-ac72891c3257"/> 
     39<item comment="CMIP5 values too limited: expanded here." label="Amon-rtmt" ok_max_mean_abs_status="robust" ok_min_mean_abs="150.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rtmt (table Amon)" uid="84f69ba2-c69c-11e6-8e5a-ac72891c3257" valid_max="250.0" valid_max_status="robust" valid_min="-250.0" valid_min_status="robust" vid="bab6a91c-e5dd-11e5-8482-ac72891c3257"/> 
     40<item comment="Convection can occur at any level in the atmosphere." label="Amon-cct" ok_max_mean_abs_status="suggested" ok_min_mean_abs="100000.0" ok_min_mean_abs_status="suggested" prov="CMIP6 discussion" title="Guide ranges for cct (table Amon)" uid="84f6c0e6-c69c-11e6-8e5a-ac72891c3257" valid_max="115000.0" valid_max_status="robust" valid_min="0.0" valid_min_status="robust" vid="baa96a0e-e5dd-11e5-8482-ac72891c3257"/> 
     41<item comment="Two models  (one institution) in CMIP5 were under this valid_min, but acknowledged this as an error." label="Amon-rsutcs" ok_max_mean_abs_status="robust" ok_min_mean_abs="120.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rsutcs (table Amon)" uid="84f6fe80-c69c-11e6-8e5a-ac72891c3257" valid_max="480.0" valid_max_status="robust" valid_min="-0.1" valid_min_status="robust" vid="bab69c06-e5dd-11e5-8482-ac72891c3257"/> 
     42<item comment="Maximum in CMIP5 archive 28 ... but resolution dependent." label="Amon-sfcWind" ok_max_mean_abs_status="robust" ok_min_mean_abs="15.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for sfcWind (table Amon)" uid="84f72a40-c69c-11e6-8e5a-ac72891c3257" valid_max="80.0" valid_max_status="robust" valid_min="0.0" valid_min_status="robust" vid="bab6f494-e5dd-11e5-8482-ac72891c3257"/> 
     43<item comment="CMIP5 values exceeded ... appear to have been too restrictive" label="Amon-tauv" ok_max_mean_abs_status="robust" ok_min_mean_abs="0.2" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for tauv (table Amon)" uid="84f74eb2-c69c-11e6-8e5a-ac72891c3257" valid_max="10.0" valid_max_status="robust" valid_min="-10.0" valid_min_status="robust" vid="bab9888a-e5dd-11e5-8482-ac72891c3257"/> 
     44<item comment="" label="Amon-tasmin" ok_max_mean_abs_status="robust" ok_min_mean_abs="290.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for tasmin (table Amon)" uid="84f777f2-c69c-11e6-8e5a-ac72891c3257" valid_max="345.0" valid_max_status="robust" valid_min="165.0" valid_min_status="robust" vid="bab955ea-e5dd-11e5-8482-ac72891c3257"/> 
     45<item comment="CMIP5 values exceeded ... appear to have been too restrictive" label="Amon-tauu" ok_max_mean_abs_status="robust" ok_min_mean_abs="0.2" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for tauu (table Amon)" uid="84f79de0-c69c-11e6-8e5a-ac72891c3257" valid_max="10.0" valid_max_status="robust" valid_min="-10.0" valid_min_status="robust" vid="bab96cc4-e5dd-11e5-8482-ac72891c3257"/> 
     46<item comment="" label="Amon-tasmax" ok_max_mean_abs_status="robust" ok_min_mean_abs="300.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for tasmax (table Amon)" uid="84f7cb30-c69c-11e6-8e5a-ac72891c3257" valid_max="355.0" valid_max_status="robust" valid_min="175.0" valid_min_status="robust" vid="bab942a8-e5dd-11e5-8482-ac72891c3257"/> 
     47<item comment="CMIP5 values too limited: expanded here." label="Amon-rsus" ok_max_mean_abs_status="robust" ok_min_mean_abs="90.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rsus (table Amon)" uid="84f7f6d2-c69c-11e6-8e5a-ac72891c3257" valid_max="480.0" valid_max_status="robust" valid_min="-0.1" valid_min_status="robust" vid="bab6537c-e5dd-11e5-8482-ac72891c3257"/> 
     48<item comment="" label="Amon-hfls" ok_max_mean_abs_status="robust" ok_min_mean_abs="80.0" ok_min_mean_abs_status="robust" prov="CMIP5 data" title="Guide ranges for hfls (table Amon)" uid="84f81b6c-c69c-11e6-8e5a-ac72891c3257" valid_max="850.0" valid_max_status="robust" valid_min="-90.0" valid_min_status="robust" vid="baaefe2e-e5dd-11e5-8482-ac72891c3257"/> 
     49<item comment="Two models  (one institution) in CMIP5 were under this valid_min, but acknowledged this as an error." label="Amon-rsut" ok_max_mean_abs_status="robust" ok_min_mean_abs="160.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for rsut (table Amon)" uid="84f84600-c69c-11e6-8e5a-ac72891c3257" valid_max="480.0" valid_max_status="robust" valid_min="-0.1" valid_min_status="robust" vid="bab68ebe-e5dd-11e5-8482-ac72891c3257"/> 
     50<item comment="Convection can occur at any level in the atmosphere." label="Amon-ccb" ok_max_mean_abs_status="suggested" ok_min_mean_abs="100000.0" ok_min_mean_abs_status="suggested" prov="CMIP6 discussion" title="Guide ranges for ccb (table Amon)" uid="84f869c8-c69c-11e6-8e5a-ac72891c3257" valid_max="115000.0" valid_max_status="robust" valid_min="0.0" valid_min_status="robust" vid="baa92652-e5dd-11e5-8482-ac72891c3257"/> 
     51<item comment="" label="day-clt" ok_max_mean_abs_status="robust" ok_min_mean_abs="90.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for clt (table day)" uid="84f89542-c69c-11e6-8e5a-ac72891c3257" url="http://w3id.org/cmip6dr/ranges/day_clt.html" valid_max="100.001" valid_max_status="robust" valid_min="-0.001" valid_min_status="robust" vid="baaace4e-e5dd-11e5-8482-ac72891c3257"/> 
     52<item comment="" label="day-hfss" ok_max_mean_abs_status="robust" ok_min_mean_abs="60.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for hfss (table day)" uid="84f8be32-c69c-11e6-8e5a-ac72891c3257" valid_max="2000.0" valid_max_status="robust" valid_min="-1000.0" valid_min_status="robust" vid="baaf91cc-e5dd-11e5-8482-ac72891c3257"/> 
     53<item comment="" label="day-hfls" ok_max_mean_abs_status="robust" ok_min_mean_abs="110.0" ok_min_mean_abs_status="robust" prov="" title="Guide ranges for hfls (table day)" uid="84f8e952-c69c-11e6-8e5a-ac72891c3257" valid_max="1800.0" valid_max_status="robust" valid_min="-400.0" valid_min_status="robust" vid="baaf0a9a-e5dd-11e5-8482-ac72891c3257"/> 
     54<item comment="" label="Omon-agessc" ok_max_mean_abs_status="suggested" ok_min_mean_abs="5000.0" ok_min_mean_abs_status="suggested" prov="" title="Guide ranges for agessc (table Omon)" uid="84f915b2-c69c-11e6-8e5a-ac72891c3257" valid_max="20000.0" valid_max_status="suggested" valid_min="-0.001" valid_min_status="robust" vid="baa56de6-e5dd-11e5-8482-ac72891c3257"/> 
     55<item uid="84f93f7e-c69c-11e6-8e5a-ac72891c3257" valid_max="100.0" valid_max_status="suggested" valid_min="0.0" valid_min_status="suggested" vid="baaaeeec-e5dd-11e5-8482-ac72891c3257"/> 
     56<item uid="84f94488-c69c-11e6-8e5a-ac72891c3257" valid_max="90.0" valid_max_status="suggested" valid_min="-90.0" valid_min_status="suggested" vid="a952af50-817c-11e6-a4e2-5404a60d96b5"/> 
     57<item uid="84f948b6-c69c-11e6-8e5a-ac72891c3257" valid_max="360.0" valid_max_status="suggested" valid_min="0.0" valid_min_status="suggested" vid="a952a3ac-817c-11e6-a4e2-5404a60d96b5"/> 
     58<item ok_max_mean_abs="299.8" ok_max_mean_abs_status="suggested" ok_min_mean_abs="194.3" ok_min_mean_abs_status="suggested" uid="84f95112-c69c-11e6-8e5a-ac72891c3257" valid_max="336.3" valid_max_status="suggested" valid_min="157.1" valid_min_status="suggested" vid="bab8fa0a-e5dd-11e5-8482-ac72891c3257"/> 
     59<item ok_max_mean_abs="0.2846" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-0.03549" ok_min_mean_abs_status="suggested" uid="84f956a8-c69c-11e6-8e5a-ac72891c3257" valid_max="3.364" valid_max_status="suggested" valid_min="-3.827e-06" valid_min_status="suggested" vid="baab1818-e5dd-11e5-8482-ac72891c3257"/> 
     60<item ok_max_mean_abs="315.8" ok_max_mean_abs_status="suggested" ok_min_mean_abs="282.6" ok_min_mean_abs_status="suggested" uid="84f96288-c69c-11e6-8e5a-ac72891c3257" valid_max="580.4" valid_max_status="suggested" valid_min="0" valid_min_status="suggested" vid="bab6219a-e5dd-11e5-8482-ac72891c3257"/> 
     61<item ok_max_mean_abs="26.07" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-0.04479" ok_min_mean_abs_status="suggested" uid="84f968dc-c69c-11e6-8e5a-ac72891c3257" valid_max="105" valid_max_status="suggested" valid_min="0" valid_min_status="suggested" vid="baaa4302-e5dd-11e5-8482-ac72891c3257"/> 
     62<item ok_max_mean_abs="0.04256" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-0.005083" ok_min_mean_abs_status="suggested" uid="84f96efe-c69c-11e6-8e5a-ac72891c3257" valid_max="2.319" valid_max_status="suggested" valid_min="-1.126" valid_min_status="suggested" vid="babd0906-e5dd-11e5-8482-ac72891c3257"/> 
     63<item ok_max_mean_abs="3.299e+04" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-113.4" ok_min_mean_abs_status="suggested" uid="84f9758e-c69c-11e6-8e5a-ac72891c3257" valid_max="3.437e+04" valid_max_status="suggested" valid_min="-719.7" valid_min_status="suggested" vid="babd9ace-e5dd-11e5-8482-ac72891c3257"/> 
     64<item ok_max_mean_abs="97" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-10.31" ok_min_mean_abs_status="suggested" uid="84f97c28-c69c-11e6-8e5a-ac72891c3257" valid_max="135.7" valid_max_status="suggested" valid_min="-2.642" valid_min_status="suggested" vid="baafe578-e5dd-11e5-8482-ac72891c3257"/> 
     65<item ok_max_mean_abs="0.01041" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-0.0003539" ok_min_mean_abs_status="suggested" uid="84f981d2-c69c-11e6-8e5a-ac72891c3257" valid_max="0.02841" valid_max_status="suggested" valid_min="-0.000299" valid_min_status="suggested" vid="bab00b98-e5dd-11e5-8482-ac72891c3257"/> 
     66<item ok_max_mean_abs="22.42" ok_max_mean_abs_status="suggested" ok_min_mean_abs="1.101" ok_min_mean_abs_status="suggested" uid="84f9883a-c69c-11e6-8e5a-ac72891c3257" valid_max="136.6" valid_max_status="suggested" valid_min="-68.65" valid_min_status="suggested" vid="babb4b34-e5dd-11e5-8482-ac72891c3257"/> 
     67<item ok_max_mean_abs="4.679" ok_max_mean_abs_status="suggested" ok_min_mean_abs="0.9886" ok_min_mean_abs_status="suggested" uid="84f9912c-c69c-11e6-8e5a-ac72891c3257" valid_max="69.93" valid_max_status="suggested" valid_min="-71.1" valid_min_status="suggested" vid="babbb25e-e5dd-11e5-8482-ac72891c3257"/> 
     68<item ok_max_mean_abs="0.1187" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-0.0348" ok_min_mean_abs_status="suggested" uid="84f997d0-c69c-11e6-8e5a-ac72891c3257" valid_max="1.535" valid_max_status="suggested" valid_min="-1.872e-06" valid_min_status="suggested" vid="baaa9852-e5dd-11e5-8482-ac72891c3257"/> 
     69<item ok_max_mean_abs="97" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-10.31" ok_min_mean_abs_status="suggested" uid="84f9a1f8-c69c-11e6-8e5a-ac72891c3257" valid_max="135.7" valid_max_status="suggested" valid_min="-2.642" valid_min_status="suggested" vid="baafe8fc-e5dd-11e5-8482-ac72891c3257"/> 
     70<item ok_max_mean_abs="0.01041" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-0.0003539" ok_min_mean_abs_status="suggested" uid="84f9a75c-c69c-11e6-8e5a-ac72891c3257" valid_max="0.02841" valid_max_status="suggested" valid_min="-0.000299" valid_min_status="suggested" vid="bab00f1c-e5dd-11e5-8482-ac72891c3257"/> 
     71<item ok_max_mean_abs="299.8" ok_max_mean_abs_status="suggested" ok_min_mean_abs="194.3" ok_min_mean_abs_status="suggested" uid="84f9b1d4-c69c-11e6-8e5a-ac72891c3257" valid_max="336.3" valid_max_status="suggested" valid_min="157.1" valid_min_status="suggested" vid="bab8ff64-e5dd-11e5-8482-ac72891c3257"/> 
     72<item uid="84f9ba30-c69c-11e6-8e5a-ac72891c3257" valid_max="30.0" valid_max_status="suggested" valid_min="0.0" valid_min_status="suggested" vid="bab5c7fe-e5dd-11e5-8482-ac72891c3257"/> 
     73<item uid="84f9bfda-c69c-11e6-8e5a-ac72891c3257" valid_max="10000.0" valid_max_status="suggested" valid_min="-700.0" valid_min_status="suggested" vid="bab2f9d4-e5dd-11e5-8482-ac72891c3257"/> 
     74<item uid="84f9c43a-c69c-11e6-8e5a-ac72891c3257" valid_max="100.0" valid_max_status="suggested" valid_min="0.0" valid_min_status="suggested" vid="bab74ca0-e5dd-11e5-8482-ac72891c3257"/> 
     75<item uid="84f9c872-c69c-11e6-8e5a-ac72891c3257" valid_max="100.0" valid_max_status="suggested" valid_min="0.0" valid_min_status="suggested" vid="bab742c8-e5dd-11e5-8482-ac72891c3257"/> 
     76<item ok_max_mean_abs="1e+15" ok_max_mean_abs_status="suggested" ok_min_mean_abs="0.0" ok_min_mean_abs_status="suggested" uid="84f9cc82-c69c-11e6-8e5a-ac72891c3257" valid_max="1e+15" valid_max_status="suggested" valid_min="0.0" valid_min_status="suggested" vid="babcc39c-e5dd-11e5-8482-ac72891c3257"/> 
     77<item ok_max_mean_abs="1e+12" ok_max_mean_abs_status="suggested" ok_min_mean_abs="100000.0" ok_min_mean_abs_status="suggested" uid="84f9d2b8-c69c-11e6-8e5a-ac72891c3257" valid_max="1e+12" valid_max_status="suggested" valid_min="100000.0" valid_min_status="suggested" vid="baa83a12-e5dd-11e5-8482-ac72891c3257"/> 
     78<item uid="84f9d86c-c69c-11e6-8e5a-ac72891c3257" valid_max="100.0" valid_max_status="suggested" valid_min="0.0" valid_min_status="suggested" vid="bab73a76-e5dd-11e5-8482-ac72891c3257"/> 
     79<item ok_max_mean_abs="0.2998" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-0.0511" ok_min_mean_abs_status="suggested" uid="84f9e47e-c69c-11e6-8e5a-ac72891c3257" valid_max="0.3734" valid_max_status="suggested" valid_min="-0.1375" valid_min_status="suggested" vid="baa51058-e5dd-11e5-8482-ac72891c3257"/> 
     80<item ok_max_mean_abs="2.364e+14" ok_max_mean_abs_status="suggested" ok_min_mean_abs="5.91e+13" ok_min_mean_abs_status="suggested" uid="84f9ee06-c69c-11e6-8e5a-ac72891c3257" valid_max="2.691e+15" valid_max_status="suggested" valid_min="-1.772e+15" valid_min_status="suggested" vid="baa5ef8c-e5dd-11e5-8482-ac72891c3257"/> 
     81<item ok_max_mean_abs="303.5" ok_max_mean_abs_status="suggested" ok_min_mean_abs="272" ok_min_mean_abs_status="suggested" uid="84f9f450-c69c-11e6-8e5a-ac72891c3257" valid_max="325.2" valid_max_status="suggested" valid_min="257.4" valid_min_status="suggested" vid="baa52de0-e5dd-11e5-8482-ac72891c3257"/> 
     82<item ok_max_mean_abs="6.051e-05" ok_max_mean_abs_status="suggested" ok_min_mean_abs="1.831e-05" ok_min_mean_abs_status="suggested" uid="84f9fe46-c69c-11e6-8e5a-ac72891c3257" valid_max="0.03952" valid_max_status="suggested" valid_min="-0.005411" valid_min_status="suggested" vid="baa63578-e5dd-11e5-8482-ac72891c3257"/> 
     83<item ok_max_mean_abs="8.156e+14" ok_max_mean_abs_status="suggested" ok_min_mean_abs="2.039e+14" ok_min_mean_abs_status="suggested" uid="84fa2268-c69c-11e6-8e5a-ac72891c3257" valid_max="1.305e+16" valid_max_status="suggested" valid_min="-6.263e+15" valid_min_status="suggested" vid="baa5f3ba-e5dd-11e5-8482-ac72891c3257"/> 
     84<item ok_max_mean_abs="6.11e-06" ok_max_mean_abs_status="suggested" ok_min_mean_abs="1.449e-06" ok_min_mean_abs_status="suggested" uid="84fa29e8-c69c-11e6-8e5a-ac72891c3257" valid_max="0.0002987" valid_max_status="suggested" valid_min="0" valid_min_status="suggested" vid="baa61c28-e5dd-11e5-8482-ac72891c3257"/> 
     85<item ok_max_mean_abs="1.572" ok_max_mean_abs_status="suggested" ok_min_mean_abs="0.008384" ok_min_mean_abs_status="suggested" uid="84fa33a2-c69c-11e6-8e5a-ac72891c3257" valid_max="9.575" valid_max_status="suggested" valid_min="-13.97" valid_min_status="suggested" vid="baa507f2-e5dd-11e5-8482-ac72891c3257"/> 
     86<item uid="84fa437e-c69c-11e6-8e5a-ac72891c3257" valid_max="80.0" valid_max_status="suggested" valid_min="-80.0" valid_min_status="suggested" vid="8bae5aba-4a5b-11e6-9cd2-ac72891c3257"/> 
     87<item uid="84fa4798-c69c-11e6-8e5a-ac72891c3257" valid_max="145.0" valid_max_status="suggested" valid_min="-90.0" valid_min_status="suggested" vid="8bae55ba-4a5b-11e6-9cd2-ac72891c3257"/> 
     88<item uid="84fa4ba8-c69c-11e6-8e5a-ac72891c3257" valid_max="113000.0" valid_max_status="suggested" valid_min="92500.0" valid_min_status="suggested" vid="bab48ab0-e5dd-11e5-8482-ac72891c3257"/> 
     89<item uid="84fa4fa4-c69c-11e6-8e5a-ac72891c3257" valid_max="330.0" valid_max_status="suggested" valid_min="144.0" valid_min_status="suggested" vid="6a35d178-aa6a-11e6-9736-5404a60d96b5"/> 
     90<item ok_max_mean_abs="3038" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-1424" ok_min_mean_abs_status="suggested" uid="84fa5b48-c69c-11e6-8e5a-ac72891c3257" valid_max="5717" valid_max_status="suggested" valid_min="-64.17" valid_min_status="suggested" vid="bab1a782-e5dd-11e5-8482-ac72891c3257"/> 
     91<item ok_max_mean_abs="123.3" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-35.89" ok_min_mean_abs_status="suggested" uid="84fa60f2-c69c-11e6-8e5a-ac72891c3257" valid_max="146.5" valid_max_status="suggested" valid_min="-2.008" valid_min_status="suggested" vid="bab1c85c-e5dd-11e5-8482-ac72891c3257"/> 
     92<item ok_max_mean_abs="1.302e-05" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-5.867e-06" ok_min_mean_abs_status="suggested" uid="84fa67be-c69c-11e6-8e5a-ac72891c3257" valid_max="0.0009825" valid_max_status="suggested" valid_min="-6.802e-06" valid_min_status="suggested" vid="bab19ff8-e5dd-11e5-8482-ac72891c3257"/> 
     93<item ok_max_mean_abs="940.3" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-419" ok_min_mean_abs_status="suggested" uid="84fa6e1c-c69c-11e6-8e5a-ac72891c3257" valid_max="5763" valid_max_status="suggested" valid_min="0" valid_min_status="suggested" vid="bab1688a-e5dd-11e5-8482-ac72891c3257"/> 
     94<item ok_max_mean_abs="1.874e-05" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-6.668e-06" ok_min_mean_abs_status="suggested" uid="84fa7506-c69c-11e6-8e5a-ac72891c3257" valid_max="0.001065" valid_max_status="suggested" valid_min="-0.0002019" valid_min_status="suggested" vid="bab17a6e-e5dd-11e5-8482-ac72891c3257"/> 
     95<item ok_max_mean_abs="4.503" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-1.961" ok_min_mean_abs_status="suggested" uid="84fa7fce-c69c-11e6-8e5a-ac72891c3257" valid_max="962.9" valid_max_status="suggested" valid_min="0" valid_min_status="suggested" vid="bab7e05c-e5dd-11e5-8482-ac72891c3257"/> 
     96<item ok_max_mean_abs="6.123e-06" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-2.092e-06" ok_min_mean_abs_status="suggested" uid="84fa8550-c69c-11e6-8e5a-ac72891c3257" valid_max="0.0003926" valid_max_status="suggested" valid_min="0" valid_min_status="suggested" vid="bab802f8-e5dd-11e5-8482-ac72891c3257"/> 
     97<item ok_max_mean_abs="78.46" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-29.01" ok_min_mean_abs_status="suggested" uid="84fa8c1c-c69c-11e6-8e5a-ac72891c3257" valid_max="105" valid_max_status="suggested" valid_min="0" valid_min_status="suggested" vid="bab7c2d4-e5dd-11e5-8482-ac72891c3257"/> 
     98<item ok_max_mean_abs="1.213e+04" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-6025" ok_min_mean_abs_status="suggested" uid="84fa91ee-c69c-11e6-8e5a-ac72891c3257" valid_max="9.555e+05" valid_max_status="suggested" valid_min="-0.007542" valid_min_status="suggested" vid="bab81e50-e5dd-11e5-8482-ac72891c3257"/> 
     99<item ok_max_mean_abs="9.61e-05" ok_max_mean_abs_status="suggested" ok_min_mean_abs="-5.521e-05" ok_min_mean_abs_status="suggested" uid="84fa97a2-c69c-11e6-8e5a-ac72891c3257" valid_max="0.0009936" valid_max_status="suggested" valid_min="-0.004959" valid_min_status="suggested" vid="bab6bba0-e5dd-11e5-8482-ac72891c3257"/> 
     100<item uid="84faa2ec-c69c-11e6-8e5a-ac72891c3257" valid_max="90.0" valid_max_status="suggested" valid_min="-90.0" valid_min_status="suggested" vid="a9561136-817c-11e6-a4e2-5404a60d96b5"/> 
     101<item uid="84faa79c-c69c-11e6-8e5a-ac72891c3257" valid_max="360.0" valid_max_status="suggested" valid_min="0.0" valid_min_status="suggested" vid="a95605f6-817c-11e6-a4e2-5404a60d96b5"/> 
    103102</qcranges> 
    104103<places id="" label="places" title="Places, States or Reservoirs" uid="SECTION:places" useClass="vocab"> 
     
    142141<item label="molpm3s" text="mol m-3 s-1" title="Tendency of moles per unit volume" uid="fd7243a4-3468-11e6-ba71-5404a60d96b5"/> 
    143142<item group="pressure" label="pa" text="Pa" title="Pascal" uid="fd709388-3468-11e6-ba71-5404a60d96b5"/> 
    144 <item group="distance or height" label="pcm" text="cm-1" title="Wavelengths per centimetre" uid="fd70c696-3468-11e6-ba71-5404a60d96b5"/> 
     143<item group="wavelength" label="pcm" text="cm-1" title="Wavelengths per centimetre" uid="fd70c696-3468-11e6-ba71-5404a60d96b5"/> 
    145144<item group="unitless" label="molpmol" text="mol mol-1" title="Volume mixing ratio" uid="fd724b4c-3468-11e6-ba71-5404a60d96b5"/> 
    146145<item group="volume" label="tkm3" text="1e3 km3" title="Thousand cubic kilometre" uid="fd70293e-3468-11e6-ba71-5404a60d96b5"/> 
     
    151150<item group="unitless" label="degree" text="degree" title="Degree of Arc" uid="8bce5e38-a59a-11e6-acf8-5404a60d96b5"/> 
    152151<item label="kelvin" text="K" title="Kelvin" uid="fd70554e-3468-11e6-ba71-5404a60d96b5"/> 
    153 <item group="distance or height" label="pkm" text="km-1" title="per kilometre" uid="fd718644-3468-11e6-ba71-5404a60d96b5"/> 
     152<item group="wavelength" label="pkm" text="km-1" title="per kilometre" uid="fd718644-3468-11e6-ba71-5404a60d96b5"/> 
    154153<item group="Newton per metre" label="jpm2" text="J m-2" title="Joules per unit area" uid="fd704e14-3468-11e6-ba71-5404a60d96b5"/> 
    155154<item label="w" text="W" title="Watts" uid="fd70b0c0-3468-11e6-ba71-5404a60d96b5"/> 
     
    157156<item label="wpm2" text="W m-2" title="Watts per metre squared" uid="fd70b822-3468-11e6-ba71-5404a60d96b5"/> 
    158157<item group="area" label="mkm2" text="1e6 km2" title="Million square kilometre" uid="fd70312c-3468-11e6-ba71-5404a60d96b5"/> 
     158<item group="wavelength" label="pmpsr" text="m-1 sr-1" title="Per Meter Per Steradian" uid="472d53fe-c62b-11e6-9482-ac72891c3257"/> 
    159159<item label="hoursfrom" text="hours since ?" title="hs" uid="fd710c00-3468-11e6-ba71-5404a60d96b5"/> 
    160160<item label="kelvinsq" text="K2" title="Kelvin squared" uid="fd707b78-3468-11e6-ba71-5404a60d96b5"/> 
     
    187187<item group="unitless" label="kgpkg" text="kg kg-1" title="kilogram per kilogram" uid="fd713162-3468-11e6-ba71-5404a60d96b5"/> 
    188188<item label="spm" text="s m-1" title="Second per metre" uid="fd728134-3468-11e6-ba71-5404a60d96b5"/> 
    189 <item group="distance or height" label="pm2" text="m-1" title="Per metre" uid="fd71c168-3468-11e6-ba71-5404a60d96b5"/> 
     189<item group="wavelength" label="pm2" text="m-1" title="Per metre" uid="fd71c168-3468-11e6-ba71-5404a60d96b5"/> 
    190190<item group="volume" label="pm3" text="m-3" title="Per metre cubed" uid="fd71d130-3468-11e6-ba71-5404a60d96b5"/> 
    191191<item group="area" label="pm2" text="m-2" title="Per metre squared" uid="fd71c99c-3468-11e6-ba71-5404a60d96b5"/> 
     
    194194<item label="kelvinmps" text="K m s-1" title="Kelvin metre per second" uid="fd706458-3468-11e6-ba71-5404a60d96b5"/> 
    195195<item group="unitless" label="ppb" text="1e-09" title="Parts Per Billion" uid="fd701138-3468-11e6-ba71-5404a60d96b5"/> 
    196 <item group="distance or height" label="m" text="m" title="Metre" uid="fd719698-3468-11e6-ba71-5404a60d96b5"/> 
     196<item group="wavelength" label="m" text="m" title="Metre" uid="fd719698-3468-11e6-ba71-5404a60d96b5"/> 
    197197<item group="unitless" label="deglat" text="degrees_north" title="degree north" uid="fd70ef7c-3468-11e6-ba71-5404a60d96b5"/> 
    198198</units> 
Note: See TracChangeset for help on using the changeset viewer.