Ignore:
Timestamp:
04/10/15 19:20:58 (7 years ago)
Author:
mjuckes
Message:

various

Location:
CMIP6dreqbuild/trunk/src
Files:
4 added
8 edited

Legend:

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

    r393 r397  
    5959             if a[0] != '_' or full: 
    6060               if self._a[a].rClass == 'internalLink' and self._base._indexInitialised: 
    61                  targ = self._base._inx.uid[ self.__dict__[a] ][1] 
     61                 targ = self._base._inx.uid[ self.__dict__[a] ] 
    6262                 print '   %s: [%s]%s [%s]' % ( a, targ._h.label, targ.label, self.__dict__[a] ) 
    6363               else: 
     
    9090                   m = '<li>%s: %s [missing link]</li>' % ( a, self.__dict__[a] ) 
    9191                 else: 
    92                    targ = self._base._inx.uid[ self.__dict__[a] ][1] 
     92                   targ = self._base._inx.uid[ self.__dict__[a] ] 
    9393                   m = '<li>%s: [%s] %s [%s]</li>' % ( a, targ._h.label, targ.label, targ.__href__() ) 
    9494               else: 
     
    113113                   am.append( '<h3>%s</h3>' % t ) 
    114114                   am.append( '<ul>' ) 
    115                    items = [self._inx.uid[u][1] for  u in self._inx.iref_by_sect[self.uid].a[t] ] 
     115                   items = [self._inx.uid[u] for  u in self._inx.iref_by_sect[self.uid].a[t] ] 
    116116                   items.sort( ds('label').cmp ) 
    117117                   for targ in items: 
     
    160160         for a,tv,v in tvtl: 
    161161           if tv: 
    162              if self._a[a].type == u'xs:integer': 
     162             if self._a[a].type == u'xs:float': 
     163               try: 
     164                 v = float(v) 
     165               except: 
     166                 print 'Failed to convert real number: %s' % v 
     167                 raise 
     168             elif self._a[a].type == u'xs:integer': 
    163169               if self._rc.isIntStr( v ): 
    164170                 v = int(v) 
     
    244250      tables[t[0].label] = t 
    245251      self.tableClasses[t[0].label] = self.itemClassFact( t, ns=self.ns ) 
    246  
    247252 
    248253    self.recordAttributeDefn = tables 
     
    314319object._a: a python dictionary defining the attributes in each record. The keys in the dictionary correspond to the attribute names and the values are python "named tuples" (from the "collections" module). E.g. object._a['priority'].type contains the type of the 'priority' attribute. Type is expressed using XSD schema language, so "xs:integer" implies integer.  The "rClass" attribute carries information about usage. If object._a['xxx'].rClass = u'internalLink' then the record attribute provides a link to another element and object.xxx is the unique identifier of that element. 
    315320 
    316 object._h: a python named tuple describing the section. E.g. object.parent.header.title is the section title (E.g. "CMOR Variables") 
     321object._h: a python named tuple describing the section. E.g. object._h.title is the section title (E.g. "CMOR Variables") 
    317322""" 
    318323       _base=dreqItemBase 
    319324        
     325     dreqItem.__name__ = 'dreqItem_%s' % str( sectionInfo.header.label ) 
    320326     dreqItem._h = sectionInfo.header 
    321327     dreqItem._a = sectionInfo.attributes 
     
    404410            self.uid2[i.uid].append( (k,i) ) 
    405411          else: 
    406             self.uid[i.uid] = (None,i) 
     412### create index bx uid. 
     413            self.uid[i.uid] = i 
    407414 
    408415    self.missingIds = collections.defaultdict( list ) 
     
    469476##    dreqItemBase._htmlStyle['__general__'] = {'addRemarks':True} 
    470477 
    471     self.pageTmpl = """<html><head><title>%s</title></head><body>%s</body></html>""" 
     478    self.pageTmpl = """<html><head><title>%s</title> 
     479<link rel="stylesheet" type="text/css" href="%scss/dreq.css"> 
     480</head><body> 
     481<div id="top">CMIP6 Data Request</div> 
     482%s</body></html>""" 
    472483 
    473484  def makeHtml(self,odir='./html'): 
    474485    for k in self.inx.uid.keys(): 
    475       i = self.inx.uid[k][1] 
     486      i = self.inx.uid[k] 
    476487      ttl = 'Data Request Record: [%s]%s' % (i._h.label,i.label) 
    477488      bdy = string.join( i.__html__( ), '\n' ) 
    478489      oo = open( '%s/u/%s.html' % (odir,i.uid), 'w' ) 
    479       oo.write( self.pageTmpl % (ttl, bdy ) ) 
     490      oo.write( self.pageTmpl % (ttl, '../', bdy ) ) 
    480491      oo.close() 
    481492 
     
    498509      bdy = string.join( msg, '\n' ) 
    499510      oo = open( '%s/index/%s.html' % (odir,k), 'w' ) 
    500       oo.write( self.pageTmpl % (ttl, bdy ) ) 
     511      oo.write( self.pageTmpl % (ttl, '../', bdy ) ) 
    501512      oo.close() 
    502513    msg0.append( '</ul>' ) 
    503514    bdy = string.join( msg0, '\n' ) 
    504515    oo = open( '%s/index.html' % odir, 'w' ) 
    505     oo.write( self.pageTmpl % (ttl, bdy ) ) 
     516    oo.write( self.pageTmpl % (ttl0, '', bdy ) ) 
    506517    oo.close() 
    507518     
  • CMIP6dreqbuild/trunk/src/framework/out/vocabDefn.xml

    r382 r397  
    22<defDoc  
    33xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    4 xmlns="uri:w3id.org:cmip6.dreq.framework:a" 
     4xmlns="urn:w3id.org:cmip6.dreq.framework:a" 
    55xsi:schemaLocation="http://w3id.org/cmip6dr/ns vocabFrameworkSchema_v01beta.xsd"> 
    6 <table label="institute" title="Institute" id="cmip.drv.001" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    7   <rowAttribute label="label"/> 
    8   <rowAttribute label="title"/> 
     6<table label="institute" uid="SECTION:institute" title="Institute" id="cmip.drv.001" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     7  <rowAttribute label="label" title="Record Label"/> 
     8  <rowAttribute label="title" title="Record Title"/> 
    99  <rowAttribute label="url" title="Home page"/> 
    1010  <rowAttribute label="isni" title="International Standard Name Identifier (ISO 27729)"/> 
    1111  <rowAttribute label="description"/> 
    12   <rowAttribute label="uuid"/> 
     12  <rowAttribute label="uid"/> 
    1313</table> 
    14 <table label="model" title="Model" id="cmip.drv.002" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    15   <rowAttribute label="label"/> 
    16   <rowAttribute label="title"/> 
     14<table label="model" uid="SECTION:model" title="Model" id="cmip.drv.002" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     15  <rowAttribute label="label" title="Record Label"/> 
     16  <rowAttribute label="title" title="Record Title"/> 
    1717  <rowAttribute label="description"/> 
    1818  <rowAttribute label="url"/> 
    1919  <rowAttribute label="altUrl"/> 
    2020  <rowAttribute label="source" title="List of major model components"/> 
    21   <rowAttribute label="uuid"/> 
     21  <rowAttribute label="uid"/> 
    2222</table> 
    23 <table label="physicsvers" title="Physics Version" id="cmip.drv.003" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    24   <rowAttribute label="label"/> 
    25   <rowAttribute label="title"/> 
     23<table label="physicsvers" uid="SECTION:physicsvers" title="Physics Version" id="cmip.drv.003" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     24  <rowAttribute label="label" title="Record Label"/> 
     25  <rowAttribute label="title" title="Record Title"/> 
    2626  <rowAttribute label="description"/> 
    27   <rowAttribute label="uuid"/> 
     27  <rowAttribute label="uid"/> 
    2828</table> 
    29 <table label="initialisationmethod" title="Initialisation Method" id="cmip.drv.004" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    30   <rowAttribute label="label"/> 
    31   <rowAttribute label="title"/> 
     29<table label="initialisationmethod" uid="SECTION:initialisationmethod" title="Initialisation Method" id="cmip.drv.004" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     30  <rowAttribute label="label" title="Record Label"/> 
     31  <rowAttribute label="title" title="Record Title"/> 
    3232  <rowAttribute label="description"/> 
    33   <rowAttribute label="uuid"/> 
     33  <rowAttribute label="uid"/> 
    3434</table> 
    35 <table label="modelComp" title="Model Components" id="cmip.drv.005" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    36   <rowAttribute label="label"/> 
    37   <rowAttribute label="title"/> 
     35<table label="modelComp" uid="SECTION:modelComp" title="Model Components" id="cmip.drv.005" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     36  <rowAttribute label="label" title="Record Label"/> 
     37  <rowAttribute label="title" title="Record Title"/> 
    3838  <rowAttribute label="componentType"/> 
    3939  <rowAttribute label="sizeH"/> 
    4040  <rowAttribute label="sizeV"/> 
    41   <rowAttribute label="uuid"/> 
     41  <rowAttribute label="uid"/> 
    4242</table> 
    43 <table label="activity" title="Coordinating activity" id="cmip.drv.006" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    44   <rowAttribute label="label"/> 
    45   <rowAttribute label="title"/> 
     43<table label="activity" uid="SECTION:activity" title="Coordinating activity" id="cmip.drv.006" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     44  <rowAttribute label="label" title="Record Label"/> 
     45  <rowAttribute label="title" title="Record Title"/> 
    4646  <rowAttribute label="url"/> 
    4747  <rowAttribute label="status" title="Status and role within the CMIP6 process"/> 
    48   <rowAttribute label="uuid"/> 
     48  <rowAttribute label="uid"/> 
    4949</table> 
    50 <table label="product" title="Data product" id="cmip.drv.007" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    51   <rowAttribute label="label"/> 
    52   <rowAttribute label="title"/> 
    53   <rowAttribute label="uuid"/> 
     50<table label="product" uid="SECTION:product" title="Data product" id="cmip.drv.007" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     51  <rowAttribute label="label" title="Record Label"/> 
     52  <rowAttribute label="title" title="Record Title"/> 
     53  <rowAttribute label="uid"/> 
    5454</table> 
    55 <table label="experiment" title="Numerical Experiment" id="cmip.drv.008" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    56   <rowAttribute label="label"/> 
    57   <rowAttribute label="title"/> 
     55<table label="experiment" uid="SECTION:experiment" title="Numerical Experiment" id="cmip.drv.008" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     56  <rowAttribute label="label" title="Record Label"/> 
     57  <rowAttribute label="title" title="Record Title"/> 
    5858  <rowAttribute label="altLabel"/> 
    5959  <rowAttribute label="description"/> 
    6060  <rowAttribute label="url"/> 
    6161  <rowAttribute label="sponsor"/> 
    62   <rowAttribute label="uuid"/> 
     62  <rowAttribute label="uid"/> 
    6363</table> 
    64 <table label="frequency" title="Temporal frequency of data values" id="cmip.drv.009" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    65   <rowAttribute label="label"/> 
    66   <rowAttribute label="title"/> 
     64<table label="frequency" uid="SECTION:frequency" title="Temporal frequency of data values" id="cmip.drv.009" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     65  <rowAttribute label="label" title="Record Label"/> 
     66  <rowAttribute label="title" title="Record Title"/> 
    6767  <rowAttribute label="iso"/> 
    68   <rowAttribute label="uuid"/> 
     68  <rowAttribute label="uid"/> 
    6969</table> 
    70 <table label="realm" title="Modeling realm" id="cmip.drv.010" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    71   <rowAttribute label="label"/> 
    72   <rowAttribute label="title"/> 
    73   <rowAttribute label="uuid"/> 
     70<table label="realm" uid="SECTION:realm" title="Modeling realm" id="cmip.drv.010" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     71  <rowAttribute label="label" title="Record Label"/> 
     72  <rowAttribute label="title" title="Record Title"/> 
     73  <rowAttribute label="uid"/> 
    7474</table> 
    75 <table label="grid" title="Native grid" id="cmip.drv.011" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    76   <rowAttribute label="label"/> 
    77   <rowAttribute label="title"/> 
    78   <rowAttribute label="uuid"/> 
     75<table label="grid" uid="SECTION:grid" title="Native grid" id="cmip.drv.011" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     76  <rowAttribute label="label" title="Record Label"/> 
     77  <rowAttribute label="title" title="Record Title"/> 
     78  <rowAttribute label="uid"/> 
    7979</table> 
    80 <table label="dimensions" title="MIP table variable dimensions" id="cmip.drv.012" itemLabelMode="an" level="0" maxOccurs="1" labUnique="Yes"> 
    81   <rowAttribute label="label"/> 
    82   <rowAttribute label="title"/> 
     80<table label="dimensions" uid="SECTION:dimensions" title="MIP table variable dimensions" id="cmip.drv.012" itemLabelMode="an" level="0" maxOccurs="1" labUnique="Yes"> 
     81  <rowAttribute label="label" title="Record Label"/> 
     82  <rowAttribute label="title" title="Record Title"/> 
    8383  <rowAttribute label="altLabel"/> 
    8484  <rowAttribute label="sn"/> 
    8585  <rowAttribute label="size" type="xs:integer"/> 
    86   <rowAttribute label="uuid"/> 
     86  <rowAttribute label="uid"/> 
    8787</table> 
    88 <table label="forcings" title="Forcing" id="cmip.drv.013" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    89   <rowAttribute label="label"/> 
    90   <rowAttribute label="title"/> 
    91   <rowAttribute label="uuid"/> 
     88<table label="forcings" uid="SECTION:forcings" title="Forcing" id="cmip.drv.013" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     89  <rowAttribute label="label" title="Record Label"/> 
     90  <rowAttribute label="title" title="Record Title"/> 
     91  <rowAttribute label="uid"/> 
    9292</table> 
    93 <table label="table" title="Data specification table" id="cmip.drv.014" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    94   <rowAttribute label="label"/> 
    95   <rowAttribute label="title"/> 
     93<table label="table" uid="SECTION:table" title="Data specification table" id="cmip.drv.014" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     94  <rowAttribute label="label" title="Record Label"/> 
     95  <rowAttribute label="title" title="Record Title"/> 
    9696  <rowAttribute label="description"/> 
    9797  <rowAttribute label="comment"/> 
    9898  <rowAttribute label="frequency"/> 
    99   <rowAttribute label="uuid"/> 
     99  <rowAttribute label="uid"/> 
    100100</table> 
    101 <table label="cref" title="Coordinate Reference" id="cmip.drv.015" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     101<table label="cref" uid="SECTION:cref" title="Coordinate Reference" id="cmip.drv.015" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     102  <rowAttribute label="label" title="Record Label"/> 
     103  <rowAttribute label="title" title="Record Title"/> 
    102104  <rowAttribute label="label"/> 
    103   <rowAttribute label="title"/> 
    104   <rowAttribute label="label"/> 
    105   <rowAttribute label="uuid"/> 
     105  <rowAttribute label="uid"/> 
    106106</table> 
    107 <table label="areaType" title="CMIP Area Type" id="cmip.drv.016" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    108   <rowAttribute label="label"/> 
    109   <rowAttribute label="title"/> 
     107<table label="areaType" uid="SECTION:areaType" title="CMIP Area Type" id="cmip.drv.016" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     108  <rowAttribute label="label" title="Record Label"/> 
     109  <rowAttribute label="title" title="Record Title"/> 
    110110  <rowAttribute label="inCF"/> 
    111   <rowAttribute label="uuid"/> 
     111  <rowAttribute label="uid"/> 
    112112</table> 
    113 <table label="timeSlice" title="Time slices used in data request" id="cmip.drv.017" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    114   <rowAttribute label="label"/> 
    115   <rowAttribute label="title"/> 
     113<table label="timeSlice" uid="SECTION:timeSlice" title="Time slices used in data request" id="cmip.drv.017" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     114  <rowAttribute label="label" title="Record Label"/> 
     115  <rowAttribute label="title" title="Record Title"/> 
    116116  <rowAttribute label="type"/> 
    117117  <rowAttribute label="specification"/> 
    118   <rowAttribute label="uuid"/> 
     118  <rowAttribute label="uid"/> 
    119119</table> 
    120 <table label="modelFamily" title="Family of model" id="cmip.drv.018" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    121   <rowAttribute label="label"/> 
    122   <rowAttribute label="title"/> 
    123   <rowAttribute label="uuid"/> 
     120<table label="modelFamily" uid="SECTION:modelFamily" title="Family of model" id="cmip.drv.018" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     121  <rowAttribute label="label" title="Record Label"/> 
     122  <rowAttribute label="title" title="Record Title"/> 
     123  <rowAttribute label="uid"/> 
    124124</table> 
    125 <table label="priority" title="Variable priority" id="cmip.drv.019" itemLabelMode="int" level="0" maxOccurs="1" labUnique="Yes"> 
    126   <rowAttribute label="label"/> 
    127   <rowAttribute label="title"/> 
     125<table label="priority" uid="SECTION:priority" title="Variable priority" id="cmip.drv.019" itemLabelMode="int" level="0" maxOccurs="1" labUnique="Yes"> 
     126  <rowAttribute label="label" title="Record Label"/> 
     127  <rowAttribute label="title" title="Record Title"/> 
    128128  <rowAttribute label="description"/> 
    129   <rowAttribute label="uuid"/> 
     129  <rowAttribute label="uid"/> 
    130130</table> 
    131 <table label="qcLevel" title="Quality control level" id="cmip.drv.020" itemLabelMode="int" level="0" maxOccurs="1" labUnique="Yes"> 
    132   <rowAttribute label="label"/> 
    133   <rowAttribute label="title"/> 
    134   <rowAttribute label="uuid"/> 
     131<table label="qcLevel" uid="SECTION:qcLevel" title="Quality control level" id="cmip.drv.020" itemLabelMode="int" level="0" maxOccurs="1" labUnique="Yes"> 
     132  <rowAttribute label="label" title="Record Label"/> 
     133  <rowAttribute label="title" title="Record Title"/> 
     134  <rowAttribute label="uid"/> 
    135135</table> 
    136 <table label="complianceCode" title="Data specification compliance codes" id="cmip.drv.021" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    137   <rowAttribute label="label"/> 
    138   <rowAttribute label="title"/> 
    139   <rowAttribute label="uuid"/> 
     136<table label="complianceCode" uid="SECTION:complianceCode" title="Data specification compliance codes" id="cmip.drv.021" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     137  <rowAttribute label="label" title="Record Label"/> 
     138  <rowAttribute label="title" title="Record Title"/> 
     139  <rowAttribute label="uid"/> 
    140140</table> 
    141 <table label="glossary" title="Glossary" id="cmip.drv.022" itemLabelMode="def" level="0" maxOccurs="1" labUnique="No"> 
    142   <rowAttribute label="label"/> 
    143   <rowAttribute label="title"/> 
     141<table label="glossary" uid="SECTION:glossary" title="Glossary" id="cmip.drv.022" itemLabelMode="def" level="0" maxOccurs="1" labUnique="No"> 
     142  <rowAttribute label="label" title="Record Label"/> 
     143  <rowAttribute label="title" title="Record Title"/> 
    144144  <rowAttribute label="fullName"/> 
    145145  <rowAttribute label="description"/> 
    146146  <rowAttribute label="url"/> 
    147   <rowAttribute label="uuid"/> 
     147  <rowAttribute label="uid"/> 
    148148</table> 
    149 <table label="modelCompType" title="Model Component Types/Categories [redundant with *Native Grid*]" id="cmip.drv.023" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    150   <rowAttribute label="label"/> 
    151   <rowAttribute label="title"/> 
    152   <rowAttribute label="uuid"/> 
     149<table label="modelCompType" uid="SECTION:modelCompType" title="Model Component Types/Categories [redundant with *Native Grid*]" id="cmip.drv.023" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     150  <rowAttribute label="label" title="Record Label"/> 
     151  <rowAttribute label="title" title="Record Title"/> 
     152  <rowAttribute label="uid"/> 
    153153</table> 
    154 <table label="modelType" title="Class of model" id="cmip.drv.024" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    155   <rowAttribute label="label"/> 
    156   <rowAttribute label="title"/> 
    157   <rowAttribute label="uuid"/> 
     154<table label="modelType" uid="SECTION:modelType" title="Class of model" id="cmip.drv.024" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     155  <rowAttribute label="label" title="Record Label"/> 
     156  <rowAttribute label="title" title="Record Title"/> 
     157  <rowAttribute label="uid"/> 
    158158</table> 
    159 <table label="index" title="Index of vocabularies" id="cmip.drv.025" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
    160   <rowAttribute label="label"/> 
    161   <rowAttribute label="title"/> 
     159<table label="index" uid="SECTION:index" title="Index of vocabularies" id="cmip.drv.025" itemLabelMode="def" level="0" maxOccurs="1" labUnique="Yes"> 
     160  <rowAttribute label="label" title="Record Label"/> 
     161  <rowAttribute label="title" title="Record Title"/> 
    162162  <rowAttribute label="table"/> 
    163163  <rowAttribute label="title"/> 
    164164  <rowAttribute label="description"/> 
    165   <rowAttribute label="uuid"/> 
     165  <rowAttribute label="uid"/> 
    166166</table> 
    167 <table label="cmorDimAttr" title="CMOR Dimension Attributes" id="cmip.drv.026" itemLabelMode="und" level="0" maxOccurs="1" labUnique="Yes"> 
    168   <rowAttribute label="label"/> 
    169   <rowAttribute label="title"/> 
     167<table label="cmorDimAttr" uid="SECTION:cmorDimAttr" title="CMOR Dimension Attributes" id="cmip.drv.026" itemLabelMode="und" level="0" maxOccurs="1" labUnique="Yes"> 
     168  <rowAttribute label="label" title="Record Label"/> 
     169  <rowAttribute label="title" title="Record Title"/> 
    170170  <rowAttribute label="description"/> 
    171   <rowAttribute label="uuid"/> 
     171  <rowAttribute label="uid"/> 
    172172  <rowAttribute label="CMORattr" title="Corresponding label in the CMOR MIP tables, if different"/> 
    173173</table> 
    174 <table label="processingOptions" title="Processing steps required" id="cmip.drv.027" itemLabelMode="an" level="0" maxOccurs="1" labUnique="Yes"> 
    175   <rowAttribute label="label"/> 
     174<table label="processingOptions" uid="SECTION:processingOptions" title="Processing steps required" id="cmip.drv.027" itemLabelMode="an" level="0" maxOccurs="1" labUnique="Yes"> 
     175  <rowAttribute label="label" title="Record Label"/> 
     176  <rowAttribute label="title" title="Record Title"/> 
     177  <rowAttribute label="description"/> 
     178  <rowAttribute label="uid"/> 
     179</table> 
     180<table label="coordinateReference" uid="SECTION:coordinateReference" title="Processing steps required" id="cmip.drv.028" itemLabelMode="an" level="0" maxOccurs="1" labUnique="Yes"> 
     181  <rowAttribute label="label" title="Record Label"/> 
     182  <rowAttribute label="title" title="Record Title"/> 
    176183  <rowAttribute label="title"/> 
    177   <rowAttribute label="description"/> 
    178   <rowAttribute label="uuid"/> 
     184  <rowAttribute label="ogc_wkt"/> 
     185  <rowAttribute label="url"/> 
     186  <rowAttribute label="uid"/> 
    179187</table> 
    180188</defDoc> 
  • CMIP6dreqbuild/trunk/src/framework/out/vocabSample.xml

    r382 r397  
    11<?xml version="1.0" ?> 
    2 <main 
     2<document 
    33xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    44xsi:noNamespaceSchemaLocation="out/dreqSchema.xsd" 
    5 xmlns="uri:w3id.org:cmip6.dreq.dreq:a"> 
    6 <institute class="vocab" title="Institute" id="cmip.drv.001"> 
     5xmlns:dc="http://purl.org/dc/elements/1.1/" 
     6xmlns="urn:w3id.org:cmip6.dreq.dreq:a"> 
     7<prologue> 
     8<dc:title>Draft CMIP6 Data Request</dc:title> 
     9<dc:creator>Martin Juckes</dc:creator> 
     10<dc:date>2015-10-01</dc:date> 
     11</prologue> 
     12<main> 
     13<institute uid="SECTION:institute" class="vocab" title="Institute" id="cmip.drv.001"> 
    714<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    8 <item id="001.001.001" label="example-01" title="dummy title string" url="dummyAt" isni="dummyAt" description="dummyAt" uuid="bc5512e4-5713-11e5-9f3f-ac72891c3257"/> 
     15<item id="001.001.001" label="example-01" title="dummy title string" url="dummyAt" isni="dummyAt" description="dummyAt" uid="c2c0d4a2-6838-11e5-b0d3-5404a60d96b5"/> 
    916</institute> 
    10 <model class="vocab" title="Model" id="cmip.drv.002"> 
     17<model uid="SECTION:model" class="vocab" title="Model" id="cmip.drv.002"> 
    1118<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    12 <item id="001.002.001" label="example-01" title="dummy title string" description="dummyAt" url="dummyAt" altUrl="dummyAt" source="dummyAt" uuid="bc5554fc-5713-11e5-9f3f-ac72891c3257"/> 
     19<item id="001.002.001" label="example-01" title="dummy title string" description="dummyAt" url="dummyAt" altUrl="dummyAt" source="dummyAt" uid="c2c11778-6838-11e5-b0d3-5404a60d96b5"/> 
    1320</model> 
    14 <physicsvers class="vocab" title="Physics Version" id="cmip.drv.003"> 
     21<physicsvers uid="SECTION:physicsvers" class="vocab" title="Physics Version" id="cmip.drv.003"> 
    1522<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    16 <item id="001.003.001" label="example-01" title="dummy title string" description="dummyAt" uuid="bc55925a-5713-11e5-9f3f-ac72891c3257"/> 
     23<item id="001.003.001" label="example-01" title="dummy title string" description="dummyAt" uid="c2c151e8-6838-11e5-b0d3-5404a60d96b5"/> 
    1724</physicsvers> 
    18 <initialisationmethod class="vocab" title="Initialisation Method" id="cmip.drv.004"> 
     25<initialisationmethod uid="SECTION:initialisationmethod" class="vocab" title="Initialisation Method" id="cmip.drv.004"> 
    1926<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    20 <item id="001.004.001" label="example-01" title="dummy title string" description="dummyAt" uuid="bc55cf72-5713-11e5-9f3f-ac72891c3257"/> 
     27<item id="001.004.001" label="example-01" title="dummy title string" description="dummyAt" uid="c2c18a82-6838-11e5-b0d3-5404a60d96b5"/> 
    2128</initialisationmethod> 
    22 <modelComp class="vocab" title="Model Components" id="cmip.drv.005"> 
     29<modelComp uid="SECTION:modelComp" class="vocab" title="Model Components" id="cmip.drv.005"> 
    2330<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    24 <item id="001.005.001" label="example-01" title="dummy title string" componentType="dummyAt" sizeH="dummyAt" sizeV="dummyAt" uuid="bc561144-5713-11e5-9f3f-ac72891c3257"/> 
     31<item id="001.005.001" label="example-01" title="dummy title string" componentType="dummyAt" sizeH="dummyAt" sizeV="dummyAt" uid="c2c1c4a2-6838-11e5-b0d3-5404a60d96b5"/> 
    2532</modelComp> 
    26 <activity class="vocab" title="Coordinating activity" id="cmip.drv.006"> 
     33<activity uid="SECTION:activity" class="vocab" title="Coordinating activity" id="cmip.drv.006"> 
    2734<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    28 <item id="001.006.001" label="example-01" title="dummy title string" url="dummyAt" status="dummyAt" uuid="bc562030-5713-11e5-9f3f-ac72891c3257"/> 
     35<item id="001.006.001" label="example-01" title="dummy title string" url="dummyAt" status="dummyAt" uid="c2c1cee8-6838-11e5-b0d3-5404a60d96b5"/> 
    2936</activity> 
    30 <product class="vocab" title="Data product" id="cmip.drv.007"> 
     37<product uid="SECTION:product" class="vocab" title="Data product" id="cmip.drv.007"> 
    3138<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    32 <item id="001.007.001" label="example-01" title="dummy title string" uuid="bc56251c-5713-11e5-9f3f-ac72891c3257"/> 
     39<item id="001.007.001" label="example-01" title="dummy title string" uid="c2c1d262-6838-11e5-b0d3-5404a60d96b5"/> 
    3340</product> 
    34 <experiment class="vocab" title="Numerical Experiment" id="cmip.drv.008"> 
     41<experiment uid="SECTION:experiment" class="vocab" title="Numerical Experiment" id="cmip.drv.008"> 
    3542<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    36 <item id="001.008.001" label="example-01" title="dummy title string" altLabel="dummyAt" description="dummyAt" url="dummyAt" sponsor="dummyAt" uuid="bc562cb0-5713-11e5-9f3f-ac72891c3257"/> 
     43<item id="001.008.001" label="example-01" title="dummy title string" altLabel="dummyAt" description="dummyAt" url="dummyAt" sponsor="dummyAt" uid="c2c1d744-6838-11e5-b0d3-5404a60d96b5"/> 
    3744</experiment> 
    38 <frequency class="vocab" title="Temporal frequency of data values" id="cmip.drv.009"> 
     45<frequency uid="SECTION:frequency" class="vocab" title="Temporal frequency of data values" id="cmip.drv.009"> 
    3946<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    40 <item id="001.009.001" label="example-01" title="dummy title string" iso="dummyAt" uuid="bc563340-5713-11e5-9f3f-ac72891c3257"/> 
     47<item id="001.009.001" label="example-01" title="dummy title string" iso="dummyAt" uid="c2c1daf0-6838-11e5-b0d3-5404a60d96b5"/> 
    4148</frequency> 
    42 <realm class="vocab" title="Modeling realm" id="cmip.drv.010"> 
     49<realm uid="SECTION:realm" class="vocab" title="Modeling realm" id="cmip.drv.010"> 
    4350<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    44 <item id="001.010.001" label="example-01" title="dummy title string" uuid="bc5637f0-5713-11e5-9f3f-ac72891c3257"/> 
     51<item id="001.010.001" label="example-01" title="dummy title string" uid="c2c1de06-6838-11e5-b0d3-5404a60d96b5"/> 
    4552</realm> 
    46 <grid class="vocab" title="Native grid" id="cmip.drv.011"> 
     53<grid uid="SECTION:grid" class="vocab" title="Native grid" id="cmip.drv.011"> 
    4754<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    48 <item id="001.011.001" label="example-01" title="dummy title string" uuid="bc563ca0-5713-11e5-9f3f-ac72891c3257"/> 
     55<item id="001.011.001" label="example-01" title="dummy title string" uid="c2c1e0fe-6838-11e5-b0d3-5404a60d96b5"/> 
    4956</grid> 
    50 <dimensions class="vocab" title="MIP table variable dimensions" id="cmip.drv.012"> 
     57<dimensions uid="SECTION:dimensions" class="vocab" title="MIP table variable dimensions" id="cmip.drv.012"> 
    5158<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    52 <item id="001.012.001" label="example01" title="dummy title string" altLabel="dummyAt" sn="dummyAt" size="25" uuid="bc564394-5713-11e5-9f3f-ac72891c3257"/> 
     59<item id="001.012.001" label="example01" title="dummy title string" altLabel="dummyAt" sn="dummyAt" size="25" uid="c2c1e54a-6838-11e5-b0d3-5404a60d96b5"/> 
    5360</dimensions> 
    54 <forcings class="vocab" title="Forcing" id="cmip.drv.013"> 
     61<forcings uid="SECTION:forcings" class="vocab" title="Forcing" id="cmip.drv.013"> 
    5562<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    56 <item id="001.013.001" label="example-01" title="dummy title string" uuid="bc564844-5713-11e5-9f3f-ac72891c3257"/> 
     63<item id="001.013.001" label="example-01" title="dummy title string" uid="c2c1e95a-6838-11e5-b0d3-5404a60d96b5"/> 
    5764</forcings> 
    58 <table class="vocab" title="Data specification table" id="cmip.drv.014"> 
     65<table uid="SECTION:table" class="vocab" title="Data specification table" id="cmip.drv.014"> 
    5966<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    60 <item id="001.014.001" label="example-01" title="dummy title string" description="dummyAt" comment="dummyAt" frequency="dummyAt" uuid="bc564f06-5713-11e5-9f3f-ac72891c3257"/> 
     67<item id="001.014.001" label="example-01" title="dummy title string" description="dummyAt" comment="dummyAt" frequency="dummyAt" uid="c2c1ed7e-6838-11e5-b0d3-5404a60d96b5"/> 
    6168</table> 
    62 <cref class="vocab" title="Coordinate Reference" id="cmip.drv.015"> 
     69<cref uid="SECTION:cref" class="vocab" title="Coordinate Reference" id="cmip.drv.015"> 
    6370<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    64 <item id="001.015.001" label="example-01" title="dummy title string" uuid="bc5655a0-5713-11e5-9f3f-ac72891c3257"/> 
     71<item id="001.015.001" label="example-01" title="dummy title string" uid="c2c1f0c6-6838-11e5-b0d3-5404a60d96b5"/> 
    6572</cref> 
    66 <areaType class="vocab" title="CMIP Area Type" id="cmip.drv.016"> 
     73<areaType uid="SECTION:areaType" class="vocab" title="CMIP Area Type" id="cmip.drv.016"> 
    6774<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    68 <item id="001.016.001" label="example-01" title="dummy title string" inCF="dummyAt" uuid="bc565b04-5713-11e5-9f3f-ac72891c3257"/> 
     75<item id="001.016.001" label="example-01" title="dummy title string" inCF="dummyAt" uid="c2c1f422-6838-11e5-b0d3-5404a60d96b5"/> 
    6976</areaType> 
    70 <timeSlice class="vocab" title="Time slices used in data request" id="cmip.drv.017"> 
     77<timeSlice uid="SECTION:timeSlice" class="vocab" title="Time slices used in data request" id="cmip.drv.017"> 
    7178<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    72 <item id="001.017.001" label="example-01" title="dummy title string" type="dummyAt" specification="dummyAt" uuid="bc566112-5713-11e5-9f3f-ac72891c3257"/> 
     79<item id="001.017.001" label="example-01" title="dummy title string" type="dummyAt" specification="dummyAt" uid="c2c1f7d8-6838-11e5-b0d3-5404a60d96b5"/> 
    7380</timeSlice> 
    74 <modelFamily class="vocab" title="Family of model" id="cmip.drv.018"> 
     81<modelFamily uid="SECTION:modelFamily" class="vocab" title="Family of model" id="cmip.drv.018"> 
    7582<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    76 <item id="001.018.001" label="example-01" title="dummy title string" uuid="bc566702-5713-11e5-9f3f-ac72891c3257"/> 
     83<item id="001.018.001" label="example-01" title="dummy title string" uid="c2c1fac6-6838-11e5-b0d3-5404a60d96b5"/> 
    7784</modelFamily> 
    78 <priority class="vocab" title="Variable priority" id="cmip.drv.019"> 
     85<priority uid="SECTION:priority" class="vocab" title="Variable priority" id="cmip.drv.019"> 
    7986<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    80 <item id="001.019.001" label="1" title="dummy title string" description="dummyAt" uuid="bc566c7a-5713-11e5-9f3f-ac72891c3257"/> 
     87<item id="001.019.001" label="1" title="dummy title string" description="dummyAt" uid="c2c1fe18-6838-11e5-b0d3-5404a60d96b5"/> 
    8188</priority> 
    82 <qcLevel class="vocab" title="Quality control level" id="cmip.drv.020"> 
     89<qcLevel uid="SECTION:qcLevel" class="vocab" title="Quality control level" id="cmip.drv.020"> 
    8390<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    84 <item id="001.020.001" label="1" title="dummy title string" uuid="bc56712a-5713-11e5-9f3f-ac72891c3257"/> 
     91<item id="001.020.001" label="1" title="dummy title string" uid="c2c200fc-6838-11e5-b0d3-5404a60d96b5"/> 
    8592</qcLevel> 
    86 <complianceCode class="vocab" title="Data specification compliance codes" id="cmip.drv.021"> 
     93<complianceCode uid="SECTION:complianceCode" class="vocab" title="Data specification compliance codes" id="cmip.drv.021"> 
    8794<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    88 <item id="001.021.001" label="example-01" title="dummy title string" uuid="bc5675c6-5713-11e5-9f3f-ac72891c3257"/> 
     95<item id="001.021.001" label="example-01" title="dummy title string" uid="c2c203e0-6838-11e5-b0d3-5404a60d96b5"/> 
    8996</complianceCode> 
    90 <glossary class="vocab" title="Glossary" id="cmip.drv.022"> 
     97<glossary uid="SECTION:glossary" class="vocab" title="Glossary" id="cmip.drv.022"> 
    9198<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    92 <item id="001.022.001" label="example-01" title="dummy title string" fullName="dummyAt" description="dummyAt" url="dummyAt" uuid="bc567c7e-5713-11e5-9f3f-ac72891c3257"/> 
     99<item id="001.022.001" label="example-01" title="dummy title string" fullName="dummyAt" description="dummyAt" url="dummyAt" uid="c2c207e6-6838-11e5-b0d3-5404a60d96b5"/> 
    93100</glossary> 
    94 <modelCompType class="vocab" title="Model Component Types/Categories [redundant with *Native Grid*]" id="cmip.drv.023"> 
     101<modelCompType uid="SECTION:modelCompType" class="vocab" title="Model Component Types/Categories [redundant with *Native Grid*]" id="cmip.drv.023"> 
    95102<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    96 <item id="001.023.001" label="example-01" title="dummy title string" uuid="bc568138-5713-11e5-9f3f-ac72891c3257"/> 
     103<item id="001.023.001" label="example-01" title="dummy title string" uid="c2c20ade-6838-11e5-b0d3-5404a60d96b5"/> 
    97104</modelCompType> 
    98 <modelType class="vocab" title="Class of model" id="cmip.drv.024"> 
     105<modelType uid="SECTION:modelType" class="vocab" title="Class of model" id="cmip.drv.024"> 
    99106<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    100 <item id="001.024.001" label="example-01" title="dummy title string" uuid="bc5685d4-5713-11e5-9f3f-ac72891c3257"/> 
     107<item id="001.024.001" label="example-01" title="dummy title string" uid="c2c20dae-6838-11e5-b0d3-5404a60d96b5"/> 
    101108</modelType> 
    102 <index class="vocab" title="Index of vocabularies" id="cmip.drv.025"> 
     109<index uid="SECTION:index" class="vocab" title="Index of vocabularies" id="cmip.drv.025"> 
    103110<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    104 <item id="001.025.001" label="example-01" title="dummy title string" table="dummyAt" description="dummyAt" uuid="bc568c46-5713-11e5-9f3f-ac72891c3257"/> 
     111<item id="001.025.001" label="example-01" title="dummy title string" table="dummyAt" description="dummyAt" uid="c2c21182-6838-11e5-b0d3-5404a60d96b5"/> 
    105112</index> 
    106 <cmorDimAttr class="vocab" title="CMOR Dimension Attributes" id="cmip.drv.026"> 
     113<cmorDimAttr uid="SECTION:cmorDimAttr" class="vocab" title="CMOR Dimension Attributes" id="cmip.drv.026"> 
    107114<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    108 <item id="001.026.001" label="example_03" title="dummy title string" description="dummyAt" uuid="bc5692a4-5713-11e5-9f3f-ac72891c3257" CMORattr="dummyAt"/> 
     115<item id="001.026.001" label="example_03" title="dummy title string" description="dummyAt" uid="c2c215d8-6838-11e5-b0d3-5404a60d96b5" CMORattr="dummyAt"/> 
    109116</cmorDimAttr> 
    110 <processingOptions class="vocab" title="Processing steps required" id="cmip.drv.027"> 
     117<processingOptions uid="SECTION:processingOptions" class="vocab" title="Processing steps required" id="cmip.drv.027"> 
    111118<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    112 <item id="001.027.001" label="example01" title="dummy title string" description="dummyAt" uuid="bc5697fe-5713-11e5-9f3f-ac72891c3257"/> 
     119<item id="001.027.001" label="example01" title="dummy title string" description="dummyAt" uid="c2c2192a-6838-11e5-b0d3-5404a60d96b5"/> 
    113120</processingOptions> 
     121<coordinateReference uid="SECTION:coordinateReference" class="vocab" title="Processing steps required" id="cmip.drv.028"> 
     122<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     123<item id="001.028.001" label="example01" title="dummy title string" ogc_wkt="dummyAt" url="dummyAt" uid="c2c21d30-6838-11e5-b0d3-5404a60d96b5"/> 
     124</coordinateReference> 
    114125</main> 
     126</document> 
  • CMIP6dreqbuild/trunk/src/framework/ptxt.py

    r393 r397  
    99''' 
    1010import string, re, collections, sys, uuid 
     11import time, datetime 
    1112 
    1213if len(sys.argv) == 1: 
    1314  print __doc__ 
    1415  exit() 
     16 
     17t = time.gmtime() 
     18d = datetime.date(t.tm_year, t.tm_mon, t.tm_mday) 
     19 
     20## 
     21## for definitions of dublin core elements see: 
     22## see http://dublincore.org/documents/usageguide/elements.shtml 
     23## 
     24samplePrologue="""<prologue> 
     25<dc:title>Draft CMIP6 Data Request</dc:title> 
     26<dc:creator>Martin Juckes</dc:creator> 
     27<dc:date>%s</dc:date> 
     28</prologue> 
     29""" %  d.isoformat() 
    1530 
    1631args = sys.argv[1:] 
     
    223238    oo = open( 'out/%s.xml' % fn, 'w' ) 
    224239    if mode in [ 'samp','updsamp']: 
    225       mainEl = "main" 
     240      mainEl = "document" 
    226241      mainElCont = ''' 
    227242xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    228243xsi:noNamespaceSchemaLocation="out/dreqSchema.xsd" 
    229 xmlns="uri:w3id.org:cmip6.dreq.dreq:a"''' 
     244xmlns:dc="http://purl.org/dc/elements/1.1/" 
     245xmlns="urn:w3id.org:cmip6.dreq.dreq:a"''' 
    230246    else: 
    231247      mainEl = "defDoc" 
    232248      mainElCont = '''  
    233249xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    234 xmlns="uri:w3id.org:cmip6.dreq.framework:a" 
     250xmlns="urn:w3id.org:cmip6.dreq.framework:a" 
    235251xsi:schemaLocation="http://w3id.org/cmip6dr/ns vocabFrameworkSchema_v01beta.xsd"''' 
    236252 
     
    243259 - updProv {Proposer of update}''' 
    244260 
     261    if mode in [ 'samp','updsamp']: 
     262      oo.write( '%s<main>\n' % samplePrologue ) 
    245263    counter = collections.defaultdict(int) 
    246264    for l in ii: 
     
    257275 
    258276    this.tmpl(oo=oo,mode=mode) 
     277    if mode in [ 'samp','updsamp']: 
     278      oo.write( '</main>\n' ) 
    259279    oo.write( '</%s>\n' % mainEl ) 
    260280    oo.close() 
  • CMIP6dreqbuild/trunk/src/framework/scanDreq.py

    r393 r397  
    2929        ee1 = collections.defaultdict( list ) 
    3030        for k,i in iref_by_uid[thisuid]: 
    31           thisi = uid[i][1] 
     31          thisi = uid[i] 
    3232          sect = thisi._h.label 
    3333          if sect == 'groupItem': 
     
    7979        self.ddel[ l1[8] ] = (l1[10],l1[11]) 
    8080        self.ddel[ l2[8] ] = (l2[10],l2[11]) 
     81      elif xx[1] == '' and yy[1] == "": 
     82        print 'WARN.087.00001: uncorrected duplication ..... %s ' %  str( l1[:5] ) 
    8183      else: 
    8284        ths = -1 
     
    112114### the results of the 2nd pass go back to ../workbook to generate a new set of inputs. 
    113115### 
    114 up = updates('varDup_20150724.csv', 'varMult_20150725.csv') 
    115 ##up.scandup() 
     116up = updates('varDup_20150928.csv', 'varMult_20150725.csv') 
     117up.scandup() 
    116118up.scanmult() 
    117119 
     120urep = False 
    118121urep = True 
    119 urep = False 
    120122if urep: 
    121123  oo = open( 'uuidreplace.csv', 'w' ) 
     
    125127      kn = up.repl[k] 
    126128      for tag,ki  in inx.iref_by_uid[k]: 
    127          try: 
    128            oo.write( '%s\t%s\t%s\t%s\t%s\t%s\t%s\n' % (k,kn,tag,ki, inx.uid[k][1].label,  inx.uid[kn][1].label, inx.uid[ki][1].label) ) 
    129          except: 
    130            print k,kn,ki 
    131            raise 
     129         vu = [ inx.uid.has_key(kk) for kk in [k,kn,ki] ] 
     130         if all( vu ): 
     131           oo.write( '%s\t%s\t%s\t%s\t%s\t%s\t%s\n' % (k,kn,tag,ki, inx.uid[k].label,  inx.uid[kn].label, inx.uid[ki].label) ) 
     132         else: 
     133           print 'ERROR.088.0001: Bad index in replace info: %s .. %s .. %s' % ( str([k,kn,ki]), str(vu), tag ) 
    132134    else: 
    133135      oo2.write( k + '\n' ) 
     
    173175    if inx.var.label.has_key( i.label ): 
    174176      if len( inx.var.label[i.label] ) == 1: 
    175         v = inx.uid[ inx.var.label[i.label][0] ][1] 
     177        v = inx.uid[ inx.var.label[i.label][0] ] 
    176178        oo.write( string.join( ['unique',i.label,v.label,v.uid,v.prov,i.mip], '\t' ) + '\n' ) 
    177179      else: 
     
    200202    if all(cc): 
    201203### where duplicates are identical , collect and output at end of file. 
    202       deferredRecs.append( string.join(map( lambda x: v1.__dict__[x], hs) + [v2.uid,'identical'], '\t' ) + '\n' ) 
    203       deferredRecs.append( string.join(map( lambda x: v2.__dict__[x], hs) + ['',''], '\t' ) + '\n' ) 
     204      pv1 = string.find( v1.__dict__['prov'], 'OMIP.' ) != -1 
     205      pv2 = string.find( v2.__dict__['prov'], 'OMIP.' ) != -1 
     206      if pv2: 
     207        vp = v2 
     208        vo = v1 
     209      else: 
     210        if not pv1: 
     211          print 'WARN.088.00002: no preference: %s, %s, %s' % (v1.__dict__['label'],v1.__dict__['prov'],v2.__dict__['prov']) 
     212        vp = v1 
     213        vo = v2 
     214      deferredRecs.append( string.join(map( lambda x: vo.__dict__[x], hs) + [vp.uid,'identical'], '\t' ) + '\n' ) 
     215      deferredRecs.append( string.join(map( lambda x: vp.__dict__[x], hs) + ['',''], '\t' ) + '\n' ) 
    204216    else: 
    205217      oo2.write( string.join(map( lambda x: v1.__dict__[x], hs) + ['',''], '\t' ) + '\n' ) 
     
    515527        tn = str( len( mrefs[k] ) ) 
    516528        for t in mrefs[k]: 
    517           s = self.dreq.inx.uid[t[2]][1]._h.label 
     529          s = self.dreq.inx.uid[t[2]]._h.label 
    518530          ee['%s.%s' % (s,t[1])] += 1 
    519531        if len( ee.keys() ) == 1: 
  • CMIP6dreqbuild/trunk/src/framework/scope.py

    r393 r397  
     1"""Date Request Scoping module 
     2--------------------------- 
     3The scope.py module contains the dreqQuery class and a set of ancilliary functions. The dreqQuery class contains methods for analysing the data request. 
     4""" 
    15import dreq 
    26import collections, string 
     
    1519 
    1620nt_mcfg = collections.namedtuple( 'mcfg', ['nho','nlo','nha','nla','nlas','nls','nh1'] ) 
     21 
     22def filter1( a, b ): 
     23  if b < 0: 
     24    return a 
     25  else: 
     26    return min( [a,b] ) 
    1727 
    1828npy = {'daily':365, u'Annual':1, u'fx':0.01, u'1hr':24*365, u'3hr':8*365, u'monClim':12, u'Timestep':100, u'6hr':4*365, u'day':365, u'1day':365, u'mon':12, u'yr':1, u'1mon':12, 'month':12, 'year':1, 'monthly':12, 'hr':24*365, 'other':24*365, 'subhr':24*365, 'Day':365, '6h':4*365, 
     
    2232def vol01( sz, v, npy, freq, inx ): 
    2333  n1 = npy[freq] 
    24   s = sz[inx.uid[v][1].stid] 
     34  s = sz[inx.uid[v].stid] 
    2535  assert type(s) == type(1), 'Non-integer size found for %s' % v 
    2636  assert type(n1) in (type(1),type(0.)), 'Non-number "npy" found for %s, [%s]' % (v,freq) 
     
    3646 
    3747class dreqQuery(object): 
     48  __doc__ = """Methods to analyse the data request, including data volume estimates""" 
    3849  def __init__(self,dq=None): 
    3950    if dq == None: 
     
    5566      self.mcfg[k] = self.default_mcfg.__dict__[k] 
    5667    self.szcfg() 
     68    self.requestItemExpAll(  ) 
    5769 
    5870  def szcfg(self): 
     
    105117    elif type(mipSel) == type({1,2}): 
    106118      t1 = lambda x: x in mipSel 
    107     self.rqs = list({self.dq.inx.uid[i.rid][1] for i in self.dq.coll['objectiveLink'].items if t1(i.label) }) 
     119    self.rqs = list({self.dq.inx.uid[i.rid] for i in self.dq.coll['objectiveLink'].items if t1(i.label) }) 
    108120    return self.rqs 
    109121 
     
    115127      t1 = lambda x: x in {self.rlu[i] for i in objSel} 
    116128 
    117     self.rqs = list({self.dq.inx.uid[i.rid][1] for i in self.dq.coll['objectiveLink'].items if t1(i.oid) }) 
     129    self.rqs = list({self.dq.inx.uid[i.rid] for i in self.dq.coll['objectiveLink'].items if t1(i.oid) }) 
    118130    return self.rqs 
    119131 
     
    128140    return self.ntot 
    129141 
    130   def volByExpt( self, l1, ex, pmax=2, cc=None ): 
     142  def volByExpt( self, l1, ex, exptList, pmax=2, cc=None ): 
    131143    """volByExpt: calculates the total data volume associated with an experiment/experiment group and a list of request items. 
    132144          The calculation has some approximations concerning the number of years in each experiment group.""" 
     
    135147## 
    136148    inx = self.dq.inx 
    137     rql = {i.rlid for i in l1 if i.expt == ex} 
     149## 
     150## rql is the set of all request links which are associated with a request item for this experiment set 
     151## 
     152    rql0 = {i.rlid for i in l1 if i.esid == ex} 
     153    rqlInv = {u for u in rql0 if inx.uid[u]._h.label == 'remarks' } 
     154    if len(rqlInv) != 0: 
     155      print 'WARNING.001.00002: %s invalid request links from request items ...' % len(rqlInv) 
     156    rql = {u for u in rql0 if inx.uid[u]._h.label != 'remarks' } 
    138157 
    139158## The complete set of variables associated with these requests: 
    140     rqvg = list({inx.uid[i][1].refid for i in rql}) 
     159    rqvg = list({inx.uid[i].refid for i in rql}) 
    141160 
    142161###To obtain a set of variables associated with this collection of variable groups: 
     
    144163    x = {tuple( {col1.add(i) for i in inx.iref_by_sect[vg].a['requestVar']} ) for vg in rqvg} 
    145164###The collector col1 here accumulates all the record uids, resulting in a single collection. These are request variables, to get a set of CMOR variables at priority <= pmax: 
    146     vars = {inx.uid[l][1].vid for l in list(col1) if inx.uid[l][1].priority <= pmax} 
     165    vars = {inx.uid[l].vid for l in list(col1) if inx.uid[l].priority <= pmax} 
    147166 
    148167### filter out cases where the request does not point to a CMOR variable. 
    149168    ##vars = {vid for vid in vars if inx.uid[vid][0] == u'CMORvar'} 
    150     vars = {vid for vid in vars if inx.uid[vid][1]._h.label == u'CMORvar'} 
     169    vars = {vid for vid in vars if inx.uid[vid]._h.label == u'CMORvar'} 
    151170 
    152171    e = {} 
    153172    for u in rql: 
    154173### for request variables which reference the variable group attached to the link, add the associate CMOR variables, subject to priority 
    155       i = inx.uid[u][1] 
    156       e[i.uid] = { inx.uid[x][1].vid for x in inx.iref_by_sect[i.refid].a['requestVar'] if inx.uid[x][1].priority <= pmax} 
    157  
     174      i = inx.uid[u] 
     175      e[i.uid] = { inx.uid[x].vid for x in inx.iref_by_sect[i.refid].a['requestVar'] if inx.uid[x].priority <= pmax} 
    158176# 
    159177# for each variable, calculate the maximum number of years across all the request links which reference that variable. 
    160 # 
     178## 
     179## for each request item we have nymax, nenmax, nexmax. 
     180## 
    161181    nym = {} 
    162182    for v in vars: 
    163183      ### for each request item, check if v is in the set of variables and then add the number of years. 
    164       nym[v] = max( {i.ny for i in l1 if i.expt == ex and v in e[i.rlid]} ) 
     184      nym[v] = max( {self.rqiExp[i.uid][2] for i in l1 if i.esid == ex and v in e[i.rlid]} ) 
    165185 
    166186    szv = {} 
    167187    ov = [] 
    168188    for v in vars: 
    169       szv[v] = self.sz[inx.uid[v][1].stid]*npy[inx.uid[v][1].frequency] 
    170       ov.append( self.dq.inx.uid[v][1] ) 
    171     ee = self.listIndexDual( ov, 'frequency', 'mipTable', acount=None, alist=None, cdict=szv, cc=cc ) 
    172     self.ngptot = sum( [  self.sz[inx.uid[v][1].stid]* npy[inx.uid[v][1].frequency] *nym[v]  for v in vars] ) 
     189      szv[v] = self.sz[inx.uid[v].stid]*npy[inx.uid[v].frequency] 
     190      ov.append( self.dq.inx.uid[v] ) 
     191    ee = self.listIndexDual( ov, 'frequency', 'label', acount=None, alist=None, cdict=szv, cc=cc ) 
     192    self.ngptot = sum( [  self.sz[inx.uid[v].stid]* npy[inx.uid[v].frequency] *nym[v]  for v in vars] ) 
    173193    return (self.ngptot, ee ) 
     194 
     195  def esid_to_exptList(self,esid,deref=False): 
     196    if not self.dq.inx.uid.has_key(esid): 
     197      print 'Attempt to dereferece invalid uid: %s' % esid 
     198      raise 
     199 
     200    if self.dq.inx.uid[esid]._h.label == 'experiment': 
     201      expts = [esid,] 
     202    elif self.dq.inx.uid[esid]._h.label != 'remarks': 
     203      if self.dq.inx.iref_by_sect.has_key(esid) and self.dq.inx.iref_by_sect[esid].a.has_key( 'experiment' ): 
     204        expts = self.dq.inx.iref_by_sect[esid].a['experiment'] 
     205      else: 
     206        expts = [] 
     207    else: 
     208      print 'WARNING: request link not associated with valid experiment group' 
     209      raise 
     210 
     211    if deref: 
     212      return [self.dq.inx.uid[e] for e in expts] 
     213    else: 
     214      return expts 
     215   
     216## 
     217## need to call this on load 
     218## then use instead of i.ny etc below 
     219## 
     220  def requestItemExpAll( self ): 
     221    self.rqiExp = {} 
     222    for rqi in self.dq.coll['requestItem'].items: 
     223      a,b,c = self.requestItemExp( rqi ) 
     224      self.rqiExp[rqi.uid] = (a,b,c) 
     225 
     226  def requestItemExp( self, rqi ): 
     227    assert rqi._h.label == "requestItem", 'Argument to requestItemExp must be a requestItem' 
     228    u = rqi.esid 
     229    if self.dq.inx.uid[u]._h.label == 'experiment': 
     230      expts = [u,] 
     231    elif self.dq.inx.uid[u]._h.label != 'remarks': 
     232      if self.dq.inx.iref_by_sect.has_key(u) and self.dq.inx.iref_by_sect[u].a.has_key( 'experiment' ): 
     233        expts = self.dq.inx.iref_by_sect[u].a['experiment'] 
     234      else: 
     235        expts = [] 
     236    else: 
     237      print 'WARNING: request link not associated with valid experiment group'  
     238      i.__info__() 
     239      raise 
     240 
     241    if len(expts) > 0: 
     242      e = [self.dq.inx.uid[i] for i in expts] 
     243      dat = [ (i.ntot, i.yps, i.ensz, i.nstart, filter1(i.yps,rqi.nymax), filter1(i.ensz,rqi.nenmax) ) for i in e] 
     244     
     245    nytot = sum( [x[-2]*x[-1] for x in dat ] ) 
     246    return (expts, dat, nytot ) 
     247     
    174248 
    175249  def summaryByMip( self, pmax=1 ): 
     
    195269       
    196270    #### The set of experiments/experiment groups: 
    197     exps = {i.expt for i in l1} 
     271    exps = {i.esid for i in l1} 
    198272    self.volByE = {} 
    199273    vtot = 0 
    200274    cc = collections.defaultdict( col_count ) 
    201275    for e in exps: 
    202       self.volByE[e] = self.volByExpt( l1, e, pmax=pmax, cc=cc ) 
     276      expts = self.esid_to_exptList(e,deref=True) 
     277      self.volByE[e] = self.volByExpt( l1, e, expts, pmax=pmax, cc=cc ) 
    203278      vtot += self.volByE[e][0] 
    204279    self.indexedVol = cc 
  • CMIP6dreqbuild/trunk/src/workbook/importShDreq.py

    r384 r397  
    1212import collections, string, re 
    1313from utils_wb import uniCleanFunc 
     14import ivg 
    1415 
    1516class s1(object): 
     
    7374         'objective':rq.objec, 'var':rq.vars,'ovar':rq.refti, 'groupitem':rq.grps, \ 
    7475         'revisedtabitem':rq.revti, 'requestlink':rq.rqli, 'requestitem':rq.rqit, \ 
    75          'requestvargroup':rq.rqvg, 'tablesection':rq.rqsect} 
     76         'requestvargroup':rq.rqvg, 'tablesection':rq.rqsect, 'requestvar':rq.revti} 
    7677 
    7778    self.prep(rq) 
     
    9899                    'deflate', 'valid_min', 'flag_values', 'modeling_realm', 'valid_max', 'positive', 'mipTable', \ 
    99100                    'prov', 'provNote', 'frequency', 'rowIndex', 'coordinates') 
     101    self.rqvinfo = ('uuid','label','vid','gpid','priority','mip','table' ) 
    100102### request variables 
    101103    self.rqv = [] 
     
    103105      thissh = self.skey[ksect] 
    104106      if ksect == 'ovar': 
     107            setu1 = set() 
    105108            tab2freq = {u'CMIP5_cfOff':'subhr', u'CORDEX_mon':'mon', u'SPECS_day':'day', u'CMIP5_day':'day', \ 
    106109       u'PMIP3_OImon':'mon', u'CORDEX_day':'day', u'CMIP5_LImon':'mon', u'CMIP5_OImon':'mon', \ 
     
    128131                  rr[id] = 'scalar' 
    129132                tt = thisnt._make( rr )  
     133                if tt.uuid in setu1: 
     134                  print 'ERROR.099.0002: duplicate uuid: %s: %s' % (uuid,str(rr)) 
     135                setu1.add(tt.uuid) 
    130136                ov.append( tt ) 
    131137                dset.add( ov[-1].dimensions ) 
     
    139145                  fr = tab2freq[rr[22]] 
    140146    
    141                 self.cmv.append( (tt.uuid, (tt.dimensions,tt.cell_methods,tt.cell_measures), tt.var, tt.title, tt.comment, tt.vid, \ 
     147                if tt.mipTable[:5] == 'OMIP': 
     148                  prov = 'CMIP6 [OMIP]' 
     149                elif string.find( tt.mipTable, '_' ) != -1: 
     150                  prov = '%s [%s]' % tuple( string.split( tt.mipTable, '_' ) ) 
     151                if tt.var[:5] == 'ccmi_': 
     152                  pass 
     153                else: 
     154                  lab = tt.var 
     155                  if lab in {'*','include Oyr 3D tracers'}: 
     156                    lab = '-copy-' 
     157                  self.cmv.append( (tt.uuid, (tt.dimensions,tt.cell_methods,tt.cell_measures), lab, tt.title, tt.comment, tt.vid, \ 
    142158                    tt.deflate_level, tt.shuffle, tt.ok_max_mean_abs, tt.flag_meanings, tt.type, tt.ok_min_mean_abs, \ 
    143159                    tt.deflate, tt.valid_min, tt.flag_values, tt.modeling_realm, tt.valid_max, tt.positive, tt.mipTable, \ 
    144                     '', '', fr, tt.rowIndex, '') ) 
    145                 self.rqv.append( (str( uuid.uuid1() ),'%s-%s' % (tt.mipTable,tt.var), tt.uuid, tt.gpid, tt.priority) ) 
     160                    prov, '', fr, tt.rowIndex, '') ) 
     161                  self.rqv.append( (str( uuid.uuid1() ),lab, tt.uuid, tt.gpid, tt.priority,tt.mipTable,tt.mipTable) ) 
     162    ##self.rqvinfo = ('uuid','label','vid','gpid','priority','mip','table' ) 
    146163            self.dsort( dset ) 
    147164            print self.dsortdd[ksect][0].keys() 
     
    158175            varsets = [] 
    159176            nov = 0 
    160             for k in thissh: 
     177            setu = set() 
     178            for k in thissh.keys(): 
    161179              if k[0] != '_': 
    162180                rr = thissh[k][:] 
     
    164182## split variable, create 2nd record at 23 levels. 
    165183## 
     184                if rr[iu] in setu: 
     185                  print 'ERROR.099.0001: duplicate uuid in varGroups ... %s:: %s' % (uuid,str(rr)) 
     186                if rr[iu] in setu1: 
     187                  print 'ERROR.099.0003: duplicate uuid in varGroups/ovar ... %s:: %s' % (uuid,str(rr)) 
     188                setu.add(rr[iu]) 
    166189                if rr[il] in  {u'17 (or 23 )', u'17 (or 23)', u'17 (or23)'}: 
    167190                  rr0 = rr + [rr[1] + '23',] 
     
    177200                  rr0[il] = 27 
    178201                  rr0[iu] = str( uuid.uuid1() ) 
     202                  tt = thisnt._make( rr0 ) 
    179203                  gi.append( tt ) 
    180204                  rr[il] = 'all' 
     
    202226                smdd[s] = d1[ dsn.get( s,s ) ] 
    203227 
     228            setu = set() 
    204229            for tt in gi: 
    205230                gr = 'a' 
     
    210235### need to check where variables are, perhaps, refering to "ovar" 
    211236            ##kk = ['group', 'var', 'table', 'freq', 'descriptionEx', 'shape', 'levels', 'tstyle', 'mask', 'misc', 'mip', 'uuid', 'new', 'gpid', 'vkey', 'vid'] 
     237                prov = '%s [%s]' % (tt.mip,tt.group) 
     238                provNote = '' 
     239                lab = tt.var 
     240                if lab in {'*','include Oyr 3D tracers'}: 
     241                  lab = '-copy-' 
     242                elif lab == 'wap (omega)': 
     243                  lab = 'wap' 
     244                  provNote = 'wap (omega)' 
     245                lab = string.replace( string.strip(lab), '_', '-' ) 
     246                if tt.uuid in setu: 
     247                     print 'SEVERE[1]: duplicate uuid: ',tt.__dict__ 
     248                setu.add( tt.uuid ) 
    212249                if ovuu.has_key(tt.vid): 
    213250                  tt1 = ovuu[tt.vid] 
    214                   self.cmv.append( (tt.uuid, (tt.shape,tt.levels,tt.tstyle,gr,smdd[tt.mask]), tt.var, 'from %s' % tt.table, tt.descriptionEx, tt1.vid, \ 
     251                  self.cmv.append( (tt.uuid, (tt.shape,tt.levels,tt.tstyle,gr,smdd[tt.mask]), lab, 'from %s' % tt.table, tt.descriptionEx, tt1.vid, \ 
    215252                    tt1.deflate_level, tt1.shuffle, tt1.ok_max_mean_abs, tt1.flag_meanings, tt1.type, tt1.ok_min_mean_abs, \ 
    216253                    tt1.deflate, tt1.valid_min, tt1.flag_values, tt1.modeling_realm, tt1.valid_max, tt1.positive, 'n%s' % tt.freq, \ 
    217                     '', '', tt.freq, '', '') ) 
    218                   self.rqv.append( (str( uuid.uuid1() ),'%s-%s' % (tt.group,tt.var), tt.uuid, tt.gpid, tt1.priority) ) 
     254                    prov, provNote, tt.freq, -1, '') ) 
     255                  self.rqv.append( (str( uuid.uuid1() ),lab, tt.uuid, tt.gpid, tt1.priority, tt.mip, tt.group) ) 
    219256                  nov += 1 
    220257                else: 
    221                   self.cmv.append( (tt.uuid, (tt.shape,tt.levels,tt.tstyle,gr,smdd[tt.mask]), tt.var, 'from %s' % tt.table, tt.descriptionEx, tt.vid, \ 
     258                  self.cmv.append( (tt.uuid, (tt.shape,tt.levels,tt.tstyle,gr,smdd[tt.mask]), lab, 'from %s' % tt.table, tt.descriptionEx, tt.vid, \ 
    222259                    0, 0, 0, 0, '', 0, \ 
    223260                    0,0,0, '', 0, '', 'n%s' % tt.freq, \ 
    224                     '', '', tt.freq, '', '') ) 
    225                   self.rqv.append( (str( uuid.uuid1() ),'%s-%s' % (tt.group,tt.var), tt.uuid, tt.gpid, 1) ) 
     261                    prov, provNote, tt.freq, -1, '') ) 
     262                  self.rqv.append( (str( uuid.uuid1() ),lab, tt.uuid, tt.gpid, 1, tt.mip, tt.group) ) 
    226263## Variables marked with shape '?' from PMIP are actually defined by OMIP .... 
    227264                if tt.shape == '?': 
     
    260297       u = str( uuid.uuid1() ) 
    261298       kk+=1 
    262        lab = 'ssd.%3.3i' % kk 
     299       lab = 'ssd-%3.3i' % kk 
    263300       description = 'ssd.%3.3i' % kk 
    264301       esd[s] = (u,lab,description,d,lfl,nl) 
     
    272309    eshp = set() 
    273310    ll = [] 
    274     nt_dims = collections.namedtuple( 'dims', ['uuid','label','spid','tmid','cell_methods','cell_measures','description','procNote','prov'] ) 
     311    nt_dims = collections.namedtuple( 'dims', ['uuid','label','spid','tmid','odims','coords','cell_methods','cell_measures','description','procNote','prov'] ) 
    275312    kk = 0 
    276313    strdd = {} 
     
    283320        tmid = etd[tdim][0] 
    284321        kk += 1 
    285         label = 'str.%3.3i' % kk 
     322        label = 'str-%3.3i' % kk 
    286323        proc = '' 
    287         prov = 'CMIP5, OMIP' 
     324        prov = 'CMIP5/OMIP' 
    288325        desc = '' 
    289326        strdd[(dims,cmet,cmea)] = u 
    290         ll.append( nt_dims._make( [u,label,spid,tmid, cmet, cmea, desc, proc, prov] ) ) 
     327        ll.append( nt_dims._make( [u,label,spid,tmid, odim, crd, cmet, cmea, desc, proc, prov] ) ) 
    291328 
    292329    ttt = [ {u'Instantaneous (end of year)', 'instantaneous', 'point', 'Synoptic', u'synoptic', u'time: point'}, 
     
    296333        t = (shp,lvls,sty,gr) 
    297334        tdim, tt = self.dsort_u1( self.dsortdd['groupitem'][0][t], self.dsortdd['groupitem'][1] ) 
     335        d1,odim,d2,crd = self.dsortdd['groupitem'][0][t] 
     336        print 'INFO.099: ',d1,odim,d2,crd 
    298337        tflm, msk = tmsk 
    299338        sdim,lfl,nl = tt 
     
    311350          cmet += ' ' + msk 
    312351        kk += 1 
    313         label = 'str.%3.3i' % kk 
     352        label = 'str-%3.3i' % kk 
    314353        proc = '' 
    315354        prov = 'CMIP5, endorsed MIPs' 
    316355        desc = '' 
    317356        strdd[(shp,lvls,sty,gr,tmsk)] = u 
    318         ll.append( nt_dims._make( [u,label,spid,tmid, cmet, cmea, desc, proc, prov] ) ) 
     357        ll.append( nt_dims._make( [u,label,spid,tmid, odim, crd, cmet, cmea, desc, proc, prov] ) ) 
    319358 
    320359    self.structList = ll 
     
    322361    oo = open( 'test.csv', 'w' ) 
    323362    for l in ll: 
    324       oo.write( '%s,%s,%s,%s,%s,%s,%s,%s,%s,\n' % l ) 
     363      oo.write( '%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,\n' % l ) 
    325364    oo.close() 
    326365 
     
    334373          nl = 0 
    335374        elif nl == -2: 
    336           nl = 0 
     375          nl = 1 
     376          pass 
    337377        return (tdim, (sdim,lfl,nl) ) 
    338378 
     
    341381      """Sort the dimensions string into spatial, temporal and other sections, 
    342382       returns a dictionary of tuples: spatial dimensions, other, temporal, coords and a 2nd, keyyed on spatial dimensions with a level count indicator.  """ 
    343       vdims = {'plev3':3,'plev8':8,'alt40':40,'alevhalf':-1,'olevel':-1,'rho':-1,'sdepth':-1,'alevel':-1} 
     383      vdims = {'plev7':7, 'plev':4, 'plevs':17, 'plev3':3,'plev8':8,'alt40':40,'alev1':1, 'alevhalf':-1,'olevel':-1,'rho':-1,'sdepth':-1,'alevel':-1} 
    344384      odims = {'sza5','vegtype','scatratio','dbze','typepdec','vgidx','tau'} 
    345385      dl = sorted( list(dset) ) 
     
    389429          bits = string.split( s, '|' ) 
    390430          nl = -2 
     431          thisb = None 
    391432          for b in bits: 
    392433            if vdims.has_key(b): 
    393434              assert nl == -2, 'Duplicate vertical level count in %s' % s 
    394435              nl = vdims[b] 
     436              thisb = b 
    395437          lcount[s] = nl 
     438          if nl == -1 and s == 'latitude|basin': 
     439            print 'SEVERE: error in level deduction' 
     440            print s, bits, nl, thisb 
     441            raise 
    396442      else: 
    397443        ## input is a set of tuples,  shape, levels, tstyle, o/a 
     
    410456## 'K'?? 'XYK' 
    411457        dd = {'XKT':('latitude|basin','','time','',False), \ 
    412              'XYZKT':('latitude|longitude|%s','effectRad','time','',True), \ 
    413              'XYZT':('latitude|longitude|%s','','time','',True), \ 
     458             'XYZKT':('longitude|latitude|%s','effectRad','time','',True), \ 
     459             'XYZT':('longitude|latitude|%s','','time','',True), \ 
    414460              'KZT':('alevel','spectband','time','',False), \ 
    415               'XYT':('latitude|longitude','','time','',False), \ 
    416               'XYKT':('latitude|longitude','angle','time','',False), \ 
     461              'XYT':('longitude|latitude','','time','',False), \ 
     462              'XYKT':('longitude|latitude','angle','time','',False), \ 
    417463              'YZT':('longitude|%s','','time','',True), \ 
    418               'XYK':('latitude|longitude','snowband','time','',False), \ 
     464              'XYK':('longitude|latitude','snowband','time','',False), \ 
    419465              'K':('sistraits','','time','',False), \ 
    420466              'scalar':('','','time','',False), \ 
     
    486532            else: 
    487533              sc = tt[0] 
    488               if string.find( sc, 'alevel' ) != -1 or string.find( sc, 'olevel' ): 
     534              if (string.find( sc, 'alevel' ) != -1) or (string.find( sc, 'olevel' ) != -1): 
    489535                n = -1 
    490536              else: 
    491537                n = -2 
    492538          lcount[sc] = n 
     539          if n == -1 and sc == 'latitude|basin': 
     540            print 'SEVERE [2]: error in level deduction' 
     541            print sc, tt[0], tt[-1], n 
     542            raise 
    493543          eed[d] = (sc,tt[1],ttdd[d[2]],tt[3]) 
    494544      self.dsortdd[mode] = (eed,lcount) 
     
    496546  def run(self,rq): 
    497547 
    498     main = self.doc.childNodes[0] 
     548    xx = self.doc.getElementsByTagName( 'main' ) 
     549    assert len(xx) == 1, 'Expecting one element named "main", found %s' % len(xx) 
     550    main = xx[0] 
    499551    xsn = [] 
    500552    ff = {} 
     
    514566    self.ff = ff 
    515567 
    516     addex = False 
    517     exrqvg = {} 
    518     if addex: 
     568     
     569    addex = True 
     570    self.prqv = ivg.prepRequestVar(addex) 
     571    self.prqv.run() 
     572    ##exrqvg = {} 
     573    ##if addex: 
    519574      ###  
    520       extravg = [['OMIP', u'OMIP-Oyr', u'OMIP: OMIP-Oyr', 'CMIP5Rev', u'OMIP.Oyr'], 
    521                ['OMIP', u'OMIP-Omon', u'OMIP: OMIP-Omon', 'CMIP5Rev', u'OMIP.Omon'], 
    522                ['OMIP', u'OMIP-day', u'OMIP: OMIP-day', 'CMIP5Rev', u'OMIP.day'], 
    523                ['OMIP', u'OMIP-fx', u'OMIP: OMIP-fx', 'CMIP5Rev', u'OMIP.fx'] ] 
    524       for r in extravg: 
    525         thisuuid = str( uuid.uuid1() ) 
    526         exrqvg[thisuuid] = [thisuuid ,] + r[:] 
     575      ##extravg = [['OMIP', u'OMIP-Oyr', u'OMIP: OMIP-Oyr', 'CMIP5Rev', u'OMIP.Oyr'], 
     576               ##['OMIP', u'OMIP-Omon', u'OMIP: OMIP-Omon', 'CMIP5Rev', u'OMIP.Omon'], 
     577               ##['OMIP', u'OMIP-day', u'OMIP: OMIP-day', 'CMIP5Rev', u'OMIP.day'], 
     578               ##['OMIP', u'OMIP-fx', u'OMIP: OMIP-fx', 'CMIP5Rev', u'OMIP.fx'] ] 
     579      ##for r in extravg: 
     580        ##thisuuid = str( uuid.uuid1() ) 
     581        ##exrqvg[thisuuid] = [thisuuid ,] + r[:] 
    527582     
    528     self.eern = collections.defaultdict( list ) 
    529     self.eern2 = {} 
    530     ixrn = 5 
    531     dups = [] 
    532     ##for k in rq.rqvg.keys(): 
    533       ##if k[0] != '_': 
    534     for i,k in [ (rq.rqvg[k],k) for k in  rq.rqvg.keys() if k[0] != '_'] + [(exrqvg[k],k) for k in exrqvg.keys()]: 
    535         kk = ['uid', 'mip', 'tab', 'objective', 'grid', 'gridreq', 'comment', 'ref', 'refNote', 'refid'] 
    536         kk = ['uuid', 'mip', 'label', 'title', 'ref', 'refNote'] 
     583    ##self.eern = collections.defaultdict( list ) 
     584    ##self.eern2 = {} 
     585    ##ixrn = 5 
     586    ##dups = [] 
     587    ####for k in rq.rqvg.keys(): 
     588      ####if k[0] != '_': 
     589    ##for i,k in [ (rq.rqvg[k],k) for k in  rq.rqvg.keys() if k[0] != '_'] + [(exrqvg[k],k) for k in exrqvg.keys()]: 
     590        ##kk = ['uid', 'mip', 'tab', 'objective', 'grid', 'gridreq', 'comment', 'ref', 'refNote', 'refid'] 
     591        ##kk = ['uuid', 'mip', 'label', 'title', 'ref', 'refNote'] 
    537592        ##i = rq.rqvg[k] 
    538593         
    539         self.eern[i[ixrn]].append( i[0] ) 
    540         k2 = '%s__%s' % (i[ixrn-1],i[ixrn]) 
    541         if self.eern2.has_key( k2 ): 
    542            dups.append( (k2,k,self.eern2[k2]) ) 
    543         self.eern2[k2] = i[0] 
    544         assert i[0] == k, 'Bad key/uuid' 
    545  
    546     assert len( dups ) == 0, 'Duplicate refs: %s, %s' % (str(dups),str(map( lambda x: rq.rqvg[x[1]], dups )) ) 
     594        ##self.eern[i[ixrn]].append( i[0] ) 
     595        ##k2 = '%s__%s' % (i[ixrn-1],i[ixrn]) 
     596        ##if self.eern2.has_key( k2 ): 
     597           ##dups.append( (k2,k,self.eern2[k2]) ) 
     598        ##self.eern2[k2] = i[0] 
     599        ##assert i[0] == k, 'Bad key/uuid' 
     600 
     601    ##assert len( dups ) == 0, 'Duplicate refs: %s, %s' % (str(dups),str(map( lambda x: rq.rqvg[x[1]], dups )) ) 
    547602         
    548603## keys here match section element names in schema 
     
    550605    if self.schemaMode != 'dreq2': 
    551606      sectlist = ['ovar','groupitem','revisedtabitem'] + sectlist 
     607    else: 
     608      sectlist.append( 'requestvar' ) 
    552609 
    553610    for k in sectlist: 
     
    561618      idk = 0 
    562619      if len(lll) > 0: 
    563         dil = ff[k][0].getElementsByTagName('item') 
    564         for d in dil: 
    565           ff[k][0].removeChild(d) 
     620## 
     621## remove example items, xcept where this has been done in previous function 
     622## 
     623        if k not in ['xxxx']: 
     624          dil = ff[k][0].getElementsByTagName('item') 
     625          for d in dil: 
     626            ff[k][0].removeChild(d) 
     627 
    566628        vare = {} 
    567629        vare2 = {} 
     
    608670##- sn; units; description; procnote; procComment; prov 
    609671##['label', 'title', 'sn', 'units', 'description', 'procnote', 'procComment', 'prov'] 
    610             thisl = string.strip(str( ll[0] ) ) 
     672            thisl = string.replace(string.strip(str( ll[0] ) ), '_', '-' ) 
    611673            thisuuid = str(i) 
    612674            if not ( self.replItems.has_key( str(i) ) or self.remo.has_key(str(i)) ): 
     
    701763                item.setAttribute( tag, new ) 
    702764################################## 
    703           elif k == 'revisedtabitem': 
     765          elif k in ['revisedtabitem','requestvar']: 
    704766#### need to fill gaps in variable groups --- or do better job upstream ##########  !!!!!!!!!!!!!!!! 
    705767## - table; mip; uuid; priority 
     
    709771## 
    710772            kk = ['var', 'table', 'mip', 'vid', 'priority'] 
    711             kvg = 'CMIP5Rev__%s.%s' % ( ll[2],ll[1] ) 
    712             kvg3 = 'rev__%s.%s' % ( ll[2],ll[1] ) 
    713             if self.eern2.has_key(kvg): 
    714               vgid = self.eern2[kvg] 
    715             elif self.eern2.has_key(kvg3): 
    716               vgid = self.eern2[kvg3] 
    717             elif cmip5GrpLk[ll[1]].has_key(ll[0]): 
    718               g2 = cmip5GrpLk[ll[1]][ll[0]] 
    719               kvg2 = 'CMIP5Rev__%s.%s' % ( ll[2],g2 ) 
    720               if self.eern2.has_key(kvg2): 
    721                 vgid = self.eern2[kvg2] 
    722               else: 
    723                 vgid = '__vg_not_found_1__' 
    724                 self.err0010[kvg] += 1 
    725             else: 
    726               vgid = '__vg_not_found_2__' 
    727               self.err0010[kvg] += 1 
     773    ##self.rqvinfo = ('uuid','label','vid','gpid','priority','mip','table' ) 
     774            vgid = self.prqv.rqv_vg[ll[0]] 
     775            ##kvg = 'CMIP5Rev__%s.%s' % ( ll[2],ll[1] ) 
     776            ##kvg3 = 'rev__%s.%s' % ( ll[2],ll[1] ) 
     777            ##if self.eern2.has_key(kvg): 
     778              ##vgid = self.eern2[kvg] 
     779            ##elif self.eern2.has_key(kvg3): 
     780              ##vgid = self.eern2[kvg3] 
     781            ##elif cmip5GrpLk[ll[1]].has_key(ll[0]): 
     782              ##g2 = cmip5GrpLk[ll[1]][ll[0]] 
     783              ##kvg2 = 'CMIP5Rev__%s.%s' % ( ll[2],g2 ) 
     784              ##if self.eern2.has_key(kvg2): 
     785                ##vgid = self.eern2[kvg2] 
     786              ##else: 
     787                ##vgid = '__vg_not_found_1__' 
     788                ##self.err0010[kvg] += 1 
     789            ##else: 
     790              ##vgid = '__vg_not_found_2__' 
     791              ##self.err0010[kvg] += 1 
    728792            thisuuid = str( uuid.uuid1() ) 
    729793            thisl = string.strip(str( ll[0] ) ) 
     
    817881  def write2(self): 
    818882    """write sections for cmor variable, request variable, structure, spatial and temporal dimensions""" 
    819     for ksect in [ u'cmorvar',  u'spatialshape', u'temporalshape', u'structure', 'requestvar']: 
     883    for ksect in [ u'cmorvar',  u'spatialshape', u'temporalshape', u'structure', u'requestvar']: 
     884    ##for ksect in [ u'cmorvar',  u'spatialshape', u'temporalshape', u'structure']: 
    820885        dil = self.ff[ksect][0].getElementsByTagName('item') 
    821         for d in dil: 
    822           self.ff[ksect][0].removeChild(d) 
     886        if ksect != 'requestvar': 
     887          for d in dil: 
     888            self.ff[ksect][0].removeChild(d) 
    823889        if ksect == u'cmorvar': 
    824890          for r in self.cmv: 
     
    853919              item.setAttribute( self.dimsTimeInfo[i], str( rr[i] ) ) 
    854920            self.ff[ksect][0].appendChild( item ) 
     921        elif ksect == u'requestvar': 
     922          ##kk = ['var', 'table', 'mip', 'vid', 'priority'] 
     923          kk = ['label', 'table', 'mip', 'vid', 'priority','vgid','title','uuid'] 
     924          kktr = {'vgid':'gpid', 'title':'label'} 
     925    ##self.rqvinfo = ('uuid','label','vid','gpid','priority','mip','table' ) 
     926          for t in self.rqv: 
     927            item = self.doc.createElement( 'item' ) 
     928            ###assert len(t) == len(kk), 'BAD request variable line: %s' % str(t) 
     929            for i in range(len(kk)): 
     930              k = kktr.get( kk[i], kk[i] ) 
     931              v = t[  self.rqvinfo.index(k) ] 
     932              if k == 'priority': 
     933                item.setAttribute( kk[i], str( int(v) ) ) 
     934              else: 
     935                item.setAttribute( kk[i], str( v ) ) 
     936            self.ff[ksect][0].appendChild( item ) 
     937             
    855938    ##self.dimsTimeInfo = ['uuid','label','title','dimensions'] 
    856939    ##self.dimsSpaceInfo = ['uuid','label','title','dimensions','levelFlag','levels'] 
     
    9391022mode = 'dreq2' 
    9401023sampleXml = '../framework/out/%sSample.xml' % mode 
    941 cmip5GrpLk = collections.defaultdict( dict ) 
    9421024from scansh import rq 
    9431025 
    944 for k in rq.cmip5Grps.keys(): 
    945   bits = string.split(k,'_') 
    946   tab = bits[0] 
    947   for v in rq.cmip5Grps[k]: 
    948     cmip5GrpLk[tab][v] = k 
     1026##cmip5GrpLk = collections.defaultdict( dict ) 
     1027##for k in rq.cmip5Grps.keys(): 
     1028  ##bits = string.split(k,'_') 
     1029  ##tab = bits[0] 
     1030  ##for v in rq.cmip5Grps[k]: 
     1031    ##cmip5GrpLk[tab][v] = k 
    9491032 
    9501033m = main(sampleXml, rq,run=True, schemaMode=mode) 
    9511034 
    9521035if len(m.err0010.keys()) > 0: 
    953   ks = m.err0010.keys() 
     1036  ks = m.prqv.err0010.keys() 
    9541037  ks.sort() 
    9551038  for k in ks: 
    956     print 'ERROR.001.0010: variable group not identified: %s [%s]' % (k,m.err0010[k]) 
     1039    print 'ERROR.001.0010: variable group not identified: %s [%s]' % (k,m.prqv.err0010[k]) 
     1040  ks = m.prqv.err0020.keys() 
     1041  ks.sort() 
     1042  for k in ks: 
     1043    print 'ERROR.001.0020: variable group not identified: %s [%s]' % (k,m.prqv.err0020[k]) 
  • CMIP6dreqbuild/trunk/src/workbook/trial.xml

    r370 r397  
    11<?xml version="1.0" ?> 
     2<document xmlns="urn:w3id.org:cmip6.dreq.dreq:a" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="out/dreqSchema.xsd"> 
     3<prologue> 
     4<dc:title>Draft CMIP6 Data Request</dc:title> 
     5<dc:creator>Martin Juckes</dc:creator> 
     6<dc:date>2015-10-01</dc:date> 
     7</prologue> 
    28<main> 
    3 <institute class="vocab" id="cmip.drv.001" title="Institute"> 
    4 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    5 <item description="Met Office Hadley Centre, Fitzroy Road, Exeter, Devon, EX1 3PB, UK." id="tmpid.0001" isni="0000 0001 2299 303X  [UKMO]" label="MOHC" title="MOHC" url="http://www.metoffice.gov.uk; http://www.metoffice.gov.uk/climate-guide/science/science-behind-climate-change/hadley" uuid="675210ac-3a81-11e5-9ed5-ac72891c3257"/> 
    6 <item description="Institut Pierre Simon Laplace, Paris, France" id="tmpid.0002" isni="0000 0000 9000 8794" label="IPSL" title="IPSL" url="https://www.ipsl.fr/en/" uuid="675214f8-3a81-11e5-9ed5-ac72891c3257"/> 
    7 <item description="Centre National de Recherches Meteorologiques, Meteo-France, Toulouse, France) and CERFACS (Centre Europeen de Recherches et de Formation Avancee en Calcul Scientifique, Toulouse, France" id="tmpid.0003" isni="0000 0004 0640 7549 " label="CNRM-CERFACS" title="CNRM-CERFACS" url="http://www.cerfacs.fr/" uuid="6752196c-3a81-11e5-9ed5-ac72891c3257"/> 
    8 <item description="Norwegian Climate Centre" id="tmpid.0004" isni="" label="NCC" title="NCC" url="http://folk.uib.no/ngfhd/EarthClim/index.htm" uuid="67521da4-3a81-11e5-9ed5-ac72891c3257"/> 
    9 <item description="Australian Commonwealth Scientific and Industrial Research Organization (CSIRO) Marine and Atmospheric Research (Melbourne, Australia) in collaboration with the Queensland Climate Change Centre of Excellence (QCCCE) (Brisbane, Australia)" id="tmpid.0005" isni="0000 0001 2173 2719 ;  0000 0004 0380 0628 [Queensland Government]" label="CSIRO-QCCCE" title="CSIRO-QCCCE" url="www.csiro.au ; http://www.ehp.qld.gov.au/climatechange/index.html " uuid="675221e6-3a81-11e5-9ed5-ac72891c3257"/> 
    10 <item description="Canadian Centre for Climate Modelling and Analysis, Victoria, BC, Canada" id="tmpid.0006" isni="" label="CCCma" title="CCCma" url="" uuid="675229e8-3a81-11e5-9ed5-ac72891c3257"/> 
    11 <item description="Institute for Numerical Mathematics, Moscow, Russia" id="tmpid.0007" isni="" label="INM" title="INM" url="" uuid="67522e20-3a81-11e5-9ed5-ac72891c3257"/> 
    12 <item description="Meteorological Research Institute, Tsukuba, Japan" id="tmpid.0008" isni="" label="MRI" title="MRI" url="" uuid="67523258-3a81-11e5-9ed5-ac72891c3257"/> 
    13 <item description="AORI (Atmosphere and Ocean Research Institute, The University of Tokyo, Chiba, Japan), NIES (National Institute for Environmental Studies, Ibaraki, Japan), JAMSTEC (Japan Agency for Marine-Earth Science and Technology, Kanagawa, Japan)" id="tmpid.0009" isni="" label="MIROC" title="MIROC" url="" uuid="67523672-3a81-11e5-9ed5-ac72891c3257"/> 
    14 <item description="JAMSTEC (Japan Agency for Marine-Earth Science and Technology, Kanagawa, Japan), AORI (Atmosphere and Ocean Research Institute, The University of Tokyo, Chiba, Japan), and NIES (National Institute for Environmental Studies, Ibaraki, Japan)" id="tmpid.0010" isni="" label="MIROC" title="MIROC" url="" uuid="67523aaa-3a81-11e5-9ed5-ac72891c3257"/> 
    15 <item description="Goddard Institute for Space Studies, New York, NY" id="tmpid.0011" isni="" label="NASA-GISS" title="NASA-GISS" url="" uuid="67523ece-3a81-11e5-9ed5-ac72891c3257"/> 
    16 <item description="National Center for Atmospheric Research, Boulder, CO, USA" id="tmpid.0012" isni="0000 0004 0637 9680 " label="NCAR" title="NCAR" url="" uuid="675242de-3a81-11e5-9ed5-ac72891c3257"/> 
    17 <item description="NOAA GFDL, 201 Forrestal Rd, Princeton, NJ, 08540" id="tmpid.0013" isni="0000 0000 9269 5516 " label="NOAA-GFDL" title="NOAA-GFDL" url="" uuid="675246f8-3a81-11e5-9ed5-ac72891c3257"/> 
    18 <item description="Beijing Climate Center,China Meteorological Administration,China" id="tmpid.0014" isni="0000 0001 2234 550X [CMA]" label="BCC" title="BCC" url="" uuid="67524b26-3a81-11e5-9ed5-ac72891c3257"/> 
    19 <item description="Max Planck Institute for Meteorology" id="tmpid.0015" isni="" label="MPI-M" title="MPI-M" url="" uuid="67524f5e-3a81-11e5-9ed5-ac72891c3257"/> 
    20 <item description="Institute of Atmospheric Physics, Chinese Academy of Sciences, Beijing, China and Tsinghua University" id="tmpid.0016" isni="" label="LASG-CESS" title="LASG-CESS" url="" uuid="67525382-3a81-11e5-9ed5-ac72891c3257"/> 
    21 <item description="Global Modeling and Assimilation Office, NASA Goddard Space Flight Center, Greenbelt, MD 20771" id="tmpid.0017" isni="" label="NASA-GMAO" title="NASA-GMAO" url="" uuid="67525788-3a81-11e5-9ed5-ac72891c3257"/> 
    22 <item description="GCESS,BNU,Beijing,China" id="tmpid.0018" isni="" label="BNU" title="BNU" url="" uuid="67525ba2-3a81-11e5-9ed5-ac72891c3257"/> 
    23 <item description="National Center for Atmospheric Research, Boulder, CO, USA" id="tmpid.0019" isni="" label="NSF-DOE-NCAR" title="NSF-DOE-NCAR" url="" uuid="67525f80-3a81-11e5-9ed5-ac72891c3257"/> 
    24 <item description="PNNL (Pacific Northwest National Laboratory) Richland, WA, USA/NCAR (National Center for Atmospheric Research) Boulder, CO, USA" id="tmpid.0020" isni="" label="NSF-DOE-NCAR" title="NSF-DOE-NCAR" url="" uuid="67526372-3a81-11e5-9ed5-ac72891c3257"/> 
    25 <item description="NSF/DOE NCAR (National Center for Atmospheric Research) Boulder, CO, USA" id="tmpid.0021" isni="" label="NSF-DOE-NCAR" title="NSF-DOE-NCAR" url="" uuid="67526ae8-3a81-11e5-9ed5-ac72891c3257"/> 
    26 <item description="Commonwealth Scientific and Industrial Research Organisation, Australia, and Bureau of Meteorology, Australia" id="tmpid.0022" isni="" label="CSIRO-BOM" title="CSIRO-BOM" url="" uuid="67526ef8-3a81-11e5-9ed5-ac72891c3257"/> 
    27 <item description="Nonhydrostatic Icosahedral Atmospheric Model (NICAM) Group (RIGC-JAMSTEC/AORI-U.Tokyo/AICS-RIKEN,Japan)" id="tmpid.0023" isni="" label="NICAM" title="NICAM" url="" uuid="67527312-3a81-11e5-9ed5-ac72891c3257"/> 
    28 <item description="Centro Euro-Mediterraneo per i Cambiamenti Climatici, Bologna, Italy" id="tmpid.0024" isni="" label="CMCC" title="CMCC" url="" uuid="67527704-3a81-11e5-9ed5-ac72891c3257"/> 
    29 <item description="The First Institution of Oceanography,SOA,Qingdao,China" id="tmpid.0025" isni="" label="FIO" title="FIO" url="" uuid="67527b32-3a81-11e5-9ed5-ac72891c3257"/> 
    30 <item description="Institute of Atmospheric Physics, Chinese Academy of Sciences,Beijing,China" id="tmpid.0026" isni="" label="LASG-IAP" title="LASG-IAP" url="" uuid="67527f2e-3a81-11e5-9ed5-ac72891c3257"/> 
    31 <item description="National Institute of Meteorological Research, Seoul, South Korea" id="tmpid.0027" isni="" label="NIMR-KMA" title="NIMR-KMA" url="" uuid="6752832a-3a81-11e5-9ed5-ac72891c3257"/> 
    32 <item description="European Earth System Model" id="tmpid.0028" isni="" label="ICHEC" title="ICHEC" url="" uuid="67528712-3a81-11e5-9ed5-ac72891c3257"/> 
    33 <item description="Center for Ocean-Land-Atmosphere Studies, Calverton, MD" id="tmpid.0029" isni="" label="COLA-CFS" title="COLA-CFS" url="" uuid="67528c80-3a81-11e5-9ed5-ac72891c3257"/> 
    34 <item description="National Centers for Environmental Prediction, Camp Springs, MD" id="tmpid.0030" isni="" label="NOAA-NCEP" title="NOAA-NCEP" url="" uuid="67529090-3a81-11e5-9ed5-ac72891c3257"/> 
     9<institute class="vocab" id="cmip.drv.001" title="Institute" uid="SECTION:institute"> 
     10<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     11<item description="Met Office Hadley Centre, Fitzroy Road, Exeter, Devon, EX1 3PB, UK." id="tmpid.0001" isni="0000 0001 2299 303X  [UKMO]" label="MOHC" title="MOHC" url="http://www.metoffice.gov.uk; http://www.metoffice.gov.uk/climate-guide/science/science-behind-climate-change/hadley"/> 
     12<item description="Institut Pierre Simon Laplace, Paris, France" id="tmpid.0002" isni="0000 0000 9000 8794" label="IPSL" title="IPSL" url="https://www.ipsl.fr/en/"/> 
     13<item description="Centre National de Recherches Meteorologiques, Meteo-France, Toulouse, France) and CERFACS (Centre Europeen de Recherches et de Formation Avancee en Calcul Scientifique, Toulouse, France" id="tmpid.0003" isni="0000 0004 0640 7549 " label="CNRM-CERFACS" title="CNRM-CERFACS" url="http://www.cerfacs.fr/"/> 
     14<item description="Norwegian Climate Centre" id="tmpid.0004" isni="" label="NCC" title="NCC" url="http://folk.uib.no/ngfhd/EarthClim/index.htm"/> 
     15<item description="Australian Commonwealth Scientific and Industrial Research Organization (CSIRO) Marine and Atmospheric Research (Melbourne, Australia) in collaboration with the Queensland Climate Change Centre of Excellence (QCCCE) (Brisbane, Australia)" id="tmpid.0005" isni="0000 0001 2173 2719 ;  0000 0004 0380 0628 [Queensland Government]" label="CSIRO-QCCCE" title="CSIRO-QCCCE" url="www.csiro.au ; http://www.ehp.qld.gov.au/climatechange/index.html "/> 
     16<item description="Canadian Centre for Climate Modelling and Analysis, Victoria, BC, Canada" id="tmpid.0006" isni="" label="CCCma" title="CCCma" url=""/> 
     17<item description="Institute for Numerical Mathematics, Moscow, Russia" id="tmpid.0007" isni="" label="INM" title="INM" url=""/> 
     18<item description="Meteorological Research Institute, Tsukuba, Japan" id="tmpid.0008" isni="" label="MRI" title="MRI" url=""/> 
     19<item description="AORI (Atmosphere and Ocean Research Institute, The University of Tokyo, Chiba, Japan), NIES (National Institute for Environmental Studies, Ibaraki, Japan), JAMSTEC (Japan Agency for Marine-Earth Science and Technology, Kanagawa, Japan)" id="tmpid.0009" isni="" label="MIROC" title="MIROC" url=""/> 
     20<item description="JAMSTEC (Japan Agency for Marine-Earth Science and Technology, Kanagawa, Japan), AORI (Atmosphere and Ocean Research Institute, The University of Tokyo, Chiba, Japan), and NIES (National Institute for Environmental Studies, Ibaraki, Japan)" id="tmpid.0010" isni="" label="MIROC" title="MIROC" url=""/> 
     21<item description="Goddard Institute for Space Studies, New York, NY" id="tmpid.0011" isni="0000 0001 1456 7559  [NASA]" label="NASA-GISS" title="NASA-GISS" url="http://www.giss.nasa.gov/"/> 
     22<item description="National Center for Atmospheric Research, Boulder, CO, USA" id="tmpid.0012" isni="0000 0004 0637 9680 " label="NCAR" title="NCAR" url="ncar.ucar.edu"/> 
     23<item description="NOAA GFDL, 201 Forrestal Rd, Princeton, NJ, 08540" id="tmpid.0013" isni="0000 0000 9269 5516 " label="NOAA-GFDL" title="NOAA-GFDL" url="www.gfdl.noaa.gov"/> 
     24<item description="Beijing Climate Center,China Meteorological Administration,China" id="tmpid.0014" isni="0000 0001 2234 550X [CMA]" label="BCC" title="BCC" url=""/> 
     25<item description="Max Planck Institute for Meteorology" id="tmpid.0015" isni="" label="MPI-M" title="MPI-M" url=""/> 
     26<item description="Institute of Atmospheric Physics, Chinese Academy of Sciences, Beijing, China and Tsinghua University" id="tmpid.0016" isni="" label="LASG-CESS" title="LASG-CESS" url=""/> 
     27<item description="Global Modeling and Assimilation Office, NASA Goddard Space Flight Center, Greenbelt, MD 20771" id="tmpid.0017" isni="0000 0001 1456 7559  [NASA]" label="NASA-GMAO" title="NASA-GMAO" url=""/> 
     28<item description="GCESS,BNU,Beijing,China (College of Global Change and Earth System Science, Beijing Normal University)" id="tmpid.0018" isni="" label="BNU" title="BNU" url=""/> 
     29<item description="National Center for Atmospheric Research, Boulder, CO, USA" id="tmpid.0019" isni="" label="NSF-DOE-NCAR" title="NSF-DOE-NCAR" url=""/> 
     30<item description="PNNL (Pacific Northwest National Laboratory) Richland, WA, USA/NCAR (National Center for Atmospheric Research) Boulder, CO, USA" id="tmpid.0020" isni="" label="NSF-DOE-NCAR" title="NSF-DOE-NCAR" url=""/> 
     31<item description="NSF/DOE NCAR (National Center for Atmospheric Research) Boulder, CO, USA" id="tmpid.0021" isni="" label="NSF-DOE-NCAR" title="NSF-DOE-NCAR" url=""/> 
     32<item description="Commonwealth Scientific and Industrial Research Organisation, Australia, and Bureau of Meteorology, Australia" id="tmpid.0022" isni="0000 0001 2173 2719  [CSIRO]; 0000 0004 0628 7751 [BOM]" label="CSIRO-BOM" title="CSIRO-BOM" url="www.csiro.au ; http://www.bom.gov.au/"/> 
     33<item description="Nonhydrostatic Icosahedral Atmospheric Model (NICAM) Group (RIGC-JAMSTEC/AORI-U.Tokyo/AICS-RIKEN,Japan)" id="tmpid.0023" isni="" label="NICAM" title="NICAM" url=""/> 
     34<item description="Centro Euro-Mediterraneo per i Cambiamenti Climatici, Bologna, Italy" id="tmpid.0024" isni="0000 0004 1761 0884" label="CMCC" title="CMCC" url="www.cmcc.it"/> 
     35<item description="The First Institution of Oceanography,SOA,Qingdao,China" id="tmpid.0025" isni="" label="FIO" title="FIO" url=""/> 
     36<item description="Institute of Atmospheric Physics, Chinese Academy of Sciences,Beijing,China" id="tmpid.0026" isni="" label="LASG-IAP" title="LASG-IAP" url=""/> 
     37<item description="National Institute of Meteorological Research, Seoul, South Korea" id="tmpid.0027" isni="" label="NIMR-KMA" title="NIMR-KMA" url=""/> 
     38<item description="European Earth System Model" id="tmpid.0028" isni="" label="ICHEC" title="ICHEC" url=""/> 
     39<item description="Center for Ocean-Land-Atmosphere Studies, Calverton, MD" id="tmpid.0029" isni="" label="COLA-CFS" title="COLA-CFS" url=""/> 
     40<item description="National Centers for Environmental Prediction, Camp Springs, MD" id="tmpid.0030" isni="" label="NOAA-NCEP" title="NOAA-NCEP" url=""/> 
    3541</institute> 
    36 <model class="vocab" id="cmip.drv.002" title="Model"> 
    37 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    38 <item description="" id="tmpid.0001" label="ACCESS" title="" uuid="67548a94-3a81-11e5-9ed5-ac72891c3257"/> 
    39 <item description="" id="tmpid.0002" label="AWI-CM" title="" uuid="67548e36-3a81-11e5-9ed5-ac72891c3257"/> 
    40 <item description="" id="tmpid.0003" label="BCC" title="" uuid="6754921e-3a81-11e5-9ed5-ac72891c3257"/> 
    41 <item description="" id="tmpid.0004" label="BESM" title="" uuid="6754964c-3a81-11e5-9ed5-ac72891c3257"/> 
    42 <item description="" id="tmpid.0005" label="BNU" title="" uuid="67549a3e-3a81-11e5-9ed5-ac72891c3257"/> 
    43 <item description="" id="tmpid.0006" label="CAMS-CSM" title="" uuid="67549de0-3a81-11e5-9ed5-ac72891c3257"/> 
    44 <item description="" id="tmpid.0007" label="CanESM" title="" uuid="6754a1e6-3a81-11e5-9ed5-ac72891c3257"/> 
    45 <item description="" id="tmpid.0008" label="CAS-ESM" title="" uuid="6754a56a-3a81-11e5-9ed5-ac72891c3257"/> 
    46 <item description="" id="tmpid.0009" label="CESM" title="" uuid="6754a8c6-3a81-11e5-9ed5-ac72891c3257"/> 
    47 <item description="" id="tmpid.0010" label="CESS-THU" title="" uuid="6754ac2c-3a81-11e5-9ed5-ac72891c3257"/> 
    48 <item description="" id="tmpid.0011" label="CMCC" title="" uuid="6754b21c-3a81-11e5-9ed5-ac72891c3257"/> 
    49 <item description="" id="tmpid.0012" label="CNRM" title="" uuid="6754b582-3a81-11e5-9ed5-ac72891c3257"/> 
    50 <item description="" id="tmpid.0013" label="EC-Earth" title="" uuid="6754b8e8-3a81-11e5-9ed5-ac72891c3257"/> 
    51 <item description="" id="tmpid.0014" label="FGOALS" title="" uuid="6754bc62-3a81-11e5-9ed5-ac72891c3257"/> 
    52 <item description="" id="tmpid.0015" label="FIO" title="" uuid="6754bfd2-3a81-11e5-9ed5-ac72891c3257"/> 
    53 <item description="" id="tmpid.0016" label="GFDL" title="" uuid="6754c338-3a81-11e5-9ed5-ac72891c3257"/> 
    54 <item description="" id="tmpid.0017" label="GISS" title="" uuid="6754c694-3a81-11e5-9ed5-ac72891c3257"/> 
    55 <item description="" id="tmpid.0018" label="IITM" title="" uuid="6754ca22-3a81-11e5-9ed5-ac72891c3257"/> 
    56 <item description="" id="tmpid.0019" label="INM" title="" uuid="6754cd9c-3a81-11e5-9ed5-ac72891c3257"/> 
    57 <item description="" id="tmpid.0020" label="IPSL" title="" uuid="6754d134-3a81-11e5-9ed5-ac72891c3257"/> 
    58 <item description="" id="tmpid.0021" label="MIROC6-CGCM" title="" uuid="6754d49a-3a81-11e5-9ed5-ac72891c3257"/> 
    59 <item description="" id="tmpid.0022" label="MIROC-ESM" title="" uuid="6754d7f6-3a81-11e5-9ed5-ac72891c3257"/> 
    60 <item description="" id="tmpid.0023" label="NICAM" title="" uuid="6754db70-3a81-11e5-9ed5-ac72891c3257"/> 
    61 <item description="" id="tmpid.0024" label="MPI-ESM" title="" uuid="6754decc-3a81-11e5-9ed5-ac72891c3257"/> 
    62 <item description="" id="tmpid.0025" label="MRI-ESM1-x" title="" uuid="6754e246-3a81-11e5-9ed5-ac72891c3257"/> 
    63 <item description="" id="tmpid.0026" label="MRI-AGCM3-xS" title="" uuid="6754e5b6-3a81-11e5-9ed5-ac72891c3257"/> 
    64 <item description="" id="tmpid.0027" label="NorESM" title="" uuid="6754e9b2-3a81-11e5-9ed5-ac72891c3257"/> 
    65 <item description="" id="tmpid.0028" label="NUIST-CSM" title="" uuid="6754ed5e-3a81-11e5-9ed5-ac72891c3257"/> 
    66 <item description="" id="tmpid.0029" label="UKESM" title="" uuid="6754f150-3a81-11e5-9ed5-ac72891c3257"/> 
    67 <item description="" id="tmpid.0030" label="HadGEM3" title="" uuid="6754f4b6-3a81-11e5-9ed5-ac72891c3257"/> 
    68 <item description="" id="tmpid.0031" label="KMA-ACE" title="" uuid="6754fab0-3a81-11e5-9ed5-ac72891c3257"/> 
    69 <item description="" id="tmpid.0032" label="UKESM--KMA" title="" uuid="6754fe34-3a81-11e5-9ed5-ac72891c3257"/> 
     42<model class="vocab" id="cmip.drv.002" title="Model" uid="SECTION:model"> 
     43<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     44<item description="" id="tmpid.0001" label="ACCESS" title=""/> 
     45<item description="" id="tmpid.0002" label="AWI-CM" title=""/> 
     46<item description="" id="tmpid.0003" label="BCC" title=""/> 
     47<item description="" id="tmpid.0004" label="BESM" title=""/> 
     48<item description="" id="tmpid.0005" label="BNU" title=""/> 
     49<item description="" id="tmpid.0006" label="CAMS-CSM" title=""/> 
     50<item description="" id="tmpid.0007" label="CanESM" title=""/> 
     51<item description="" id="tmpid.0008" label="CAS-ESM" title=""/> 
     52<item description="" id="tmpid.0009" label="CESM" title=""/> 
     53<item description="" id="tmpid.0010" label="CESS-THU" title=""/> 
     54<item description="" id="tmpid.0011" label="CMCC" title=""/> 
     55<item description="" id="tmpid.0012" label="CNRM" title=""/> 
     56<item description="" id="tmpid.0013" label="EC-Earth" title=""/> 
     57<item description="" id="tmpid.0014" label="FGOALS" title=""/> 
     58<item description="" id="tmpid.0015" label="FIO" title=""/> 
     59<item description="" id="tmpid.0016" label="GFDL" title=""/> 
     60<item description="" id="tmpid.0017" label="GISS" title=""/> 
     61<item description="" id="tmpid.0018" label="IITM" title=""/> 
     62<item description="" id="tmpid.0019" label="INM" title=""/> 
     63<item description="" id="tmpid.0020" label="IPSL" title=""/> 
     64<item description="" id="tmpid.0021" label="MIROC6-CGCM" title=""/> 
     65<item description="" id="tmpid.0022" label="MIROC-ESM" title=""/> 
     66<item description="" id="tmpid.0023" label="NICAM" title=""/> 
     67<item description="" id="tmpid.0024" label="MPI-ESM" title=""/> 
     68<item description="" id="tmpid.0025" label="MRI-ESM1-x" title=""/> 
     69<item description="" id="tmpid.0026" label="MRI-AGCM3-xS" title=""/> 
     70<item description="" id="tmpid.0027" label="NorESM" title=""/> 
     71<item description="" id="tmpid.0028" label="NUIST-CSM" title=""/> 
     72<item description="" id="tmpid.0029" label="UKESM" title=""/> 
     73<item description="" id="tmpid.0030" label="HadGEM3" title=""/> 
     74<item description="" id="tmpid.0031" label="KMA-ACE" title=""/> 
     75<item description="" id="tmpid.0032" label="UKESM--KMA" title=""/> 
    7076</model> 
    71 <physicsvers class="vocab" id="cmip.drv.003" title="Physics Version"> 
    72 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    73 <item description="dummyAt" id="001.003.001" label="example-01" title="dummy title string" uuid="215e7e6e-3a81-11e5-882e-ac72891c3257"/> 
     77<physicsvers class="vocab" id="cmip.drv.003" title="Physics Version" uid="SECTION:physicsvers"> 
     78<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     79<item description="dummyAt" id="001.003.001" label="example-01" title="dummy title string" uid="c2c151e8-6838-11e5-b0d3-5404a60d96b5"/> 
    7480</physicsvers> 
    75 <initialisationmethod class="vocab" id="cmip.drv.004" title="Initialisation Method"> 
    76 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    77 <item description="dummyAt" id="001.004.001" label="example-01" title="dummy title string" uuid="215eb3c0-3a81-11e5-882e-ac72891c3257"/> 
     81<initialisationmethod class="vocab" id="cmip.drv.004" title="Initialisation Method" uid="SECTION:initialisationmethod"> 
     82<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     83<item description="dummyAt" id="001.004.001" label="example-01" title="dummy title string" uid="c2c18a82-6838-11e5-b0d3-5404a60d96b5"/> 
    7884</initialisationmethod> 
    79 <modelComp class="vocab" id="cmip.drv.005" title="Model Components"> 
    80 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    81 <item componentType="dummyAt" id="001.005.001" label="example-01" sizeH="dummyAt" sizeV="dummyAt" title="dummy title string" uuid="215eec50-3a81-11e5-882e-ac72891c3257"/> 
     85<modelComp class="vocab" id="cmip.drv.005" title="Model Components" uid="SECTION:modelComp"> 
     86<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     87<item componentType="dummyAt" id="001.005.001" label="example-01" sizeH="dummyAt" sizeV="dummyAt" title="dummy title string" uid="c2c1c4a2-6838-11e5-b0d3-5404a60d96b5"/> 
    8288</modelComp> 
    83 <activity class="vocab" id="cmip.drv.006" title="Coordinating activity"> 
    84 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    85 <item id="tmpid.0001" label="CMIP6" status="" title="Coupled Model Intercomparison Project, Phase 6" url="http://www.wcrp-climate.org/wgcm-cmip/wgcm-cmip6" uuid="67535df4-3a81-11e5-9ed5-ac72891c3257"/> 
    86 <item id="tmpid.0002" label="AerChemMIP" status="" title="Aerosols and Chemistry Model Intercomparison Project" url="" uuid="67536484-3a81-11e5-9ed5-ac72891c3257"/> 
    87 <item id="tmpid.0003" label="C4MIP" status="" title="Coupled Climate Carbon Cycle Model Intercomparison Project" url="" uuid="67536a88-3a81-11e5-9ed5-ac72891c3257"/> 
    88 <item id="tmpid.0004" label="CFMIP" status="" title="Cloud Feedback Model Intercomparison Project" url="" uuid="6753710e-3a81-11e5-9ed5-ac72891c3257"/> 
    89 <item id="tmpid.0005" label="DAMIP" status="" title="Detection and Attribution Model Intercomparison Project" url="" uuid="6753778a-3a81-11e5-9ed5-ac72891c3257"/> 
    90 <item id="tmpid.0006" label="DCPP" status="" title="Decadal Climate Prediction Project" url="" uuid="67537e74-3a81-11e5-9ed5-ac72891c3257"/> 
    91 <item id="tmpid.0007" label="FAFMIP" status="" title="Flux-Anomaly-Forced Model Intercomparison Project" url="" uuid="6753850e-3a81-11e5-9ed5-ac72891c3257"/> 
    92 <item id="tmpid.0008" label="GeoMIP" status="" title="Geoengineering Model Intercomparison Project" url="" uuid="67538fa4-3a81-11e5-9ed5-ac72891c3257"/> 
    93 <item id="tmpid.0009" label="GMMIP" status="" title="Global Monsoons Model Intercomparison Project" url="" uuid="675395e4-3a81-11e5-9ed5-ac72891c3257"/> 
    94 <item id="tmpid.0010" label="HighResMIP" status="" title="High Resolution Model Intercomparison Project" url="https://dev.knmi.nl/projects/highresmip/wiki" uuid="67539bc0-3a81-11e5-9ed5-ac72891c3257"/> 
    95 <item id="tmpid.0011" label="ISMIP6" status="" title="Ice Sheet Model Intercomparison Project for CMIP6" url="" uuid="6753a1d8-3a81-11e5-9ed5-ac72891c3257"/> 
    96 <item id="tmpid.0012" label="LS3MIP" status="" title="Land Surface, Snow and Soil Moisture MIP" url="" uuid="6753a8a4-3a81-11e5-9ed5-ac72891c3257"/> 
    97 <item id="tmpid.0013" label="LUMIP" status="" title="Land-Use Model Intercomparison Project" url="" uuid="6753ad90-3a81-11e5-9ed5-ac72891c3257"/> 
    98 <item id="tmpid.0014" label="OMIP" status="" title="Ocean Model Intercomparison Project" url="" uuid="6753b678-3a81-11e5-9ed5-ac72891c3257"/> 
    99 <item id="tmpid.0015" label="PDRMIP" status="withdrawn" title="Precipitation Driver and Response Model Intercomparison Project" url="" uuid="6753bed4-3a81-11e5-9ed5-ac72891c3257"/> 
    100 <item id="tmpid.0016" label="PMIP" status="" title="Palaeoclimate Modelling Intercomparison Project" url="" uuid="6753c65e-3a81-11e5-9ed5-ac72891c3257"/> 
    101 <item id="tmpid.0017" label="RFMIP" status="" title="Radiative Forcing Model Intercomparison Project" url="" uuid="6753cb86-3a81-11e5-9ed5-ac72891c3257"/> 
    102 <item id="tmpid.0018" label="ScenarioMIP" status="" title="Scenario Model Intercomparison Project" url="" uuid="6753cfdc-3a81-11e5-9ed5-ac72891c3257"/> 
    103 <item id="tmpid.0019" label="SolarMIP" status="merged with DAMIP" title="Solar Model Intercomparison Project" url="" uuid="6753d432-3a81-11e5-9ed5-ac72891c3257"/> 
    104 <item id="tmpid.0020" label="VolMIP" status="" title="Volcanic Forcings Model Intercomparison Project" url="" uuid="6753da9a-3a81-11e5-9ed5-ac72891c3257"/> 
    105 <item id="tmpid.0021" label="CORDEX" status="Diagnostic" title="" url="" uuid="6753df90-3a81-11e5-9ed5-ac72891c3257"/> 
    106 <item id="tmpid.0022" label="DynVar" status="Diagnostic" title="" url="" uuid="6753e3aa-3a81-11e5-9ed5-ac72891c3257"/> 
    107 <item id="tmpid.0023" label="SIMIP" status="Diagnostic" title="" url="" uuid="6753e7ba-3a81-11e5-9ed5-ac72891c3257"/> 
    108 <item id="tmpid.0024" label="VIACSAB" status="Diagnostic" title="" url="" uuid="6753ebc0-3a81-11e5-9ed5-ac72891c3257"/> 
     89<activity class="vocab" id="cmip.drv.006" title="Coordinating activity" uid="SECTION:activity"> 
     90<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     91<item id="tmpid.0001" label="CMIP6" status="" title="Coupled Model Intercomparison Project, Phase 6" url="http://www.wcrp-climate.org/wgcm-cmip/wgcm-cmip6"/> 
     92<item id="tmpid.0002" label="AerChemMIP" status="" title="Aerosols and Chemistry Model Intercomparison Project" url="https://wiki.met.no/aerocom/aerchemmip/start"/> 
     93<item id="tmpid.0003" label="C4MIP" status="" title="Coupled Climate Carbon Cycle Model Intercomparison Project" url="http://c4mip.lsce.ipsl.fr/"/> 
     94<item id="tmpid.0004" label="CFMIP" status="" title="Cloud Feedback Model Intercomparison Project" url="http://www.cfmip.net./"/> 
     95<item id="tmpid.0005" label="DAMIP" status="" title="Detection and Attribution Model Intercomparison Project" url="http://www.wcrp-climate.org/modelling-wgcm-mip-catalogue/modelling-wgcm-mips/475-modelling-wgcm-damip"/> 
     96<item id="tmpid.0006" label="DCPP" status="" title="Decadal Climate Prediction Project" url=""/> 
     97<item id="tmpid.0007" label="FAFMIP" status="" title="Flux-Anomaly-Forced Model Intercomparison Project" url="http://www.met.reading.ac.uk/~jonathan/FAFMIP/"/> 
     98<item id="tmpid.0008" label="GeoMIP" status="" title="Geoengineering Model Intercomparison Project" url=""/> 
     99<item id="tmpid.0009" label="GMMIP" status="" title="Global Monsoons Model Intercomparison Project" url=""/> 
     100<item id="tmpid.0010" label="HighResMIP" status="" title="High Resolution Model Intercomparison Project" url="https://dev.knmi.nl/projects/highresmip/wiki"/> 
     101<item id="tmpid.0011" label="ISMIP6" status="" title="Ice Sheet Model Intercomparison Project for CMIP6" url=""/> 
     102<item id="tmpid.0012" label="LS3MIP" status="" title="Land Surface, Snow and Soil Moisture MIP" url=""/> 
     103<item id="tmpid.0013" label="LUMIP" status="" title="Land-Use Model Intercomparison Project" url=""/> 
     104<item id="tmpid.0014" label="OMIP" status="" title="Ocean Model Intercomparison Project" url=""/> 
     105<item id="tmpid.0015" label="PDRMIP" status="withdrawn" title="Precipitation Driver and Response Model Intercomparison Project" url=""/> 
     106<item id="tmpid.0016" label="PMIP" status="" title="Palaeoclimate Modelling Intercomparison Project" url=""/> 
     107<item id="tmpid.0017" label="RFMIP" status="" title="Radiative Forcing Model Intercomparison Project" url=""/> 
     108<item id="tmpid.0018" label="ScenarioMIP" status="" title="Scenario Model Intercomparison Project" url=""/> 
     109<item id="tmpid.0019" label="SolarMIP" status="merged with DAMIP" title="Solar Model Intercomparison Project" url=""/> 
     110<item id="tmpid.0020" label="VolMIP" status="" title="Volcanic Forcings Model Intercomparison Project" url=""/> 
     111<item id="tmpid.0021" label="CORDEX" status="Diagnostic" title="" url=""/> 
     112<item id="tmpid.0022" label="DynVar" status="Diagnostic" title="" url=""/> 
     113<item id="tmpid.0023" label="SIMIP" status="Diagnostic" title="" url=""/> 
     114<item id="tmpid.0024" label="VIACS AB" status="Diagnostic" title="" url=""/> 
    109115</activity> 
    110 <product class="vocab" id="cmip.drv.007" title="Data product"> 
    111 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    112 <item id="001.007.001" label="example-01" title="dummy title string" uuid="215ef9ac-3a81-11e5-882e-ac72891c3257"/> 
     116<product class="vocab" id="cmip.drv.007" title="Data product" uid="SECTION:product"> 
     117<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     118<item id="001.007.001" label="example-01" title="dummy title string" uid="c2c1d262-6838-11e5-b0d3-5404a60d96b5"/> 
    113119</product> 
    114 <experiment class="vocab" id="cmip.drv.008" title="Numerical Experiment"> 
    115 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    116 <item altLabel="dummyAt" description="dummyAt" id="001.008.001" label="example-01" sponsor="dummyAt" title="dummy title string" url="dummyAt" uuid="215efe70-3a81-11e5-882e-ac72891c3257"/> 
     120<experiment class="vocab" id="cmip.drv.008" title="Numerical Experiment" uid="SECTION:experiment"> 
     121<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     122<item altLabel="dummyAt" description="dummyAt" id="001.008.001" label="example-01" sponsor="dummyAt" title="dummy title string" uid="c2c1d744-6838-11e5-b0d3-5404a60d96b5" url="dummyAt"/> 
    117123</experiment> 
    118 <frequency class="vocab" id="cmip.drv.009" title="Temporal frequency of data values"> 
    119 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    120 <item id="tmpid.0001" iso="P1Y" label="yr" title="Annual" uuid="67529d2e-3a81-11e5-9ed5-ac72891c3257"/> 
    121 <item id="tmpid.0002" iso="P1M" label="monClim" title="Monthly climatology" uuid="6752a0bc-3a81-11e5-9ed5-ac72891c3257"/> 
    122 <item id="tmpid.0003" iso="P1M" label="mon" title="Monthly" uuid="6752a40e-3a81-11e5-9ed5-ac72891c3257"/> 
    123 <item id="tmpid.0004" iso="P1D" label="day" title="Daily" uuid="6752a760-3a81-11e5-9ed5-ac72891c3257"/> 
    124 <item id="tmpid.0005" iso="PT6H" label="6hr" title="6-hourly" uuid="6752aa9e-3a81-11e5-9ed5-ac72891c3257"/> 
    125 <item id="tmpid.0006" iso="PT3H" label="3hr" title="3-hourly" uuid="6752ae90-3a81-11e5-9ed5-ac72891c3257"/> 
    126 <item id="tmpid.0007" iso="PT1H" label="hr" title="Hourly" uuid="6752b890-3a81-11e5-9ed5-ac72891c3257"/> 
    127 <item id="tmpid.0008" iso="" label="subhr" title="Sub-hourly" uuid="6752bd9a-3a81-11e5-9ed5-ac72891c3257"/> 
     124<frequency class="vocab" id="cmip.drv.009" title="Temporal frequency of data values" uid="SECTION:frequency"> 
     125<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     126<item id="tmpid.0001" iso="P1Y" label="yr" title="Annual"/> 
     127<item id="tmpid.0002" iso="P1M" label="monClim" title="Monthly climatology"/> 
     128<item id="tmpid.0003" iso="P1M" label="mon" title="Monthly"/> 
     129<item id="tmpid.0004" iso="P1D" label="day" title="Daily"/> 
     130<item id="tmpid.0005" iso="PT6H" label="6hr" title="6-hourly"/> 
     131<item id="tmpid.0006" iso="PT3H" label="3hr" title="3-hourly"/> 
     132<item id="tmpid.0007" iso="PT1H" label="hr" title="Hourly"/> 
     133<item id="tmpid.0008" iso="" label="subhr" title="Sub-hourly"/> 
    128134</frequency> 
    129 <realm class="vocab" id="cmip.drv.010" title="Modeling realm"> 
    130 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    131 <item id="tmpid.0001" label="atmos" title="Atmospheric" uuid="67509b28-3a81-11e5-9ed5-ac72891c3257"/> 
    132 <item id="tmpid.0002" label="ocean" title="Oceanic" uuid="6750da48-3a81-11e5-9ed5-ac72891c3257"/> 
    133 <item id="tmpid.0003" label="land" title="Land" uuid="67512232-3a81-11e5-9ed5-ac72891c3257"/> 
    134 <item id="tmpid.0004" label="landIce" title="Terrestrial cryosphere" uuid="6751662a-3a81-11e5-9ed5-ac72891c3257"/> 
    135 <item id="tmpid.0005" label="seaIce" title="Marine cryosphere" uuid="67516f44-3a81-11e5-9ed5-ac72891c3257"/> 
    136 <item id="tmpid.0006" label="aerosol" title="Aerosols" uuid="675172e6-3a81-11e5-9ed5-ac72891c3257"/> 
    137 <item id="tmpid.0007" label="atmosChem" title="Atmospheric chemistry" uuid="6751762e-3a81-11e5-9ed5-ac72891c3257"/> 
    138 <item id="tmpid.0008" label="ocnBgchem" title="Ocean bio-geochemistry" uuid="6751796c-3a81-11e5-9ed5-ac72891c3257"/> 
     135<realm class="vocab" id="cmip.drv.010" title="Modeling realm" uid="SECTION:realm"> 
     136<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     137<item id="tmpid.0001" label="atmos" title="Atmospheric"/> 
     138<item id="tmpid.0002" label="ocean" title="Oceanic"/> 
     139<item id="tmpid.0003" label="land" title="Land"/> 
     140<item id="tmpid.0004" label="landIce" title="Terrestrial cryosphere"/> 
     141<item id="tmpid.0005" label="seaIce" title="Marine cryosphere"/> 
     142<item id="tmpid.0006" label="aerosol" title="Aerosols"/> 
     143<item id="tmpid.0007" label="atmosChem" title="Atmospheric chemistry"/> 
     144<item id="tmpid.0008" label="ocnBgchem" title="Ocean bio-geochemistry"/> 
    139145</realm> 
    140 <grid class="vocab" id="cmip.drv.011" title="Native grid"> 
    141 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    142 <item id="tmpid.0001" label="atmosphere" title="Atmosphere grid" uuid="6752c768-3a81-11e5-9ed5-ac72891c3257"/> 
    143 <item id="tmpid.0002" label="ocean" title="Ocean grid" uuid="6752ca7e-3a81-11e5-9ed5-ac72891c3257"/> 
    144 <item id="tmpid.0003" label="ice" title="Grid used for ice sheets" uuid="6752cd94-3a81-11e5-9ed5-ac72891c3257"/> 
    145 <item id="tmpid.0004" label="land" title="Grid used for land surface modelling" uuid="6752d0a0-3a81-11e5-9ed5-ac72891c3257"/> 
     146<grid class="vocab" id="cmip.drv.011" title="Native grid" uid="SECTION:grid"> 
     147<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     148<item id="tmpid.0001" label="atmosphere" title="Atmosphere grid"/> 
     149<item id="tmpid.0002" label="ocean" title="Ocean grid"/> 
     150<item id="tmpid.0003" label="ice" title="Grid used for ice sheets"/> 
     151<item id="tmpid.0004" label="land" title="Grid used for land surface modelling"/> 
    146152</grid> 
    147 <dimensions class="vocab" id="cmip.drv.012" title="MIP table variable dimensions"> 
    148 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    149 <item altLabel="dummyAt" id="001.012.001" label="example01" size="25" sn="dummyAt" title="dummy title string" uuid="215f0bea-3a81-11e5-882e-ac72891c3257"/> 
     153<dimensions class="vocab" id="cmip.drv.012" title="MIP table variable dimensions" uid="SECTION:dimensions"> 
     154<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     155<item altLabel="dummyAt" id="001.012.001" label="example01" size="25" sn="dummyAt" title="dummy title string" uid="c2c1e54a-6838-11e5-b0d3-5404a60d96b5"/> 
    150156</dimensions> 
    151 <forcings class="vocab" id="cmip.drv.013" title="Forcing"> 
    152 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    153 <item id="001.013.001" label="example-01" title="dummy title string" uuid="215f0ed8-3a81-11e5-882e-ac72891c3257"/> 
     157<forcings class="vocab" id="cmip.drv.013" title="Forcing" uid="SECTION:forcings"> 
     158<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     159<item id="001.013.001" label="example-01" title="dummy title string" uid="c2c1e95a-6838-11e5-b0d3-5404a60d96b5"/> 
    154160</forcings> 
    155 <table class="vocab" id="cmip.drv.014" title="Data specification table"> 
    156 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    157 <item comment="" description="Definitions of all the coordinate variables used in the CMIP6 data request" frequency="fx" id="tmpid.0001" label="grids" title="Fixed coordinate variables" uuid="67540d4e-3a81-11e5-9ed5-ac72891c3257"/> 
    158 <item comment="" description="Variables with no time dependency" frequency="fx" id="tmpid.0002" label="fx" title="Fixed variables" uuid="67541208-3a81-11e5-9ed5-ac72891c3257"/> 
    159 <item comment="&quot;ocean&quot; as in &quot;ocean grid&quot;" description="Annual mean variables on the ocean grid." frequency="yr" id="tmpid.0003" label="Oyr" title="Annual ocean variables" uuid="67541654-3a81-11e5-9ed5-ac72891c3257"/> 
    160 <item comment="For CMIP5 there was &quot;Oclim&quot; for ocean climatologies, and atmospheric climatologies were in Amon. Moving Atmospheric climatologies to Clim gives us a strict hierarchy with a single &quot;frequency&quot; in each table." description="Monthly Mean Climatology" frequency="monClim" id="tmpid.0004" label="Clim" title="Monthly climatologies" uuid="67541b2c-3a81-11e5-9ed5-ac72891c3257"/> 
    161 <item comment="" description="Monthly Mean Ocean Fields, Including Biogechemical Field" frequency="mon" id="tmpid.0005" label="Omon" title="Monthly ocean variables" uuid="67541f6e-3a81-11e5-9ed5-ac72891c3257"/> 
    162 <item comment="See comment on ts: http://dreq01.vanillaforums.com/discussion/29/surface-temperature?new=1" description="Monthly Mean Atmospheric Fields and Some Surface Field" frequency="mon" id="tmpid.0006" label="Amon" title="Montly atmospheric variables (excluding composition and radiation)" uuid="675423c4-3a81-11e5-9ed5-ac72891c3257"/> 
    163 <item comment="" description="Monthly Mean Land Cryosphere Fields" frequency="mon" id="tmpid.0007" label="LImon" title="Monthly land ice" uuid="6754282e-3a81-11e5-9ed5-ac72891c3257"/> 
    164 <item comment="&quot;land&quot; as in &quot;land grid&quot; -- not including variables on atmospheric grid requested for analysis of land processes" description="Monthly Mean Land Fields, Including Physical, Vegetation, Soil, and Biogeochemical Variables" frequency="mon" id="tmpid.0008" label="Lmon" title="Monthly land variables" uuid="67542c8e-3a81-11e5-9ed5-ac72891c3257"/> 
    165 <item comment="" description="Monthly Mean Ocean Cryosphere Fields" frequency="mon" id="tmpid.0009" label="OImon" title="Sea-ice" uuid="675430f8-3a81-11e5-9ed5-ac72891c3257"/> 
    166 <item comment="Used in CMIP5; not requested by CfMIP in CMIP6, but, provisionally, by HighResMIP" description="Monthly Offline Cloud Diagnostic Fields" frequency="mon" id="tmpid.0010" label="cfOff" title="Offline diagnostics for cloud forcing analysis" uuid="67543526-3a81-11e5-9ed5-ac72891c3257"/> 
    167 <item comment="Contains radiative fields from cfMon; some duplication with Amon " description="" frequency="mon" id="tmpid.0011" label="Rmon" title="Monthly atmospheric radiation data" uuid="67543986-3a81-11e5-9ed5-ac72891c3257"/> 
    168 <item comment="" description="Monthly atmospheric composition, including aerosols and properties of aerosols (but see Rmon for radiation quantities)" frequency="mon" id="tmpid.0012" label="Cmon" title="Monthly Atmospheric Composition Data" uuid="67543df0-3a81-11e5-9ed5-ac72891c3257"/> 
    169 <item comment="" description="Daily Mean Atmosphere, Ocean and Surface Fields" frequency="day" id="tmpid.0013" label="Oday" title="Daily  ocean data" uuid="6754423c-3a81-11e5-9ed5-ac72891c3257"/> 
    170 <item comment="" description="" frequency="" id="tmpid.0014" label="Aday" title="Daily atmospheric data, excluding composition and cloud forcing" uuid="6754466a-3a81-11e5-9ed5-ac72891c3257"/> 
    171 <item comment="Formerly &quot;aero&quot;" description="" frequency="day" id="tmpid.0015" label="Cday" title="Daily atmospheric composition data" uuid="67544ae8-3a81-11e5-9ed5-ac72891c3257"/> 
    172 <item comment="" description="" frequency="" id="tmpid.0016" label="cfDay" title="Daily data associated with cloud forcing" uuid="67545196-3a81-11e5-9ed5-ac72891c3257"/> 
    173 <item comment="" description="Fields (Sampled Every 6 Hours) for Driving Regional Models " frequency="6hr" id="tmpid.0017" label="6hrLev" title="6-hourly atmospheric data on model levels" uuid="675455f6-3a81-11e5-9ed5-ac72891c3257"/> 
    174 <item comment="Only 3 levels in CMIP5, more levels requested in CMIP6 by HighResMIP (low priority)" description="Fields (Sampled Every 6 Hours) for Storm-Track Analysis and other Advanced Diagnostic Applications" frequency="6hr" id="tmpid.0018" label="6hrPlev" title="6-hourly atmospheric data on pressure levels" uuid="67545a7e-3a81-11e5-9ed5-ac72891c3257"/> 
    175 <item comment="CMIP5 had two MIP tables at 3hr frequency, &quot;3hr&quot; and &quot;cf3hr&quot;. In some cases variables were requested as instantaneous in one and accumulated in the other. Making two tables with clear definitions should make it easier to see what is going on." description="" frequency="3hr" id="tmpid.0019" label="3hrPoint" title="3-hourly data, instantaenous fields" uuid="67545f74-3a81-11e5-9ed5-ac72891c3257"/> 
    176 <item comment="" description="Atmospheric and Surface Fields Sampled Every 3 Hours" frequency="3hr" id="tmpid.0020" label="3hrAcc" title="3-hourly data, accumulated fields" uuid="6754642e-3a81-11e5-9ed5-ac72891c3257"/> 
    177 <item comment="New -- part of HighResMIP request." description="" frequency="1hr" id="tmpid.0021" label="1hr" title="" uuid="6754685c-3a81-11e5-9ed5-ac72891c3257"/> 
    178 <item comment="Includes cfsites and data for highresmip" description="" frequency="subhr" id="tmpid.0022" label="subhr" title="" uuid="67546c58-3a81-11e5-9ed5-ac72891c3257"/> 
     161<table class="vocab" id="cmip.drv.014" title="Data specification table" uid="SECTION:table"> 
     162<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     163<item comment="" description="Definitions of all the coordinate variables used in the CMIP6 data request" frequency="fx" id="tmpid.0001" label="grids" title="Fixed coordinate variables"/> 
     164<item comment="" description="Variables with no time dependency" frequency="fx" id="tmpid.0002" label="fx" title="Fixed variables"/> 
     165<item comment="&quot;ocean&quot; as in &quot;ocean grid&quot;" description="Annual mean variables on the ocean grid." frequency="yr" id="tmpid.0003" label="Oyr" title="Annual ocean variables"/> 
     166<item comment="For CMIP5 there was &quot;Oclim&quot; for ocean climatologies, and atmospheric climatologies were in Amon. Moving Atmospheric climatologies to Clim gives us a strict hierarchy with a single &quot;frequency&quot; in each table." description="Monthly Mean Climatology" frequency="monClim" id="tmpid.0004" label="Clim" title="Monthly climatologies"/> 
     167<item comment="" description="Monthly Mean Ocean Fields, Including Biogechemical Field" frequency="mon" id="tmpid.0005" label="Omon" title="Monthly ocean variables"/> 
     168<item comment="See comment on ts: http://dreq01.vanillaforums.com/discussion/29/surface-temperature?new=1" description="Monthly Mean Atmospheric Fields and Some Surface Field" frequency="mon" id="tmpid.0006" label="Amon" title="Montly atmospheric variables (excluding composition and radiation)"/> 
     169<item comment="" description="Monthly Mean Land Cryosphere Fields" frequency="mon" id="tmpid.0007" label="LImon" title="Monthly land ice"/> 
     170<item comment="&quot;land&quot; as in &quot;land grid&quot; -- not including variables on atmospheric grid requested for analysis of land processes" description="Monthly Mean Land Fields, Including Physical, Vegetation, Soil, and Biogeochemical Variables" frequency="mon" id="tmpid.0008" label="Lmon" title="Monthly land variables"/> 
     171<item comment="" description="Monthly Mean Ocean Cryosphere Fields" frequency="mon" id="tmpid.0009" label="OImon" title="Sea-ice"/> 
     172<item comment="Used in CMIP5; not requested by CfMIP in CMIP6, but, provisionally, by HighResMIP" description="Monthly Offline Cloud Diagnostic Fields" frequency="mon" id="tmpid.0010" label="cfOff" title="Offline diagnostics for cloud forcing analysis"/> 
     173<item comment="Contains radiative fields from cfMon; some duplication with Amon " description="" frequency="mon" id="tmpid.0011" label="Rmon" title="Monthly atmospheric radiation data"/> 
     174<item comment="" description="Monthly atmospheric composition, including aerosols and properties of aerosols (but see Rmon for radiation quantities)" frequency="mon" id="tmpid.0012" label="Cmon" title="Monthly Atmospheric Composition Data"/> 
     175<item comment="" description="Daily Mean Atmosphere, Ocean and Surface Fields" frequency="day" id="tmpid.0013" label="Oday" title="Daily  ocean data"/> 
     176<item comment="" description="" frequency="" id="tmpid.0014" label="Aday" title="Daily atmospheric data, excluding composition and cloud forcing"/> 
     177<item comment="Formerly &quot;aero&quot;" description="" frequency="day" id="tmpid.0015" label="Cday" title="Daily atmospheric composition data"/> 
     178<item comment="" description="" frequency="" id="tmpid.0016" label="cfDay" title="Daily data associated with cloud forcing"/> 
     179<item comment="" description="Fields (Sampled Every 6 Hours) for Driving Regional Models " frequency="6hr" id="tmpid.0017" label="6hrLev" title="6-hourly atmospheric data on model levels"/> 
     180<item comment="Only 3 levels in CMIP5, more levels requested in CMIP6 by HighResMIP (low priority)" description="Fields (Sampled Every 6 Hours) for Storm-Track Analysis and other Advanced Diagnostic Applications" frequency="6hr" id="tmpid.0018" label="6hrPlev" title="6-hourly atmospheric data on pressure levels"/> 
     181<item comment="CMIP5 had two MIP tables at 3hr frequency, &quot;3hr&quot; and &quot;cf3hr&quot;. In some cases variables were requested as instantaneous in one and accumulated in the other. Making two tables with clear definitions should make it easier to see what is going on." description="" frequency="3hr" id="tmpid.0019" label="3hrPoint" title="3-hourly data, instantaenous fields"/> 
     182<item comment="" description="Atmospheric and Surface Fields Sampled Every 3 Hours" frequency="3hr" id="tmpid.0020" label="3hrAcc" title="3-hourly data, accumulated fields"/> 
     183<item comment="New -- part of HighResMIP request." description="" frequency="1hr" id="tmpid.0021" label="1hr" title=""/> 
     184<item comment="Includes cfsites and data for highresmip" description="" frequency="subhr" id="tmpid.0022" label="subhr" title=""/> 
    179185</table> 
    180 <cref class="vocab" id="cmip.drv.015" title="Coordinate Reference"> 
    181 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    182 <item id="001.015.001" label="example-01" title="dummy title string" uuid="215f170c-3a81-11e5-882e-ac72891c3257"/> 
     186<cref class="vocab" id="cmip.drv.015" title="Coordinate Reference" uid="SECTION:cref"> 
     187<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     188<item id="001.015.001" label="example-01" title="dummy title string" uid="c2c1f0c6-6838-11e5-b0d3-5404a60d96b5"/> 
    183189</cref> 
    184 <areaType class="vocab" id="cmip.drv.016" title="CMIP Area Type"> 
    185 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    186 <item id="001.016.001" inCF="dummyAt" label="example-01" title="dummy title string" uuid="215f1a54-3a81-11e5-882e-ac72891c3257"/> 
     190<areaType class="vocab" id="cmip.drv.016" title="CMIP Area Type" uid="SECTION:areaType"> 
     191<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     192<item id="001.016.001" inCF="dummyAt" label="example-01" title="dummy title string" uid="c2c1f422-6838-11e5-b0d3-5404a60d96b5"/> 
    187193</areaType> 
    188 <timeSlice class="vocab" id="cmip.drv.017" title="Time slices used in data request"> 
    189 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    190 <item id="001.017.001" label="example-01" specification="dummyAt" title="dummy title string" type="dummyAt" uuid="215f1de2-3a81-11e5-882e-ac72891c3257"/> 
     194<timeSlice class="vocab" id="cmip.drv.017" title="Time slices used in data request" uid="SECTION:timeSlice"> 
     195<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     196<item id="001.017.001" label="example-01" specification="dummyAt" title="dummy title string" type="dummyAt" uid="c2c1f7d8-6838-11e5-b0d3-5404a60d96b5"/> 
    191197</timeSlice> 
    192 <modelFamily class="vocab" id="cmip.drv.018" title="Family of model"> 
    193 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    194 <item id="001.018.001" label="example-01" title="dummy title string" uuid="215f20b2-3a81-11e5-882e-ac72891c3257"/> 
     198<modelFamily class="vocab" id="cmip.drv.018" title="Family of model" uid="SECTION:modelFamily"> 
     199<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     200<item id="001.018.001" label="example-01" title="dummy title string" uid="c2c1fac6-6838-11e5-b0d3-5404a60d96b5"/> 
    195201</modelFamily> 
    196 <priority class="vocab" id="cmip.drv.019" title="Variable priority"> 
    197 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    198 <item description="Modelling centres must commit to supplying all priority 1 variables associated with at least one science question for Tier 1 experiments of any MIP which they participate in;" id="tmpid.0001" label="1" title="High" uuid="6751ecb2-3a81-11e5-9ed5-ac72891c3257"/> 
    199 <item description="Expected to be used in multi-model diagnostics; models not supplying these variables may be omitted from some parts of the inter-comparison;" id="tmpid.0002" label="3" title="Medium" uuid="6751f05e-3a81-11e5-9ed5-ac72891c3257"/> 
    200 <item description="Experimental -- used for exploring new capabilities and/or unlikely to be used in multi-model diagnostic." id="tmpid.0003" label="3" title="Low" uuid="6751f3a6-3a81-11e5-9ed5-ac72891c3257"/> 
     202<priority class="vocab" id="cmip.drv.019" title="Variable priority" uid="SECTION:priority"> 
     203<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     204<item description="Modelling centres must commit to supplying all priority 1 variables associated with at least one science question for Tier 1 experiments of any MIP which they participate in;" id="tmpid.0001" label="1.0" title="High"/> 
     205<item description="Expected to be used in multi-model diagnostics; models not supplying these variables may be omitted from some parts of the inter-comparison;" id="tmpid.0002" label="3.0" title="Medium"/> 
     206<item description="Experimental -- used for exploring new capabilities and/or unlikely to be used in multi-model diagnostic." id="tmpid.0003" label="3.0" title="Low"/> 
    201207</priority> 
    202 <qcLevel class="vocab" id="cmip.drv.020" title="Quality control level"> 
    203 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    204 <item id="001.020.001" label="1" title="dummy title string" uuid="215f26a2-3a81-11e5-882e-ac72891c3257"/> 
     208<qcLevel class="vocab" id="cmip.drv.020" title="Quality control level" uid="SECTION:qcLevel"> 
     209<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     210<item id="001.020.001" label="1" title="dummy title string" uid="c2c200fc-6838-11e5-b0d3-5404a60d96b5"/> 
    205211</qcLevel> 
    206 <complianceCode class="vocab" id="cmip.drv.021" title="Data specification compliance codes"> 
    207 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    208 <item id="001.021.001" label="example-01" title="dummy title string" uuid="215f295e-3a81-11e5-882e-ac72891c3257"/> 
     212<complianceCode class="vocab" id="cmip.drv.021" title="Data specification compliance codes" uid="SECTION:complianceCode"> 
     213<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     214<item id="001.021.001" label="example-01" title="dummy title string" uid="c2c203e0-6838-11e5-b0d3-5404a60d96b5"/> 
    209215</complianceCode> 
    210 <glossary class="vocab" id="cmip.drv.022" title="Glossary"> 
    211 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    212 <item description="" fullName="Coupled Model Intercomparison Project" id="tmpid.0001" label="cmip" title="CMIP" url="" uuid="675186f0-3a81-11e5-9ed5-ac72891c3257"/> 
    213 <item description="World Climate Research Programme (WCRP) Working Group on Coupled Modeling" fullName="Working Group on Coupled Models" id="tmpid.0002" label="wgcm" title="WGCM" url="http://www.wcrp-climate.org/wgcm/" uuid="67518b5a-3a81-11e5-9ed5-ac72891c3257"/> 
    214 <item description="" fullName="" id="tmpid.0003" label="wcrp" title="WCRP" url="" uuid="67518fce-3a81-11e5-9ed5-ac72891c3257"/> 
    215 <item description="Full specifications of vocabularies used for formatting, archiving and dsitribution of CMIP data" fullName="Data Reference Vocabularies" id="tmpid.0004" label="drvocabs" title="DRVoc" url="https://drive.google.com/drive/folders/0B6AWgiTrQ0xFQ0t2RjYtWW1jaFk" uuid="675193fc-3a81-11e5-9ed5-ac72891c3257"/> 
     216<glossary class="vocab" id="cmip.drv.022" title="Glossary" uid="SECTION:glossary"> 
     217<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     218<item description="" fullName="Coupled Model Intercomparison Project" id="tmpid.0001" label="cmip" title="CMIP" url=""/> 
     219<item description="World Climate Research Programme (WCRP) Working Group on Coupled Modeling" fullName="Working Group on Coupled Models" id="tmpid.0002" label="wgcm" title="WGCM" url="http://www.wcrp-climate.org/wgcm/"/> 
     220<item description="" fullName="" id="tmpid.0003" label="wcrp" title="WCRP" url=""/> 
     221<item description="Full specifications of vocabularies used for formatting, archiving and dsitribution of CMIP data" fullName="Data Reference Vocabularies" id="tmpid.0004" label="drvocabs" title="DRVoc" url="https://drive.google.com/drive/folders/0B6AWgiTrQ0xFQ0t2RjYtWW1jaFk"/> 
    216222</glossary> 
    217 <modelCompType class="vocab" id="cmip.drv.023" title="Model Component Types/Categories [redundant with *Native Grid*]"> 
    218 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    219 <item id="001.023.001" label="example-01" title="dummy title string" uuid="215f3002-3a81-11e5-882e-ac72891c3257"/> 
     223<modelCompType class="vocab" id="cmip.drv.023" title="Model Component Types/Categories [redundant with *Native Grid*]" uid="SECTION:modelCompType"> 
     224<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     225<item id="001.023.001" label="example-01" title="dummy title string" uid="c2c20ade-6838-11e5-b0d3-5404a60d96b5"/> 
    220226</modelCompType> 
    221 <modelType class="vocab" id="cmip.drv.024" title="Class of model"> 
    222 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    223 <item id="tmpid.0001" label="AGCM" title="Atmosphere only GCM" uuid="6751d09c-3a81-11e5-9ed5-ac72891c3257"/> 
    224 <item id="tmpid.0002" label="AOGCM" title="Coupled atmosphere-ocean model" uuid="6751d3bc-3a81-11e5-9ed5-ac72891c3257"/> 
    225 <item id="tmpid.0003" label="ESM" title="Earth System Model" uuid="6751d718-3a81-11e5-9ed5-ac72891c3257"/> 
    226 <item id="tmpid.0004" label="RCM" title="Regional Climate Model" uuid="6751da24-3a81-11e5-9ed5-ac72891c3257"/> 
    227 <item id="tmpid.0005" label="OGCM" title="Ocean General Circulation Model" uuid="6751dd26-3a81-11e5-9ed5-ac72891c3257"/> 
    228 <item id="tmpid.0006" label="ICESH" title="Ice sheet model" uuid="6751e03c-3a81-11e5-9ed5-ac72891c3257"/> 
    229 <item id="tmpid.0007" label="LU" title="Land use model" uuid="6751e32a-3a81-11e5-9ed5-ac72891c3257"/> 
     227<modelType class="vocab" id="cmip.drv.024" title="Class of model" uid="SECTION:modelType"> 
     228<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     229<item id="tmpid.0001" label="AGCM" title="Atmosphere only GCM"/> 
     230<item id="tmpid.0002" label="AOGCM" title="Coupled atmosphere-ocean model"/> 
     231<item id="tmpid.0003" label="ESM" title="Earth System Model"/> 
     232<item id="tmpid.0004" label="RCM" title="Regional Climate Model"/> 
     233<item id="tmpid.0005" label="OGCM" title="Ocean General Circulation Model"/> 
     234<item id="tmpid.0006" label="ICESH" title="Ice sheet model"/> 
     235<item id="tmpid.0007" label="LU" title="Land use model"/> 
    230236</modelType> 
    231 <index class="vocab" id="cmip.drv.025" title="Index of vocabularies"> 
    232 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    233 <item description="This table defines the quantities used to specify CMOR dimensions. Further information is in the CMOR documentation." id="tmpid.0001" label="cmorDimAttr" title="Attributes of CMOR dimensions" uuid="67504f6a-3a81-11e5-9ed5-ac72891c3257"/> 
     237<index class="vocab" id="cmip.drv.025" title="Index of vocabularies" uid="SECTION:index"> 
     238<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     239<item description="This table defines the quantities used to specify CMOR dimensions. Further information is in the CMOR documentation." id="tmpid.0001" label="cmorDimAttr" title="Attributes of CMOR dimensions"/> 
    234240</index> 
    235 <cmorDimAttr class="vocab" id="cmip.drv.026" title="CMOR Dimension Attributes"> 
    236 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    237 <item CMORattr="" description="A list of CMOR tables in which this dimension is used." id="tmpid.0001" label="tables" title="Tables using this dimension" uuid="6752e810-3a81-11e5-9ed5-ac72891c3257"/> 
    238 <item CMORattr="" description="Name used by CMOR -- unique within one set of tables" id="tmpid.0002" label="CmorName" title="CMOR name" uuid="6752ec0c-3a81-11e5-9ed5-ac72891c3257"/> 
    239 <item CMORattr="" description="Name used for variable and dimension in netcdf files" id="tmpid.0003" label="name" title="Name in file" uuid="6752efc2-3a81-11e5-9ed5-ac72891c3257"/> 
    240 <item CMORattr="" description="Value copied into NetCDF attribute 'long_name' of dimension variable" id="tmpid.0004" label="longname" title="Long name" uuid="6752f382-3a81-11e5-9ed5-ac72891c3257"/> 
    241 <item CMORattr="" description="For spatial or temporal dimensions -- should take the value X, Y, Z or T. Otherwise blank. Value copied into NetCDF attribute of dimension variable" id="tmpid.0005" label="axis" title="NetCDF axis attribute" uuid="6752f742-3a81-11e5-9ed5-ac72891c3257"/> 
    242 <item CMORattr="" description="Value copied into NetCDF attribute of dimension variable" id="tmpid.0006" label="units" title="Units" uuid="6752fb34-3a81-11e5-9ed5-ac72891c3257"/> 
    243 <item CMORattr="" description="Set &quot;ok&quot; if the axis is an index (no netcdf variable will be created)." id="tmpid.0007" label="index" title="Is this an index dimension?" uuid="6752feea-3a81-11e5-9ed5-ac72891c3257"/> 
    244 <item CMORattr="coords_attrib" description="Used as variable name for coordinate values when these cannot be held in the axis variable (e.g. when the coordinate values are words)." id="tmpid.0008" label="coords" title="NetCDF coords attribute" uuid="675302dc-3a81-11e5-9ed5-ac72891c3257"/> 
    245 <item CMORattr="must_have_bounds" description="'Yes' or 'No', to indicate whether a bounds variable is needed." id="tmpid.0009" label="bounds" title="Are bounds required?" uuid="67530674-3a81-11e5-9ed5-ac72891c3257"/> 
    246 <item CMORattr="stored_direction" description="Set to 'increasing' or 'decreasing'. " id="tmpid.0010" label="direction" title="Order of values in axis variable" uuid="67530a2a-3a81-11e5-9ed5-ac72891c3257"/> 
    247 <item CMORattr="" description="" id="tmpid.0011" label="validMin" title="" uuid="67530df4-3a81-11e5-9ed5-ac72891c3257"/> 
    248 <item CMORattr="" description="" id="tmpid.0012" label="validMax" title="" uuid="675311c8-3a81-11e5-9ed5-ac72891c3257"/> 
    249 <item CMORattr="" description="Type (e.g. 'double', 'character', 'integer')" id="tmpid.0013" label="type" title="Type of axis values" uuid="67531574-3a81-11e5-9ed5-ac72891c3257"/> 
    250 <item CMORattr="" description="This attribute is used for vertical coordinates, indicates whether the dimension increases upwards or downwards (valid values are 'up', 'down', or blank)" id="tmpid.0014" label="positive" title="NetCDF positive attribute" uuid="67531b82-3a81-11e5-9ed5-ac72891c3257"/> 
    251 <item CMORattr="" description="For array dimensions see 'requested'" id="tmpid.0015" label="value" title="Value of singleton dimension" uuid="67531f38-3a81-11e5-9ed5-ac72891c3257"/> 
    252 <item CMORattr="" description="For array dimensions see 'boundsreq'" id="tmpid.0016" label="bounds_values" title="Bounds of a singleton dimension" uuid="675322e4-3a81-11e5-9ed5-ac72891c3257"/> 
    253 <item CMORattr="" description="For singleton dimensions see 'value'" id="tmpid.0017" label="requested" title="Values of array dimensions" uuid="675326ea-3a81-11e5-9ed5-ac72891c3257"/> 
    254 <item CMORattr="" description="For singleton dimensions see 'bounds_value'" id="tmpid.0018" label="boundsreq" title="Bounds Requested" uuid="67532aaa-3a81-11e5-9ed5-ac72891c3257"/> 
    255 <item CMORattr="" description="Variance from requested values that is tolerated" id="tmpid.0019" label="tolerance" title="Tolerance on requested values" uuid="67532e6a-3a81-11e5-9ed5-ac72891c3257"/> 
    256 <item CMORattr="must_call_cmor_grid" description="" id="tmpid.0020" label="grid" title="Is this a grid" uuid="6753322a-3a81-11e5-9ed5-ac72891c3257"/> 
    257 <item CMORattr="" description="Value copied into NetCDF attribute of dimension variable" id="tmpid.0021" label="formula" title="NetCDF formula_terms attribute" uuid="675335fe-3a81-11e5-9ed5-ac72891c3257"/> 
    258 <item CMORattr="" description="Value copied into NetCDF attribute of dimension variable" id="tmpid.0022" label="z_factors" title="NetCDF z_factors attribute" uuid="675339b4-3a81-11e5-9ed5-ac72891c3257"/> 
    259 <item CMORattr="" description="Value copied into NetCDF attribute of dimension variable" id="tmpid.0023" label="z_bounds_factors" title="NetCDF z_bounds_factors" uuid="67533d88-3a81-11e5-9ed5-ac72891c3257"/> 
     241<cmorDimAttr class="vocab" id="cmip.drv.026" title="CMOR Dimension Attributes" uid="SECTION:cmorDimAttr"> 
     242<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     243<item CMORattr="" description="A list of CMOR tables in which this dimension is used." id="tmpid.0001" label="tables" title="Tables using this dimension"/> 
     244<item CMORattr="" description="Name used by CMOR -- unique within one set of tables" id="tmpid.0002" label="CmorName" title="CMOR name"/> 
     245<item CMORattr="" description="Name used for variable and dimension in netcdf files" id="tmpid.0003" label="name" title="Name in file"/> 
     246<item CMORattr="" description="Value copied into NetCDF attribute 'long_name' of dimension variable" id="tmpid.0004" label="longname" title="Long name"/> 
     247<item CMORattr="" description="For spatial or temporal dimensions -- should take the value X, Y, Z or T. Otherwise blank. Value copied into NetCDF attribute of dimension variable" id="tmpid.0005" label="axis" title="NetCDF axis attribute"/> 
     248<item CMORattr="" description="Value copied into NetCDF attribute of dimension variable" id="tmpid.0006" label="units" title="Units"/> 
     249<item CMORattr="" description="Set &quot;ok&quot; if the axis is an index (no netcdf variable will be created)." id="tmpid.0007" label="index" title="Is this an index dimension?"/> 
     250<item CMORattr="coords_attrib" description="Used as variable name for coordinate values when these cannot be held in the axis variable (e.g. when the coordinate values are words)." id="tmpid.0008" label="coords" title="NetCDF coords attribute"/> 
     251<item CMORattr="must_have_bounds" description="'Yes' or 'No', to indicate whether a bounds variable is needed." id="tmpid.0009" label="bounds" title="Are bounds required?"/> 
     252<item CMORattr="stored_direction" description="Set to 'increasing' or 'decreasing'. " id="tmpid.0010" label="direction" title="Order of values in axis variable"/> 
     253<item CMORattr="" description="" id="tmpid.0011" label="validMin" title=""/> 
     254<item CMORattr="" description="" id="tmpid.0012" label="validMax" title=""/> 
     255<item CMORattr="" description="Type (e.g. 'double', 'character', 'integer')" id="tmpid.0013" label="type" title="Type of axis values"/> 
     256<item CMORattr="" description="This attribute is used for vertical coordinates, indicates whether the dimension increases upwards or downwards (valid values are 'up', 'down', or blank)" id="tmpid.0014" label="positive" title="NetCDF positive attribute"/> 
     257<item CMORattr="" description="For array dimensions see 'requested'" id="tmpid.0015" label="value" title="Value of singleton dimension"/> 
     258<item CMORattr="" description="For array dimensions see 'boundsreq'" id="tmpid.0016" label="bounds_values" title="Bounds of a singleton dimension"/> 
     259<item CMORattr="" description="For singleton dimensions see 'value'" id="tmpid.0017" label="requested" title="Values of array dimensions"/> 
     260<item CMORattr="" description="For singleton dimensions see 'bounds_value'" id="tmpid.0018" label="boundsreq" title="Bounds Requested"/> 
     261<item CMORattr="" description="Variance from requested values that is tolerated" id="tmpid.0019" label="tolerance" title="Tolerance on requested values"/> 
     262<item CMORattr="must_call_cmor_grid" description="" id="tmpid.0020" label="grid" title="Is this a grid"/> 
     263<item CMORattr="" description="Value copied into NetCDF attribute of dimension variable" id="tmpid.0021" label="formula" title="NetCDF formula_terms attribute"/> 
     264<item CMORattr="" description="Value copied into NetCDF attribute of dimension variable" id="tmpid.0022" label="z_factors" title="NetCDF z_factors attribute"/> 
     265<item CMORattr="" description="Value copied into NetCDF attribute of dimension variable" id="tmpid.0023" label="z_bounds_factors" title="NetCDF z_bounds_factors"/> 
    260266</cmorDimAttr> 
    261 <processingOptions class="vocab" id="cmip.drv.027" title="Processing steps required"> 
    262 <!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
    263 <item description="" id="tmpid.0001" label="TM" title="time mean" uuid="6751a22a-3a81-11e5-9ed5-ac72891c3257"/> 
    264 <item description="The weighted time mean is important when a time varying mask is used (e.g. sea ice)" id="tmpid.0002" label="WM" title="weighted time mean" uuid="6751a5c2-3a81-11e5-9ed5-ac72891c3257"/> 
    265 <item description="" id="tmpid.0003" label="VCI" title="vertical coordinate interpolation" uuid="6751a91e-3a81-11e5-9ed5-ac72891c3257"/> 
    266 <item description="" id="tmpid.0004" label="MSK" title="masking" uuid="6751aca2-3a81-11e5-9ed5-ac72891c3257"/> 
    267 <item description="" id="tmpid.0005" label="NS" title="near surface (atmosphere)" uuid="6751afea-3a81-11e5-9ed5-ac72891c3257"/> 
    268 <item description="" id="tmpid.0006" label="SPI" title="spatial interpolation" uuid="6751b35a-3a81-11e5-9ed5-ac72891c3257"/> 
    269 <item description="" id="tmpid.0007" label="SM" title="spectral mean" uuid="6751bbb6-3a81-11e5-9ed5-ac72891c3257"/> 
    270 <item description="" id="tmpid.0008" label="CL" title="climatology " uuid="6751bf62-3a81-11e5-9ed5-ac72891c3257"/> 
    271 <item description="" id="tmpid.0009" label="STAT" title="temporal statistics" uuid="6751c2c8-3a81-11e5-9ed5-ac72891c3257"/> 
    272 <item description="specialised definition of variable which is more tightly constrained than the CF standard name; variables marked with this will need special attention." id="tmpid.0010" label="SD" title="specialised definition" uuid="6751c62e-3a81-11e5-9ed5-ac72891c3257"/> 
     267<processingOptions class="vocab" id="cmip.drv.027" title="Processing steps required" uid="SECTION:processingOptions"> 
     268<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     269<item description="" id="tmpid.0001" label="TM" title="time mean"/> 
     270<item description="The weighted time mean is important when a time varying mask is used (e.g. sea ice)" id="tmpid.0002" label="WM" title="weighted time mean"/> 
     271<item description="" id="tmpid.0003" label="VCI" title="vertical coordinate interpolation"/> 
     272<item description="" id="tmpid.0004" label="MSK" title="masking"/> 
     273<item description="" id="tmpid.0005" label="NS" title="near surface (atmosphere)"/> 
     274<item description="" id="tmpid.0006" label="SPI" title="spatial interpolation"/> 
     275<item description="" id="tmpid.0007" label="SM" title="spectral mean"/> 
     276<item description="" id="tmpid.0008" label="CL" title="climatology "/> 
     277<item description="" id="tmpid.0009" label="STAT" title="temporal statistics"/> 
     278<item description="specialised definition of variable which is more tightly constrained than the CF standard name; variables marked with this will need special attention." id="tmpid.0010" label="SD" title="specialised definition"/> 
    273279</processingOptions> 
     280<coordinateReference class="vocab" id="cmip.drv.028" title="Processing steps required" uid="SECTION:coordinateReference"> 
     281<!-- <info srcType="dummy" srcRef="ptxt.py">Dummy entries</info> --> 
     282<item id="tmpid.0001" label="Sphere" ogc_wkt="GEOGCS[&quot;WGS 84&quot;,DATUM[&quot;WGS_1984&quot;,SPHEROID[&quot;WGS 84&quot;,6378137,298.257223563,AUTHORITY[&quot;EPSG&quot;,&quot;7030&quot;]],AUTHORITY[&quot;EPSG&quot;,&quot;6326&quot;]],PRIMEM[&quot;Greenwich&quot;,0,AUTHORITY[&quot;EPSG&quot;,&quot;8901&quot;]],UNIT[&quot;degree&quot;,0.01745329251994328,AUTHORITY[&quot;EPSG&quot;,&quot;9122&quot;]],AUTHORITY[&quot;EPSG&quot;,&quot;4326&quot;]]" title="Spherical coordinate reference (WGS 84)" url="http://spatialreference.org/ref/epsg/wgs-84/"/> 
     283</coordinateReference> 
    274284</main> 
     285</document> 
Note: See TracChangeset for help on using the changeset viewer.