コード例 #1
0
ファイル: test_fei.py プロジェクト: mwalls/hyperspy
    def test_load_acquire(self):
        fname0 = os.path.join(self.dirpathold, '64x64_TEM_images_acquire.emi')
        s0 = load(fname0)
        assert s0.axes_manager.signal_dimension == 2
        assert (
            s0.metadata.Acquisition_instrument.TEM.acquisition_mode == 'TEM')
        assert_allclose(s0.axes_manager[0].scale, 6.281833, atol=1E-5)
        assert s0.axes_manager[0].units == 'nm'
        assert_allclose(s0.axes_manager[1].scale, 6.281833, atol=1E-5)
        assert s0.axes_manager[1].units == 'nm'
        assert (s0.axes_manager[0].name == 'x')
        assert (s0.axes_manager[1].name == 'y')

        fname1 = os.path.join(self.dirpathold, '16x16_STEM_BF_DF_acquire.emi')
        s1 = load(fname1)
        assert len(s1) == 2
        for s in s1:
            assert s.data.shape == (16, 16)
            assert (
                s.metadata.Acquisition_instrument.TEM.acquisition_mode == 'STEM')
            assert_allclose(
                s.axes_manager[0].scale, 21.510044, atol=1E-5)
            assert s.axes_manager[0].units == 'nm'
            assert_allclose(
                s.axes_manager[1].scale, 21.510044, atol=1E-5)
            assert s.axes_manager[1].units == 'nm'
            assert (s.axes_manager[0].name == 'x')
            assert (s.axes_manager[1].name == 'y')
コード例 #2
0
ファイル: test_fei.py プロジェクト: mwalls/hyperspy
    def test_load_spectrum_line_scan(self):
        fname0 = os.path.join(
            self.dirpathold, '16x16-line_profile_horizontal_10x1024.emi')
        s0 = load(fname0)
        assert s0.data.shape == (10, 1024)
        assert s0.axes_manager.signal_dimension == 1
        assert (
            s0.metadata.Acquisition_instrument.TEM.acquisition_mode == 'STEM')
        assert_allclose(s0.axes_manager[0].scale, 0.12303, atol=1E-5)
        assert s0.axes_manager[0].units == 'nm'
        assert_allclose(s0.axes_manager[1].scale, 0.2, atol=1E-5)
        assert s0.axes_manager[1].units == 'eV'
        assert (s0.axes_manager[0].name == 'x')
        assert (s0.axes_manager[1].name == 'Energy')

        fname1 = os.path.join(
            self.dirpathold, '16x16-line_profile_diagonal_10x1024.emi')
        s1 = load(fname1)
        assert s1.data.shape == (10, 1024)
        assert s1.axes_manager.signal_dimension == 1
        assert (
            s1.metadata.Acquisition_instrument.TEM.acquisition_mode == 'STEM')
        assert_allclose(s1.axes_manager[0].scale, 0.166318, atol=1E-5)
        assert s1.axes_manager[0].units == 'nm'
        assert_allclose(s1.axes_manager[1].scale, 0.2, atol=1E-5)
        assert s1.axes_manager[1].units == 'eV'
        assert (s0.axes_manager[0].name == 'x')
コード例 #3
0
ファイル: test_fei.py プロジェクト: magnunor/hyperspy
 def test_load_emi_old_new_format(self):
     # TIA old format
     fname0 = os.path.join(self.dirpathold, '64x64_TEM_images_acquire.emi')
     load(fname0)
     # TIA new format
     fname1 = os.path.join(self.dirpathnew, '128x128_TEM_acquire-sum1.emi')
     load(fname1)
コード例 #4
0
ファイル: test_fei.py プロジェクト: magnunor/hyperspy
    def test_load_spectrum_point(self):
        fname0 = os.path.join(
            self.dirpathold, '16x16-point_spectrum-1x1024.emi')
        s0 = load(fname0)
        nt.assert_equal(s0.data.shape, (1, 1024))
        nt.assert_equal(s0.axes_manager.signal_dimension, 1)
        nt.assert_equal(
            s0.metadata.Acquisition_instrument.TEM.acquisition_mode, 'STEM')
        # single spectrum should be imported as 1D data, not 2D
        nt.assert_almost_equal(
            s0.axes_manager[0].scale, 1000000000.0, places=5)
        nt.assert_equal(s0.axes_manager[0].units, 'nm')
        nt.assert_almost_equal(s0.axes_manager[1].scale, 0.2, places=5)
        nt.assert_equal(s0.axes_manager[1].units, 'eV')

        fname1 = os.path.join(
            self.dirpathold, '16x16-2_point-spectra-2x1024.emi')
        s1 = load(fname1)
        nt.assert_equal(s1.data.shape, (2, 1024))
        nt.assert_equal(s1.axes_manager.signal_dimension, 1)
        nt.assert_equal(
            s1.metadata.Acquisition_instrument.TEM.acquisition_mode, 'STEM')
        nt.assert_almost_equal(
            s0.axes_manager[0].scale, 1000000000.0, places=5)
        nt.assert_equal(s0.axes_manager[0].units, 'nm')
        nt.assert_almost_equal(s0.axes_manager[1].scale, 0.2, places=5)
        nt.assert_equal(s0.axes_manager[1].units, 'eV')
コード例 #5
0
ファイル: test_fei.py プロジェクト: magnunor/hyperspy
 def test_load_multisignal_stack(self):
     fname0 = os.path.join(
         self.dirpathnew, '16x16-line_profile_horizontal_5x128x128_EDS.emi')
     fname1 = os.path.join(
         self.dirpathnew,
         '16x16-line_profile_horizontal_5x128x128_EDS_copy.emi')
     load([fname0, fname1], stack=True)
コード例 #6
0
ファイル: test_fei.py プロジェクト: mwalls/hyperspy
    def test_load_spectrum_point(self):
        fname0 = os.path.join(
            self.dirpathold, '16x16-point_spectrum-1x1024.emi')
        s0 = load(fname0)
        assert s0.data.shape == (1, 1024)
        assert s0.axes_manager.signal_dimension == 1
        assert (
            s0.metadata.Acquisition_instrument.TEM.acquisition_mode == 'STEM')
        # single spectrum should be imported as 1D data, not 2D
        # TODO: the following calibration is wrong because it parse the
        # 'Dim-1_CalibrationDelta' from the ser header, which is not correct in
        # case of point spectra. However, the position seems to be saved in
        # 'PositionX' and 'PositionY' arrays of the ser header, so it should
        # be possible to workaround using the position arrays.
#        nt.assert_almost_equal(
#            s0.axes_manager[0].scale, 1.0, places=5)
#        nt.assert_equal(s0.axes_manager[0].units, '')
#        nt.assert_is(s0.axes_manager[0].name, 'Position index')
        assert_allclose(s0.axes_manager[1].scale, 0.2, atol=1E-5)
        assert s0.axes_manager[1].units == 'eV'
        assert (s0.axes_manager[1].name == 'Energy')

        fname1 = os.path.join(
            self.dirpathold, '16x16-2_point-spectra-2x1024.emi')
        s1 = load(fname1)
        assert s1.data.shape == (2, 1024)
        assert s1.axes_manager.signal_dimension == 1
        assert (
            s1.metadata.Acquisition_instrument.TEM.acquisition_mode == 'STEM')
        assert_allclose(s0.axes_manager[1].scale, 0.2, atol=1E-5)
        assert s0.axes_manager[1].units == 'eV'
        assert (s0.axes_manager[1].name == 'Energy')
