def test_get_dynamic_background_frequency(self, dummy_signal, std, answer): dtype_out = answer.dtype dask_array = _get_dask_array(dummy_signal, dtype=np.float32) kwargs = {} ( kwargs["fft_shape"], kwargs["window_shape"], kwargs["transfer_function"], kwargs["offset_before_fft"], kwargs["offset_after_ifft"], ) = _dynamic_background_frequency_space_setup( pattern_shape=dummy_signal.axes_manager.signal_shape[::-1], std=std, truncate=4.0, ) background = dask_array.map_blocks( func=chunk.get_dynamic_background, filter_func=_fft_filter, dtype_out=dtype_out, dtype=dtype_out, **kwargs, ) # Check for correct data type and gives expected output intensities assert background.dtype == dtype_out assert np.allclose(background[0, 0].compute(), answer, atol=1e-4)
def test_remove_dynamic_background_frequency(self, dummy_signal, std, truncate, answer): dtype_out = dummy_signal.data.dtype.type dask_array = get_dask_array(dummy_signal, dtype=np.float32) kwargs = {} ( kwargs["fft_shape"], kwargs["window_shape"], kwargs["transfer_function"], kwargs["offset_before_fft"], kwargs["offset_after_ifft"], ) = _dynamic_background_frequency_space_setup( pattern_shape=dummy_signal.axes_manager.signal_shape[::-1], std=std, truncate=truncate, ) corrected_patterns = dask_array.map_blocks( func=chunk.remove_dynamic_background, filter_func=_fft_filter, operation_func=np.subtract, dtype_out=dtype_out, dtype=dtype_out, **kwargs, ) # Check for correct data type and gives expected output intensities assert corrected_patterns.dtype == dtype_out assert np.allclose(corrected_patterns[0, 0].compute(), answer)
def test_remove_dynamic_background_pattern_frequency_setup(self, dummy_signal): std = 2 truncate = 3.0 ( fft_shape, window_shape, window_fft, offset_before_fft, offset_after_ifft, ) = _dynamic_background_frequency_space_setup( pattern_shape=dummy_signal.axes_manager.signal_shape[::-1], std=std, truncate=truncate, ) assert fft_shape == (8, 8) assert window_shape == (6, 6) assert np.sum(window_fft.imag) != 0 assert offset_before_fft == (3, 3) assert offset_after_ifft == (2, 2)
def test_get_dynamic_background_dtype_out(self, dummy_signal, answer): dtype_out = answer.dtype dummy_signal.data = dummy_signal.data.astype(dtype_out) kwargs = {} ( kwargs["fft_shape"], kwargs["window_shape"], kwargs["transfer_function"], kwargs["offset_before_fft"], kwargs["offset_after_ifft"], ) = _dynamic_background_frequency_space_setup( pattern_shape=dummy_signal.axes_manager.signal_shape[::-1], std=2, truncate=4.0, ) background = chunk.get_dynamic_background( patterns=dummy_signal.data, filter_func=_fft_filter, **kwargs, ) assert isinstance(background, np.ndarray) assert background.dtype == dtype_out assert np.allclose(background[0, 0], answer, atol=1e-4)