def test_retain_metadata(self):
     s = DPCSignal2D(np.ones((2, 10, 5)))
     s.metadata.General.title = "test_data"
     filename = os.path.join(self.tmpdir.name, "test_metadata.hspy")
     s.save(filename)
     s_load = pxm.load(filename)
     assert s_load.metadata.General.title == "test_data"
Exemplo n.º 2
0
def test_load_ElectronDiffraction2D(diffraction_pattern, make_saved_dp):
    """
    This tests that our load function keeps .data, instance and metadata
    """
    dp = pxm.load('dp_temp.hspy')
    assert np.allclose(dp.data, diffraction_pattern.data)
    assert isinstance(dp, ElectronDiffraction2D)
    assert diffraction_pattern.metadata.Signal.found_from == dp.metadata.Signal.found_from
 def test_load_signal2d(self):
     s = DPCSignal2D(np.ones((2, 10, 20)))
     assert s.axes_manager.signal_dimension == 2
     assert s.axes_manager.navigation_dimension == 1
     filename = os.path.join(self.tmpdir.name, "dpcsignal2d.hspy")
     s.save(filename)
     s_load = pxm.load(filename)
     assert s.__class__ == s_load.__class__
     assert s_load.axes_manager.signal_dimension == 2
     assert s_load.axes_manager.navigation_dimension == 1
 def test_load_basesignal(self):
     s = DPCBaseSignal([10, 20]).T
     assert s.axes_manager.signal_dimension == 0
     assert s.axes_manager.navigation_dimension == 1
     filename = os.path.join(self.tmpdir.name, "dpcbasesignal.hspy")
     s.save(filename)
     s_load = pxm.load(filename)
     assert s.__class__ == s_load.__class__
     assert s_load.axes_manager.signal_dimension == 0
     assert s_load.axes_manager.navigation_dimension == 1
Exemplo n.º 5
0
def test_load_function_core(class_to_test, meta_string):
    """
    Test the core; which is load a previously saved pyxem object.
    """
    to_save = class_to_test(np.zeros((2, 2, 2, 2)))
    to_save.metadata.Signal.tracker = meta_string
    to_save.save('tempfile.hspy')
    from_save = pxm.load('tempfile.hspy')
    assert isinstance(from_save, class_to_test)
    assert from_save.metadata.Signal.tracker == meta_string
    assert np.allclose(to_save.data, from_save.data)
    os.remove('tempfile.hspy')
Exemplo n.º 6
0
def test_load_function_core(class_to_test, meta_string):
    """
    Test the core; which is load a previously saved pyxem object.
    """
    to_save = class_to_test(np.zeros((2, 2, 2, 2)))
    to_save.metadata.Signal.tracker = meta_string
    if class_to_test is DiffractionVectors:
        to_save.axes_manager.set_signal_dimension(0)
    if class_to_test is DiffractionVectors2D:
        to_save.axes_manager.set_signal_dimension(2)
    to_save.save("tempfile_for_load_and_save.hspy", overwrite=True)
    from_save = pxm.load("tempfile_for_load_and_save.hspy")
    assert isinstance(from_save, class_to_test)
    assert from_save.metadata.Signal.tracker == meta_string
    assert np.allclose(to_save.data, from_save.data)
    os.remove("tempfile_for_load_and_save.hspy")
 def test_retain_axes_manager(self):
     s = DPCSignal2D(np.ones((2, 10, 5)))
     s_sa0 = s.axes_manager.signal_axes[0]
     s_sa1 = s.axes_manager.signal_axes[1]
     s_sa0.offset, s_sa1.offset, s_sa0.scale, s_sa1.scale = 20, 10, 0.2, 0.3
     s_sa0.units, s_sa1.units, s_sa0.name, s_sa1.name = "a", "b", "e", "f"
     filename = os.path.join(self.tmpdir.name, "test_axes_manager.hspy")
     s.save(filename)
     s_load = pxm.load(filename)
     assert s_load.axes_manager[1].offset == 20
     assert s_load.axes_manager[2].offset == 10
     assert s_load.axes_manager[1].scale == 0.2
     assert s_load.axes_manager[2].scale == 0.3
     assert s_load.axes_manager[1].units == "a"
     assert s_load.axes_manager[2].units == "b"
     assert s_load.axes_manager[1].name == "e"
     assert s_load.axes_manager[2].name == "f"
def update_correlation_list(_=None):
    reciprocal_angstrom_per_pixel = slider_scale.val
    beam_energy = slider_energy.val
    specimen_thickness = slider_thick.val

    structure_info = structures[current_structure]

    rotation_list_resolution = np.deg2rad(1)
    phase_descriptions = [(structure_info['name'], structure_info['structure'],
                           structure_info['system'])]
    inplane_rotations = [[np.deg2rad(103)]]

    diffraction_library, structure_library = create_diffraction_library(
        specimen_thickness, beam_energy, reciprocal_angstrom_per_pixel,
        rotation_list_resolution, phase_descriptions, inplane_rotations,
        target_pattern_dimension_pixels)

    # Set up the indexer and get the indexation results
    data_dir = r'D:\Dokumenter/MTNANO/Prosjektoppgave/Data/'
    experimental_pattern_filename = data_dir + 'SPED_data_GaAs_NW/gen/Julie_180510_SCN45_FIB_a_three_phase_single_area.hdf5'
    dp = pxm.load(experimental_pattern_filename, lazy=True).inav[0:1, 0:1]
    dp = pxm.ElectronDiffraction(dp)
    pattern_indexer = IndexationGenerator(dp, diffraction_library)
    template_matching_results = pattern_indexer.correlate(
        n_largest=structure_library.orientations[0].shape[0],
        keys=[structure_info['name']],
        parallel=False)  # This is slower in parallel

    global current_rotation_list
    print(template_matching_results.data[0, 0].shape)
    current_rotation_list = template_matching_results.isig[1:4, :].data[0, 0]
    correlations = template_matching_results.isig[4, :].data[0, 0]
    global current_rotation_list_signals
    current_rotation_list_signals = []

    print(correlations.argmax(), current_rotation_list[correlations.argmax()])
    update_rotation(current_rotation_list, correlations)
    fig.canvas.draw_idle()
Exemplo n.º 9
0
def test_load_Signal2D(make_saved_Signal2D):
    """
    This tests that we can "load a Signal2D" with pxm.load and that we auto cast
    safetly into ElectronDiffraction2D
    """
    dp = pxm.load('S2D_temp.hspy')
Exemplo n.º 10
0
def _get_hdf_details(hdf_file):
    data = pxm.load(hdf_file, lazy=True)
    return data.data.shape