diffraction image successfully loaded in nexus file
This commit is contained in:
27
src/main.py
27
src/main.py
@@ -382,7 +382,7 @@ def make_nexus_schema_dictionary(substrate_object, layers):
|
|||||||
return pld_fabrication
|
return pld_fabrication
|
||||||
|
|
||||||
|
|
||||||
def build_nexus_file(pld_fabrication, output_path, rheed_osc=None):
|
def build_nexus_file(pld_fabrication, output_path, rheed_osc=None, heatmap_matrix=None):
|
||||||
# NOTE: look at the mail attachment from Emiliano...
|
# NOTE: look at the mail attachment from Emiliano...
|
||||||
with h5py.File(output_path, "w") as f:
|
with h5py.File(output_path, "w") as f:
|
||||||
nx_pld_entry = f.create_group("pld_fabrication")
|
nx_pld_entry = f.create_group("pld_fabrication")
|
||||||
@@ -645,10 +645,10 @@ def build_nexus_file(pld_fabrication, output_path, rheed_osc=None):
|
|||||||
raise TypeError(te)
|
raise TypeError(te)
|
||||||
|
|
||||||
# RHEED data section
|
# RHEED data section
|
||||||
if rheed_osc is not None:
|
nx_rheed = nx_pld_entry.create_group("rheed_data")
|
||||||
nx_rheed = nx_pld_entry.create_group("rheed_data")
|
nx_rheed.attrs["NX_class"] = "NXdata"
|
||||||
nx_rheed.attrs["NX_class"] = "NXdata"
|
|
||||||
|
|
||||||
|
if rheed_osc is not None:
|
||||||
# Asse temporale
|
# Asse temporale
|
||||||
t_ds = nx_rheed.create_dataset("time", data=rheed_osc["time"])
|
t_ds = nx_rheed.create_dataset("time", data=rheed_osc["time"])
|
||||||
t_ds.attrs["units"] = "s"
|
t_ds.attrs["units"] = "s"
|
||||||
@@ -682,6 +682,14 @@ def build_nexus_file(pld_fabrication, output_path, rheed_osc=None):
|
|||||||
# nx_rheed.attrs["layer_indices"] = [0] # asse layer
|
# nx_rheed.attrs["layer_indices"] = [0] # asse layer
|
||||||
# nx_rheed.attrs["time_indices"] = [1] # asse tempo
|
# nx_rheed.attrs["time_indices"] = [1] # asse tempo
|
||||||
# nx_rheed.attrs["channel_indices"] = [2]
|
# nx_rheed.attrs["channel_indices"] = [2]
|
||||||
|
if heatmap_matrix is not None:
|
||||||
|
heatmap = nx_rheed.create_dataset("diffraction_image", data=heatmap_matrix)
|
||||||
|
heatmap.attrs["long_name"] = "Diffraction Image"
|
||||||
|
heatmap.attrs["units"] = "a.u."
|
||||||
|
# this is of my own initiative. good???
|
||||||
|
heatmap.attrs["interpretation"] = "spectrum"
|
||||||
|
# suggested by DeepSeek, useful?
|
||||||
|
heatmap.attrs["suggested_colormap"] = "viridis"
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
@@ -721,9 +729,12 @@ if __name__ == "__main__":
|
|||||||
# TO-DO: make it format-agnostic. If not possible, make it PNG-only.
|
# TO-DO: make it format-agnostic. If not possible, make it PNG-only.
|
||||||
if os.path.isfile("tests/LAO_16min50s_736C_STO.bmp"): # if BMP
|
if os.path.isfile("tests/LAO_16min50s_736C_STO.bmp"): # if BMP
|
||||||
# if os.path.isfile("tests/LAO_16min50s_736C_STO.png"): # if PNG
|
# if os.path.isfile("tests/LAO_16min50s_736C_STO.png"): # if PNG
|
||||||
with open() as img:
|
img = Image.open("tests/LAO_16min50s_736C_STO.bmp").convert("L")
|
||||||
img = Image.open("tests/LAO_16min50s_736C_STO.bmp").convert("L")
|
mx = np.array(img, dtype=np.uint8)
|
||||||
mx = np.array(img, dtype=np.uint8)
|
normalized_mx = mx.astype(np.float32) / 255.0 # consider deleting???
|
||||||
build_nexus_file(
|
build_nexus_file(
|
||||||
result, output_path=f"output/sample-{sample_name}-nexus.h5", rheed_osc=rheed_osc
|
result,
|
||||||
|
output_path=f"output/sample-{sample_name}-nexus.h5",
|
||||||
|
rheed_osc=rheed_osc,
|
||||||
|
heatmap_matrix=normalized_mx,
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user