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

Subversion URL: http://proj.badc.rl.ac.uk/svn/exarch/CMIP6dreqbuild/trunk/src/framework/appendViacs.py@912
Revision 912, 3.5 KB checked in by mjuckes, 4 years ago (diff)

release cand

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      this.appendChild( item )
50
51    section = 'requestLink'
52    this = self.doc.getElementsByTagName(section)[0]
53    for tt in p1.res[section]:
54      item = self.doc.createElement( 'item'  )
55      item.setAttribute( 'uid', tt[0] )
56      item.setAttribute( 'objective', tt[1] )
57      item.setAttribute( 'mip', 'VIACSAB' )
58      item.setAttribute( 'label', tt[3] )
59      item.setAttribute( 'title', tt[4] )
60      item.setAttribute( 'refid', tt[5] )
61      this.appendChild( item )
62
63    section = 'requestItem'
64    this = self.doc.getElementsByTagName(section)[0]
65    for tt in p1.res[section]:
66      item = self.doc.createElement( 'item'  )
67      item.setAttribute( 'uid', tt[0] )
68      item.setAttribute( 'rlid', tt[1] )
69      item.setAttribute( 'esid', tt[2] )
70      item.setAttribute( 'mip', 'VIACSAB' )
71      item.setAttribute( 'label', tt[3] )
72      item.setAttribute( 'title', tt[4] )
73      item.setAttribute( 'ny', '160' )
74      item.setAttribute( 'preset', '-1' )
75      t0 = string.split( tt[4], ':' )[0]
76      if t0[-2:] == '3b':
77        item.setAttribute( 'tslice', '_slice_cfOff' )
78        item.setAttribute( 'nenmax', '-1' )
79        item.setAttribute( 'nymax', '1' )
80      elif t0[-1] == 'c':
81        item.setAttribute( 'nenmax', '1' )
82        item.setAttribute( 'nymax', '160' )
83      elif t0[-1] == 'd':
84        item.setAttribute( 'nenmax', '1' )
85        item.setAttribute( 'nymax', '40' )
86      else:
87        item.setAttribute( 'nenmax', '-1' )
88        item.setAttribute( 'nymax', '-1' )
89      this.appendChild( item )
90
91    section = 'objective'
92    this = self.doc.getElementsByTagName(section)[0]
93    for tt in p1.res[section]:
94      item = self.doc.createElement( 'item'  )
95      item.setAttribute( 'uid', tt[0] )
96      item.setAttribute( 'mip', tt[1] )
97      item.setAttribute( 'label', tt[2] )
98      item.setAttribute( 'title', tt[3] )
99      item.setAttribute( 'description', tt[4] )
100      this.appendChild( item )
101
102    section = 'objectiveLink'
103    this = self.doc.getElementsByTagName(section)[0]
104    for tt in p1.res[section]:
105      item = self.doc.createElement( 'item'  )
106      item.setAttribute( 'uid', tt[0] )
107      item.setAttribute( 'label', tt[1] )
108      item.setAttribute( 'title', tt[2] )
109      item.setAttribute( 'oid', tt[3] )
110      item.setAttribute( 'rid', tt[4] )
111      this.appendChild( item )
112
113dob = docedit()
114adv = addViacs(dob)
115appendEsmVal.addEsmVal( dob.doc )
116dob.write()
Note: See TracBrowser for help on using the repository browser.