-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathsim2xml.py
53 lines (33 loc) · 1.5 KB
/
sim2xml.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import xml.etree.ElementTree as ET
from io import BytesIO
def sim2xml(sim_name="simu", seq="example.xml", phantom="sample.h5", Tx="uniform.xml", Rx="uniform.xml",
seq_name="Sequence", sample_name="Sample", out_folder_name = None):
root = ET.Element("simulate")
root.set("name", "JEMRIS")
sample = ET.SubElement(root, "sample")
sample.set("name", sample_name)
sample.set("uri", phantom)
TXcoilarray = ET.SubElement(root, "TXcoilarray")
TXcoilarray.set("uri", Tx)
RXcoilarray = ET.SubElement(root, "RXcoilarray")
RXcoilarray.set("uri", Rx)
parameter = ET.SubElement(root, "parameter")
parameter.set("RandomNoise", "0")
parameter.set("EvolutionSteps", "0")
parameter.set("EvolutionPrefix", "evol")
parameter.set("ConcomitantFields", "0")
sequence = ET.SubElement(root, "sequence")
sequence.set("name", seq_name)
sequence.set("uri", seq)
model = ET.SubElement(root, "model")
model.set("name", "Bloch")
model.set("type", "CVODE")
sim_tree = ET.ElementTree(root)
sim_out_path = out_folder_name + '/' + sim_name + '.xml'
sim_tree.write(sim_out_path)
return sim_out_path
# Fig 1. Draw diagram of what py2jemris consists of
# Fig 2. SDC Debug progress
if __name__ == '__main__':
sim2xml(seq="gre_jemris_seq2xml.xml", phantom="sample.h5", Tx="uniform.xml", Rx="uniform.xml",
seq_name="Sequence", sample_name="Sample", out_folder_name="try_seq2xml")