Exemplo n.º 1
0
 def setUp(self):
     ics = np.random.laplace(size=(3, 1024))
     np.random.seed(1)
     mixing_matrix = np.random.random((100, 3))
     s = Image(np.dot(mixing_matrix, ics).reshape((100, 32, 32)))
     for (axis, name) in zip(s.axes_manager._axes, ("z", "y", "x")):
         axis.name = name
     s.decomposition()
     self.s = s
Exemplo n.º 2
0
 def test_save_and_read(self):
     signal_ref = Image(data_image_byte)
     signal_ref.metadata.General.title = test_title
     signal_ref.save(os.path.join(my_path, 'unf_files', 'example_temp.unf'),
                     overwrite=True)
     signal = load(os.path.join(my_path, 'unf_files', 'example_temp.unf'))
     np.testing.assert_equal(signal.data, signal_ref.data)
     np.testing.assert_equal(signal.metadata.General.title, test_title)
     nt.assert_is_instance(signal, Image)
Exemplo n.º 3
0
    def _request_user_input(self):
        from hyperspy.signals import Image
        from hyperspy.drawing.widgets import SquareWidget
        mark = Image(self.metadata.marker,
                     axes=self.model.axes_manager._get_navigation_axes_dicts())
        mark.metadata.General.title = 'SAMFire marker'

        def update_when_triggered():
            ind = self.model.axes_manager.indices[::-1]
            isgood = self.metadata.goodness_test.test(self.model, ind)
            self.active_strategy.update(ind, isgood, 0)
            mark.events.data_changed.trigger(mark)

        self.model.plot()
        self.model.events.fitted.connect(update_when_triggered, [])
        self.model._plot.signal_plot.events.closed.connect(
            lambda: self.model.events.fitted.disconnect(update_when_triggered),
            [])

        mark.plot(navigator='slider')

        w = SquareWidget(self.model.axes_manager)
        w.color = 'yellow'
        w.set_mpl_ax(mark._plot.signal_plot.ax)
        w.connect_navigate()

        def connect_other_navigation1(axes_manager):
            with mark.axes_manager.events.indices_changed.suppress_callback(
                    connect_other_navigation2):
                for ax1, ax2 in zip(mark.axes_manager.navigation_axes,
                                    axes_manager.navigation_axes[2:]):
                    ax1.value = ax2.value

        def connect_other_navigation2(axes_manager):
            with self.model.axes_manager.events.indices_changed.suppress_callback(
                    connect_other_navigation1):
                for ax1, ax2 in zip(
                        self.model.axes_manager.navigation_axes[2:],
                        axes_manager.navigation_axes):
                    ax1.value = ax2.value

        mark.axes_manager.events.indices_changed.connect(
            connect_other_navigation2, {'obj': 'axes_manager'})
        self.model.axes_manager.events.indices_changed.connect(
            connect_other_navigation1, {'obj': 'axes_manager'})

        self.model._plot.signal_plot.events.closed.connect(
            lambda: mark._plot.close, [])
        self.model._plot.signal_plot.events.closed.connect(
            lambda: self.model.axes_manager.events.indices_changed.disconnect(
                connect_other_navigation1), [])
Exemplo n.º 4
0
    def _request_user_input(self):
        from hyperspy.signals import Image
        from hyperspy.drawing.widgets import SquareWidget
        mark = Image(self.metadata.marker,
                     axes=self.model.axes_manager._get_navigation_axes_dicts())
        mark.metadata.General.title = 'SAMFire marker'

        def update_when_triggered():
            ind = self.model.axes_manager.indices[::-1]
            isgood = self.metadata.goodness_test.test(self.model, ind)
            self.active_strategy.update(ind, isgood, 0)
            mark.events.data_changed.trigger(mark)

        self.model.plot()
        self.model.events.fitted.connect(update_when_triggered, [])
        self.model._plot.signal_plot.events.closed.connect(
            lambda: self.model.events.fitted.disconnect(update_when_triggered),
            [])

        mark.plot(navigator='slider')

        w = SquareWidget(self.model.axes_manager)
        w.color = 'yellow'
        w.set_mpl_ax(mark._plot.signal_plot.ax)
        w.connect_navigate()

        def connect_other_navigation1(axes_manager):
            with mark.axes_manager.events.indices_changed.suppress_callback(
                    connect_other_navigation2):
                for ax1, ax2 in zip(mark.axes_manager.navigation_axes,
                                    axes_manager.navigation_axes[2:]):
                    ax1.value = ax2.value

        def connect_other_navigation2(axes_manager):
            with self.model.axes_manager.events.indices_changed.suppress_callback(
                    connect_other_navigation1):
                for ax1, ax2 in zip(self.model.axes_manager.navigation_axes[2:],
                                    axes_manager.navigation_axes):
                    ax1.value = ax2.value

        mark.axes_manager.events.indices_changed.connect(
            connect_other_navigation2, {'obj': 'axes_manager'})
        self.model.axes_manager.events.indices_changed.connect(
            connect_other_navigation1, {'obj': 'axes_manager'})

        self.model._plot.signal_plot.events.closed.connect(
            lambda: mark._plot.close, [])
        self.model._plot.signal_plot.events.closed.connect(
            lambda: self.model.axes_manager.events.indices_changed.disconnect(
                connect_other_navigation1), [])
