Exemplo n.º 1
0
def _create_signal(shape, dim, dtype, metadata):
    data = np.arange(np.product(shape)).reshape(shape).astype(dtype)
    if dim == 1:
        if len(shape) > 2:
            s = signals.EELSSpectrum(data)
            if metadata:
                s.set_microscope_parameters(beam_energy=100.,
                                            convergence_angle=1.,
                                            collection_angle=10.)
        else:
            s = signals.EDSTEMSpectrum(data)
            if metadata:
                s.set_microscope_parameters(beam_energy=100.,
                                            live_time=1.,
                                            tilt_stage=2.,
                                            azimuth_angle=3.,
                                            elevation_angle=4.,
                                            energy_resolution_MnKa=5.)
    else:
        s = signals.BaseSignal(data).transpose(signal_axes=dim)
    if metadata:
        s.metadata.General.date = "2016-08-06"
        s.metadata.General.time = "10:55:00"
        s.metadata.General.title = "Test title"
    for i, axis in enumerate(s.axes_manager._axes):
        i += 1
        axis.offset = i * 0.5
        axis.scale = i * 100
        axis.name = "%i" % i
        if axis.navigate:
            axis.units = "m"
        else:
            axis.units = "eV"

    return s
Exemplo n.º 2
0
 def test_linear_upsize(self):
     spectrum = signals.EDSTEMSpectrum(np.ones([4, 5, 10]))
     scale = [0.3, 0.2, .5]
     res = spectrum.rebin(scale=scale)
     nt.assert_allclose(res.data, 0.03 * np.ones((20, 16, 20)))
     for axis in res.axes_manager._axes:
         assert scale[axis.index_in_axes_manager] == axis.scale
     res = spectrum.rebin(scale=scale, crop=False)
     nt.assert_allclose(res.data.sum(), spectrum.data.sum())
Exemplo n.º 3
0
 def test_linear_downsize(self):
     spectrum = signals.EDSTEMSpectrum(np.ones([3, 5, 1]))
     scale = (1.5, 2.5, 1)
     res = spectrum.rebin(scale=scale, crop=True)
     nt.assert_allclose(res.data, 3.75 * np.ones((1, 3, 1)))
     for axis in res.axes_manager._axes:
         assert scale[axis.index_in_axes_manager] == axis.scale
     res = spectrum.rebin(scale=scale, crop=False)
     nt.assert_allclose(res.data.sum(), spectrum.data.sum())
Exemplo n.º 4
0
 def test_linear_downscale_out(self):
     spectrum = signals.EDSTEMSpectrum(np.ones([4, 1, 1]))
     scale = [1, 0.4, 1]
     res = spectrum.rebin(scale=scale)
     spectrum.data[2][0] = 5
     spectrum.rebin(scale=scale, out=res)
     nt.assert_allclose(res.data,
                        [[[0.4]], [[0.4]], [[0.4]], [[0.4]], [[0.4]],
                         [[2.]], [[2.]], [[1.2]], [[0.4]], [[0.4]]])
     for axis in res.axes_manager._axes:
         assert scale[axis.index_in_axes_manager] == axis.scale