jarvis.core.utils ================= .. py:module:: jarvis.core.utils .. autoapi-nested-parse:: Set of useful utility functions. Functions --------- .. autoapisummary:: jarvis.core.utils.xml_to_dict jarvis.core.utils.get_factors jarvis.core.utils.get_counts jarvis.core.utils.gcd jarvis.core.utils.ext_gcd jarvis.core.utils.rand_select jarvis.core.utils.rec_dict jarvis.core.utils.random_colors jarvis.core.utils.get_angle jarvis.core.utils.recast_array_on_uniq_array_elements jarvis.core.utils.lorentzian jarvis.core.utils.stringdict_to_xml jarvis.core.utils.array_to_string jarvis.core.utils.chunks jarvis.core.utils.check_match jarvis.core.utils.update_dict jarvis.core.utils.get_new_coord_for_xyz_sym jarvis.core.utils.check_duplicate_coords jarvis.core.utils.parse_xyz_string jarvis.core.utils.operate_affine jarvis.core.utils.gaussian jarvis.core.utils.lorentzian2 jarvis.core.utils.digitize_array jarvis.core.utils.bond_angle jarvis.core.utils.check_url_exists jarvis.core.utils.volumetric_grid_reshape jarvis.core.utils.cos_formula jarvis.core.utils.baseline_als jarvis.core.utils.recast_array Module Contents --------------- .. py:function:: xml_to_dict(fname) Parse XML file. .. py:function:: get_factors(x, start=2) Get factors of a number. .. py:function:: get_counts(array=['W', 'W', 'Mo', 'Mo', 'S', 'S']) Get number of unique elements and their counts. Uses OrderedDict. Args: array of elements Returns: ordereddict, e.g.OrderedDict([('W', 2), ('Mo', 2), ('S', 2)]) .. py:function:: gcd(a, b) Calculate the Greatest Common Divisor of a and b. Unless b==0, the result will have the same sign as b (so that when b is divided by it, the result comes out positive). .. py:function:: ext_gcd(a, b) GCD module from ase. .. py:function:: rand_select(x=[]) Select randomly with index info. .. py:function:: rec_dict() Make a recursion dictionary. .. py:function:: random_colors(number_of_colors=110) Generate random colors for atom coloring. .. py:function:: get_angle(a=np.array([1, 2, 3]), b=np.array([4, 5, 6]), c=np.array([7, 8, 9])) Get angle between three vectors. .. py:function:: recast_array_on_uniq_array_elements(uniq=['Si', 'Al', 'O'], arr=['Si', 'Si', 'Al', 'Al', 'Si', 'O', 'O', 'O', 'O']) Recast array on uniq array elements. .. py:function:: lorentzian(x, y, x0, gamma) Get Lorentzian of a function. .. py:function:: stringdict_to_xml(d={}, enforce_string=False) Convert string dictionary to XML. .. py:function:: array_to_string(arr=[]) Convert 1D arry to string. .. py:function:: chunks(lst, n) Split successive n-sized chunks from list. .. py:function:: check_match(a, b, tol=1e-08) Check if a and b are the same, taking into account PBCs. .. py:function:: update_dict(main={}, extra={}) Return update dictionary. .. py:function:: get_new_coord_for_xyz_sym(frac_coord=[], xyz_string='') Obtain new coord from xyz string. .. py:function:: check_duplicate_coords(coords=[], coord=[]) Check if a coordinate exists. .. py:function:: parse_xyz_string(xyz_string) Convert xyz info to translation and rotation vectors. Adapted from pymatgen. Args: xyz_string: string of the form 'x, y, z', '-x, -y, z', '-2y+1/2, 3x+1/2, z-y+1/2', etc. Returns: translation and rotation vectors. .. py:function:: operate_affine(cart_coord=[], affine_matrix=[]) Operate affine method. .. py:function:: gaussian(x, sigma) Get Gaussian profile. .. py:function:: lorentzian2(x, gamma) Get Lorentziann profile. .. py:function:: digitize_array(values=[], max_len=10) Digitze an array. .. py:function:: bond_angle(dist1, dist2, bondx1, bondx2, bondy1, bondy2, bondz1, bondz2) Get an angle. .. py:function:: check_url_exists(url='https://www.ctcms.nist.gov/~knc6/static/JARVIS-DFT/JVASP-77580.xml') Check if a url exists. .. py:function:: volumetric_grid_reshape(data=[], final_grid=[50, 50, 50]) Reshape volumetric data. .. py:function:: cos_formula(a, b, c) Get angle between three edges for oblique triangles. .. py:function:: baseline_als(y, lam, p, niter=10) Adaptive Least Squares fitting for baseline correction Parameters: y: array_like Input signal lam: float Lambda (smoothness) p: float Asymmetry niter: int, optional Number of iterations Returns: array_like The estimated baseline .. py:function:: recast_array(x_original=[], y_original=[], x_new=np.arange(0, 90, 1), tol=0.1)