diff --git a/src/calng/base_correction.py b/src/calng/base_correction.py index a11f9b969a696211cc95742115b93dc76139eeef..caa4ff6d35352f2160a6f533269339f14cdd876b 100644 --- a/src/calng/base_correction.py +++ b/src/calng/base_correction.py @@ -569,7 +569,7 @@ class BaseCorrection(PythonDevice): or self._enabled_addons ): schema_override = Schema() - output_schema_override = self._base_output_schema( + output_schema_override = self.__class__._base_output_schema( use_shmem_handles=self.get("useShmemHandles") ) for addon in self._enabled_addons: diff --git a/src/calng/corrections/AgipdCorrection.py b/src/calng/corrections/AgipdCorrection.py index 6632b6ef2da64527d633b637d265125c7050583e..b6e60d9cd8152cdf422e86a792cb55e8a470595d 100644 --- a/src/calng/corrections/AgipdCorrection.py +++ b/src/calng/corrections/AgipdCorrection.py @@ -469,24 +469,26 @@ class AgipdBaseRunner(base_kernel_runner.BaseKernelRunner): # will simply OR with already loaded, does not take into account which ones constant_data = self._xp.asarray(constant_data, dtype=np.uint32) if len(constant_data.shape) == 3: - if constant_data.shape == ( + if constant_data.shape[:2] == ( self.num_pixels_fs, self.num_pixels_ss, - self._constant_memory_cells, ): # BadPixelsFF is not per gain stage - broadcasting along gain constant_data = self._xp.broadcast_to( - constant_data.transpose()[..., np.newaxis], + constant_data.transpose()[ + :self._constant_memory_cells, ..., np.newaxis + ], self._gm_map_shape, ) - elif constant_data.shape == ( - self._constant_memory_cells, + elif constant_data.shape[1:] == ( self.num_pixels_fs, self.num_pixels_ss, ): # old BadPixelsPC have different axis order constant_data = self._xp.broadcast_to( - constant_data.transpose((0, 2, 1))[..., np.newaxis], + constant_data.transpose((0, 2, 1))[ + :self._constant_memory_cells, ..., np.newaxis + ], self._gm_map_shape, ) else: @@ -756,9 +758,7 @@ class AgipdCorrection(base_correction.BaseCorrection): OUTPUT_CHANNEL(expected) .key("dataOutput") .dataSchema( - AgipdCorrection._base_output_schema( - use_shmem_handles=cls._use_shmem_handles - ) + cls._base_output_schema(use_shmem_handles=cls._use_shmem_handles) ) .commit(), ) diff --git a/src/calng/corrections/DsscCorrection.py b/src/calng/corrections/DsscCorrection.py index 3611b26721e42ac4f500a7940e3bea9489cba4d8..b4a65c769f45a4634f7ea85b7fd0de428913f8e4 100644 --- a/src/calng/corrections/DsscCorrection.py +++ b/src/calng/corrections/DsscCorrection.py @@ -179,7 +179,7 @@ class DsscCorrection(base_correction.BaseCorrection): OUTPUT_CHANNEL(expected) .key("dataOutput") .dataSchema( - DsscCorrection._base_output_schema(cls._use_shmem_handles) + cls._base_output_schema(use_shmem_handles=cls._use_shmem_handles) ) .commit(), )