コード例 #7
0
ファイル: test_emd.py プロジェクト: woozey/hyperspy
 def test_load_with_dataset_name(self):
     s = load(self.hdf5_dataset_path)
     assert len(s) == len(self.dataset_name_list)
     for dataset_name, data_size in zip(
             self.dataset_name_list, self.data_size_list):
         s = load(self.hdf5_dataset_path, dataset_name=dataset_name)
         assert s.metadata.General.title == dataset_name
         assert s.data.shape == data_size
コード例 #8
0
ファイル: test_fei.py プロジェクト: mwalls/hyperspy
 def test_load_multisignal_stack_mismatch(self):
     fname0 = os.path.join(
         self.dirpathnew, '16x16-diffraction_imagel_5x5x256x256_EDS.emi')
     fname1 = os.path.join(
         self.dirpathnew,
         '16x16-diffraction_imagel_5x5x256x256_EDS_copy.emi')
     with pytest.raises(ValueError) as cm:
         load([fname0, fname1], stack=True)
         cm.match("The number of sub-signals per file does not match*")
コード例 #9
0
ファイル: test_fei.py プロジェクト: mwalls/hyperspy
 def test_date_time(self):
     fname0 = os.path.join(self.dirpathold, '64x64_TEM_images_acquire.emi')
     s = load(fname0)
     assert s.metadata.General.date == "2016-02-21"
     assert s.metadata.General.time == "17:50:18"
     fname1 = os.path.join(self.dirpathold,
                           '16x16-line_profile_horizontal_10x1024.emi')
     s = load(fname1)
     assert (s.metadata.General.date == "2016-02-22")
     assert (s.metadata.General.time == "11:50:36")
コード例 #10
0
ファイル: test_fei.py プロジェクト: magnunor/hyperspy
 def test_load_multisignal_stack_mismatch(self):
     fname0 = os.path.join(
         self.dirpathnew, '16x16-diffraction_imagel_5x5x256x256_EDS.emi')
     fname1 = os.path.join(
         self.dirpathnew,
         '16x16-diffraction_imagel_5x5x256x256_EDS_copy.emi')
     with nt.assert_raises(ValueError) as cm:
         load([fname0, fname1], stack=True)
     nt.assert_true(str(cm.exception).startswith(
         "The number of sub-signals per file does not match"))
コード例 #11
0
ファイル: test_ripple.py プロジェクト: thomasaarholt/hyperspy
def _run_test(dtype, shape, dim, tmpdir):
    s = _create_signal(shape=shape, dim=dim, dtype=dtype)
    filename = _get_filename(s)
    s.save(os.path.join(tmpdir, filename))
    s_just_saved = load(os.path.join(tmpdir, filename))
    s_ref = load(os.path.join(MYPATH, "ripple_files", filename))
    try:
        for stest in (s_just_saved, s_ref):
            npt.assert_array_equal(s.data, stest.data)
            nt.assert_equal(s.data.dtype, stest.data.dtype)
            nt.assert_equal(s.axes_manager.signal_dimension,
                            stest.axes_manager.signal_dimension)
            mdpaths = (
                "General.date",
                "General.time",
                "Signal.signal_type")
            if s.metadata.Signal.signal_type == "EELS":
                mdpaths += (
                    "Acquisition_instrument.TEM.convergence_angle",
                    "Acquisition_instrument.TEM.beam_energy",
                    "Acquisition_instrument.TEM.Detector.EELS.collection_angle"
                )
            elif "EDS" in s.metadata.Signal.signal_type:
                mdpaths += (
                    "Acquisition_instrument.TEM.tilt_stage",
                    "Acquisition_instrument.TEM.Detector.EDS.azimuth_angle",
                    "Acquisition_instrument.TEM.Detector.EDS.elevation_angle",
                    "Acquisition_instrument.TEM.Detector."
                    "EDS.energy_resolution_MnKa",
                    "Acquisition_instrument.TEM.Detector.EDS.live_time",
                )
            for mdpath in mdpaths:
                nt.assert_equal(
                    s.metadata.get_item(mdpath),
                    stest.metadata.get_item(mdpath),)
            for saxis, taxis in zip(
                    s.axes_manager._axes, stest.axes_manager._axes):
                nt.assert_equal(saxis.scale, taxis.scale)
                nt.assert_equal(saxis.offset, taxis.offset)
                nt.assert_equal(saxis.units, taxis.units)
                nt.assert_equal(saxis.name, taxis.name)
    except:
        raise
    finally:
        # As of v0.8.5 the data in the ripple files are loaded as memmaps
        # instead of array. In Windows the garbage collector doesn't close
        # the file before attempting to delete it making the test fail.
        # The following lines simply make sure that the memmap is closed.
        # del s_just_saved.data
        # del s_ref.data
        del s_just_saved
        del s_ref
        gc.collect()
コード例 #12
0
ファイル: test_dm3.py プロジェクト: mwalls/hyperspy
def test_location():
    fname_list = ['Fei HAADF-DE_location.dm3', 'Fei HAADF-FR_location.dm3',
                  'Fei HAADF-MX_location.dm3', 'Fei HAADF-UK_location.dm3']
    s = load(os.path.join(MY_PATH, "dm3_locale", fname_list[0]))
    assert s.metadata.General.date == "2016-08-27"
    assert s.metadata.General.time == "20:54:33"
    s = load(os.path.join(MY_PATH, "dm3_locale", fname_list[1]))
    assert s.metadata.General.date == "2016-08-27"
    assert s.metadata.General.time == "20:55:20"
    s = load(os.path.join(MY_PATH, "dm3_locale", fname_list[2]))
    assert s.metadata.General.date == "2016-08-27"
#    assert_equal(s.metadata.General.time, "20:55:20") # MX not working
    s = load(os.path.join(MY_PATH, "dm3_locale", fname_list[3]))
    assert s.metadata.General.date == "2016-08-27"
    assert s.metadata.General.time == "20:52:30"
コード例 #13
0
 def test_save_and_load_model(self):
     m = self.m
     m.save("tmp.hdf5")
     l = load("tmp.hdf5")
     nt.assert_true(hasattr(l.models, "a"))
     n = l.models.restore("a")
     nt.assert_equal(n.components.something.A.value, 13)
コード例 #14
0
 def test_save_and_load_model(self):
     m = self.m
     m.save('tmp.hdf5', overwrite=True)
     l = load('tmp.hdf5')
     nt.assert_true(hasattr(l.models, 'a'))
     n = l.models.restore('a')
     nt.assert_equal(n.components.something.A.value, 13)
コード例 #15
0
ファイル: test_hdf5.py プロジェクト: woozey/hyperspy
 def test_save_load_permanent_marker_all_types(self):
     x1, y1, x2, y2 = 5, 2, 1, 8
     s = Signal2D(np.arange(100).reshape(10, 10))
     m0_list = [
         markers.point(x=x1, y=y1),
         markers.horizontal_line(y=y1),
         markers.horizontal_line_segment(x1=x1, x2=x2, y=y1),
         markers.line_segment(x1=x1, x2=x2, y1=y1, y2=y2),
         markers.rectangle(x1=x1, x2=x2, y1=y1, y2=y2),
         markers.text(x=x1, y=y1, text="test"),
         markers.vertical_line(x=x1),
         markers.vertical_line_segment(x=x1, y1=y1, y2=y2),
     ]
     for m in m0_list:
         s.add_marker(m, permanent=True)
     with tempfile.TemporaryDirectory() as tmp:
         filename = tmp + '/testallmarkersfile.hdf5'
     s.save(filename)
     s1 = load(filename)
     markers_dict = s1.metadata.Markers
     m0_dict_list = []
     m1_dict_list = []
     for m in m0_list:
         m0_dict_list.append(san_dict(m._to_dictionary()))
         m1_dict_list.append(
             san_dict(markers_dict.get_item(m.name)._to_dictionary()))
     assert len(list(s1.metadata.Markers)) == 8
     for m0_dict, m1_dict in zip(m0_dict_list, m1_dict_list):
         assert m0_dict == m1_dict
