Example #1
0
    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)
Example #2
0
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())
Example #3
0
    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)
Example #4
0
 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)
Example #5
0
 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)
Example #6
0
""" 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)