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

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

added key VIACSAB integration code

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