コード例 #16
0
ファイル: test_model_storing.py プロジェクト: woozey/hyperspy
 def test_save_and_load_model(self):
     m = self.m
     m.save('tmp.hdf5', overwrite=True)
     l = load('tmp.hdf5')
     assert hasattr(l.models, 'a')
     n = l.models.restore('a')
     assert n[0].fine_structure_width == 50
コード例 #17
0
ファイル: test_hdf5.py プロジェクト: woozey/hyperspy
 def test_quantity(self, tmpfilepath):
     s = self.s
     quantity = "Intensity (electron)"
     s.metadata.Signal.quantity = quantity
     s.save(tmpfilepath)
     l = load(tmpfilepath + ".hspy")
     assert l.metadata.Signal.quantity == quantity
コード例 #18
0
ファイル: main_window.py プロジェクト: keflavich/hyperspy
 def open_file(self, *args, **kw):
     S = LoadSpectrum()
     S.edit_traits()
     if S.sp_file is not t.Undefined:
         s = io.load(S.sp_file)
         s.plot()
         interactive_ns['s'] = s
コード例 #19
0
ファイル: test_dm3.py プロジェクト: magnunor/hyperspy
def test_read_EDS_metadata():
    fname = os.path.join(my_path, "dm3_1D_data", "test-EDS_spectrum.dm3")
    s = load(fname)
    md = s.metadata
    nt.assert_equal(md.Acquisition_instrument.TEM.acquisition_mode, "STEM")
    nt.assert_almost_equal(
        md.Acquisition_instrument.TEM.Detector.EDS.azimuth_angle, 45.0)
    nt.assert_almost_equal(
        md.Acquisition_instrument.TEM.Detector.EDS.elevation_angle, 18.0)
    nt.assert_almost_equal(
        md.Acquisition_instrument.TEM.Detector.EDS.energy_resolution_MnKa, 130.0)
    nt.assert_almost_equal(
        md.Acquisition_instrument.TEM.Detector.EDS.live_time, 3.806)
    nt.assert_almost_equal(
        md.Acquisition_instrument.TEM.Detector.EDS.real_time, 4.233)
    nt.assert_almost_equal(md.Acquisition_instrument.TEM.tilt_stage, 24.95,
                           places=2)
    nt.assert_almost_equal(md.Acquisition_instrument.TEM.beam_energy, 200.0)
    nt.assert_equal(md.Acquisition_instrument.TEM.microscope, "FEI Titan")
    nt.assert_almost_equal(md.Acquisition_instrument.TEM.camera_length, 135.0)
    nt.assert_almost_equal(
        md.Acquisition_instrument.TEM.magnification,
        320000.0)
    nt.assert_equal(md.General.date, "2016-08-08")
    nt.assert_equal(md.General.original_filename, "test-EDS_spectrum.dm3")
    nt.assert_equal(md.General.title, "EDS Spectrum")
    nt.assert_equal(md.General.time, "21:46:19")
    nt.assert_equal(md.Signal.quantity, "X-rays (Counts)")
    nt.assert_equal(md.Signal.signal_type, "EDS_TEM")
コード例 #20
0
ファイル: test_hdf5.py プロジェクト: woozey/hyperspy
 def test_metadata_update_to_v3_0(self):
     md = {'Acquisition_instrument': {'SEM': {'Stage': {'tilt_alpha': 5.0}},
                                      'TEM': {'Detector': {'Camera': {'exposure': 0.20000000000000001}},
                                              'Stage': {'tilt_alpha': 10.0},
                                              'acquisition_mode': 'TEM',
                                              'beam_current': 0.0,
                                              'beam_energy': 200.0,
                                              'camera_length': 320.00000000000006,
                                              'microscope': 'FEI Tecnai'}},
           'General': {'date': '2014-07-09',
                       'original_filename': 'test_diffraction_pattern.dm3',
                       'time': '18:56:37',
                       'title': 'test_diffraction_pattern'},
           'Signal': {'Noise_properties': {'Variance_linear_model': {'gain_factor': 1.0,
                                                                     'gain_offset': 0.0}},
                      'binned': False,
                      'quantity': 'Intensity',
                      'signal_type': ''},
           '_HyperSpy': {'Folding': {'original_axes_manager': None,
                                     'original_shape': None,
                                     'signal_unfolded': False,
                                     'unfolded': False}}}
     s = load(os.path.join(
         my_path,
         "hdf5_files",
         'example2_v2.2.hspy'))
     assert_deep_almost_equal(s.metadata.as_dictionary(), md)
コード例 #21
0
ファイル: test_hdf5.py プロジェクト: thomasaarholt/hyperspy
 def test_quantity(self):
     s = self.s
     quantity = "Intensity (electron)"
     s.metadata.Signal.quantity = quantity
     s.save('tmp.hdf5', overwrite=True)
     l = load('tmp.hdf5')
     nt.assert_equal(l.metadata.Signal.quantity, quantity)
コード例 #22
0
ファイル: test_dm3.py プロジェクト: magnunor/hyperspy
def test_read_EELS_metadata():
    fname = os.path.join(my_path, "dm3_1D_data", "test-EELS_spectrum.dm3")
    s = load(fname)
    md = s.metadata
    nt.assert_equal(md.Acquisition_instrument.TEM.acquisition_mode, "STEM")
    nt.assert_almost_equal(md.Acquisition_instrument.TEM.beam_energy, 200.0)
    nt.assert_equal(md.Acquisition_instrument.TEM.microscope, "FEI Titan")
    nt.assert_almost_equal(md.Acquisition_instrument.TEM.camera_length, 135.0)
    nt.assert_almost_equal(
        md.Acquisition_instrument.TEM.magnification,
        640000.0)
    nt.assert_almost_equal(md.Acquisition_instrument.TEM.tilt_stage, 24.95,
                           places=2)
    nt.assert_almost_equal(
        md.Acquisition_instrument.TEM.convergence_angle, 21.0)
    nt.assert_almost_equal(
        md.Acquisition_instrument.TEM.Detector.EELS.collection_angle, 0.0)
    nt.assert_almost_equal(
        md.Acquisition_instrument.TEM.Detector.EELS.exposure,
        0.00349999)
    nt.assert_almost_equal(
        md.Acquisition_instrument.TEM.Detector.EELS.frame_number, 50)
    nt.assert_equal(
        md.Acquisition_instrument.TEM.Detector.EELS.spectrometer,
        'GIF Quantum ER')
    nt.assert_equal(
        md.Acquisition_instrument.TEM.Detector.EELS.aperture_size,
        5.0)
    nt.assert_equal(md.General.date, "2016-08-08")
    nt.assert_equal(md.General.original_filename, "test-EELS_spectrum.dm3")
    nt.assert_equal(md.General.title, "EELS Acquire")
    nt.assert_equal(md.General.time, "19:35:17")
    nt.assert_equal(md.Signal.quantity, "Electrons (Counts)")
    nt.assert_equal(md.Signal.signal_type, "EELS")
