sim2xml.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import xml.etree.ElementTree as ET
  2. from io import BytesIO
  3. def sim2xml(sim_name="simu", seq="example.xml", phantom="sample.h5", Tx="uniform.xml", Rx="uniform.xml",
  4. seq_name="Sequence", sample_name="Sample", out_folder_name = None):
  5. root = ET.Element("simulate")
  6. root.set("name", "JEMRIS")
  7. sample = ET.SubElement(root, "sample")
  8. sample.set("name", sample_name)
  9. sample.set("uri", phantom)
  10. TXcoilarray = ET.SubElement(root, "TXcoilarray")
  11. TXcoilarray.set("uri", Tx)
  12. RXcoilarray = ET.SubElement(root, "RXcoilarray")
  13. RXcoilarray.set("uri", Rx)
  14. parameter = ET.SubElement(root, "parameter")
  15. parameter.set("RandomNoise", "0")
  16. parameter.set("EvolutionSteps", "0")
  17. parameter.set("EvolutionPrefix", "evol")
  18. parameter.set("ConcomitantFields", "0")
  19. sequence = ET.SubElement(root, "sequence")
  20. sequence.set("name", seq_name)
  21. sequence.set("uri", seq)
  22. model = ET.SubElement(root, "model")
  23. model.set("name", "Bloch")
  24. model.set("type", "CVODE")
  25. sim_tree = ET.ElementTree(root)
  26. sim_out_path = out_folder_name + '/' + sim_name + '.xml'
  27. sim_tree.write(sim_out_path)
  28. return sim_out_path
  29. # Fig 1. Draw diagram of what py2jemris consists of
  30. # Fig 2. SDC Debug progress
  31. if __name__ == '__main__':
  32. sim2xml(seq="gre_jemris_seq2xml.xml", phantom="sample.h5", Tx="uniform.xml", Rx="uniform.xml",
  33. seq_name="Sequence", sample_name="Sample", out_folder_name="try_seq2xml")