Source code for simba.Modules.Matrices.hdf5

import h5py
import numpy as np


[docs] def read_hdf_summary(self, filename, reset=True): if reset: self.reset_dicts() f = h5py.File(filename, "r") xemit = f.get("Xemit") yemit = f.get("Yemit") zemit = f.get("Zemit") for item, params in sorted(xemit.items()): self.interpret_astra_data( np.array(xemit.get(item)), np.array(yemit.get(item)), np.array(zemit.get(item)), )
[docs] def write_HDF5_twiss_file(self, filename, sourcefilename=None): with h5py.File(filename, "w") as f: inputgrp = f.create_group("Parameters") if sourcefilename is not None: inputgrp["Source"] = sourcefilename twissgrp = f.create_group("twiss") twissgrp["columns"] = np.array(list(self.properties.keys()), dtype="S") twissgrp["units"] = np.array(list(self.properties.values()), dtype="S") array = np.array( [ self[k] if not k == "element_name" else np.array(self[k], dtype="S") for k in self.properties.keys() if len(self[k]) > 0 ] ).transpose() # print([[k, self[k].shape] for k in self.properties.keys()]) twissgrp.create_dataset("twiss", data=array)