コード例 #23
0
ファイル: test_fei.py プロジェクト: mwalls/hyperspy
 def test_load_diffraction_line_scan(self):
     fname0 = os.path.join(
         self.dirpathnew, '16x16-line_profile_horizontal_5x128x128_EDS.emi')
     s0 = load(fname0)
     # s0[0] contains EDS
     assert s0[0].data.shape == (5, 4000)
     assert s0[0].axes_manager.signal_dimension == 1
     assert (
         s0[0].metadata.Acquisition_instrument.TEM.acquisition_mode == 'STEM')
     assert_allclose(s0[0].axes_manager[0].scale, 3.68864, atol=1E-5)
     assert s0[0].axes_manager[0].units == 'nm'
     assert_allclose(s0[0].axes_manager[1].scale, 5.0, atol=1E-5)
     assert s0[0].axes_manager[1].units == 'eV'
     assert (s0[0].axes_manager[0].name == 'x')
     assert (s0[0].axes_manager[1].name == 'Energy')
     # s0[1] contains diffraction patterns
     assert s0[1].data.shape == (5, 128, 128)
     assert s0[1].axes_manager.signal_dimension == 2
     assert (
         s0[1].metadata.Acquisition_instrument.TEM.acquisition_mode == 'STEM')
     assert_allclose(s0[1].axes_manager[0].scale, 3.68864, atol=1E-5)
     assert s0[1].axes_manager[0].units == 'nm'
     assert s0[1].axes_manager[1].units == '1/nm'
     assert (s0[1].axes_manager[0].name == 'x')
     assert_allclose(s0[1].axes_manager[1].scale, 0.17435, atol=1E-5)
     assert_allclose(s0[1].axes_manager[2].scale, 0.17435, atol=1E-5)
     assert s0[1].axes_manager[2].units == '1/nm'
     assert (s0[1].axes_manager[1].units == '1/nm')
     assert (s0[1].axes_manager[1].name == 'x')
     assert (s0[1].axes_manager[2].name == 'y')
コード例 #24
0
ファイル: test_dm3.py プロジェクト: mwalls/hyperspy
def test_read_EDS_metadata():
    fname = os.path.join(MY_PATH, "dm3_1D_data", "test-EDS_spectrum.dm3")
    s = load(fname)
    md = s.metadata
    assert md.Acquisition_instrument.TEM.acquisition_mode == "STEM"
    assert_allclose(
        md.Acquisition_instrument.TEM.Detector.EDS.azimuth_angle, 45.0)
    assert_allclose(
        md.Acquisition_instrument.TEM.Detector.EDS.elevation_angle, 18.0)
    assert_allclose(
        md.Acquisition_instrument.TEM.Detector.EDS.energy_resolution_MnKa, 130.0)
    assert_allclose(
        md.Acquisition_instrument.TEM.Detector.EDS.live_time, 3.806)
    assert_allclose(
        md.Acquisition_instrument.TEM.Detector.EDS.real_time, 4.233)
    assert_allclose(md.Acquisition_instrument.TEM.tilt_stage, 24.95,
                    atol=1E-2)
    assert_allclose(md.Acquisition_instrument.TEM.beam_energy, 200.0)
    assert md.Acquisition_instrument.TEM.microscope == "FEI Titan"
    assert_allclose(md.Acquisition_instrument.TEM.camera_length, 135.0)
    assert_allclose(
        md.Acquisition_instrument.TEM.magnification,
        320000.0)
    assert md.General.date == "2016-08-08"
    assert md.General.original_filename == "test-EDS_spectrum.dm3"
    assert md.General.title == "EDS Spectrum"
    assert md.General.time == "21:46:19"
    assert md.Signal.quantity == "X-rays (Counts)"
    assert md.Signal.signal_type == "EDS_TEM"
    assert_allclose(
        md.Signal.Noise_properties.Variance_linear_model.gain_factor,
        1.0)
    assert_allclose(
        md.Signal.Noise_properties.Variance_linear_model.gain_offset,
        0.0)
コード例 #25
0
ファイル: test_fei.py プロジェクト: AakashV/hyperspy
 def test_load_units_scale(self):
     # TEM image
     fname0 = os.path.join(self.dirpathold, '64x64_TEM_images_acquire.emi')
     s0 = load(fname0)
     nt.assert_almost_equal(s0.axes_manager[0].scale, 6.28183, places=5)
     nt.assert_equal(s0.axes_manager[0].units, 'nm')
     # TEM diffraction
     fname1 = os.path.join(self.dirpathold, '64x64_diffraction_acquire.emi')
     s1 = load(fname1)
     nt.assert_almost_equal(s1.axes_manager[0].scale, 0.10157, places=4)
     nt.assert_equal(s1.axes_manager[0].units, '1/nm')
     # STEM diffraction
     fname2 = os.path.join(self.dirpathold, '16x16_STEM_BF_DF_acquire.emi')
     s2 = load(fname2)
     nt.assert_equal(s2[0].axes_manager[0].units, 'nm')
     nt.assert_almost_equal(s2[0].axes_manager[0].scale, 21.5100, places=4)
コード例 #26
0
ファイル: test_model_storing.py プロジェクト: mwalls/hyperspy
 def test_save_and_load_model(self):
     m = self.m
     m.save('tmp.hdf5', overwrite=True)
     l = load('tmp.hdf5')
     assert hasattr(l.models, 'a')
     n = l.models.restore('a')
     assert n.components.something.A.value == 13
コード例 #27
0
 def test_load_stackbuilder_imagestack(self):
     image_stack = load(os.path.join(my_path, "dm_stackbuilder_plugin",
                                     "test_stackbuilder_imagestack.dm3"))
     data_dimensions = image_stack.data.ndim
     am = image_stack.axes_manager
     axes_dimensions = am.signal_dimension + am.navigation_dimension
     assert data_dimensions == axes_dimensions
     md = image_stack.metadata
     assert md.Acquisition_instrument.TEM.acquisition_mode == "STEM"
     assert_allclose(md.Acquisition_instrument.TEM.beam_current, 0.0)
     assert_allclose(md.Acquisition_instrument.TEM.beam_energy, 200.0)
     assert_allclose(md.Acquisition_instrument.TEM.camera_length, 15.0)
     assert_allclose(
         md.Acquisition_instrument.TEM.dwell_time, 0.03000005078125)
     assert_allclose(md.Acquisition_instrument.TEM.magnification, 200000.0)
     assert md.Acquisition_instrument.TEM.microscope == "JEM-ARM200F"
     assert md.General.date == "2015-05-17"
     assert md.General.original_filename == "test_stackbuilder_imagestack.dm3"
     assert md.General.title == "stackbuilder_test4_16x2"
     assert md.General.time == "17:00:16"
     assert md.Sample.description == "DWNC"
     assert md.Signal.quantity == "Electrons (Counts)"
     assert md.Signal.signal_type == ""
     assert md.Signal.binned == False
     assert_allclose(md.Signal.Noise_properties.Variance_linear_model.gain_factor,
                     0.15674974)
     assert_allclose(md.Signal.Noise_properties.Variance_linear_model.gain_offset,
                     2228741.5)
コード例 #28
0
ファイル: test_hdf5.py プロジェクト: MartialD/hyperspy
 def test_numpy_only_inner_lists(self):
     s = self.s
     s.metadata.set_item("test", [[1.0, 2], ("3", 4)])
     s.save("tmp.hdf5", overwrite=True)
     l = load("tmp.hdf5")
     nt.assert_is_instance(l.metadata.test, list)
     nt.assert_is_instance(l.metadata.test[0], list)
     nt.assert_is_instance(l.metadata.test[1], tuple)
