Ignore:
Timestamp:
12/04/17 11:06:47 (3 years ago)
Author:
mjuckes
Message:

01.00.07 ... prep

File:
1 edited

Legend:

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

    r972 r978  
    55import cmchecl 
    66import collections, sys, os 
     7realms = [ 
     8        "aerosol", 
     9        "atmos", 
     10        "atmosChem", 
     11        "land", 
     12        "landIce", 
     13        "ocean", 
     14        "ocnBgchem", 
     15        "seaIce" 
     16    ] 
    717 
    818python2 = True 
     
    247257    ss = set() 
    248258    badRealm = set() 
     259    badRealmNames = set() 
     260  
     261    hasHeight = set( ['tas','uas','vas','huss','hurs','sfcwind','sfcwindMax','tasmax','tasmin','tasmaxCrop','tasminCrop','tasLut','hussLut'] ) 
     262    chh = collections.defaultdict( set ) 
     263 
    249264    badzm = set() 
    250265    badzmt = set() 
     
    260275      ccmv4[ (i.frequency,i.label,i.stid)].append(i) 
    261276      ccmv2[ (i.mipTable,i.label)].append(i) 
    262       if self.dq.inx.uid[i.stid]._h.label == 'remarks': 
     277      if i.stid not in self.dq.inx.uid or self.dq.inx.uid[i.stid]._h.label == 'remarks': 
    263278        ss.add( i.stid ) 
    264279        nms += 1 
     
    267282        sp = self.dq.inx.uid[st.spid] 
    268283        ccmv6[ (i.frequency,i.label,spidmap.get(sp.label,sp.label),st.tmid)].append((i,st)) 
    269       if i.modeling_realm in ['','__unset__']: 
    270         badRealm.add( (i.mipTable, i.label ) ) 
     284        if i.label in hasHeight: 
     285           if st.coords.find( 'height' ) == -1: 
     286             chh[ i.label ].add( i.uid ) 
     287 
     288      for rr in i.modeling_realm.split(): 
     289        if rr not in realms: 
     290          badRealm.add( (i.mipTable, i.label ) ) 
     291          badRealmNames.add( (i.modeling_realm,rr) ) 
    271292    kkp = [k for k in ccp if len(ccp[k]) > 1] 
    272293    if len(kkp) > 0: 
     
    275296       log.info( 'cmv.00170: positive attributes OK' ) 
    276297 
     298    if len( chh ) > 0: 
     299       log.error( 'cmv.04170: near surface field without height coord: %s' % (len(chh) ) ) 
     300       for k in sorted( list( chh.keys() ) ): 
     301         log.error( 'cmv.04171: without height coord: %s: %s' % (k,len(chh[k]) ) ) 
     302    else: 
     303       log.info( 'cmv.04170: near surface fields OK (wrt height coord)' ) 
     304          
    277305    if len( badzm ) > 0: 
    278306       log.error( 'cmv.00120: bad zonal mean variables: %s, %s' % (len( badzm ),str(badzmt)) ) 
    279307    if len( badRealm ) > 0: 
    280308      log.error( 'cmv.00030: bad modeling realms set in %s cmv records' % len( badRealm ) ) 
     309      log.error( 'cmv.00031: bad modeling realms: %s' % str( sorted( list( badRealmNames) ) ) ) 
    281310      cc1 = collections.defaultdict( list ) 
    282311      for tab, lab in badRealm: 
    283312        cc1[tab].append(lab) 
    284313      for tab in sorted( cc1.keys() ): 
    285         log.error( 'cmv.00031: table %s: %s' % (tab,str(sorted(cc1[tab]))) ) 
     314        log.error( 'cmv.00032: table %s: %s' % (tab,str(sorted(cc1[tab]))) ) 
    286315    else: 
    287316      log.info( 'cmv.00030: modeling realms set ok cmv records' ) 
Note: See TracChangeset for help on using the changeset viewer.