def test_save_3D_signal(self, tmp_path): s = BaseSignal(np.zeros((2, 3, 4))) fname = tmp_path / 'test.nxs' s.save(fname) lin = load(fname, nxdata_only=True) assert lin.axes_manager.signal_dimension == 3 np.testing.assert_array_equal(lin.data, np.zeros((2, 3, 4)))
def test_writing_unsupported_data_type(): data = np.arange(5 * 10).reshape((5, 10)) s = BaseSignal(data.astype('int64')) with tempfile.TemporaryDirectory() as tmpdir: with pytest.raises(IOError) as cm: fname = os.path.join(tmpdir, 'test_writing_unsupported_data_type.unf') s.save(fname) cm.match("The SEMPER file format does not support int64 data type",)
def test_writing_unsupported_data_type(): data = np.arange(5 * 10).reshape((5, 10)) s = BaseSignal(data.astype('int64')) with tempfile.TemporaryDirectory() as tmpdir: with pytest.raises(IOError) as cm: fname = os.path.join(tmpdir, 'test_writing_unsupported_data_type.unf') s.save(fname) cm.match( "The SEMPER file format does not support int64 data type", )
def test_writing_loading_metadata(): data = np.arange(5 * 10).reshape((5, 10)).astype(np.int8) s = BaseSignal(data) s.metadata.set_item('General.date', "2016-08-06") s.metadata.set_item('General.time', "11:55:00") with tempfile.TemporaryDirectory() as tmpdir: fname = os.path.join(tmpdir, 'test_write_with_metadata.unf') s.save(fname) s2 = load(fname) np.testing.assert_allclose(s.data, s2.data) assert s.metadata.General.date == s2.metadata.General.date assert s.metadata.General.time == s2.metadata.General.time
def test_writing_loading_metadata(): data = np.arange(5 * 10).reshape((5, 10)).astype(np.int8) s = BaseSignal(data) s.metadata.set_item('General.date', "2016-08-06") s.metadata.set_item('General.time', "11:55:00") with tempfile.TemporaryDirectory() as tmpdir: fname = os.path.join(tmpdir, 'test_write_with_metadata.unf') s.save(fname) s2 = load(fname) np.testing.assert_allclose(s.data, s2.data) nt.assert_equal(s.metadata.General.date, s2.metadata.General.date) nt.assert_equal(s.metadata.General.time, s2.metadata.General.time)
def test_save_and_read(self): signal_ref = BaseSignal(data_save) signal_ref.metadata.General.title = test_title signal_ref.axes_manager[0].name = 'x' signal_ref.axes_manager[1].name = 'y' signal_ref.axes_manager[2].name = 'z' signal_ref.axes_manager[0].scale = 2 signal_ref.axes_manager[1].scale = 3 signal_ref.axes_manager[2].scale = 4 signal_ref.axes_manager[0].offset = 10 signal_ref.axes_manager[1].offset = 20 signal_ref.axes_manager[2].offset = 30 signal_ref.axes_manager[0].units = 'nm' signal_ref.axes_manager[1].units = 'µm' signal_ref.axes_manager[2].units = 'mm' signal_ref.save(os.path.join(my_path, 'emd_files', 'example_temp.emd'), overwrite=True, signal_metadata=sig_metadata, user=user, microscope=microscope, sample=sample, comments=comments) signal = load(os.path.join(my_path, 'emd_files', 'example_temp.emd')) np.testing.assert_equal(signal.data, signal_ref.data) np.testing.assert_equal(signal.axes_manager[0].name, 'x') np.testing.assert_equal(signal.axes_manager[1].name, 'y') np.testing.assert_equal(signal.axes_manager[2].name, 'z') np.testing.assert_equal(signal.axes_manager[0].scale, 2) np.testing.assert_almost_equal(signal.axes_manager[1].scale, 3.0) np.testing.assert_almost_equal(signal.axes_manager[2].scale, 4.0) np.testing.assert_equal(signal.axes_manager[0].offset, 10) np.testing.assert_almost_equal(signal.axes_manager[1].offset, 20.0) np.testing.assert_almost_equal(signal.axes_manager[2].offset, 30.0) np.testing.assert_equal(signal.axes_manager[0].units, 'nm') np.testing.assert_equal(signal.axes_manager[1].units, 'µm') np.testing.assert_equal(signal.axes_manager[2].units, 'mm') np.testing.assert_equal(signal.metadata.General.title, test_title) np.testing.assert_equal(signal.metadata.General.user.as_dictionary(), user) np.testing.assert_equal( signal.metadata.General.microscope.as_dictionary(), microscope) np.testing.assert_equal(signal.metadata.General.sample.as_dictionary(), sample) np.testing.assert_equal( signal.metadata.General.comments.as_dictionary(), comments) for key, ref_value in sig_metadata.items(): np.testing.assert_equal( signal.metadata.Signal.as_dictionary().get(key), ref_value) assert isinstance(signal, BaseSignal)
def test_save_and_read(self): signal_ref = BaseSignal(data_save) signal_ref.metadata.General.title = test_title signal_ref.axes_manager[0].name = 'x' signal_ref.axes_manager[1].name = 'y' signal_ref.axes_manager[2].name = 'z' signal_ref.axes_manager[0].scale = 2 signal_ref.axes_manager[1].scale = 3 signal_ref.axes_manager[2].scale = 4 signal_ref.axes_manager[0].offset = 10 signal_ref.axes_manager[1].offset = 20 signal_ref.axes_manager[2].offset = 30 signal_ref.axes_manager[0].units = 'nm' signal_ref.axes_manager[1].units = 'µm' signal_ref.axes_manager[2].units = 'mm' signal_ref.save(os.path.join(my_path, 'emd_files', 'example_temp.emd'), overwrite=True, signal_metadata=sig_metadata, user=user, microscope=microscope, sample=sample, comments=comments) signal = load(os.path.join(my_path, 'emd_files', 'example_temp.emd')) np.testing.assert_equal(signal.data, signal_ref.data) np.testing.assert_equal(signal.axes_manager[0].name, 'x') np.testing.assert_equal(signal.axes_manager[1].name, 'y') np.testing.assert_equal(signal.axes_manager[2].name, 'z') np.testing.assert_equal(signal.axes_manager[0].scale, 2) np.testing.assert_almost_equal(signal.axes_manager[1].scale, 3.0) np.testing.assert_almost_equal(signal.axes_manager[2].scale, 4.0) np.testing.assert_equal(signal.axes_manager[0].offset, 10) np.testing.assert_almost_equal(signal.axes_manager[1].offset, 20.0) np.testing.assert_almost_equal(signal.axes_manager[2].offset, 30.0) np.testing.assert_equal(signal.axes_manager[0].units, 'nm') np.testing.assert_equal(signal.axes_manager[1].units, 'µm') np.testing.assert_equal(signal.axes_manager[2].units, 'mm') np.testing.assert_equal(signal.metadata.General.title, test_title) np.testing.assert_equal( signal.metadata.General.user.as_dictionary(), user) np.testing.assert_equal( signal.metadata.General.microscope.as_dictionary(), microscope) np.testing.assert_equal( signal.metadata.General.sample.as_dictionary(), sample) np.testing.assert_equal( signal.metadata.General.comments.as_dictionary(), comments) for key, ref_value in sig_metadata.items(): np.testing.assert_equal( signal.metadata.Signal.as_dictionary().get(key), ref_value) assert isinstance(signal, BaseSignal)
def test_save_and_read(self, lazy): signal_ref = BaseSignal(data_save) signal_ref.metadata.General.title = test_title signal_ref.axes_manager[0].name = 'x' signal_ref.axes_manager[1].name = 'y' signal_ref.axes_manager[2].name = 'z' signal_ref.axes_manager[0].scale = 2 signal_ref.axes_manager[1].scale = 3 signal_ref.axes_manager[2].scale = 4 signal_ref.axes_manager[0].offset = 10 signal_ref.axes_manager[1].offset = 20 signal_ref.axes_manager[2].offset = 30 signal_ref.axes_manager[0].units = 'nm' signal_ref.axes_manager[1].units = 'µm' signal_ref.axes_manager[2].units = 'mm' signal_ref.original_metadata.add_dictionary({'user': user}) signal_ref.original_metadata.add_dictionary({'microscope': microscope}) signal_ref.original_metadata.add_dictionary({'sample': sample}) signal_ref.original_metadata.add_dictionary({'comments': comments}) signal_ref.save(os.path.join(my_path, 'emd_files', 'example_temp.emd'), overwrite=True) signal = load(os.path.join(my_path, 'emd_files', 'example_temp.emd'), lazy=lazy) if lazy: signal.compute(close_file=True) om = signal.original_metadata np.testing.assert_equal(signal.data, signal_ref.data) np.testing.assert_equal(signal.axes_manager[0].name, 'x') np.testing.assert_equal(signal.axes_manager[1].name, 'y') np.testing.assert_equal(signal.axes_manager[2].name, 'z') np.testing.assert_equal(signal.axes_manager[0].scale, 2) np.testing.assert_almost_equal(signal.axes_manager[1].scale, 3.0) np.testing.assert_almost_equal(signal.axes_manager[2].scale, 4.0) np.testing.assert_equal(signal.axes_manager[0].offset, 10) np.testing.assert_almost_equal(signal.axes_manager[1].offset, 20.0) np.testing.assert_almost_equal(signal.axes_manager[2].offset, 30.0) np.testing.assert_equal(signal.axes_manager[0].units, 'nm') np.testing.assert_equal(signal.axes_manager[1].units, 'µm') np.testing.assert_equal(signal.axes_manager[2].units, 'mm') np.testing.assert_equal(signal.metadata.General.title, test_title) np.testing.assert_equal(om.user.as_dictionary(), user) np.testing.assert_equal(om.microscope.as_dictionary(), microscope) np.testing.assert_equal(om.sample.as_dictionary(), sample) np.testing.assert_equal(om.comments.as_dictionary(), comments) assert isinstance(signal, BaseSignal)