From e06ba6842a57b9b12e5044807a97b0ad432f34f1 Mon Sep 17 00:00:00 2001 From: Danilo Ferreira de Lima <danilo.enoque.ferreira.de.lima@xfel.de> Date: Tue, 5 Sep 2023 14:16:06 +0200 Subject: [PATCH] Avoid setting NDARRAY properties: they cannot be serialized in JSON. --- src/calng/CrystfelRunner.py | 43 ++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/src/calng/CrystfelRunner.py b/src/calng/CrystfelRunner.py index e370a055..937ad889 100644 --- a/src/calng/CrystfelRunner.py +++ b/src/calng/CrystfelRunner.py @@ -329,8 +329,33 @@ class CrystfelRunner(PythonDevice): .initialValue([0.0, 0.0]) .commit(), - NDARRAY_ELEMENT(expected) - .key("crystfelStats.cell") + VECTOR_FLOAT_ELEMENT(expected) + .key("crystfelStats.cell_a") + .readOnly() + .commit(), + + VECTOR_FLOAT_ELEMENT(expected) + .key("crystfelStats.cell_b") + .readOnly() + .commit(), + + VECTOR_FLOAT_ELEMENT(expected) + .key("crystfelStats.cell_c") + .readOnly() + .commit(), + + VECTOR_FLOAT_ELEMENT(expected) + .key("crystfelStats.cell_alpha") + .readOnly() + .commit(), + + VECTOR_FLOAT_ELEMENT(expected) + .key("crystfelStats.cell_beta") + .readOnly() + .commit(), + + VECTOR_FLOAT_ELEMENT(expected) + .key("crystfelStats.cell_gamma") .readOnly() .commit(), ) @@ -806,9 +831,17 @@ class CrystfelRunner(PythonDevice): self._results['reflections'] = (sum(n_reflections) if len(n_reflections) > 0 else 0) - self._results['cell'] = (np.stack(cell, axis=0) - if len(cell) > 0 - else np.empty((0, 6), dtype=np.float32)) + cell_stacked = (np.stack(cell, axis=0) + if len(cell) > 0 + else list()) + if len(cell_stacked) == 0: + for k in ['cell_a', 'cell_b', 'cell_c', + 'cell_alpha', 'cell_beta', 'cell_gamma']: + self._results[k] = list() + else: + for i, k in enumerate(['cell_a', 'cell_b', 'cell_c', + 'cell_alpha', 'cell_beta', 'cell_gamma']): + self._results[k] = cell_stacked[:, i].tolist() self._results['all_det_centre'] = (np.stack(det_centre, axis=0) if len(det_centre) > 0 else np.empty((0, 2), dtype=np.float32)) -- GitLab