def test_integration_generator(radius, offset): pixel_positions = np.array([[0, 0], [15, -15], [-15, 15]]) pattern = np.zeros((50, 50)) center = np.array(pattern.shape) / 2 i, j = (pixel_positions + center + offset).T.astype(int) pattern[i, j] = 1 dv = DiffractionVectors(pixel_positions) dp = ElectronDiffraction2D(pattern) ig = IntegrationGenerator(dp, dv) assert isinstance(ig, IntegrationGenerator) inties = ig.extract_intensities(radius=radius) assert isinstance(inties, BaseSignal) assert np.allclose(inties.data, [1, 1, 1])
def test_integration_generator_summation_method(): pixel_positions = np.array([[0, 0], [25, -25], [-25, 25]]) pattern = np.zeros((100, 100)) center = np.array(pattern.shape) / 2 i, j = (pixel_positions + center).T.astype(int) pattern[i, j] = 1.0 pattern = gaussian_filter(pattern, 2) dv = DiffractionVectors(pixel_positions) dp = ElectronDiffraction2D(pattern) ig = IntegrationGenerator(dp, dv) assert isinstance(ig, IntegrationGenerator) vectors = ig.extract_intensities_summation_method() assert np.allclose(pixel_positions, vectors.data, atol=0.05) assert np.allclose(vectors.data, pixel_positions, atol=0.05) assert np.allclose(vectors.intensities.data[0], 1.0, atol=0.05) assert np.allclose(vectors.sigma.data[0], 0.0, atol=0.05) assert isinstance(vectors, DiffractionVectors)