コード例 #29
0
ファイル: test_hdf5.py プロジェクト: SungJinKang2/hyperspy
 def test_numpy_only_inner_lists(self):
     s = self.s
     s.metadata.set_item('test', [[1., 2], ('3', 4)])
     s.save('tmp.hdf5', overwrite=True)
     l = load('tmp.hdf5')
     nt.assert_is_instance(l.metadata.test, list)
     nt.assert_is_instance(l.metadata.test[0], list)
     nt.assert_is_instance(l.metadata.test[1], tuple)
コード例 #30
0
 def test_load_stackbuilder_imagestack(self):
     image_stack = load(
         my_path +
         "/dm_stackbuilder_plugin/test_stackbuilder_imagestack.dm3")
     data_dimensions = image_stack.data.ndim
     am = image_stack.axes_manager
     axes_dimensions = am.signal_dimension + am.navigation_dimension
     assert_equal(data_dimensions, axes_dimensions)
コード例 #31
0
ファイル: test_msa.py プロジェクト: chrinide/hyperspy
def test_minimum_metadata_example():
    s = load(os.path.join(my_path, "msa_files", "minimum_metadata.msa"))
    assert minimum_md_om == s.original_metadata.as_dictionary()
コード例 #32
0
def test_with_title_loading():
    signal = load(os.path.join(my_path, 'unf_files', 'example_with_title.unf'))
    np.testing.assert_equal(signal.data, data_image)
    np.testing.assert_equal(signal.original_metadata.IFORM, 2)  # float
    np.testing.assert_equal(signal.metadata.General.title, test_title)
    assert isinstance(signal, Signal2D)
コード例 #33
0
 def setup_class(cls):
     cls.spc = load(os.path.join(TMP_DIR.name, "spc0_61-ipr333_xrf.spc"))
     cls.spc_loadAll = load(os.path.join(TMP_DIR.name,
                                         "spc0_61-ipr333_xrf.spc"),
                            load_all_spc=True)
コード例 #34
0
ファイル: test_emd.py プロジェクト: ytzeng1/hyperspy
def test_fei_no_frametime():
    signal = load(
        os.path.join(my_path, 'emd_files', 'fei_example_tem_stack.emd'))
    assert isinstance(signal, Signal2D)
    assert signal.data.shape == (2, 3, 3)
    assert signal.axes_manager["Time"].scale == 0.8
コード例 #35
0
ファイル: test_emd.py プロジェクト: realxnl/hyperspy
 def test_load_with_dataset_name_several(self):
     dataset_name = self.dataset_name_list[0:2]
     s = load(self.hdf5_dataset_path, dataset_name=dataset_name)
     assert len(s) == len(dataset_name)
     assert s[0].metadata.General.title in dataset_name
     assert s[1].metadata.General.title in dataset_name
コード例 #36
0
ファイル: test_emd.py プロジェクト: realxnl/hyperspy
 def test_wrong_dataset_name(self):
     with pytest.raises(IOError):
         load(self.hdf5_dataset_path, dataset_name='a_wrong_name')
     with pytest.raises(IOError):
         load(self.hdf5_dataset_path,
              dataset_name=[self.dataset_name_list[0], 'a_wrong_name'])
コード例 #37
0
ファイル: test_emd.py プロジェクト: realxnl/hyperspy
 def test_load_file(self):
     s = load(self.hdf5_dataset_path)
     assert len(s) == len(self.group_path_list)
     title_list = [s_temp.metadata.General.title for s_temp in s]
     assert sorted(self.group_path_list) == sorted(title_list)
コード例 #38
0
ファイル: test_emd.py プロジェクト: realxnl/hyperspy
def test_image_2d_loading():
    signal = load(os.path.join(my_path, 'emd_files', 'example_image.emd'))
    np.testing.assert_equal(signal.data, data_image)
    assert isinstance(signal, Signal2D)
コード例 #39
0
ファイル: test_emd.py プロジェクト: realxnl/hyperspy
def test_spectrum_1d_loading():
    signal = load(os.path.join(my_path, 'emd_files', 'example_spectrum.emd'))
    np.testing.assert_equal(signal.data, data_spectrum)
    assert isinstance(signal, Signal1D)
コード例 #40
0
ファイル: test_mrcz.py プロジェクト: narendraraj/hyperspy
    def compareSaveLoad(self,
                        testShape,
                        dtype='int8',
                        compressor=None,
                        clevel=1,
                        lazy=False,
                        do_async=False,
                        **kwargs):
        # This is the main function which reads and writes from disk.
        mrcName = os.path.join(tmpDir,
                               "testMage_{}_lazy_{}.mrcz".format(dtype, lazy))

        dtype = np.dtype(dtype)
        if dtype == 'float32' or dtype == 'float64':
            testData = np.random.normal(size=testShape).astype(dtype)
        elif dtype == 'complex64' or dtype == 'complex128':
            testData = np.random.normal(size=testShape).astype(
                dtype) + 1.0j * np.random.normal(size=testShape).astype(dtype)
        else:  # integers
            testData = np.random.randint(10, size=testShape).astype(dtype)

        testSignal = signals.Signal2D(testData)
        if lazy:
            testSignal = testSignal.as_lazy()
        # Unfortunately one cannot iterate over axes_manager in a Pythonic way
        # for axis in testSignal.axes_manager:
        testSignal.axes_manager[0].name = 'z'
        testSignal.axes_manager[0].scale = np.random.uniform(low=0.0, high=1.0)
        testSignal.axes_manager[0].units = 'nm'
        testSignal.axes_manager[1].name = 'x'
        testSignal.axes_manager[1].scale = np.random.uniform(low=0.0, high=1.0)
        testSignal.axes_manager[1].units = 'nm'
        testSignal.axes_manager[2].name = 'y'
        testSignal.axes_manager[2].scale = np.random.uniform(low=0.0, high=1.0)
        testSignal.axes_manager[2].units = 'nm'

        # Meta-data that goes into MRC fixed header
        testSignal.metadata.set_item('Acquisition_instrument.TEM.beam_energy',
                                     300.0)
        # Meta-data that goes into JSON extended header
        testSignal.metadata.set_item(
            'Acquisition_instrument.TEM.magnification', 25000)
        testSignal.metadata.set_item(
            'Signal.Noise_properties.Variance_linear_model.gain_factor', 1.0)

        save(mrcName,
             testSignal,
             compressor=compressor,
             clevel=clevel,
             do_async=do_async,
             **kwargs)
        if do_async:
            # Poll file on disk since we don't return the
            # concurrent.futures.Future
            t_stop = perf_counter() + MAX_ASYNC_TIME
            sleep(0.005)
            while (perf_counter() < t_stop):
                try:
                    fh = open(mrcName, 'a')
                    fh.close()
                    break
                except IOError:
                    sleep(0.001)
            print("Time to save file: {} s".format(perf_counter() -
                                                   (t_stop - MAX_ASYNC_TIME)))
            sleep(0.005)

        reSignal = load(mrcName)
        try:
            os.remove(mrcName)
        except IOError:
            print("Warning: file {} left on disk".format(mrcName))

        npt.assert_array_almost_equal(testSignal.data.shape,
                                      reSignal.data.shape)
        npt.assert_array_almost_equal(testSignal.data, reSignal.data)
        npt.assert_almost_equal(
            testSignal.metadata.Acquisition_instrument.TEM.beam_energy,
            reSignal.metadata.Acquisition_instrument.TEM.beam_energy)
        npt.assert_almost_equal(
            testSignal.metadata.Acquisition_instrument.TEM.magnification,
            reSignal.metadata.Acquisition_instrument.TEM.magnification)

        for aName in ['x', 'y', 'z']:
            npt.assert_equal(testSignal.axes_manager[aName].size,
                             reSignal.axes_manager[aName].size)
            npt.assert_almost_equal(testSignal.axes_manager[aName].scale,
                                    reSignal.axes_manager[aName].scale)

        if dtype == 'complex64':
            assert isinstance(reSignal, signals.ComplexSignal2D)
        else:
            assert isinstance(reSignal, signals.Signal2D)
        assert_deep_almost_equal(testSignal.axes_manager.as_dictionary(),
                                 reSignal.axes_manager.as_dictionary())
        assert_deep_almost_equal(testSignal.metadata.as_dictionary(),
                                 reSignal.metadata.as_dictionary())

        return reSignal
