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
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)
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), [])
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), [])
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"])
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"])
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"])
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)
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))
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)
def setUp(self): self.im = Image(np.random.random((2, 3)))
def setUp(self): self.s = Image(np.random.random((2, 3, 4, 5)))