def load_check(self, filename): """Function to check what type of data is contained in a file to be loaded, if possible.""" #read file from hdf5 file data_type = '' if type(filename) == h5py._hl.group.Group: loaded_data = filename['data'] if loaded_data.attrs.get( 'type' ): #check if the attribute 'type' attached on the data data_type = loaded_data.attrs.get('type') else: data_type = None #directly load file elif type(filename) == str: loaded_data = hspy.load(filename) if loaded_data.metadata.Signal.signal_type == "EELS": if loaded_data.axes_manager.signal_axes[ 0].offset < 500: #check if EELS is high/low-loss data_type = 'EELS_L' else: data_type = 'EELS_H' elif (loaded_data.metadata.Signal.signal_type == "EDS_SEM") or (loaded_data.metadata.Signal.signal_type == "EDS_TEM"): data_type = 'EDS' else: data_type = None return (data_type)
def test_rgba16(): s = hs.load(os.path.join( my_path, "tiff_files", "test_rgba16.tif")) data = np.load(os.path.join( my_path, "npy_files", "test_rgba16.npy")) assert_true((s.data == data).all())
def __init__(self, path): folder = [] if type(path) == h5py._hl.group.Group: #read file folder = path.values() else: #directly load file folder = [ os.path.join(path, f) for f in os.listdir(path) if (os.path.isfile(os.path.join(path, f)) and ( '.DS_Store' not in f)) ] #folder is a list that contains path of each file in the folder #delet the hidden folder '.DS_Store' in MacOS for filename in folder: type_check = self.load_check(filename) if type_check == None: print "Data name: %s" % hspy.load( filename).metadata.General.original_filename type_check = str( input( "Please input the datatype of the data (SURVEY, HAADF, EELS, EDS, etc...): " )) print "\n" # let users'input always is uppercase type_check = type_check.upper() if type_check == 'SURVEY': if type(filename) == h5py._hl.group.Group: self.survey = self.read_signal_from_EMDgroup(filename) else: self.survey = hspy.load(filename) if type_check == 'HAADF': if type(filename) == h5py._hl.group.Group: self.haadf = self.read_signal_from_EMDgroup(filename) else: self.haadf = hspy.load(filename) if type_check == 'EELS_L': if type(filename) == h5py._hl.group.Group: self.eels_l = self.read_signal_from_EMDgroup(filename) else: self.eels_l = hspy.load(filename) if type_check == 'EELS_H': if type(filename) == h5py._hl.group.Group: self.eels_h = self.read_signal_from_EMDgroup(filename) else: self.eels_h = hspy.load(filename) if type_check == 'EDS': if type(filename) == h5py._hl.group.Group: self.eds = self.read_signal_from_EMDgroup(filename) else: self.eds = hspy.load(filename)
def load_check(self, filename): """Function to check what type of data is contained in a file to be loaded, if possible.""" #read file from hdf5 file data_type = '' if type(filename) == h5py._hl.group.Group: loaded_data = filename['data'] if loaded_data.attrs.get('type'): #check if the attribute 'type' attached on the data data_type = loaded_data.attrs.get('type') else: data_type = None #directly load file elif type(filename) == str: loaded_data = hspy.load(filename) if loaded_data.metadata.Signal.signal_type == "EELS": if loaded_data.axes_manager.signal_axes[0].offset < 500: #check if EELS is high/low-loss data_type = 'EELS_L' else: data_type = 'EELS_H' elif (loaded_data.metadata.Signal.signal_type == "EDS_SEM") or (loaded_data.metadata.Signal.signal_type == "EDS_TEM"): data_type = 'EDS' else: data_type = None return (data_type)
def __init__(self, path): folder = [] if type(path) == h5py._hl.group.Group: #read file folder = path.values() else: #directly load file folder = [os.path.join(path, f) for f in os.listdir(path) if (os.path.isfile(os.path.join(path, f)) and ('.DS_Store' not in f))] #folder is a list that contains path of each file in the folder #delet the hidden folder '.DS_Store' in MacOS for filename in folder: type_check = self.load_check(filename) if type_check == None: print "Data name: %s" % hspy.load(filename).metadata.General.original_filename type_check = str(input("Please input the datatype of the data (SURVEY, HAADF, EELS, EDS, etc...): ")) print "\n" # let users'input always is uppercase type_check = type_check.upper() if type_check == 'SURVEY': if type(filename) == h5py._hl.group.Group: self.survey = self.read_signal_from_EMDgroup(filename) else: self.survey = hspy.load(filename) if type_check == 'HAADF': if type(filename) == h5py._hl.group.Group: self.haadf = self.read_signal_from_EMDgroup(filename) else: self.haadf = hspy.load(filename) if type_check == 'EELS_L': if type(filename) == h5py._hl.group.Group: self.eels_l = self.read_signal_from_EMDgroup(filename) else: self.eels_l = hspy.load(filename) if type_check == 'EELS_H': if type(filename) == h5py._hl.group.Group: self.eels_h = self.read_signal_from_EMDgroup(filename) else: self.eels_h = hspy.load(filename) if type_check == 'EDS': if type(filename) == h5py._hl.group.Group: self.eds = self.read_signal_from_EMDgroup(filename) else: self.eds = hspy.load(filename)
""" Loads hyperspy as a regular python library, loads spectrums from files, does curve fitting, and plotting the model and original spectrum to a png file""" import hyperspy.hspy as hspy import matplotlib.pyplot as plt coreLossSpectrumFileName = "coreloss_spectrum.msa" lowlossSpectrumFileName = "lowloss_spectrum.msa" s = hspy.load(coreLossSpectrumFileName).to_EELS() s.add_elements(("Mn", "O")) s.set_microscope_parameters( beam_energy=300, convergence_angle=24.6, collection_angle=13.6) ll = hspy.load(lowlossSpectrumFileName).to_EELS() m = s.create_model(ll=ll) m.enable_fine_structure() m.multifit(kind="smart") m.plot() plt.savefig("model_original_spectrum_plot.png")
def __init__(self, path): folder = [] if type(path) == h5py._hl.group.Group: #read file folder = path.values() else: #directly load file folder = [os.path.join(path, f) for f in os.listdir(path) if (os.path.isfile(os.path.join(path, f)) and ('.DS_Store' not in f))] #folder is a list that contains pathes of each file in the folder #delet the hidden folder '.DS_Store' in MacOS self.support_formats(folder) # check if data type in this folder can be loaded by Hyperspy for filename in folder: #temperary lines for PtNi particles. """if filename.rpartition('.')[2] == 'tif': self.haadf = hspy.load(filename) for i in range(2): if i == 0: self.haadf.axes_manager[i].name='X' self.haadf.axes_manager[i].units='nm' self.haadf.axes_manager[i].scale=0.275 self.haadf.axes_manager[i].navigate=True elif i == 1: self.haadf.axes_manager[i].name='Y' self.haadf.axes_manager[i].units='nm' self.haadf.axes_manager[i].scale=0.275 self.haadf.axes_manager[i].navigate=True if filename.rpartition('.')[2] == 'rpl': self.eds = hspy.load(filename) self.eds.set_signal_type('EDS_TEM') self.eds.set_microscope_parameters(beam_energy = 200) for i in range(3): if i == 0: self.eds.axes_manager[i].name='X' self.eds.axes_manager[i].units='nm' self.eds.axes_manager[i].scale=0.275 elif i == 1: self.eds.axes_manager[i].name='Y' self.eds.axes_manager[i].units='nm' self.eds.axes_manager[i].scale=0.275 elif i == 2: self.eds.axes_manager[i].name='Energy' self.eds.axes_manager[i].units='keV' self.eds.axes_manager[i].scale=0.01 self.eds.axes_manager[i].offset=-0.477""" #temperary lines end #original lines type_check = self.load_check(filename) if type_check == None: print "Data name: %s" % hspy.load(filename).metadata.General.original_filename type_check = str(input("Please input the datatype of the data (SURVEY, HAADF, EELS, EDS, etc...): ")) print "\n" # let users'input always is uppercase type_check = type_check.upper() if type_check == 'SURVEY': if type(filename) == h5py._hl.group.Group: self.survey = self.read_signal_from_EMDgroup(filename) else: self.survey = hspy.load(filename) if type_check == 'HAADF': if type(filename) == h5py._hl.group.Group: self.haadf = self.read_signal_from_EMDgroup(filename) else: self.haadf = hspy.load(filename) if type_check == 'EELS_L': if type(filename) == h5py._hl.group.Group: self.eels_l = self.read_signal_from_EMDgroup(filename) else: self.eels_l = hspy.load(filename) if type_check == 'EELS_H': if type(filename) == h5py._hl.group.Group: self.eels_h = self.read_signal_from_EMDgroup(filename) else: self.eels_h = hspy.load(filename) if type_check == 'EDS': if type(filename) == h5py._hl.group.Group: self.eds = self.read_signal_from_EMDgroup(filename) else: self.eds = hspy.load(filename)