Exemple #1
0
        def stack():
            rings = masks.radial_bins(centerX=cx,
                                      centerY=cy,
                                      imageSizeX=detector_x,
                                      imageSizeY=detector_y,
                                      radius=ro,
                                      radius_inner=ri,
                                      n_bins=n_bins,
                                      use_sparse=use_sparse,
                                      dtype=np.complex64)

            orders = np.arange(max_order + 1)

            r, phi = masks.polar_map(centerX=cx,
                                     centerY=cy,
                                     imageSizeX=detector_x,
                                     imageSizeY=detector_y)
            modulator = np.exp(phi * orders[:, np.newaxis, np.newaxis] * 1j)

            if use_sparse:
                rings = rings.reshape((rings.shape[0], 1, *rings.shape[1:]))
                ring_stack = [rings] * len(orders)
                ring_stack = sparse.concatenate(ring_stack, axis=1)
                ring_stack *= modulator
            else:
                ring_stack = rings[:, np.newaxis, ...] * modulator
            return ring_stack.reshape((-1, detector_y, detector_x))
Exemple #2
0
def test_radial_bins():
    bins = m.radial_bins(35, 37, 80, 80, n_bins=42)
    assert np.allclose(1, bins.sum(axis=0).todense())
    assert bins.shape == (42, 80, 80)
Exemple #3
0
def test_radial_bins_dense():
    bins = m.radial_bins(40, 41, 80, 80, n_bins=2)
    assert np.allclose(1, bins.sum(axis=0))
    assert bins.shape == (2, 80, 80)
Exemple #4
0
def test_radial_bins():
    bins = m.radial_bins(20, 20, 80, 80, n_bins=23)
    assert np.allclose(1, bins.sum(axis=0).todense())
    assert bins.shape == (23, 80, 80)