-
Notifications
You must be signed in to change notification settings - Fork 80
Open
Description
We have this function, basically getting some attributes from the list of grain and allocating in the attributes, but
i could not see the result in the silx view of the respective grain group, it does not throwed an error also
def create_nexus_grains_data_group(
group_path: h5py.Group,
grains: List[Grain],
) -> str:
if not grains:
raise ValueError("Grains list is empty!")
grain_data_group = group_path.require_group("grains")
grain_data_group.attrs["NX_class"] = "NXdata"
num_grains = len(grains)
ubi_matrices = grain_data_group.create_dataset(
"UBI", shape=(num_grains, 3, 3), dtype=grains[0].ubi.dtype
)
translations = grain_data_group.create_dataset(
"translation", shape=(num_grains, 3), dtype=grains[0].ubi.dtype
)
npks = grain_data_group.create_dataset("npks", shape=(num_grains,), dtype=np.int64)
nuniq = grain_data_group.create_dataset(
"nuniq", shape=(num_grains,), dtype=np.int64
)
names = grain_data_group.create_dataset(
"name", shape=(num_grains,), dtype=h5py.string_dtype(encoding="utf-8")
)
intensity_infos = grain_data_group.create_dataset(
"intensity_info", shape=(num_grains,), dtype=h5py.string_dtype(encoding="utf-8")
)
mean_intensity = grain_data_group.create_dataset(
"mean_intensity", shape=(num_grains,), dtype=np.float64
)
for i, grain in enumerate(grains):
ubi_matrices[i] = grain.ubi
if hasattr(grain, "translation"):
translations[i] = grain.translation
if hasattr(grain, "npks"):
npks[i] = grain.npks
if hasattr(grain, "nuniq"):
nuniq[i] = grain.nuniq
if hasattr(grain, "name"):
names[i] = grain.name
if hasattr(grain, "intensity_info"):
intensity_infos[i] = grain.intensity_info
if "no peaks" in grain.intensity_info:
mean_intensity[i] = 0
else:
mean_intensity[i] = float(
grain.intensity_info.split("mean = ")[1]
.split(" , ")[0]
.replace("'", "")
)
grain_data_group.create_dataset("x", data=translations[:, 0])
grain_data_group.create_dataset("y", data=translations[:, 1])
grain_data_group.create_dataset("z", data=translations[:, 2])
grain_data_group.attrs["signal"] = "mean_intensity"
grain_data_group.attrs["axes"] = ("x", "y", "z")
grain_data_group.attrs["interpretation"] = "vertex"
return grain_data_group.name
Metadata
Metadata
Assignees
Labels
No labels