def get_axes(self): range_ = self.get_range() resolution = self.get_resolution() num = [ step_size_to_num(range_[0], resolution[0]), step_size_to_num(range_[1], resolution[1]) ] axes = [ axis_from_range(range_[0], num[0]), axis_from_range(range_[1], num[1]) ] return axes
def test_set_axis(self): step_size = 0.24 range_ = [-3, 3] axis = np.linspace(*range_, num=step_size_to_num(range_, step_size), endpoint=True) self.lmfit.set_axis_by_step_size(range_, step_size) npt.assert_almost_equal(self.lmfit.get_sliced_kmap(0).x_axis, axis)
def set_axis_by_step_size(self, range_, step_size): """A convenience setter method to set an axis by defining the range and the step size. Args: range_ (list): A list of min and max value. step_size (float): A number denoting the step size. """ num = step_size_to_num(range_, step_size) self.set_axis(axis_from_range(range_, num))
import matplotlib.pyplot as plt import numpy as np from lmfit import Minimizer, Parameters, report_fit # kMap.py Imports from kmap.library.orbital import Orbital from kmap.library.sliceddata import SlicedData from kmap.library.misc import step_size_to_num # Path to data folder; replace with your own; use '/' instead of '+' # when concatenating with strings data_path = Path(__file__).parent / Path('../data/') # define common (kx,ky)-grid for deconvolution k_range, dk = [-3.0, 3.0], 0.04 num = step_size_to_num(k_range, dk) kx = np.linspace(k_range[0], k_range[1], num) ky = kx # read PTCDA orbitals from file and compute kmaps names = ['PTCDA_C', 'PTCDA_D', 'PTCDA_E', 'PTCDA_F', 'background'] styles = ['.r-', 'k-', 'r--', '^g-', 'k:'] params = Parameters() # parameters object for minimization sim_kmaps = [] for name in names[:-1]: # read cube-file from file cuberead = open(data_path / (name + '.cube')).read() orbital = Orbital(cuberead, dk3D=0.12) # 3D-FT sim_kmap = orbital.get_kmap( E_kin=27.2,