From 443a026764eea1e8fc3333e381b8056aae8e41e4 Mon Sep 17 00:00:00 2001 From: Julia Garriga Ferrer Date: Fri, 18 Mar 2022 15:11:10 +0100 Subject: [PATCH 1/3] xrd3dacquisition: Add properties for n_steps_rotation and n_steps_rocking --- .../hdf5/acquisition/xrd3dacquisition.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/nxtomomill/converter/hdf5/acquisition/xrd3dacquisition.py b/nxtomomill/converter/hdf5/acquisition/xrd3dacquisition.py index ee41e79..e750631 100644 --- a/nxtomomill/converter/hdf5/acquisition/xrd3dacquisition.py +++ b/nxtomomill/converter/hdf5/acquisition/xrd3dacquisition.py @@ -58,6 +58,22 @@ class XRD3DAcquisition(StandardAcquisition): def rocking(self, rocking): self._rocking = rocking + @property + def n_steps_rocking(self): + return self._n_steps_rocking + + @n_steps_rocking.setter + def n_steps_rocking(self, n_steps_rocking): + self._n_steps_rocking = n_steps_rocking + + @property + def n_steps_rotation(self): + return self._n_steps_rotation + + @n_steps_rotation.setter + def n_steps_rotation(self, n_steps_rotation): + self._n_steps_rotation = n_steps_rotation + def _get_rocking_dataset(self, entry, n_frames): for grp in self._get_positioners_node(entry), entry: try: -- GitLab From 45260ffd0899f3e31e6e1b06717553af08fa3442 Mon Sep 17 00:00:00 2001 From: Julia Garriga Ferrer Date: Fri, 18 Mar 2022 15:11:38 +0100 Subject: [PATCH 2/3] xrd3dacquisition: Use to_NXtomos instead of _write_sample --- .../hdf5/acquisition/xrd3dacquisition.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/nxtomomill/converter/hdf5/acquisition/xrd3dacquisition.py b/nxtomomill/converter/hdf5/acquisition/xrd3dacquisition.py index e750631..ee3cb97 100644 --- a/nxtomomill/converter/hdf5/acquisition/xrd3dacquisition.py +++ b/nxtomomill/converter/hdf5/acquisition/xrd3dacquisition.py @@ -128,12 +128,11 @@ class XRD3DAcquisition(StandardAcquisition): self._rocking = [] super()._preprocess_registered_entries() - def _write_sample(self, root_node): - super()._write_sample(root_node) - sample_node = root_node.require_group("sample") - if self._rocking is not None: - sample_node["rocking"] = self._rocking - if self._n_steps_rocking is not None: - sample_node["n_steps_rocking"] = self._n_steps_rocking - if self._n_steps_rotation is not None: - sample_node["n_steps_rotation"] = self._n_steps_rotation + def to_NXtomos(self, request_input, input_callback, check_tomo_n=True) -> tuple: + nx_tomo = super().to_NXtomos(request_input, input_callback, check_tomo_n)[0] + + # define sample information for 3dxrd + nx_tomo.sample.rocking = self.rocking + nx_tomo.sample.n_steps_rocking = self.n_steps_rocking + nx_tomo.sample.n_steps_rotation = self.n_steps_rotation + return (nx_tomo,) -- GitLab From 3fb7af2de21ef6071ef3fce9e4ef906ac9d556d7 Mon Sep 17 00:00:00 2001 From: Julia Garriga Ferrer Date: Fri, 18 Mar 2022 15:29:05 +0100 Subject: [PATCH 3/3] nxsample: Add rocking, n_steps_rocking and n_steps_rotation paths --- nxtomomill/nexus/nxsample.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/nxtomomill/nexus/nxsample.py b/nxtomomill/nexus/nxsample.py index a8fb86d..f7428d6 100644 --- a/nxtomomill/nexus/nxsample.py +++ b/nxtomomill/nexus/nxsample.py @@ -44,6 +44,9 @@ class NXsample(NXobject): super().__init__(node_name=node_name, parent=parent) self._name = None self._rotation_angle = None + self.rocking = None + self.n_steps_rocking = None + self.n_steps_rotation = None self._x_translation = ElementWithUnit(default_unit=MetricSystem.METER) self._y_translation = ElementWithUnit(default_unit=MetricSystem.METER) self._z_translation = ElementWithUnit(default_unit=MetricSystem.METER) @@ -115,6 +118,15 @@ class NXsample(NXobject): path_rotation_angle = f"{self.path}/{nexus_sample_paths.ROTATION_ANGLE}" nx_dict[path_rotation_angle] = self.rotation_angle nx_dict["@".join([path_rotation_angle, "unit"])] = "degree" + if self.rocking is not None: + path_rocking = f"{self.path}/{nexus_sample_paths.ROCKING}" + nx_dict[path_rocking] = self.rocking + if self.n_steps_rocking is not None: + path_n_steps_rocking = f"{self.path}/{nexus_sample_paths.N_STEPS_ROCKING}" + nx_dict[path_n_steps_rocking] = self.n_steps_rocking + if self.n_steps_rotation is not None: + path_n_steps_rotation = f"{self.path}/{nexus_sample_paths.N_STEPS_ROTATION}" + nx_dict[path_n_steps_rotation] = self.n_steps_rotation if self.x_translation.value is not None: path_x_translation = f"{self.path}/{nexus_sample_paths.X_TRANSLATION}" nx_dict[path_x_translation] = self.x_translation.value -- GitLab