Exemplo n.º 5
0
class Test2D():
    def setUp(self):
        self.im = Image(np.random.random((2, 3)))
    def test_to_image(self):
        s = self.im.to_spectrum()
        assert_true(isinstance(s, Spectrum))
        assert_equal(s.data.shape, self.im.data.T.shape)
        assert_true(s.data.flags["C_CONTIGUOUS"])
Exemplo n.º 6
0
class Test4D():
    def setUp(self):
        self.s = Image(np.random.random((2, 3, 4, 5)))
    def test_to_image(self):
        s = self.s.to_spectrum()
        assert_true(isinstance(s, Spectrum))
        assert_equal(s.data.shape, (3,4,5,2))
        assert_true(s.data.flags["C_CONTIGUOUS"])
Exemplo n.º 7
0
class Test3D:
    def setUp(self):
        self.im = Image(np.random.random((2, 3, 4)))

    def test_to_image(self):
        s = self.im.to_spectrum()
        nose.tools.assert_true(isinstance(s, Spectrum))
        nose.tools.assert_equal(s.data.shape, (3, 4, 2))
        nose.tools.assert_true(s.data.flags["C_CONTIGUOUS"])
Exemplo n.º 8
0
 def test_get_data(self):
     s = Image(np.zeros([3, 2, 2]))
     m = markers.line_segment(x1=range(3), x2=range(3), y1=1.3, y2=1.5)
     m.axes_manager = s.axes_manager
     nose.tools.assert_true(m.get_data_position('x1') == 0)
     nose.tools.assert_true(m.get_data_position('y1') == 1.3)
     s.axes_manager[0].index = 2
     nose.tools.assert_true(m.get_data_position('x1') == 2)
     nose.tools.assert_true(m.get_data_position('y1') == 1.3)
Exemplo n.º 9
0
class Test3D:

    def setUp(self):
        self.im = Image(np.random.random((2, 3, 4)))

    def test_to_image(self):
        s = self.im.to_spectrum()
        nose.tools.assert_true(isinstance(s, Spectrum))
        nose.tools.assert_equal(s.data.shape, (3, 4, 2))
        nose.tools.assert_true(s.data.flags["C_CONTIGUOUS"])
Exemplo n.º 10
0
    def setUp(self):
        np.random.seed(0)  # Same random every time, Line2DROi test requires it
        self.s_s = Spectrum(np.random.rand(50, 60, 4))
        self.s_s.axes_manager[0].scale = 5
        self.s_s.axes_manager[0].units = 'nm'
        self.s_s.axes_manager[1].scale = 5
        self.s_s.axes_manager[1].units = 'nm'

        # 4D dataset
        self.s_i = Image(np.random.rand(100, 100, 4, 4))
Exemplo n.º 11
0
 def test_get_data_array(self):
     s = Image(np.zeros([2, 2, 2, 2]))
     m = markers.line_segment(x1=[[1.1, 1.2], [1.3, 1.4]], x2=1.1, y1=1.3,
                              y2=1.5)
     m.axes_manager = s.axes_manager
     nose.tools.assert_true(m.get_data_position('x1') == 1.1)
     s.axes_manager[0].index = 1
     nose.tools.assert_true(m.get_data_position('x1') == 1.2)
     s.axes_manager[1].index = 1
     nose.tools.assert_true(m.get_data_position('x1') == 1.4)
Exemplo n.º 12
0
 def setUp(self):
     self.im = Image(np.random.random((2, 3)))
Exemplo n.º 13
0
 def setUp(self):
     self.s = Image(np.random.random((2, 3, 4, 5)))
Exemplo n.º 14
0
 def setUp(self):
     self.im = Image(np.random.random((2, 3)))
Exemplo n.º 15
0
 def setUp(self):
     self.s = Image(np.random.random((2, 3, 4, 5)))