コード例 #41
0
def test_image_int32_loading():
    signal = load(os.path.join(my_path, 'unf_files',
                               'example_image_int32.unf'))
    np.testing.assert_equal(signal.data, data_image_int32)
    np.testing.assert_equal(signal.original_metadata.IFORM, 4)  # int32
    assert isinstance(signal, Signal2D)
コード例 #42
0
def test_signal_3d_loading():
    signal = load(os.path.join(my_path, 'unf_files', 'example_signal_3d.unf'))
    np.testing.assert_equal(signal.data, data_signal)
    np.testing.assert_equal(signal.original_metadata.IFORM, 2)  # float
    assert isinstance(signal, BaseSignal)
コード例 #43
0
 def setup_class(cls):
     cls.spd = load(os.path.join(TMP_DIR.name, "spc0_61-ipr333_xrf.spd"),
                    convert_units=True)
コード例 #44
0
ファイル: test_msa.py プロジェクト: chrinide/hyperspy
 def setup_method(self, method):
     self.s = load(os.path.join(my_path, "msa_files", "example2.msa"))
コード例 #45
0
ファイル: test_msa.py プロジェクト: jonpdx/hyperspy
 def setUp(self):
     self.s = load(os.path.join(my_path, "msa_files", "example1.msa"))
コード例 #46
0
ファイル: test_emd.py プロジェクト: realxnl/hyperspy
def test_data_axis_length_1():
    filename = os.path.join(my_path, 'emd_files', 'example_axis_len_1.emd')
    signal = load(filename)
    assert signal.data.shape == (5, 1, 5)
コード例 #47
0
ファイル: test_dm3.py プロジェクト: bm424/hyperspy
def check_load(filename, subfolder, key):
    print('loading %s\\test-%i' % (subfolder, key))
    s = load(filename)
    # Store the data for the next tests
    data_dict[subfolder][key] = s.data
コード例 #48
0
ファイル: test_emd.py プロジェクト: realxnl/hyperspy
def test_signal_3d_loading():
    signal = load(os.path.join(my_path, 'emd_files', 'example_signal.emd'))
    np.testing.assert_equal(signal.data, data_signal)
    assert isinstance(signal, BaseSignal)
コード例 #49
0
    def test_fei_emd_si_non_square_10frames(self):
        s = load(
            os.path.join(self.fei_files_path,
                         'fei_SI_SuperX-HAADF_10frames_10x50.emd'))
        signal = s[1]
        assert isinstance(signal, EDSTEMSpectrum)
        assert signal.axes_manager[0].name == 'x'
        assert signal.axes_manager[0].size == 10
        assert signal.axes_manager[0].units == 'nm'
        assert_allclose(signal.axes_manager[0].scale, 1.234009, atol=1E-5)
        assert signal.axes_manager[1].name == 'y'
        assert signal.axes_manager[1].size == 50
        assert signal.axes_manager[1].units == 'nm'
        assert_allclose(signal.axes_manager[1].scale, 1.234009, atol=1E-5)
        assert signal.axes_manager[2].name == 'X-ray energy'
        assert signal.axes_manager[2].size == 4096
        assert signal.axes_manager[2].units == 'keV'
        assert_allclose(signal.axes_manager[2].scale, 0.005, atol=1E-5)
        assert signal.metadata.Acquisition_instrument.TEM.Detector.EDS.number_of_frames == 10

        signal0 = s[0]
        assert isinstance(signal0, Signal2D)
        assert signal0.axes_manager[0].name == 'x'
        assert signal0.axes_manager[0].size == 10
        assert signal0.axes_manager[0].units == 'nm'
        assert_allclose(signal0.axes_manager[0].scale, 1.234009, atol=1E-5)
        assert signal0.axes_manager[1].name == 'y'
        assert signal0.axes_manager[1].size == 50
        assert signal0.axes_manager[1].units == 'nm'

        s = load(os.path.join(self.fei_files_path,
                              'fei_SI_SuperX-HAADF_10frames_10x50.emd'),
                 sum_frames=False,
                 SI_dtype=np.uint8,
                 rebin_energy=256)
        signal = s[1]
        assert isinstance(signal, EDSTEMSpectrum)
        assert signal.axes_manager.navigation_shape == (10, 50, 10)
        assert signal.axes_manager[0].name == 'x'
        assert signal.axes_manager[0].size == 10
        assert signal.axes_manager[0].units == 'nm'
        assert_allclose(signal.axes_manager[0].scale, 1.234009, atol=1E-5)
        assert signal.axes_manager[1].name == 'y'
        assert signal.axes_manager[1].size == 50
        assert signal.axes_manager[1].units == 'nm'
        assert_allclose(signal.axes_manager[1].scale, 1.234009, atol=1E-5)
        assert signal.axes_manager[2].name == 'Time'
        assert signal.axes_manager[2].size == 10
        assert signal.axes_manager[2].units == 's'
        assert_allclose(signal.axes_manager[2].scale, 0.76800, atol=1E-5)
        assert signal.axes_manager[3].name == 'X-ray energy'
        assert signal.axes_manager[3].size == 16
        assert signal.axes_manager[3].units == 'keV'
        assert_allclose(signal.axes_manager[3].scale, 1.28, atol=1E-5)
        assert signal.metadata.Acquisition_instrument.TEM.Detector.EDS.number_of_frames == 10

        s = load(os.path.join(self.fei_files_path,
                              'fei_SI_SuperX-HAADF_10frames_10x50.emd'),
                 sum_frames=False,
                 last_frame=5,
                 SI_dtype=np.uint8,
                 rebin_energy=256)
        signal = s[1]
        assert isinstance(signal, EDSTEMSpectrum)
        assert signal.axes_manager.navigation_shape == (10, 50, 5)
        assert signal.axes_manager[0].name == 'x'
        assert signal.axes_manager[0].size == 10
        assert signal.axes_manager[0].units == 'nm'
        assert_allclose(signal.axes_manager[0].scale, 1.234009, atol=1E-5)
        assert signal.axes_manager[1].name == 'y'
        assert signal.axes_manager[1].size == 50
        assert signal.axes_manager[1].units == 'nm'
        assert_allclose(signal.axes_manager[1].scale, 1.234009, atol=1E-5)
        assert signal.axes_manager[2].name == 'Time'
        assert signal.axes_manager[2].size == 5
        assert signal.axes_manager[2].units == 's'
        assert_allclose(signal.axes_manager[2].scale, 0.76800, atol=1E-5)
        assert signal.axes_manager[3].name == 'X-ray energy'
        assert signal.axes_manager[3].size == 16
        assert signal.axes_manager[3].units == 'keV'
        assert_allclose(signal.axes_manager[3].scale, 1.28, atol=1E-5)
        assert signal.metadata.Acquisition_instrument.TEM.Detector.EDS.number_of_frames == 5

        s = load(os.path.join(self.fei_files_path,
                              'fei_SI_SuperX-HAADF_10frames_10x50.emd'),
                 sum_frames=False,
                 first_frame=4,
                 SI_dtype=np.uint8,
                 rebin_energy=256)
        signal = s[1]
        assert isinstance(signal, EDSTEMSpectrum)
        assert signal.axes_manager.navigation_shape == (10, 50, 6)
        assert signal.axes_manager[0].name == 'x'
        assert signal.axes_manager[0].size == 10
        assert signal.axes_manager[0].units == 'nm'
        assert_allclose(signal.axes_manager[0].scale, 1.234009, atol=1E-5)
        assert signal.axes_manager[1].name == 'y'
        assert signal.axes_manager[1].size == 50
        assert signal.axes_manager[1].units == 'nm'
        assert_allclose(signal.axes_manager[1].scale, 1.234009, atol=1E-5)
        assert signal.axes_manager[2].name == 'Time'
        assert signal.axes_manager[2].size == 6
        assert signal.axes_manager[2].units == 's'
        assert_allclose(signal.axes_manager[2].scale, 0.76800, atol=1E-5)
        assert signal.axes_manager[3].name == 'X-ray energy'
        assert signal.axes_manager[3].size == 16
        assert signal.axes_manager[3].units == 'keV'
        assert_allclose(signal.axes_manager[3].scale, 1.28, atol=1E-5)
        assert signal.metadata.Acquisition_instrument.TEM.Detector.EDS.number_of_frames == 6
