source: CMIP6dreqbuild/trunk/src/framework/appendViacs.py @ 1207

Subversion URL: http://proj.badc.rl.ac.uk/svn/exarch/CMIP6dreqbuild/trunk/src/framework/appendViacs.py@1291
Revision 1207, 3.8 KB checked in by mjuckes, 18 months ago (diff)

updates£

Line 
1
2import xml, string
3import xml.dom, xml.dom.minidom
4import utils_wb
5import re
6import appendEsmVal
7
8empty=re.compile('^$')
9
10import appendViacs_p1 as p1
11
12print p1.res.keys()
13
14class docedit(object):
15  def __init__(self):
16
17    self.src = 'out/annotated_20150731_i1.xml'
18    self.dest = 'out/annotated_20150731.xml'
19    self.doc = xml.dom.minidom.parse( self.src  )
20
21  def write(self):
22    txt = self.doc.toprettyxml(indent='\t', newl='\n', encoding=None)
23    oo = open( self.dest, 'w' )
24    lines = string.split( txt, '\n' )
25    for line in lines:
26      l = utils_wb.uniCleanFunc( string.strip(line) )
27      if empty.match(l):
28        continue
29      else:
30        oo.write(l + '\n')
31    oo.close()
32
33
34class addViacs(object):
35
36  def __init__(self,docObject):
37
38    self.doc = docObject.doc
39    section = 'requestVar'
40    this = self.doc.getElementsByTagName(section)[0]
41    for tt in p1.res[section]:
42      item = self.doc.createElement( 'item'  )
43      item.setAttribute( 'uid', tt[0] )
44      item.setAttribute( 'label', tt[1] )
45      item.setAttribute( 'priority', '1' )
46      item.setAttribute( 'title', '%s: %s' % ( tt[2], tt[1]) )
47      item.setAttribute( 'vid', tt[3] )
48      item.setAttribute( 'vgid', tt[4] )
49      item.setAttribute( 'mip', 'VIACSAB' )
50      this.appendChild( item )
51
52    section = 'requestLink'
53    this = self.doc.getElementsByTagName(section)[0]
54    for tt in p1.res[section]:
55      item = self.doc.createElement( 'item'  )
56      item.setAttribute( 'uid', tt[0] )
57      item.setAttribute( 'objective', tt[1] )
58      item.setAttribute( 'mip', 'VIACSAB' )
59      item.setAttribute( 'label', tt[3] )
60      item.setAttribute( 'title', tt[4] )
61      item.setAttribute( 'refid', tt[5] )
62      for k in ['opt','opar','grid','gridreq','comment']:
63        item.setAttribute( k, '' )
64      this.appendChild( item )
65
66    section = 'requestItem'
67    this = self.doc.getElementsByTagName(section)[0]
68    for tt in p1.res[section]:
69      item = self.doc.createElement( 'item'  )
70      item.setAttribute( 'uid', tt[0] )
71      item.setAttribute( 'rlid', tt[1] )
72      item.setAttribute( 'esid', tt[2] )
73      item.setAttribute( 'expt', tt[5] )
74      item.setAttribute( 'mip', 'VIACSAB' )
75      item.setAttribute( 'label', tt[3] )
76      item.setAttribute( 'title', tt[4] )
77      item.setAttribute( 'ny', '160' )
78      item.setAttribute( 'preset', '-1' )
79      t0 = string.split( tt[4], ':' )[0]
80      if t0[-2:] == '3b':
81        item.setAttribute( 'tslice', '_slice_cfOff' )
82        item.setAttribute( 'nenmax', '-1' )
83        item.setAttribute( 'nymax', '1' )
84      elif t0[-1] == 'c':
85        ## '3hr','Omon','day'  ##
86        item.setAttribute( 'nenmax', '1' )
87        item.setAttribute( 'nymax', '160' )
88      elif t0[-1] == 'd':
89        ## 6hrLev ##
90        item.setAttribute( 'nenmax', '1' )
91        item.setAttribute( 'nymax', '40' )
92      else:
93        item.setAttribute( 'nenmax', '-1' )
94        item.setAttribute( 'nymax', '-1' )
95      this.appendChild( item )
96
97    section = 'objective'
98    this = self.doc.getElementsByTagName(section)[0]
99    for tt in p1.res[section]:
100      item = self.doc.createElement( 'item'  )
101      item.setAttribute( 'uid', tt[0] )
102      item.setAttribute( 'mip', tt[1] )
103      item.setAttribute( 'label', tt[2] )
104      item.setAttribute( 'title', tt[3] )
105      item.setAttribute( 'description', tt[4] )
106      this.appendChild( item )
107
108    section = 'objectiveLink'
109    this = self.doc.getElementsByTagName(section)[0]
110    for tt in p1.res[section]:
111      item = self.doc.createElement( 'item'  )
112      item.setAttribute( 'uid', tt[0] )
113      item.setAttribute( 'label', tt[1] )
114      item.setAttribute( 'title', tt[2] )
115      item.setAttribute( 'oid', tt[3] )
116      item.setAttribute( 'rid', tt[4] )
117      this.appendChild( item )
118
119dob = docedit()
120adv = addViacs(dob)
121appendEsmVal.addEsmVal( dob.doc )
122dob.write()
Note: See TracBrowser for help on using the repository browser.