Skip to content
Snippets Groups Projects
Commit 372c6fc9 authored by Gröne, Tjark Leon Raphael's avatar Gröne, Tjark Leon Raphael
Browse files

Update file maxwell_integrate_to_h5.py

parent 0c58f25a
Branches
No related tags found
No related merge requests found
......@@ -137,30 +137,42 @@ def integrate_ims_in_dir(path_im, path_int, dtype_im=".tif", dtype_int=".dat"):
os.remove(output_file)
with h5py.File(output_file, "w") as f:
entry = f.create_group("entry")
entry.attrs["NX_class"] = np.string_("NXentry")
entry.attrs["default"] = np.string_("1.1") # Optional
# Top-level NXroot
nxroot = f.create_group(subdir_name)
nxroot.attrs["NX_class"] = np.string_("NXroot")
nxroot.attrs["default"] = np.string_("1.1")
for idx, result in enumerate(results_data, start=1):
group_name = f"{idx}.1"
g = entry.create_group(group_name)
g.attrs["NX_class"] = np.string_("NXentry")
g.attrs["default"] = np.string_("measurement")
meas = g.create_group("measurement")
meas.attrs["NX_class"] = np.string_("NXdata")
meas.attrs["signal"] = np.string_("I")
meas.attrs["axes"] = np.string_("q")
meas.attrs["filename"] = np.string_(result["filename"]) # 👈 capture filename
meas.attrs["title"] = np.string_(result["filename"]) # (H5Web may show this)
# Store datasets
entry_name = f"{idx}.1"
entry = nxroot.create_group(entry_name)
entry.attrs["NX_class"] = np.string_("NXentry")
entry.attrs["default"] = np.string_("plotdata")
# Create full measurement group
meas = entry.create_group("measurement")
meas.attrs["NX_class"] = np.string_("NXcollection")
meas.attrs["filename"] = np.string_(result["filename"])
meas.create_dataset("q", data=result["q"])
meas.create_dataset("I", data=result["I"])
meas.create_dataset("dI", data=result["dI"])
# Optional: add filename as long_name attribute on I
meas["I"].attrs["long_name"] = np.string_(result["filename"])
# Create plotdata group with proper NXdata spec
plot = entry.create_group("plotdata")
plot.attrs["NX_class"] = np.string_("NXdata")
plot.attrs["signal"] = np.string_("I")
plot.attrs["axes"] = np.string_("q")
plot.attrs["title"] = np.string_(result["filename"])
plot.create_dataset("q", data=result["q"])
dset_I = plot.create_dataset("I", data=result["I"])
dset_I.attrs["long_name"] = np.string_(result["filename"])
plot["I"].attrs["long_name"] = "Intensity"
plot["q"].attrs["long_name"] = "Ang^-1"
plot.create_dataset("dI", data=result["dI"])
plot["dI"].attrs["long_name"] = np.string_("Uncertainty in I")
print(f"✅ HDF5 file '{output_file}' created with {len(results_data)} spectra.")
# # Sort results_data by filename
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment