def __init__(self, order=2, legacy=True, module="numexpr", **kwargs): """Polynomial component (DEPRECATED) This API is deprecated and will be replaced by :py:class:`hyperspy._components.polynomial.Polynomial` in HyperSpy v2.0. To use the new API, set `legacy` to `False`. Parameters ---------- order: int Order of the polynomial. legacy: bool, default True If `False`, use the new API. module: str See the docstring of :py:class:`hyperspy._components.polynomial.Polynomial` for details. """ if legacy: from hyperspy.misc.utils import deprecation_warning msg = ( "The API of the `Polynomial` component will change in v2.0." "To use the new API set `legacy=False`.") deprecation_warning(msg) Component.__init__(self, ['coefficients', ]) self._whitelist['order'] = ('init', order) self.coefficients._number_of_elements = order + 1 self.coefficients.value = np.zeros((order + 1,)) self.coefficients.grad = self.grad_coefficients else: from hyperspy._components.polynomial import Polynomial self.__class__ = Polynomial self.__init__(order=order, module=module, **kwargs)
def __init__( self, A=10e5, r=3., origin=0., ): Component.__init__(self, ('A', 'r', 'origin', 'shift', 'ratio')) self.name = 'Double power law' self.A.value = 1E-5 self.r.value = 3. self.origin.value = 0. self.origin.free = False self.shift.value = 20. self.shift.free = False self.ratio.value = 1.E-2 self.left_cutoff = 20. # in x-units # Boundaries self.A.bmin = 0. self.A.bmax = None self.r.bmin = 1. self.r.bmax = 5. self.isbackground = True self.convolved = False
def __init__(self): Component.__init__(self, ( 'area', 'centre', 'FWHM', 'gamma', 'resolution', 'shirley_background', 'non_isochromaticity', 'transmission_function')) self._position = self.centre self.FWHM.value = 1 self.gamma.value = 0 self.area.value = 1 self.resolution.value = 0 self.resolution.free = False self.shirley_background.free = False self.non_isochromaticity.value = 0 self.non_isochromaticity.free = False self.transmission_function.value = 1 self.transmission_function.free = False # Options self.shirley_background.active = False self.spin_orbit_splitting = False self.spin_orbit_branching_ratio = 0.5 self.spin_orbit_splitting_energy = 0.61 self.isbackground = False self.convolved = True
def __init__( self, signal2D, d11=1.0, d12=0.0, d21=0.0, d22=1.0, t1=0.0, t2=0.0, theta=0.2*np.pi, # rotational angle intensity=1.0, # intensity multiplier for the diffraction pattern order=3 ): Component.__init__(self, [ "d11", "d12", "d21", "d22", "t1", "t2", "theta", "intensity", ]) self._whitelist["signal2D"] = ("init,sig", signal2D) self.signal = signal2D self.order = order self.d11.value = d11 self.d12.value = d12 self.d21.value = d21 self.d22.value = d22 self.t1.value = t1 self.t2.value = t2 self.theta.value = theta self.intensity.value = intensity
def __init__(self, order=2): Component.__init__(self, [ 'coefficients', ]) self.coefficients._number_of_elements = order + 1 self.coefficients.value = np.zeros((order + 1, )) self.coefficients.grad = self.grad_coefficients
def __init__(self, element_subshell, GOS=None): # Declare the parameters Component.__init__(self, ["intensity", "fine_structure_coeff", "effective_angle", "onset_energy"]) self.name = element_subshell self.element, self.subshell = element_subshell.split("_") self.energy_scale = None self.effective_angle.free = False self.fine_structure_active = preferences.EELS.fine_structure_active self.fine_structure_width = preferences.EELS.fine_structure_width self.fine_structure_coeff.ext_force_positive = False self.GOS = None # Set initial actions if GOS is None: try: self.GOS = HartreeSlaterGOS(element_subshell) GOS = "Hartree-Slater" except IOError: GOS = "hydrogenic" messages.information("Hartree-Slater GOS not available" "Using hydrogenic GOS") if self.GOS is None: if GOS == "Hartree-Slater": self.GOS = HartreeSlaterGOS(element_subshell) elif GOS == "hydrogenic": self.GOS = HydrogenicGOS(element_subshell) else: raise ValueError("gos must be one of: None, 'hydrogenic'" " or 'Hartree-Slater'") self.onset_energy.value = self.GOS.onset_energy self.onset_energy.free = False self._position = self.onset_energy self.free_onset_energy = False self.intensity.grad = self.grad_intensity self.intensity.value = 1 self.intensity.bmin = 0.0 self.intensity.bmax = None
def __init__(self, A=1., FWHM=1., origin=0.): Component.__init__(self, ['A', 'FWHM', 'origin', 'ab', 'shirley']) self.shirley.free = False self.ab.value = 0 self.ab.free = False self.A.value = A self.FWHM.value = FWHM self.origin.value = origin self._position = self.origin # Boundaries self.A.bmin = 0. self.A.bmax = None self.FWHM.bmin = None self.FWHM.bmax = None self.isbackground = False self.convolved = True # Gradients self.A.grad = self.grad_A self.FWHM.grad = self.grad_FWHM self.origin.grad = self.grad_origin self.ab.grad = self.grad_ab # Options self.factor = 1. self.Shirley = False
def __init__( self, electron_diffraction_calculator, structure, calibration, reciprocal_radius, d11=1.0, d12=0.0, d13=0.0, d21=0.0, d22=1.0, d23=0.0, d31=0.0, d32=0.0, d33=1.0, ): Component.__init__( self, ["d11", "d12", "d13", "d21", "d22", "d23", "d31", "d32", "d33",] ) self.electron_diffraction_calculator = electron_diffraction_calculator self.structure = structure self.reciprocal_radius = reciprocal_radius self.calibration = calibration self.d11.value = d11 self.d12.value = d12 self.d13.value = d13 self.d21.value = d21 self.d22.value = d22 self.d23.value = d23 self.d31.value = d31 self.d32.value = d32 self.d33.value = d33
def __init__(self): Component.__init__( self, ( "area", "centre", "FWHM", "gamma", "resolution", "shirley_background", "non_isochromaticity", "transmission_function", ), ) self._position = self.centre self.FWHM.value = 1 self.gamma.value = 0 self.area.value = 1 self.resolution.value = 0 self.resolution.free = False self.shirley_background.free = False self.non_isochromaticity.value = 0 self.non_isochromaticity.free = False self.transmission_function.value = 1 self.transmission_function.free = False # Options self.shirley_background.active = False self.spin_orbit_splitting = False self.spin_orbit_branching_ratio = 0.5 self.spin_orbit_splitting_energy = 0.61 self.isbackground = False self.convolved = True
def __init__(self, parameter_1=1, parameter_2=2): # Define the parameters Component.__init__(self, ('parameter_1', 'parameter_2')) # Optionally we can set the initial values self.parameter_1.value = parameter_1 self.parameter_1.value = parameter_1 # The units (optional) self.parameter_1.units = 'Tesla' self.parameter_2.units = 'Kociak' # Once defined we can give default values to the attribute # For example we fix the attribure_1 (optional) self.parameter_1.free = False # And we set the boundaries (optional) self.parameter_1.bmin = 0. self.parameter_1.bmax = None # Optionally, to boost the optimization speed we can also define # the gradients of the function we the syntax: # self.parameter.grad = function self.parameter_1.grad = self.grad_parameter_1 self.parameter_2.grad = self.grad_parameter_2
def __init__(self, element_subshell, GOS=None): # Declare the parameters Component.__init__(self, [ 'intensity', 'fine_structure_coeff', 'effective_angle', 'onset_energy' ], linear_parameter_list=['intensity']) if isinstance(element_subshell, dict): self.element = element_subshell['element'] self.subshell = element_subshell['subshell'] else: self.element, self.subshell = element_subshell.split('_') self.name = "_".join([self.element, self.subshell]) self.energy_scale = None self.effective_angle.free = False self.fine_structure_active = False self.fine_structure_width = 30. self.fine_structure_coeff.ext_force_positive = False self.GOS = None # Set initial actions if GOS is None: try: self.GOS = HartreeSlaterGOS(element_subshell) GOS = 'Hartree-Slater' except IOError: GOS = 'hydrogenic' _logger.info('Hartree-Slater GOS not available. ' 'Using hydrogenic GOS') if self.GOS is None: if GOS == 'Hartree-Slater': self.GOS = HartreeSlaterGOS(element_subshell) elif GOS == 'hydrogenic': self.GOS = HydrogenicGOS(element_subshell) else: raise ValueError('gos must be one of: None, \'hydrogenic\'' ' or \'Hartree-Slater\'') self.onset_energy.value = self.GOS.onset_energy self.onset_energy.free = False self._position = self.onset_energy self.free_onset_energy = False self.intensity.grad = self.grad_intensity self.intensity.value = 1 self.intensity.bmin = 0. self.intensity.bmax = None self._whitelist['GOS'] = ('init', GOS) if GOS == 'Hartree-Slater': self._whitelist['element_subshell'] = ( 'init', self.GOS.as_dictionary(True)) elif GOS == 'hydrogenic': self._whitelist['element_subshell'] = ('init', element_subshell) self._whitelist['fine_structure_active'] = None self._whitelist['fine_structure_width'] = None self._whitelist['fine_structure_smoothing'] = None self.effective_angle.events.value_changed.connect( self._integrate_GOS, []) self.onset_energy.events.value_changed.connect(self._integrate_GOS, []) self.onset_energy.events.value_changed.connect(self._calculate_knots, [])
def __init__(self): # Define the parameters Component.__init__(self, ('a', 'b', 'c', 'origin')) # Define the name of the component self.a.grad = self.grad_a self.b.grad = self.grad_b self.c.grad = self.grad_c self.origin.grad = self.grad_origin
def __init__(self, intensity=1., plasmon_energy=15., fwhm=1.5): Component.__init__(self, ['intensity', 'plasmon_energy', 'fwhm']) self._position = self.plasmon_energy self.intensity.value = intensity self.plasmon_energy.value = plasmon_energy self.fwhm.value = fwhm self.plasmon_energy.grad = self.grad_plasmon_energy self.fwhm.grad = self.grad_fwhm self.intensity.grad = self.grad_intensity
def __init__(self): # Define the parameters Component.__init__(self, ("a", "b", "c", "origin")) # Define the name of the component self.a.grad = self.grad_a self.b.grad = self.grad_b self.c.grad = self.grad_c self.origin.grad = self.grad_origin self._position = self.origin
def __init__(self, element_subshell, GOS=None): # Declare the parameters Component.__init__(self, ['intensity', 'fine_structure_coeff', 'effective_angle', 'onset_energy']) if isinstance(element_subshell, dict): self.element = element_subshell['element'] self.subshell = element_subshell['subshell'] else: self.element, self.subshell = element_subshell.split('_') self.name = "_".join([self.element, self.subshell]) self.energy_scale = None self.effective_angle.free = False self.fine_structure_active = preferences.EELS.fine_structure_active self.fine_structure_width = preferences.EELS.fine_structure_width self.fine_structure_coeff.ext_force_positive = False self.GOS = None # Set initial actions if GOS is None: try: self.GOS = HartreeSlaterGOS(element_subshell) GOS = 'Hartree-Slater' except IOError: GOS = 'hydrogenic' messages.information( 'Hartree-Slater GOS not available. ' 'Using hydrogenic GOS') if self.GOS is None: if GOS == 'Hartree-Slater': self.GOS = HartreeSlaterGOS(element_subshell) elif GOS == 'hydrogenic': self.GOS = HydrogenicGOS(element_subshell) else: raise ValueError( 'gos must be one of: None, \'hydrogenic\'' ' or \'Hartree-Slater\'') self.onset_energy.value = self.GOS.onset_energy self.onset_energy.free = False self._position = self.onset_energy self.free_onset_energy = False self.intensity.grad = self.grad_intensity self.intensity.value = 1 self.intensity.bmin = 0. self.intensity.bmax = None self._whitelist['GOS'] = ('init', GOS) if GOS == 'Hartree-Slater': self._whitelist['element_subshell'] = ( 'init', self.GOS.as_dictionary(True)) elif GOS == 'hydrogenic': self._whitelist['element_subshell'] = ('init', element_subshell) self._whitelist['fine_structure_active'] = None self._whitelist['fine_structure_width'] = None self._whitelist['fine_structure_smoothing'] = None
def __init__(self): # Define the parameters Component.__init__(self, ('a', 'b', 'c', 'origin')) # Define the name of the component self.a.grad = self.grad_a self.b.grad = self.grad_b self.c.grad = self.grad_c self.origin.grad = self.grad_origin self._position = self.origin
def __init__(self): Component.__init__(self, ['intensity', 'plasmon_energy', 'fwhm']) self._position = self.plasmon_energy self.intensity.value = 1 self.plasmon_energy.value = 7.1 self.fwhm.value = 2.3 self.plasmon_energy.grad = self.grad_plasmon_energy self.fwhm.grad = self.grad_fwhm self.intensity.grad = self.grad_intensity
def __init__(self, origin=0, A=1, sigma=1): # Define the parameters Component.__init__(self, ('origin', 'A', 'sigma')) #self.name = 'Erf' # Optionally we can set the initial values self.origin.value = origin self.A.value = A self.sigma.value = sigma
def __init__(self): Component.__init__(self, ['intensity', 'plasmon_energy', 'plasmon_linewidth']) self._position = self.plasmon_energy self.intensity.value = 1 self.plasmon_energy.value = 7.1 self.plasmon_linewidth.value = 2.3 self.plasmon_energy.grad = self.grad_plasmon_energy self.plasmon_linewidth.grad = self.grad_plasmon_linewidth self.intensity.grad = self.grad_intensity
def __init__(self, A=1, n=0): Component.__init__(self, ("n", "A")) self.A.value = A self.n.value = n self.isbackground = True self.convolved = False # Gradients self.A.grad = self.grad_A self.n.grad = self.grad_n
def __init__(self): Component.__init__(self, ('offset', 'step')) self.isbackground = True self.convolved = False # Options self.interfase = 0 # Gradients self.offset.grad = self.grad_offset self.step.grad = self.grad_step
def __init__(self, a=0, b=1., c=1., origin=0): Component.__init__(self, ['a', 'b', 'c', 'origin']) self.name = 'Parabole' self.a.value, self.b.value, self.c.value, self.origin.value = \ a, b, c, origin self.isbackground = False self.convolved = True self.a.grad = self.grad_a self.b.grad = self.grad_b self.origin.grad = self.grad_origin
def __init__( self, offset = 0. ): Component.__init__(self, ('offset',)) self.offset.free = True self.offset.value = offset self.isbackground = True self.convolved = False # Gradients self.offset.grad = self.grad_offset
def __init__(self, A=1, n=0): Component.__init__(self, ('n', 'A')) self.A.value = A self.n.value = n self.isbackground = True self.convolved = False # Gradients self.A.grad = self.grad_A self.n.grad = self.grad_n
def __init__(self, offset=0.): Component.__init__(self, ('offset',)) self.offset.free = True self.offset.value = offset self.isbackground = True self.convolved = False # Gradients self.offset.grad = self.grad_offset
def __init__(self): Component.__init__( self, ['intensity', 'plasmon_energy', 'plasmon_linewidth']) self._position = self.plasmon_energy self.intensity.value = 1 self.plasmon_energy.value = 7.1 self.plasmon_linewidth.value = 2.3 self.plasmon_energy.grad = self.grad_plasmon_energy self.plasmon_linewidth.grad = self.grad_plasmon_linewidth self.intensity.grad = self.grad_intensity
def __init__( self, a = 0, b = 1 ): Component.__init__(self, ['a','b']) self.name = 'Line' self.a.free, self.b.free = True, True self.a.value, self.b.value = a, b self.isbackground = True self.convolved = False self.a.grad = self.grad_a self.b.grad = self.grad_b self.start_from = None
def __init__(self): Component.__init__(self, ['optical_center', 'height', 'period', 'left_slope', 'right_slope', 'left', 'right', 'sigma']) self.left.value = np.nan self.right.value = np.nan self.side_vignetting = False self.fix_side_vignetting() self.gaussian = Gaussian() self.gaussian.origin.free, self.gaussian.A.free = False, False self.sigma.value = 1. self.gaussian.A.value = 1. self.extension_nch = 100
def __init__(self): Component.__init__(self, ['optical_center', 'height', 'period', 'left_slope', 'right_slope', 'left', 'right', 'sigma']) self.left.value = np.nan self.right.value = np.nan self.side_vignetting = False self.fix_side_vignetting() self.gaussian = Gaussian() self.gaussian.origin.free, self.gaussian.A.free = False, False self.sigma.value = 1. self.gaussian.A.value = 1. self.extension_nch = 100 self._position = self.optical_center
def __init__(self, array=None): Component.__init__(self, ['intensity', 'origin']) self.name = 'Fixed pattern' self.array = array self.intensity.free = True self.intensity.value = 1. self.origin.value = 0 self.origin.free = False self.isbackground = True self.convolved = False self.intensity.grad = self.grad_intensity self.interpolate = False self._interpolation_ready = False
def __init__( self, array=None ): Component.__init__(self, ['intensity', 'origin']) self.name = 'Fixed pattern' self.array = array self.intensity.free = True self.intensity.value = 1. self.origin.value = 0 self.origin.free = False self.isbackground = True self.convolved = False self.intensity.grad = self.grad_intensity self.interpolate = False self._interpolation_ready = False
def __init__(self, elements, fracs, N=1.0, C=0.0): """ A scattering component to fit background atomic scattering. Calculates the sum of the squares sum_squares = sum (ci * fi**2 ) and the square of the sum square_sum = (sum(ci * fi))**2 for atomic fraction ci with electron scattering factor fi. The latter is used for normalisation. N and C are fitting parameters for the Component class. The fitted function f is of the form: f = sum(fi), fi = ai(2 + bi*g^2) / (1 + bi*g^2)^2 where 1 < i < 5, ai, and bi are tabulated constants, and g = 1/d = 2sin(theta)/lambda is the scattering vector magnitude. The factors are tabulated in ATOMIC_SCATTERING_PARAMS_LOBATO. The parametrisation is detailed in [1]. Parameters ---------- elements: list of str A list of elements present (by symbol). fracs: list of float A list of fraction of the respective elements. Should sum to 1. N : float The "slope" of the fit. C : float An additive constant to the fit. References ---------- [1] Lobato, I., & Van Dyck, D. (2014). An accurate parameterization for scattering factors, electron densities and electrostatic potentials for neutral atoms that obey all physical constraints. Acta Crystallographica Section A: Foundations and Advances, 70(6), 636-649. """ Component.__init__(self, ["N", "C"]) self._whitelist["elements"] = ("init,sig", elements) self._whitelist["fracs"] = ("init,sig", fracs) self.elements = elements self.fracs = fracs params = [] for e in elements: params.append(ATOMIC_SCATTERING_PARAMS_LOBATO[e]) self.params = params self.N.value = N self.C.value = C
def __init__(self, A=1. , k=1. , x0=1.): Component.__init__(self, ['A', 'k', 'x0']) self.A.value = A self.A.grad = self.grad_A self.k.value = k self.k.grad = self.grad_k self.x0.value = x0 self.x0.grad = self.grad_x0 self.isbackground = False self.isconvolved = False self._position = self.x0
def __init__(self, element_subshell, GOS=None): # Declare the parameters Component.__init__(self, ["intensity", "fine_structure_coeff", "effective_angle", "onset_energy"]) if isinstance(element_subshell, dict): self.element = element_subshell["element"] self.subshell = element_subshell["subshell"] else: self.element, self.subshell = element_subshell.split("_") self.name = "_".join([self.element, self.subshell]) self.energy_scale = None self.effective_angle.free = False self.fine_structure_active = preferences.EELS.fine_structure_active self.fine_structure_width = preferences.EELS.fine_structure_width self.fine_structure_coeff.ext_force_positive = False self.GOS = None # Set initial actions if GOS is None: try: self.GOS = HartreeSlaterGOS(element_subshell) GOS = "Hartree-Slater" except IOError: GOS = "hydrogenic" messages.information("Hartree-Slater GOS not available. " "Using hydrogenic GOS") if self.GOS is None: if GOS == "Hartree-Slater": self.GOS = HartreeSlaterGOS(element_subshell) elif GOS == "hydrogenic": self.GOS = HydrogenicGOS(element_subshell) else: raise ValueError("gos must be one of: None, 'hydrogenic'" " or 'Hartree-Slater'") self.onset_energy.value = self.GOS.onset_energy self.onset_energy.free = False self._position = self.onset_energy self.free_onset_energy = False self.intensity.grad = self.grad_intensity self.intensity.value = 1 self.intensity.bmin = 0.0 self.intensity.bmax = None self._whitelist["GOS"] = ("init", GOS) if GOS == "Hartree-Slater": self._whitelist["element_subshell"] = ("init", self.GOS.as_dictionary(True)) elif GOS == "hydrogenic": self._whitelist["element_subshell"] = ("init", element_subshell) self._whitelist["fine_structure_active"] = None self._whitelist["fine_structure_width"] = None self._whitelist["fine_structure_smoothing"] = None self.effective_angle.events.value_changed.connect(self._integrate_GOS, []) self.onset_energy.events.value_changed.connect(self._integrate_GOS, []) self.onset_energy.events.value_changed.connect(self._calculate_knots, [])
def __init__(self, spectrum): Component.__init__(self, ['yscale', 'xscale', 'shift', 'offset']) self.spectrum = spectrum self.yscale.free = True self.yscale.value = 1. self.xscale.value = 1. self.offset.value = 0. self.shift.value = 0. self.prepare_interpolator() # Options self.isbackground = True self.convolved = False self.interpolate = True
def __init__(self, zl): Component.__init__(self, ['intensity', 'xscale', 'origin', 'offset']) self.name = 'ResizebleFixedPattern' self.zl = zl self.intensity.free = True self.intensity.value = 1. self.xscale.value = 1. self.offset.value = 0. self.origin.value = 0. # Options self.isbackground = True self.convolved = False # self.intensity.grad = self.grad_intensity self.f = interp1d(zl.energy_axis, zl.data_cube.squeeze(), bounds_error = False, fill_value = 0.)
def __init__(self, spectrum): Component.__init__(self, ['yscale', 'xscale', 'shift']) self._position = self.shift self.spectrum = spectrum self.yscale.free = True self.yscale.value = 1. self.xscale.value = 1. self.shift.value = 0. self.prepare_interpolator() # Options self.isbackground = True self.convolved = False self.interpolate = True
def __init__(self, A=10e5, r=3., origin=0.): Component.__init__(self, ('A', 'r', 'origin')) self.A.value = A self.r.value = r self.origin.value = origin self.origin.free = False self.left_cutoff = 0. # Boundaries self.A.bmin = 0. self.A.bmax = None self.r.bmin = 1. self.r.bmax = 5. self.isbackground = True self.convolved = False
def __init__(self, A=1., k=1., x0=1., minimum_at_zero=False): Component.__init__(self, ['A', 'k', 'x0']) self.A.value = A self.A.grad = self.grad_A self.k.value = k self.k.grad = self.grad_k self.x0.value = x0 self.x0.grad = self.grad_x0 self.minimum_at_zero = minimum_at_zero self.isbackground = False self.isconvolved = False self._position = self.x0
def __init__(self, A=10e5, r=3.0, origin=0.0): Component.__init__(self, ("A", "r", "origin")) self.A.value = A self.r.value = r self.origin.value = origin self.origin.free = False self.left_cutoff = 0.0 # Boundaries self.A.bmin = 0.0 self.A.bmax = None self.r.bmin = 1.0 self.r.bmax = 5.0 self.isbackground = True self.convolved = False
def __init__(self, elements, fracs, N=1.0, C=0.0): """ A scattering component to fit background atomic scattering. Calculates the sum of the squares sum_squares = sum (ci * fi**2 ) and the square of the sum square_sum = (sum(ci * fi))**2 for atomic fraction ci with electron scattering factor fi. The latter is used for normalisation. N and C are fitting parameters for the Component class. The fitted function f is of the form: f = sum(fi), fi = ai * exp(-bi*g^2) where 1 < i < 5, ai, and bi are tabulated constants, and g = 1/d = 2sin(theta)/lambda is the scattering vector magnitude. The factors are tabulated in ATOMIC_SCATTERING_PARAMS_XTABLES. The fitted scattering factor is from [1]. Parameters ---------- elements: list of str A list of elements present (by symbol). fracs: list of float A list of fraction of the respective elements. Should sum to 1. N : float The "slope" of the fit. C : float An additive constant to the fit. References ---------- [1] Prince, E. (2004). International tables for crystallography. Vol. C, table 4.3.2.3. """ Component.__init__(self, ["N", "C"]) self._whitelist["elements"] = ("init,sig", elements) self._whitelist["fracs"] = ("init,sig", fracs) self.elements = elements self.fracs = fracs params = [] for e in elements: params.append(ATOMIC_SCATTERING_PARAMS[e]) self.params = params self.N.value = N self.C.value = C
def __init__(self, spectrum): Component.__init__(self, ['yscale', 'xscale', 'shift']) self._position = self.shift self._whitelist['spectrum'] = ('init,sig', spectrum) self.spectrum = spectrum self.yscale.free = True self.yscale.value = 1. self.xscale.value = 1. self.shift.value = 0. self.prepare_interpolator() # Options self.isbackground = True self.convolved = False self.interpolate = True
def __init__(self, zl): Component.__init__(self, ['intensity', 'xscale', 'origin', 'offset']) self.name = 'ResizebleFixedPattern' self.zl = zl self.intensity.free = True self.intensity.value = 1. self.xscale.value = 1. self.offset.value = 0. self.origin.value = 0. # Options self.isbackground = True self.convolved = False # self.intensity.grad = self.grad_intensity self.f = interp1d(zl.energy_axis, zl.data_cube.squeeze(), bounds_error=False, fill_value=0.)
def __init__(self, A=1., k=1., x0=1., minimum_at_zero=False): Component.__init__(self, ['A', 'k', 'x0']) self.A.value = A self.A.grad = self.grad_A self.k.value = k self.k.grad = self.grad_k self.x0.value = x0 self.x0.grad = self.grad_x0 self.minimum_at_zero = minimum_at_zero self._whitelist['minimum_at_zero'] = ('init', minimum_at_zero) self.isbackground = False self.isconvolved = False self._position = self.x0
def __init__(self, signal1D): Component.__init__(self, ['yscale', 'xscale', 'shift']) self._position = self.shift self._whitelist['signal1D'] = ('init,sig', signal1D) self.signal = signal1D self.yscale.free = True self.yscale.value = 1. self.xscale.value = 1. self.shift.value = 0. self.prepare_interpolator() # Options self.isbackground = True self.convolved = False self.interpolate = True
def __init__(self): Component.__init__(self, ['A', 'sigma', 'origin']) # Boundaries self.A.bmin = 0. self.A.bmax = None self.sigma.bmin = None self.sigma.bmax = None self.isbackground = False self.convolved = True # Gradients self.A.grad = self.grad_A self.sigma.grad = self.grad_sigma self.origin.grad = self.grad_origin self._position = self.origin
def __init__(self): Component.__init__(self, ['A','sigma','origin']) # Boundaries self.A.bmin = 0. self.A.bmax = None self.sigma.bmin = None self.sigma.bmax = None self.isbackground = False self.convolved = True # Gradients self.A.grad = self.grad_A self.sigma.grad = self.grad_sigma self.origin.grad = self.grad_origin
def __init__(self, a=0.0, b=0.0, c=0.0, d=0.0): """ Parameters ---------- a : float b : float c : float d : float a, b, c, and d are the coefficients of the 1st, 2nd, 3rd, and 4th order terms respectively of the returned polynomial. Returns ------- p : polynomial of the form ax + bx^2 + cx^3 + dx^4 """ Component.__init__(self, ("a", "b", "c", "d"))
def __init__(self): Component.__init__(self, ["A", "sigma", "origin"]) # Boundaries self.A.bmin = 0.0 self.A.bmax = None self.sigma.bmin = None self.sigma.bmax = None self.isbackground = False self.convolved = True # Gradients self.A.grad = self.grad_A self.sigma.grad = self.grad_sigma self.origin.grad = self.grad_origin self._position = self.origin
def __init__(self, A=1., sigma_x=1., sigma_y=1., centre_x=0., centre_y=0., ): Component.__init__(self, ['A', 'sigma_x', 'sigma_y', 'centre_x', 'centre_y', ]) self.A.value = A self.sigma_x.value = sigma_x self.sigma_y.value = sigma_y self.centre_x.value = centre_x self.centre_y.value = centre_y
def __init__(self, element_subshell, intensity=1.,delta=0.): # Check if the Peter Rez's Hartree Slater GOS distributed by Gatan # are available. Otherwise exit if not os.path.isdir(preferences.EELS.eels_gos_files_path): message = ( "The path to the GOS files could not be found. " "Please define a valid location for the EELS GOS files in the " "folder location in the configuration file.") raise IOError(message) # Declare which are the "real" parameters Component.__init__(self, ['delta', 'intensity', 'fslist', 'effective_angle']) self.name = element_subshell # Set initial values self.__element, self.__subshell = element_subshell.split('_') self.energy_scale = None self.T = None self.gamma = None self.convergence_angle = None self.collection_angle = None self.E0 = None self.effective_angle.value = 0 self.effective_angle.free = False self.fs_state = preferences.EELS.fs_state self.fs_emax = preferences.EELS.fs_emax self.fs_mode = "new_spline" self.fslist.ext_force_positive = False self.delta.value = delta self.delta.free = False self.delta.ext_force_positive = False self.delta.grad = self.grad_delta self.freedelta = False self._previous_delta = delta self.intensity.grad = self.grad_intensity self.intensity.value = intensity self.intensity.bmin = 0. self.intensity.bmax = None self.knots_factor = preferences.EELS.knots_factor # Set initial actions self.readgosfile()
def __init__(self, A=1., gamma=1.,centre = 0.): Component.__init__(self, ('A', 'gamma', 'centre')) self.A.value = A self.gamma.value = gamma self.centre.value = centre # Boundaries self.A.bmin = 0. self.A.bmax = None self.gamma.bmin = None self.gamma.bmax = None self.isbackground = False self.convolved = True # Gradients self.A.grad = self.grad_A self.gamma.grad = self.grad_gamma self.centre.grad = self.grad_centre
def __init__(self, A=10e5, r=3.,origin = 0.,): Component.__init__(self, ('A', 'r', 'origin','shift', 'ratio')) self.A.value = 1E-5 self.r.value = 3. self.origin.value = 0. self.origin.free = False self.shift.value = 20. self.shift.free = False self.ratio.value = 1.E-2 self.left_cutoff = 20. # in x-units # Boundaries self.A.bmin = 0. self.A.bmax = None self.r.bmin = 1. self.r.bmax = 5. self.isbackground = True self.convolved = False