コード例 #50
0
ファイル: test_emd.py プロジェクト: realxnl/hyperspy
    def test_fei_emd_si_non_square_10frames(self, lazy):
        s = load(os.path.join(self.fei_files_path,
                              'fei_SI_SuperX-HAADF_10frames_10x50.emd'),
                 lazy=lazy)
        signal = s[1]
        if lazy:
            assert signal._lazy
            signal.compute(close_file=True)
        assert isinstance(signal, EDSTEMSpectrum)
        assert signal.axes_manager[0].name == 'x'
        assert signal.axes_manager[0].size == 10
        assert signal.axes_manager[0].units == 'nm'
        assert_allclose(signal.axes_manager[0].scale, 1.234009, atol=1E-5)
        assert signal.axes_manager[1].name == 'y'
        assert signal.axes_manager[1].size == 50
        assert signal.axes_manager[1].units == 'nm'
        assert_allclose(signal.axes_manager[1].scale, 1.234009, atol=1E-5)
        assert signal.axes_manager[2].name == 'X-ray energy'
        assert signal.axes_manager[2].size == 4096
        assert signal.axes_manager[2].units == 'keV'
        assert_allclose(signal.axes_manager[2].scale, 0.005, atol=1E-5)

        signal0 = s[0]
        if lazy:
            assert signal0._lazy
            signal0.compute(close_file=True)
        assert isinstance(signal0, Signal2D)
        assert signal0.axes_manager[0].name == 'x'
        assert signal0.axes_manager[0].size == 10
        assert signal0.axes_manager[0].units == 'nm'
        assert_allclose(signal0.axes_manager[0].scale, 1.234009, atol=1E-5)
        assert signal0.axes_manager[1].name == 'y'
        assert signal0.axes_manager[1].size == 50
        assert signal0.axes_manager[1].units == 'nm'

        s = load(os.path.join(self.fei_files_path,
                              'fei_SI_SuperX-HAADF_10frames_10x50.emd'),
                 sum_frames=False,
                 SI_dtype=np.uint8,
                 rebin_energy=256,
                 lazy=lazy)
        signal = s[1]
        if lazy:
            assert signal._lazy
            signal.compute(close_file=True)
        assert isinstance(signal, EDSTEMSpectrum)
        assert signal.axes_manager.navigation_shape == (10, 50, 10)
        assert signal.axes_manager[0].name == 'x'
        assert signal.axes_manager[0].size == 10
        assert signal.axes_manager[0].units == 'nm'
        assert_allclose(signal.axes_manager[0].scale, 1.234009, atol=1E-5)
        assert signal.axes_manager[1].name == 'y'
        assert signal.axes_manager[1].size == 50
        assert signal.axes_manager[1].units == 'nm'
        assert_allclose(signal.axes_manager[1].scale, 1.234009, atol=1E-5)
        assert signal.axes_manager[2].name == 'Time'
        assert signal.axes_manager[2].size == 10
        assert signal.axes_manager[2].units == 's'
        assert_allclose(signal.axes_manager[2].scale, 0.76800, atol=1E-5)
        assert signal.axes_manager[3].name == 'X-ray energy'
        assert signal.axes_manager[3].size == 16
        assert signal.axes_manager[3].units == 'keV'
        assert_allclose(signal.axes_manager[3].scale, 1.28, atol=1E-5)

        s = load(os.path.join(self.fei_files_path,
                              'fei_SI_SuperX-HAADF_10frames_10x50.emd'),
                 sum_frames=False,
                 last_frame=5,
                 SI_dtype=np.uint8,
                 rebin_energy=256,
                 lazy=lazy)
        signal = s[1]
        if lazy:
            assert signal._lazy
            signal.compute(close_file=True)
        assert isinstance(signal, EDSTEMSpectrum)
        assert signal.axes_manager.navigation_shape == (10, 50, 5)
        assert signal.axes_manager[0].name == 'x'
        assert signal.axes_manager[0].size == 10
        assert signal.axes_manager[0].units == 'nm'
        assert_allclose(signal.axes_manager[0].scale, 1.234009, atol=1E-5)
        assert signal.axes_manager[1].name == 'y'
        assert signal.axes_manager[1].size == 50
        assert signal.axes_manager[1].units == 'nm'
        assert_allclose(signal.axes_manager[1].scale, 1.234009, atol=1E-5)
        assert signal.axes_manager[2].name == 'Time'
        assert signal.axes_manager[2].size == 5
        assert signal.axes_manager[2].units == 's'
        assert_allclose(signal.axes_manager[2].scale, 0.76800, atol=1E-5)
        assert signal.axes_manager[3].name == 'X-ray energy'
        assert signal.axes_manager[3].size == 16
        assert signal.axes_manager[3].units == 'keV'
        assert_allclose(signal.axes_manager[3].scale, 1.28, atol=1E-5)

        s = load(os.path.join(self.fei_files_path,
                              'fei_SI_SuperX-HAADF_10frames_10x50.emd'),
                 sum_frames=False,
                 first_frame=4,
                 SI_dtype=np.uint8,
                 rebin_energy=256,
                 lazy=lazy)
        signal = s[1]
        if lazy:
            assert signal._lazy
            signal.compute(close_file=True)
        assert isinstance(signal, EDSTEMSpectrum)
        assert signal.axes_manager.navigation_shape == (10, 50, 6)
        assert signal.axes_manager[0].name == 'x'
        assert signal.axes_manager[0].size == 10
        assert signal.axes_manager[0].units == 'nm'
        assert_allclose(signal.axes_manager[0].scale, 1.234009, atol=1E-5)
        assert signal.axes_manager[1].name == 'y'
        assert signal.axes_manager[1].size == 50
        assert signal.axes_manager[1].units == 'nm'
        assert_allclose(signal.axes_manager[1].scale, 1.234009, atol=1E-5)
        assert signal.axes_manager[2].name == 'Time'
        assert signal.axes_manager[2].size == 6
        assert signal.axes_manager[2].units == 's'
        assert_allclose(signal.axes_manager[2].scale, 0.76800, atol=1E-5)
        assert signal.axes_manager[3].name == 'X-ray energy'
        assert signal.axes_manager[3].size == 16
        assert signal.axes_manager[3].units == 'keV'
        assert_allclose(signal.axes_manager[3].scale, 1.28, atol=1E-5)
