Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
    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)