From 930d30c22109ffe63bb15cac7ad0672cb3934485 Mon Sep 17 00:00:00 2001 From: Graeme Winter Date: Wed, 3 May 2023 15:37:21 +0100 Subject: [PATCH 1/2] Work on bit depth image Helps to fix dials/dials#2401 but depends on upstream nxmx fix --- src/dxtbx/format/FormatNXmxEigerFilewriter.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/dxtbx/format/FormatNXmxEigerFilewriter.py b/src/dxtbx/format/FormatNXmxEigerFilewriter.py index e06240d11..c778d86bb 100644 --- a/src/dxtbx/format/FormatNXmxEigerFilewriter.py +++ b/src/dxtbx/format/FormatNXmxEigerFilewriter.py @@ -47,7 +47,8 @@ def get_raw_data(self, index): nxmx_obj = self._get_nxmx(self._cached_file_handle) nxdata = nxmx_obj.entries[0].data[0] nxdetector = nxmx_obj.entries[0].instruments[0].detectors[0] - raw_data = get_raw_data(nxdata, nxdetector, index) + bit_depth = nxdetector.bit_depth_image + raw_data = get_raw_data(nxdata, nxdetector, index, bit_depth) if self._bit_depth_readout: # if 32 bit then it is a signed int, I think if 8, 16 then it is # unsigned with the highest two values assigned as masking values @@ -63,7 +64,7 @@ def get_raw_data(self, index): def get_raw_data( - nxdata: nxmx.NXdata, nxdetector: nxmx.NXdetector, index: int + nxdata: nxmx.NXdata, nxdetector: nxmx.NXdetector, index: int, bit_depth: int, ) -> tuple[flex.float | flex.double | flex.int, ...]: """Return the raw data for an NXdetector. @@ -85,6 +86,6 @@ def get_raw_data( all_data = [] sliced_outer = data[index] for module_slices in get_detector_module_slices(nxdetector): - data_as_flex = _dataset_as_flex(sliced_outer, tuple(module_slices)) + data_as_flex = _dataset_as_flex(sliced_outer, tuple(module_slices), bit_depth=bit_depth) all_data.append(data_as_flex) return tuple(all_data) From c49d62dd23205832474383588cf3f6f5fead527d Mon Sep 17 00:00:00 2001 From: Graeme Winter Date: Wed, 3 May 2023 15:38:14 +0100 Subject: [PATCH 2/2] News --- newsfragments/XXX.bugfix | 1 + 1 file changed, 1 insertion(+) create mode 100644 newsfragments/XXX.bugfix diff --git a/newsfragments/XXX.bugfix b/newsfragments/XXX.bugfix new file mode 100644 index 000000000..66aa7913e --- /dev/null +++ b/newsfragments/XXX.bugfix @@ -0,0 +1 @@ +bugfix: correctly read DECTRIS Eiger file writer NXmx bit depth \ No newline at end of file