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"
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
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')
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()
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')
def _get_hdf_details(hdf_file): data = pxm.load(hdf_file, lazy=True) return data.data.shape