コード例 #51
0
 def test_fei_emd_si(self):
     signal = load(os.path.join(self.fei_files_path, 'fei_emd_si.emd'))
     fei_si = np.load(os.path.join(self.fei_files_path, 'fei_emd_si.npy'))
     np.testing.assert_equal(signal[1].data, fei_si)
     assert isinstance(signal[1], Signal1D)
コード例 #52
0
ファイル: test_emd.py プロジェクト: realxnl/hyperspy
    def test_fei_emd_image(self, lazy):
        stage = {
            'tilt_alpha': 0.006,
            'tilt_beta': 0.000,
            'x': -0.000009,
            'y': 0.000144,
            'z': 0.000029
        }
        md = {
            'Acquisition_instrument': {
                'TEM': {
                    'beam_energy': 200.0,
                    'camera_length': 98.0,
                    'magnification': 40000.0,
                    'microscope': 'Talos',
                    'Stage': stage
                }
            },
            'General': {
                'original_filename': 'fei_emd_image.emd',
                'date': '2017-03-06',
                'time': '09:56:41',
                'time_zone': 'BST',
                'title': 'HAADF'
            },
            'Signal': {
                'binned': False,
                'signal_type': 'image'
            },
            '_HyperSpy': {
                'Folding': {
                    'original_axes_manager': None,
                    'original_shape': None,
                    'signal_unfolded': False,
                    'unfolded': False
                }
            }
        }

        # Update time and time_zone to local ones
        md['General']['time_zone'] = tz.tzlocal().tzname(datetime.today())
        dt = datetime.fromtimestamp(1488794201, tz=tz.tzutc())
        date, time = dt.astimezone(
            tz.tzlocal()).isoformat().split('+')[0].split('T')
        md['General']['date'] = date
        md['General']['time'] = time

        signal = load(os.path.join(self.fei_files_path, 'fei_emd_image.emd'),
                      lazy=lazy)
        if lazy:
            assert signal._lazy
            signal.compute(close_file=True)
        fei_image = np.load(
            os.path.join(self.fei_files_path, 'fei_emd_image.npy'))
        assert signal.axes_manager[0].name == 'x'
        assert signal.axes_manager[0].units == 'µm'
        assert_allclose(signal.axes_manager[0].scale, 0.00530241, rtol=1E-5)
        assert signal.axes_manager[1].name == 'y'
        assert signal.axes_manager[1].units == 'µm'
        assert_allclose(signal.axes_manager[1].scale, 0.00530241, rtol=1E-5)
        assert_allclose(signal.data, fei_image)
        assert_deep_almost_equal(signal.metadata.as_dictionary(), md)
        assert isinstance(signal, Signal2D)
コード例 #53
0
ファイル: test_emd.py プロジェクト: ytzeng1/hyperspy
def test_fei_complex_loading():
    signal = load(
        os.path.join(my_path, 'emd_files', 'fei_example_complex_fft.emd'))
    assert isinstance(signal, ComplexSignal2D)
コード例 #54
0
def test_data_numpy_object_dtype():
    filename = os.path.join(my_path, 'emd_files',
                            'example_object_dtype_data.emd')
    signal = load(filename)
    np.testing.assert_equal(signal.data,
                            np.array([['a, 2, test1', 'a, 2, test1']]))
コード例 #55
0
ファイル: test_dm3.py プロジェクト: askorikov/hyperspy
def test_multi_signal():
    fname = os.path.join(MY_PATH, "dm3_2D_data", "multi_signal.dm3")
    s = load(fname)

    # Make sure file is read as a list, and exactly two signals are found
    assert isinstance(s, list)
    assert len(s) == 2

    s1, s2 = s

    # First signal is an image, second is a plot
    assert isinstance(s1, Signal2D)
    assert isinstance(s2, Signal1D)

    s1_md_truth = {
        '_HyperSpy': {
            'Folding': {
                'unfolded': False,
                'signal_unfolded': False,
                'original_shape': None,
                'original_axes_manager': None
            }
        },
        'General': {
            'title': 'HAADF',
            'original_filename': 'multi_signal.dm3',
            'date': '2019-12-10',
            'time': '15:32:41',
            'authors': 'JohnDoe'
        },
        'Signal': {
            'binned': False,
            'signal_type': '',
            'quantity': 'Intensity',
            'Noise_properties': {
                'Variance_linear_model': {
                    'gain_factor': 1.0,
                    'gain_offset': 0.0
                }
            }
        },
        'Acquisition_instrument': {
            'TEM': {
                'beam_energy': 300.0,
                'Stage': {
                    'tilt_alpha': 0.001951998453075299,
                    'x': 0.07872150000000001,
                    'y': 0.100896,
                    'z': -0.0895279
                },
                'acquisition_mode': 'STEM',
                'beam_current': 0.0,
                'camera_length': 77.0,
                'magnification': 10000000.0,
                'microscope': 'Example Microscope',
                'dwell_time': 3.2400001525878905e-05
            }
        },
        'Sample': {
            'description': 'PrecipitateA'
        }
    }

    s2_md_truth = {
        '_HyperSpy': {
            'Folding': {
                'unfolded': False,
                'signal_unfolded': False,
                'original_shape': None,
                'original_axes_manager': None
            }
        },
        'General': {
            'title': 'Plot',
            'original_filename': 'multi_signal.dm3'
        },
        'Signal': {
            'binned': False,
            'signal_type': '',
            'quantity': 'Intensity',
            'Noise_properties': {
                'Variance_linear_model': {
                    'gain_factor': 1.0,
                    'gain_offset': 0.0
                }
            }
        }
    }

    # make sure the metadata dictionaries are as we expect
    assert s1.metadata.as_dictionary() == s1_md_truth
    assert s2.metadata.as_dictionary() == s2_md_truth

    # rather than testing all of original metadata (huge), use length as a proxy
    assert len(json.dumps(s1.original_metadata.as_dictionary())) == 17779
    assert len(json.dumps(s2.original_metadata.as_dictionary())) == 15024

    # simple tests on the data itself:
    assert s1.data.sum() == 949490255
    assert s1.data.shape == (512, 512)
    assert s2.data.sum() == pytest.approx(28.085794, 0.01)
    assert s2.data.shape == (512, )
コード例 #56
0
def test_image_complex_loading():
    signal = load(
        os.path.join(my_path, 'unf_files', 'example_image_complex.unf'))
    np.testing.assert_equal(signal.data, data_image_complex)
    np.testing.assert_equal(signal.original_metadata.IFORM, 3)  # complex
    assert isinstance(signal, ComplexSignal)
コード例 #57
0
 def test_load_file(self):
     s = load(self.hdf5_dataset_path)
     assert len(s) == len(self.group_path_list)
     title_list = [s_temp.metadata.General.title for s_temp in s]
     for _s, path in zip(s, self.group_path_list):
         assert _s.metadata.General.title in path
コード例 #58
0
ファイル: test_emd.py プロジェクト: realxnl/hyperspy
def test_data_numpy_object_dtype():
    filename = os.path.join(my_path, 'emd_files',
                            'example_object_dtype_data.emd')
    signal = load(filename)
    assert len(signal) == 0
コード例 #59
0
def test_no_label_loading():
    signal = load(os.path.join(my_path, 'unf_files', 'example_no_label.unf'))
    np.testing.assert_equal(signal.data, data_image)
    np.testing.assert_equal(signal.original_metadata.ILABEL, 0)
    assert isinstance(signal, Signal2D)
コード例 #60
0
 def test_deprecated_dataset_name(self):
     with pytest.warns(UserWarning):
         dataset_name = os.path.dirname(self.dataset_path_list[0])
         load(self.hdf5_dataset_path, dataset_name=dataset_name)