Exemple #1
0
 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)))
Exemple #2
0
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",)
Exemple #3
0
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", )
Exemple #4
0
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)
Exemple #6
0
 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)
Exemple #7
0
 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)
Exemple #8
0
    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)