diff --git a/doc/conf.py b/doc/conf.py index ed06736b9..b79233836 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -14,19 +14,14 @@ # import sys # sys.path.insert(0, os.path.abspath('.')) -import hyperspy.api as hs import numpydoc from packaging.version import Version -# Set logging level to `ERROR` to avoid exspy warning in documentation -hs.set_log_level("ERROR") - - # -- Project information ----------------------------------------------------- project = "eXSpy" -copyright = "2023, eSpy Developers" +copyright = "2024, eXSpy Developers" author = "eXSpy Developers" @@ -44,6 +39,7 @@ "sphinx_copybutton", "sphinx.ext.autodoc", "sphinx.ext.autosummary", + "sphinx.ext.doctest", "sphinx.ext.githubpages", "sphinx.ext.intersphinx", "sphinx.ext.napoleon", @@ -54,17 +50,13 @@ linkcheck_ignore = [ "https://doi.org/10.1021/acs.nanolett.5b00449", # 403 Client Error: Forbidden for url "https://onlinelibrary.wiley.com/doi/10.1111/j.1365-2818.2006.01549.x", # 403 Client Error: Forbidden for url - # Remove when setup - "https://github.com/hyperspy/exspy-demos", - "https://www.anaconda.com/blog/understanding-conda-and-pip", # Transcient? - # Remove once it is merged and the links are working - "https://exspy.readthedocs.io", - "https://github.com/hyperspy/exspy/blob/main/releasing_guide.md", + "https://onlinelibrary.wiley.com/doi/10.1002/sia.5789", # 403 Client Error: Forbidden for url + "https://onlinelibrary.wiley.com/doi/10.1002/jemt.20597", # 403 Client Error: Forbidden for url ] intersphinx_mapping = { "dask": ("https://docs.dask.org/en/latest", None), - "hyperspy": ("https://hyperspy.org/hyperspy-doc/dev", None), + "hyperspy": ("https://hyperspy.org/hyperspy-doc/current", None), "kikuchipy": ("https://kikuchipy.org/en/latest/", None), "matplotlib": ("https://matplotlib.org/stable", None), "numpy": ("https://numpy.org/doc/stable", None), @@ -159,3 +151,9 @@ towncrier_draft_autoversion_mode = "draft" towncrier_draft_include_empty = False towncrier_draft_working_directory = ".." + +doctest_global_setup = """ +import hyperspy.api as hs +import exspy +import numpy as np +""" diff --git a/doc/reference/index.rst b/doc/reference/index.rst index ee5527075..dc1108f76 100644 --- a/doc/reference/index.rst +++ b/doc/reference/index.rst @@ -13,3 +13,5 @@ Reference material models signals + utils.eds + utils.eels diff --git a/doc/reference/material.rst b/doc/reference/material.rst index 4e6c3120b..1df8d98c0 100644 --- a/doc/reference/material.rst +++ b/doc/reference/material.rst @@ -6,10 +6,58 @@ .. autosummary:: atomic_to_weight - weight_to_atomic density_of_mixture + elements mass_absorption_coefficient mass_absorption_mixture + weight_to_atomic .. automodule:: exspy.material - :members: \ No newline at end of file + :members: + +.. autoattribute:: exspy.material.elements + :annotation: + +Database of element properties. The following properties are included: + +.. code:: + + ├── Atomic_properties + │ ├── Binding_energies + │ └── Xray_lines + ├── General_properties + │ ├── Z + │ ├── atomic_weight + │ └── name + └── Physical_properties + └── density_gcm3 + +Examples: + +.. code:: + + >>> exspy.material.elements.Fe.General_properties + ├── Z = 26 + ├── atomic_weight = 55.845 + └── name = iron + >>> exspy.material.elements.Fe.Physical_properties + └── density (g/cm^3) = 7.874 + >>> exspy.material.elements.Fe.Atomic_properties.Xray_lines + ├── Ka + │ ├── energy (keV) = 6.404 + │ └── weight = 1.0 + ├── Kb + │ ├── energy (keV) = 7.0568 + │ └── weight = 0.1272 + ├── La + │ ├── energy (keV) = 0.705 + │ └── weight = 1.0 + ├── Lb3 + │ ├── energy (keV) = 0.792 + │ └── weight = 0.02448 + ├── Ll + │ ├── energy (keV) = 0.615 + │ └── weight = 0.3086 + └── Ln + ├── energy (keV) = 0.62799 + └── weight = 0.12525 diff --git a/doc/reference/utils.eds.rst b/doc/reference/utils.eds.rst new file mode 100644 index 000000000..24165f596 --- /dev/null +++ b/doc/reference/utils.eds.rst @@ -0,0 +1,17 @@ +:mod:`exspy.utils.eds` +---------------------- + +.. currentmodule:: exspy.utils.eds + + +.. autosummary:: + cross_section_to_zeta + electron_range + get_xray_lines_near_energy + take_off_angle + xray_range + zeta_to_cross_section + + +.. automodule:: exspy.utils.eds + :members: diff --git a/doc/reference/utils.eels.rst b/doc/reference/utils.eels.rst new file mode 100644 index 000000000..700768a00 --- /dev/null +++ b/doc/reference/utils.eels.rst @@ -0,0 +1,17 @@ +:mod:`exspy.utils.eels` +----------------------- + +.. currentmodule:: exspy.utils.eels + + +.. autosummary:: + effective_angle + get_edges_near_energy + get_info_from_edges + iMFP_angular_correction + iMFP_Iakoubovskii + iMFP_TPP2M + + +.. automodule:: exspy.utils.eels + :members: diff --git a/doc/user_guide/eds.rst b/doc/user_guide/eds.rst index 6bf2b64c7..aecd873dd 100644 --- a/doc/user_guide/eds.rst +++ b/doc/user_guide/eds.rst @@ -38,7 +38,8 @@ Loading data All data are loaded with the :py:func:`hyperspy.api.load` function, as described in detail in the :external+hyperspy:ref:`loading files` of the HyperSpy documentation. HyperSpy is able to import different formats, among them -``msa`` and ``rpl`` (the raw format of Oxford Instruments and Bruker). +:external+rsciio:ref:`msa ` and :external+rsciio:ref:`rpl ` +(the raw format of Oxford Instruments and Bruker). Here are three examples of files exported by Oxford Instruments software (INCA). For a single spectrum: @@ -59,7 +60,7 @@ dimensional signal with the energy axis in first position): >>> si -Finally, for a stack of spectrum images, using "*" as a wildcard character: +Finally, for a stack of spectrum images, ``"*"`` can be used as a wildcard character: .. code-block:: python @@ -138,7 +139,7 @@ or through the GUI: .. figure:: images/EDS_microscope_parameters_gui.png :align: center - :width: 350 + :width: 300 EDS microscope parameters preferences window @@ -159,7 +160,7 @@ or through the GUI: .. figure:: images/EDS_preferences_gui.png :align: center - :width: 400 + :width: 300 EDS preferences window @@ -231,19 +232,15 @@ The description of the sample is also stored in the ├── thickness = 100 └── xray_lines = ['Fe_Ka', 'Pt_La'] - -The following methods are either called "set" or "add". - -* "set" methods overwrite previously defined values -* "add" methods add to the previously defined values - Elements ^^^^^^^^ -The elements present in the sample can be defined using the -:py:meth:`~.signals.EDSSpectrum.set_elements` and -:py:meth:`~.signals.EDSSpectrum.add_elements` methods. Only element -abbreviations are accepted: +The elements present in the sample can be defined using two methods: + +- :py:meth:`~.signals.EDSSpectrum.set_elements` to overwrite previously defined elements +- :py:meth:`~.signals.EDSSpectrum.add_elements` to add to the previously defined elements + +Only element abbreviations are accepted: .. code-block:: python @@ -256,11 +253,13 @@ abbreviations are accepted: X-ray lines ^^^^^^^^^^^ -Similarly, the X-ray lines can be defined using the -:py:meth:`~.signals.EDSSpectrum.set_lines` and -:py:meth:`~.signals.EDSSpectrum.add_lines` methods. The corresponding -elements will be added automatically. -Several lines per element can be defined at once. +Similarly, the X-ray lines can be defined using: + +- :py:meth:`~.signals.EDSSpectrum.set_lines` to overwrite previously defined values +- :py:meth:`~.signals.EDSSpectrum.add_lines` to add to the previously defined elements + +The corresponding elements will be added automatically. Several lines per +element can be defined at once. .. code-block:: python @@ -278,7 +277,7 @@ overvoltage of 2 (< beam energy / 2)): .. code-block:: python - >>> s = hs.datasets.example_signals.EDS_SEM_Spectrum() + >>> s = exspy.data.EDS_SEM_TM002() >>> s.set_elements(['Al', 'Cu', 'Mn']) >>> s.set_microscope_parameters(beam_energy=30) >>> s.add_lines() @@ -300,7 +299,7 @@ energy: .. code-block:: python - >>> s = hs.datasets.example_signals.EDS_SEM_Spectrum() + >>> s = exspy.data.EDS_SEM_TM002() >>> s.set_elements(['Mn']) >>> s.set_microscope_parameters(beam_energy=5) >>> s.add_lines(['Mn_Ka']) @@ -310,18 +309,18 @@ energy: Elemental database ^^^^^^^^^^^^^^^^^^ -HyperSpy includes an elemental database, which contains the energy of the +`eXSpy` includes an elemental database, which contains the energy of the X-ray lines. .. code-block:: python - >>> hs.material.elements.Fe.General_properties + >>> exspy.material.elements.Fe.General_properties ├── Z = 26 ├── atomic_weight = 55.845 └── name = iron - >>> hs.material.elements.Fe.Physical_properties + >>> exspy.material.elements.Fe.Physical_properties └── density (g/cm^3) = 7.874 - >>> hs.material.elements.Fe.Atomic_properties.Xray_lines + >>> exspy.material.elements.Fe.Atomic_properties.Xray_lines ├── Ka │ ├── energy (keV) = 6.404 │ └── weight = 1.0 @@ -345,14 +344,14 @@ Finding elements from energy ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ To find the nearest X-ray line for a given energy, use the utility function -:py:func:`~.misc.eds.utils.get_xray_lines_near_energy` to search the elemental +:py:func:`~.utils.eds.get_xray_lines_near_energy` to search the elemental database: .. code-block:: python - >>> s = hs.datasets.example_signals.EDS_SEM_Spectrum() + >>> s = exspy.data.EDS_SEM_TM002() >>> P = s.find_peaks1D_ohaver(maxpeakn=1)[0] - >>> hs.eds.get_xray_lines_near_energy(P['position'], only_lines=['a', 'b']) + >>> exspy.utils.eds.get_xray_lines_near_energy(P['position'], only_lines=['a', 'b']) ['C_Ka', 'Ca_La', 'B_Ka'] The lines are returned in order of distance from the specified energy, and can @@ -369,7 +368,7 @@ You can visualize an EDS spectrum using the .. code-block:: python - >>> s = hs.datasets.example_signals.EDS_SEM_Spectrum() + >>> s = exspy.data.EDS_SEM_TM002() >>> s.plot() .. figure:: images/EDS_plot_spectrum.png @@ -389,13 +388,13 @@ Plotting X-ray lines X-ray lines can be added as plot labels with :py:meth:`~.signals.EDSSpectrum.plot`. The lines are either retrieved -from ``metadata.Sample.Xray_lines``, or selected with the same method as -:py:meth:`~.signals.EDSSpectrum.add_lines` using the elements in -``metadata.Sample.elements``. +from :ref:`metadata.Sample.Xray_lines `, or selected +with the same method as :py:meth:`~.signals.EDSSpectrum.add_lines` using +the elements defined in :ref:`metadata.Sample.elements `. .. code-block:: python - >>> s = hs.datasets.example_signals.EDS_SEM_Spectrum() + >>> s = exspy.data.EDS_SEM_TM002() >>> s.add_elements(['C','Mn','Cu','Al','Zr']) >>> s.plot(True) @@ -409,7 +408,7 @@ You can also select a subset of lines to label: .. code-block:: python - >>> s = hs.datasets.example_signals.EDS_SEM_Spectrum() + >>> s = exspy.data.EDS_SEM_TM002() >>> s.add_elements(['C','Mn','Cu','Al','Zr']) >>> s.plot(True, only_lines=['Ka','b']) @@ -451,9 +450,9 @@ Mn Ka to the peak energy (``energy_resolution_MnKa`` in the metadata): :align: center :width: 500 - Iron map as computed and displayed by ``get_lines_intensity`` + Iron map as computed and displayed by :py:meth:`~.signals.EDSSpectrum.get_lines_intensity` -The X-ray lines defined in ``metadata.Sample.Xray_lines`` are used by default. +The X-ray lines defined in :ref:`metadata.Sample.Xray_lines ` are used by default. The EDS maps can be plotted using :py:func:`hyperspy.api.plot.plot_images`, see :external+hyperspy:ref:`plotting several images` for more information in setting plotting parameters. @@ -598,8 +597,8 @@ ranges containing no X-ray lines: >>> m.fit_background() The width of the X-ray lines is defined from the energy resolution (FWHM at -Mn Ka) provided by ``energy_resolution_MnKa`` in ``metadata``. This parameter -can be calibrated by fitting with +Mn Ka) provided by :ref:`metadata.Acquisition_instrument.Detector.EDS.energy_resolution_MnKa `. +This parameter can be calibrated by fitting with :py:meth:`~.models.EDSModel.calibrate_energy_axis`: .. code-block:: python @@ -692,8 +691,8 @@ and :ref:`[Watanabe2006] `. Cross sections should be provided in units of barns (b). Further details on the cross section method can be found in :ref:`[MacArthur2016] `. Conversion between zeta-factors and cross sections is possible using -:py:func:`~.misc.eds.utils.edx_cross_section_to_zeta` or -:py:func:`~.misc.eds.utils.zeta_to_edx_cross_section`. +:py:func:`~.utils.eds.cross_section_to_zeta` or +:py:func:`~.utils.eds.zeta_to_cross_section`. Using the Cliff-Lorimer method as an example, quantification can be carried out as follows: @@ -722,14 +721,14 @@ transformed into weight percent either with the option Fe (Fe_Ka): Composition = 4.96 weight percent Pt (Pt_La): Composition = 95.04 weight percent -or using :py:func:`~.misc.material.atomic_to_weight`: +or using :py:func:`~.material.atomic_to_weight`: .. code-block:: python >>> # With atomic_percent from before - >>> weight_percent = hs.material.atomic_to_weight(atomic_percent) + >>> weight_percent = exspy.material.atomic_to_weight(atomic_percent) -The reverse method is :py:func:`~.misc.material.weight_to_atomic`. +The reverse method is :py:func:`~.material.weight_to_atomic`. The zeta-factor method needs both the ``beam_current`` (in nA) and the acquisition or dwell time (referred to as ``real_time`` in seconds) in order @@ -834,17 +833,18 @@ Mass absorption coefficient database ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ A mass absorption coefficient database :ref:`[Chantler2005] ` -is available: +is available can be accessed using :py:meth:`exspy.material.mass_absorption_coefficient` +and :py:meth:`exspy.material.mass_absorption_mixture`: .. code-block:: python - >>> hs.material.mass_absorption_coefficient( + >>> exspy.material.mass_absorption_coefficient( ... element='Al', energies=['C_Ka','Al_Ka']) array([ 26330.38933818, 372.02616732]) .. code-block:: python - >>> hs.material.mass_absorption_mixture( + >>> exspy.material.mass_absorption_mixture( ... elements=['Al','Zn'], weight_percent=[50,50], energies='Al_Ka') 2587.4161643905127 @@ -852,20 +852,20 @@ Electron and X-ray range ^^^^^^^^^^^^^^^^^^^^^^^^ The electron and X-ray range in a bulk material can be estimated with -:py:meth:`hs.eds.electron_range` and :py:meth:`hs.eds.xray_range` +:py:meth:`exspy.utils.eds.electron_range` and :py:meth:`exspy.utils.eds.xray_range` To calculate the X-ray range of Cu Ka in pure Copper at 30 kV in micron: .. code-block:: python - >>> hs.eds.xray_range('Cu_Ka', 30.) + >>> exspy.utils.eds.xray_range('Cu_Ka', 30.) 1.9361716759499248 To calculate the X-ray range of Cu Ka in pure Carbon at 30kV in micron: .. code-block:: python - >>> hs.eds.xray_range('Cu_Ka', 30., hs.material.elements.C. + >>> exspy.utils.eds.xray_range('Cu_Ka', 30., exspy.material.elements.C. ... Physical_properties.density_gcm3) 7.6418811280855454 @@ -873,5 +873,5 @@ To calculate the electron range in pure Copper at 30 kV in micron .. code-block:: python - >>> hs.eds.electron_range('Cu', 30.) + >>> exspy.utils.eds.electron_range('Cu', 30.) 2.8766744984001607 diff --git a/doc/user_guide/eels.rst b/doc/user_guide/eels.rst index ddfbfcb2e..19a2611ad 100644 --- a/doc/user_guide/eels.rst +++ b/doc/user_guide/eels.rst @@ -15,7 +15,7 @@ The functions described in this chapter are only available for the .. code-block:: python - >>> s.set_signal_type("EELS") + >>> s.set_signal_type("EELS") # doctest: +SKIP Note these chapter discusses features that are available only for :py:class:`~.signals.EELSSpectrum` class. However, this class inherits @@ -47,10 +47,9 @@ they are arranged in the order closest to 849 eV. .. code-block:: python - >>> from hyperspy.misc.eels.tools import get_edges_near_energy - >>> get_edges_near_energy(532) + >>> exspy.utils.eels.get_edges_near_energy(532) ['O_K', 'Pd_M3', 'Sb_M5', 'Sb_M4'] - >>> get_edges_near_energy(849, width=6) + >>> exspy.utils.eels.get_edges_near_energy(849, width=6) ['La_M4', 'Fe_L1'] The static method :py:meth:`~.signals.EELSSpectrum.print_edges_near_energy` @@ -59,7 +58,7 @@ more information about the edges. .. code-block:: python - >>> s = hs.datasets.artificial_data.get_core_loss_eels_signal() + >>> s = exspy.data.EELS_MnFe() >>> s.print_edges_near_energy(401, width=20) +-------+-------------------+-----------+-----------------------------+ | edge | onset energy (eV) | relevance | description | @@ -85,7 +84,7 @@ to aid identification of edges. .. code-block:: python - >>> s = hs.datasets.artificial_data.get_core_loss_eels_signal() + >>> s = exspy.data.EELS_MnFe() >>> s.edges_at_energy() .. figure:: images/EELS_edges_at_energy.png diff --git a/doc/user_guide/images/EDS_preferences_gui.png b/doc/user_guide/images/EDS_preferences_gui.png index 11392d7ea..3985a0c83 100644 Binary files a/doc/user_guide/images/EDS_preferences_gui.png and b/doc/user_guide/images/EDS_preferences_gui.png differ diff --git a/doc/user_guide/metadata_structure.rst b/doc/user_guide/metadata_structure.rst index cdbaa1a7d..985d8052b 100644 --- a/doc/user_guide/metadata_structure.rst +++ b/doc/user_guide/metadata_structure.rst @@ -101,6 +101,8 @@ General See :external+hyperspy:ref:`HyperSpy-Metadata-General `. +.. _sample-metadata: + Sample ====== @@ -315,6 +317,8 @@ spectrometer The spectrometer model, e.g. Gatan Enfinium ER (Model 977). +.. _eds-detector-metadata: + EDS ^^^ diff --git a/exspy/__init__.py b/exspy/__init__.py index 121b0ee7e..5d075f7e0 100644 --- a/exspy/__init__.py +++ b/exspy/__init__.py @@ -23,7 +23,8 @@ from . import data from . import models from . import signals -from .misc import material +from . import utils +from . import material from ._defaults_parser import preferences @@ -60,6 +61,7 @@ "material", "models", "signals", + "utils", ] diff --git a/exspy/docstrings/__init__.py b/exspy/_docstrings/__init__.py similarity index 100% rename from exspy/docstrings/__init__.py rename to exspy/_docstrings/__init__.py diff --git a/exspy/docstrings/model.py b/exspy/_docstrings/model.py similarity index 96% rename from exspy/docstrings/model.py rename to exspy/_docstrings/model.py index 0d76d0de7..6c9eb83a2 100644 --- a/exspy/docstrings/model.py +++ b/exspy/_docstrings/model.py @@ -19,7 +19,7 @@ """Common docstring snippets for model.""" -from exspy.misc.eels.gosh_gos import GOSH_SOURCES +from exspy._misc.eels.gosh_gos import _GOSH_SOURCES GOS_PARAMETER = """GOS : 'hydrogenic', 'dft', 'dirac', 'Hartree-Slater'. The GOS to use. Default is ``'dft'``. @@ -27,7 +27,7 @@ gos_file_path : str, None Only with GOS='dft' or 'dirac'. Specify the file path of the gosh file to use. If None, use the file from doi:{}""".format( - GOSH_SOURCES["dft"]["DOI"] + _GOSH_SOURCES["dft"]["DOI"] ) EELSMODEL_PARAMETERS = """ll : None or EELSSpectrum diff --git a/exspy/_misc/__init__.py b/exspy/_misc/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/exspy/_misc/eds/__init__.py b/exspy/_misc/eds/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/exspy/misc/eds/ffast_mac.py b/exspy/_misc/eds/ffast_mac.py similarity index 100% rename from exspy/misc/eds/ffast_mac.py rename to exspy/_misc/eds/ffast_mac.py diff --git a/exspy/_misc/eds/utils.py b/exspy/_misc/eds/utils.py new file mode 100644 index 000000000..24f6dd188 --- /dev/null +++ b/exspy/_misc/eds/utils.py @@ -0,0 +1,774 @@ +# -*- coding: utf-8 -*- +# Copyright 2007-2024 The eXSpy developers +# +# This file is part of eXSpy. +# +# eXSpy is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# eXSpy is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with eXSpy. If not, see . + + +import numpy as np +import math +from scipy import constants +from hyperspy.misc.utils import stack +from exspy._misc.elements import elements as elements_db +from functools import reduce + + +eV2keV = 1000.0 +sigma2fwhm = 2 * math.sqrt(2 * math.log(2)) + + +_ABSORPTION_CORRECTION_DOCSTRING = """absorption_correction : numpy.ndarray or None + If None (default), absorption correction is ignored, otherwise, the + array must contain values between 0 and 1 to correct the intensities + based on estimated absorption. +""" + + +def _get_element_and_line(xray_line): + """ + Returns the element name and line character for a particular X-ray line as + a tuple. + + By example, if xray_line = 'Mn_Ka' this function returns ('Mn', 'Ka') + """ + lim = xray_line.find("_") + if lim == -1: + raise ValueError(f"Invalid xray-line: {xray_line}") + return xray_line[:lim], xray_line[lim + 1 :] + + +def _get_energy_xray_line(xray_line): + """ + Returns the energy (in keV) associated with a given X-ray line. + + By example, if xray_line = 'Mn_Ka' this function returns 5.8987 + """ + element, line = _get_element_and_line(xray_line) + return elements_db[element]["Atomic_properties"]["Xray_lines"][line]["energy (keV)"] + + +def _get_xray_lines_family(xray_line): + """ + Returns the family to which a particular X-ray line belongs. + + By example, if xray_line = 'Mn_Ka' this function returns 'Mn_K' + """ + return xray_line[: xray_line.find("_") + 2] + + +def _parse_only_lines(only_lines): + if isinstance(only_lines, str): + pass + elif hasattr(only_lines, "__iter__"): + if any(isinstance(line, str) is False for line in only_lines): + return only_lines + else: + return only_lines + only_lines = list(only_lines) + for only_line in only_lines: + if only_line == "a": + only_lines.extend(["Ka", "La", "Ma"]) + elif only_line == "b": + only_lines.extend(["Kb", "Lb1", "Mb"]) + return only_lines + + +def get_xray_lines_near_energy(energy, width=0.2, only_lines=None): + """Find xray lines near a specific energy, more specifically all xray lines + that satisfy only_lines and are within the given energy window width around + the passed energy. + + Parameters + ---------- + energy : float + Energy to search near in keV + width : float + Window width in keV around energy in which to find nearby energies, + i.e. a value of 0.2 keV (the default) means to search +/- 0.1 keV. + only_lines : str or None + If not None, only the given lines will be added (eg. ('a','Kb')). + + Returns + ------- + xray_lines : numpy.ndarray + List of xray-lines sorted by energy difference to the given energy. + """ + only_lines = _parse_only_lines(only_lines) + valid_lines = [] + E_min, E_max = energy - width / 2.0, energy + width / 2.0 + for element, el_props in elements_db.items(): + # Not all elements in the DB have the keys, so catch KeyErrors + try: + lines = el_props["Atomic_properties"]["Xray_lines"] + except KeyError: + continue + for line, l_props in lines.items(): + if only_lines and line not in only_lines: + continue + line_energy = l_props["energy (keV)"] + if E_min <= line_energy <= E_max: + # Store line in Element_Line format, and energy difference + valid_lines.append((element + "_" + line, abs(line_energy - energy))) + # Sort by energy difference, but return only the line names + return [line for line, _ in sorted(valid_lines, key=lambda x: x[1])] + + +def get_FWHM_at_Energy(energy_resolution_MnKa, E): + """Calculates an approximate FWHM, accounting for peak broadening due to the + detector, for a peak at energy E given a known width at a reference energy. + + The factor 2.5 is a constant derived by Fiori & Newbury as references + below. + + Parameters + ---------- + energy_resolution_MnKa : float + Energy resolution of Mn Ka in eV + E : float + Energy of the peak in keV + + Returns + ------- + FWHM : float + FWHM of the peak in keV + + Notes + ----- + This method implements the equation derived by Fiori and Newbury as is + documented in the following: + + Fiori, C. E., and Newbury, D. E. (1978). In SEM/1978/I, SEM, Inc., + AMF O'Hare, Illinois, p. 401. + + Goldstein et al. (2003). "Scanning Electron Microscopy & X-ray + Microanalysis", Plenum, third edition, p 315. + + """ + FWHM_ref = energy_resolution_MnKa + E_ref = _get_energy_xray_line("Mn_Ka") + + FWHM_e = 2.5 * (E - E_ref) * eV2keV + FWHM_ref * FWHM_ref + + return math.sqrt(FWHM_e) / 1000.0 # In mrad + + +def xray_range(xray_line, beam_energy, density="auto"): + """Return the maximum range of X-ray generation according to the + Anderson-Hasler parameterization. + + Parameters + ---------- + xray_line : str + The X-ray line, e.g. 'Al_Ka' + beam_energy : float + The energy of the beam in kV. + density : {float, 'auto'} + The density of the material in g/cm3. If 'auto', the density + of the pure element is used. + + Returns + ------- + xray_range : float + The X-ray range in micrometer. + + See Also + -------- + exspy.utils.eds.electron_range + + Examples + -------- + >>> # X-ray range of Cu Ka in pure Copper at 30 kV in micron + >>> hs.eds.xray_range('Cu_Ka', 30.) + 1.9361716759499248 + + >>> # X-ray range of Cu Ka in pure Carbon at 30kV in micron + >>> hs.eds.xray_range('Cu_Ka', 30., hs.material.elements.C. + >>> Physical_properties.density_gcm3) + 7.6418811280855454 + + Notes + ----- + From Anderson, C.A. and M.F. Hasler (1966). In proceedings of the + 4th international conference on X-ray optics and microanalysis. + + See also the textbook of Goldstein et al., Plenum publisher, + third edition p 286 + + """ + + element, line = _get_element_and_line(xray_line) + if density == "auto": + density = elements_db[element]["Physical_properties"]["density (g/cm^3)"] + Xray_energy = _get_energy_xray_line(xray_line) + # Note: magic numbers here are from Andersen-Hasler parameterization. See + # docstring for associated references. + return 0.064 / density * (np.power(beam_energy, 1.68) - np.power(Xray_energy, 1.68)) + + +def electron_range(element, beam_energy, density="auto", tilt=0): + """Returns the maximum electron range for a pure bulk material according to + the Kanaya-Okayama parameterziation. + + Parameters + ---------- + element : str + The element symbol, e.g. 'Al'. + beam_energy : float + The energy of the beam in keV. + density : float or str (``'auto'``) + The density of the material in g/cm3. If 'auto', the density of + the pure element is used. + tilt : float + The tilt of the sample in degrees. + + Returns + ------- + electron_range : float + Electron range in micrometers. + + See Also + -------- + exspy.utils.eds.xray_range + + Examples + -------- + >>> # Electron range in pure Copper at 30 kV in micron + >>> hs.eds.electron_range('Cu', 30.) + 2.8766744984001607 + + Notes + ----- + From Kanaya, K. and S. Okayama (1972). J. Phys. D. Appl. Phys. 5, p43 + + See also the textbook of Goldstein et al., Plenum publisher, + third edition p 72. + + """ + + if density == "auto": + density = elements_db[element]["Physical_properties"]["density (g/cm^3)"] + Z = elements_db[element]["General_properties"]["Z"] + A = elements_db[element]["General_properties"]["atomic_weight"] + # Note: magic numbers here are from Kanaya-Okayama parameterization. See + # docstring for associated references. + return ( + 0.0276 + * A + / np.power(Z, 0.89) + / density + * np.power(beam_energy, 1.67) + * math.cos(math.radians(tilt)) + ) + + +def take_off_angle(tilt_stage, azimuth_angle, elevation_angle, beta_tilt=0.0): + """Calculate the take-off-angle (TOA). + + TOA is the angle with which the X-rays leave the surface towards + the detector. + + Parameters + ---------- + alpha_tilt : float + The alpha-tilt of the stage in degrees. The sample is facing the detector + when positively tilted. + azimuth_angle : float + The azimuth of the detector in degrees. 0 is perpendicular to the alpha + tilt axis. + elevation_angle : float + The elevation of the detector in degrees. + beta_tilt : float + The beta-tilt of the stage in degrees. The sample is facing positive 90 + in the azimuthal direction when positively tilted. + + Returns + ------- + take_off_angle : float + The take off angle in degrees. + + Examples + -------- + >>> hs.eds.take_off_angle(alpha_tilt=10., beta_tilt=0. + >>> azimuth_angle=45., elevation_angle=22.) + 28.865971201155283 + """ + + if tilt_stage is None: + raise ValueError( + "Unable to calculate take-off angle. The metadata property " + "`Stage.tilt_alpha` is not set." + ) + + if azimuth_angle is None: + raise ValueError( + "Unable to calculate take-off angle. The metadata property " + "`Detector.EDS.azimuth_angle` is not set." + ) + + if elevation_angle is None: + raise ValueError( + "Unable to calculate take-off angle. The metadata property " + "`Detector.EDS.elevation_angle` is not set." + ) + + alpha = math.radians(tilt_stage) + beta = -math.radians(beta_tilt) + phi = math.radians(azimuth_angle) + theta = -math.radians(elevation_angle) + + return 90 - math.degrees( + np.arccos( + math.sin(alpha) * math.cos(beta) * math.cos(phi) * math.cos(theta) + - math.sin(beta) * math.sin(phi) * math.cos(theta) + - math.cos(alpha) * math.cos(beta) * math.sin(theta) + ) + ) + + +def xray_lines_model( + elements, + beam_energy=200, + weight_percents=None, + energy_resolution_MnKa=130, + energy_axis=None, +): + """ + Generate a model of X-ray lines using a Gaussian distribution for each + peak. + + The area under a main peak (alpha) is equal to 1 and weighted by the + composition. + + Parameters + ---------- + elements : list of strings + A list of chemical element symbols. + beam_energy: float + The energy of the beam in keV. + weight_percents: list of float + The composition in weight percent. + energy_resolution_MnKa: float + The energy resolution of the detector in eV + energy_axis: dic + The dictionary for the energy axis. It must contains 'size' and the + units must be 'eV' of 'keV'. + + Example + ------- + >>> s = xray_lines_model(['Cu', 'Fe'], beam_energy=30) + >>> s.plot() + """ + from exspy.signals.eds_tem import EDSTEMSpectrum + from hyperspy import components1d + + if energy_axis is None: + energy_axis = { + "name": "E", + "scale": 0.01, + "units": "keV", + "offset": -0.1, + "size": 1024, + } + s = EDSTEMSpectrum(np.zeros(energy_axis["size"]), axes=[energy_axis]) + s.set_microscope_parameters( + beam_energy=beam_energy, energy_resolution_MnKa=energy_resolution_MnKa + ) + s.add_elements(elements) + counts_rate = 1.0 + live_time = 1.0 + if weight_percents is None: + weight_percents = [100.0 / len(elements)] * len(elements) + m = s.create_model() + if len(elements) == len(weight_percents): + for element, weight_percent in zip(elements, weight_percents): + for line, properties in elements_db[element]["Atomic_properties"][ + "Xray_lines" + ].items(): + line_energy = properties["energy (keV)"] + ratio_line = properties["weight"] + if s._get_xray_lines_in_spectral_range([element + "_" + line])[1] == []: + g = components1d.Gaussian() + g.centre.value = line_energy + g.sigma.value = ( + get_FWHM_at_Energy(energy_resolution_MnKa, line_energy) + / sigma2fwhm + ) + g.A.value = ( + live_time * counts_rate * weight_percent / 100 * ratio_line + ) + m.append(g) + else: + raise ValueError( + "The number of elements specified is not the same " + "as the number of weight_percents" + ) + + s.data = m.as_signal().data + return s + + +def quantification_cliff_lorimer( + intensities, kfactors, absorption_correction=None, mask=None +): + """ + Quantification using Cliff-Lorimer + + Parameters + ---------- + intensities: numpy.array + the intensities for each X-ray lines. The first axis should be the + elements axis. + kfactors: list of float + The list of kfactor in same order as intensities eg. kfactors = + [1, 1.47, 1.72] for ['Al_Ka','Cr_Ka', 'Ni_Ka'] + %s + mask: array of bool, signal of bool or None + The mask with the dimension of intensities[0]. If a pixel is True, + the composition is set to zero. + + Return + ------ + numpy.array containing the weight fraction with the same + shape as intensities. + """ + # Value used as an threshold to prevent using zeros as denominator + min_intensity = 0.1 + dim = intensities.shape + dim2 = reduce(lambda x, y: x * y, dim[1:]) + intens = intensities.reshape(dim[0], dim2).astype(float) + + if absorption_correction is None: + # default to ones + absorption_correction = np.ones_like(intens, dtype=float) + else: + absorption_correction = absorption_correction.reshape(dim[0], dim2) + + for i in range(dim2): + index = np.where(intens[:, i] > min_intensity)[0] + if len(index) > 1: + ref_index, ref_index2 = index[:2] + intens[:, i] = _quantification_cliff_lorimer( + intens[:, i], + kfactors, + absorption_correction[:, i], + ref_index, + ref_index2, + ) + else: + intens[:, i] = np.zeros_like(intens[:, i]) + if len(index) == 1: + intens[index[0], i] = 1.0 + + intens = intens.reshape(dim) + if mask is not None: + from hyperspy.signals import BaseSignal + + if isinstance(mask, BaseSignal): + mask = mask.data + if mask.dtype != bool: + mask = mask.astype(bool) + for i in range(dim[0]): + intens[i][mask] = 0 + + return intens + + +quantification_cliff_lorimer.__doc__ %= _ABSORPTION_CORRECTION_DOCSTRING + + +def _quantification_cliff_lorimer( + intensities, kfactors, absorption_correction, ref_index=0, ref_index2=1 +): + """ + Quantification using Cliff-Lorimer + + Parameters + ---------- + intensities: numpy.array + the intensities for each X-ray lines. The first axis should be the + elements axis. + absorption_correction: numpy.ndarray + value between 0 and 1 in order to correct the intensities based on + estimated absorption. + kfactors: list of float + The list of kfactor in same order as intensities eg. kfactors = + [1, 1.47, 1.72] for ['Al_Ka','Cr_Ka', 'Ni_Ka'] + ref_index, ref_index2: int + index of the elements that will be in the denominator. Should be non + zeros if possible. + + Return + ------ + numpy.array containing the weight fraction with the same + shape as intensities. + """ + if len(intensities) != len(kfactors): + raise ValueError( + "The number of kfactors must match the size of the " + "first axis of intensities." + ) + + ab = np.zeros_like(intensities, dtype="float") + composition = np.ones_like(intensities, dtype="float") + # ab = Ia/Ib / kab + other_index = list(range(len(kfactors))) + other_index.pop(ref_index) + for i in other_index: + ab[i] = ( + (intensities[ref_index] * absorption_correction[ref_index]) + / (intensities[i] * absorption_correction[i]) + * (kfactors[ref_index] / kfactors[i]) + ) + # Ca = ab /(1 + ab + ab/ac + ab/ad + ...) + for i in other_index: + if i == ref_index2: + composition[ref_index] += ab[ref_index2] + else: + composition[ref_index] += ab[ref_index2] / ab[i] + composition[ref_index] = ab[ref_index2] / composition[ref_index] + # Cb = Ca / ab + for i in other_index: + composition[i] = composition[ref_index] / ab[i] + return composition + + +def quantification_zeta_factor(intensities, zfactors, dose, absorption_correction=None): + """ + Quantification using the zeta-factor method + + Parameters + ---------- + intensities: numpy.array + The intensities for each X-ray line. The first axis should be the + elements axis. + zfactors: list of float + The list of zeta-factors in the same order as intensities + e.g. zfactors = [628.10, 539.89] for ['As_Ka', 'Ga_Ka']. + dose: float + The total electron dose given by i*t*N, i the current, + t the acquisition time and + N the number of electrons per unit electric charge (1/e). + %s + + Returns + ------ + A numpy.array containing the weight fraction with the same + shape as intensities and mass thickness in kg/m^2. + """ + if absorption_correction is None: + # default to ones + absorption_correction = np.ones_like(intensities, dtype="float") + + sumzi = np.zeros_like(intensities[0], dtype="float") + composition = np.zeros_like(intensities, dtype="float") + for intensity, zfactor, acf in zip(intensities, zfactors, absorption_correction): + sumzi = sumzi + (intensity * zfactor * acf) + for i, (intensity, zfactor, acf) in enumerate( + zip(intensities, zfactors, absorption_correction) + ): + composition[i] = intensity * zfactor * acf / sumzi + mass_thickness = sumzi / dose + return composition, mass_thickness + + +quantification_zeta_factor.__doc__ %= _ABSORPTION_CORRECTION_DOCSTRING + + +def get_abs_corr_zeta(weight_percent, mass_thickness, take_off_angle): + """ + Calculate absorption correction terms. + + Parameters + ---------- + weight_percent: list of signal + Composition in weight percent. + mass_thickness: signal + Density-thickness map in kg/m^2 + take_off_angle: float + X-ray take-off angle in degrees. + """ + from exspy._misc import material + + toa_rad = np.radians(take_off_angle) + csc_toa = 1.0 / np.sin(toa_rad) + # convert from cm^2/g to m^2/kg + mac = ( + stack( + material.mass_absorption_mixture(weight_percent=weight_percent), + show_progressbar=False, + ) + * 0.1 + ) + expo = mac.data * mass_thickness.data * csc_toa + acf = expo / (1.0 - np.exp(-(expo))) + return acf + + +def quantification_cross_section( + intensities, cross_sections, dose, absorption_correction=None +): + """ + Quantification using EDX cross sections + Calculate the atomic compostion and the number of atoms per pixel + from the raw X-ray intensity + + Parameters + ---------- + intensity : numpy.ndarray + The integrated intensity for each X-ray line, where the first axis + is the element axis. + cross_sections : list of floats + List of X-ray scattering cross-sections in the same order as the + intensities. + dose: float + the dose per unit area given by i*t*N/A, i the current, + t the acquisition time, and + N the number of electron by unit electric charge. + %s + + Returns + ------- + numpy.array containing the atomic fraction of each element, with + the same shape as the intensity input. + numpy.array of the number of atoms counts for each element, with the same + shape as the intensity input. + """ + + if absorption_correction is None: + # default to ones + absorption_correction = np.ones_like(intensities, dtype=float) + + shp = len(intensities.shape) - 1 + slices = (slice(None),) + (None,) * shp + x_sections = np.array(cross_sections, dtype=float)[slices] + number_of_atoms = intensities / (x_sections * dose * 1e-10) * absorption_correction + total_atoms = np.cumsum(number_of_atoms, axis=0)[-1] + composition = number_of_atoms / total_atoms + + return composition, number_of_atoms + + +quantification_cross_section.__doc__ %= _ABSORPTION_CORRECTION_DOCSTRING + + +def get_abs_corr_cross_section( + composition, number_of_atoms, take_off_angle, probe_area +): + """ + Calculate absorption correction terms. + + Parameters + ---------- + number_of_atoms: list of signal + Stack of maps with number of atoms per pixel. + take_off_angle: float + X-ray take-off angle in degrees. + """ + from exspy._misc import material + + toa_rad = np.radians(take_off_angle) + Av = constants.Avogadro + elements = [intensity.metadata.Sample.elements[0] for intensity in number_of_atoms] + atomic_weights = np.array( + [ + elements_db[element]["General_properties"]["atomic_weight"] + for element in elements + ] + ) + + number_of_atoms = stack(number_of_atoms, show_progressbar=False).data + + # calculate the total_mass in kg/m^2, or mass thickness. + total_mass = np.zeros_like(number_of_atoms[0], dtype="float") + for i, (weight) in enumerate(atomic_weights): + total_mass += number_of_atoms[i] * weight / Av / 1e3 / probe_area / 1e-18 + # determine mass absorption coefficients and convert from cm^2/g to m^2/kg. + to_stack = material.mass_absorption_mixture( + weight_percent=material.atomic_to_weight(composition) + ) + mac = stack(to_stack, show_progressbar=False) * 0.1 + acf = np.zeros_like(number_of_atoms) + csc_toa = 1 / math.sin(toa_rad) + # determine an absorption coeficient per element per pixel. + for i, (weight) in enumerate(atomic_weights): + expo = mac.data[i] * total_mass * csc_toa + acf[i] = expo / (1 - np.exp(-expo)) + return acf + + +def cross_section_to_zeta(cross_sections, elements): + """Convert a list of cross_sections in barns (b) to zeta-factors (kg/m^2). + + Parameters + ---------- + cross_section : list of float + A list of cross sections in barns. + elements : list of str + A list of element chemical symbols in the same order as the + cross sections e.g. ['Al','Zn'] + + Returns + ------- + zeta_factors : list of float + The zeta factors with units kg/m^2. + + See Also + -------- + exspy.utils.eds.zeta_to_cross_section + + """ + if len(elements) != len(cross_sections): + raise ValueError( + "The number of elements must match the number of cross sections." + ) + zeta_factors = [] + for i, element in enumerate(elements): + atomic_weight = elements_db[element]["General_properties"]["atomic_weight"] + zeta = atomic_weight / (cross_sections[i] * constants.Avogadro * 1e-25) + zeta_factors.append(zeta) + return zeta_factors + + +def zeta_to_cross_section(zfactors, elements): + """Convert a list of zeta-factors (kg/m^2) to cross_sections in barns (b). + + Parameters + ---------- + zfactors : list of float + A list of zeta-factors. + elements : list of str + A list of element chemical symbols in the same order as the + cross sections e.g. ['Al','Zn'] + + Returns + ------- + cross_sections : list of float + The cross sections with units in barns. + + See Also + -------- + exspy.utils.eds.cross_section_to_zeta + + """ + if len(elements) != len(zfactors): + raise ValueError( + "The number of elements must match the number of cross sections." + ) + cross_sections = [] + for i, element in enumerate(elements): + atomic_weight = elements_db[element]["General_properties"]["atomic_weight"] + xsec = atomic_weight / (zfactors[i] * constants.Avogadro * 1e-25) + cross_sections.append(xsec) + return cross_sections diff --git a/exspy/_misc/eels/__init__.py b/exspy/_misc/eels/__init__.py new file mode 100644 index 000000000..226478356 --- /dev/null +++ b/exspy/_misc/eels/__init__.py @@ -0,0 +1,5 @@ +from exspy._misc.eels.hydrogenic_gos import HydrogenicGOS +from exspy._misc.eels.gosh_gos import GoshGOS +from exspy._misc.eels.hartree_slater_gos import HartreeSlaterGOS + +__all__ = ["HydrogenicGOS", "GoshGOS", "HartreeSlaterGOS"] diff --git a/exspy/misc/eels/base_gos.py b/exspy/_misc/eels/base_gos.py similarity index 99% rename from exspy/misc/eels/base_gos.py rename to exspy/_misc/eels/base_gos.py index 58c0a6768..a9d04ef5c 100644 --- a/exspy/misc/eels/base_gos.py +++ b/exspy/_misc/eels/base_gos.py @@ -22,7 +22,7 @@ import numpy as np from scipy import constants, integrate, interpolate -from exspy.misc.elements import elements +from exspy._misc.elements import elements from hyperspy.misc.export_dictionary import ( export_to_dictionary, load_from_dictionary, diff --git a/exspy/misc/eels/eelsdb.py b/exspy/_misc/eels/eelsdb.py similarity index 100% rename from exspy/misc/eels/eelsdb.py rename to exspy/_misc/eels/eelsdb.py diff --git a/exspy/misc/eels/effective_angle.py b/exspy/_misc/eels/effective_angle.py similarity index 96% rename from exspy/misc/eels/effective_angle.py rename to exspy/_misc/eels/effective_angle.py index dabbf1944..e3cc40504 100644 --- a/exspy/misc/eels/effective_angle.py +++ b/exspy/_misc/eels/effective_angle.py @@ -36,7 +36,8 @@ def effective_angle(E0, E, alpha, beta): Returns ------- - float : effective collection angle in mrad + effective_angle : float + The effective collection angle in mrad. Notes ----- diff --git a/exspy/_misc/eels/electron_inelastic_mean_free_path.py b/exspy/_misc/eels/electron_inelastic_mean_free_path.py new file mode 100644 index 000000000..f45e14acf --- /dev/null +++ b/exspy/_misc/eels/electron_inelastic_mean_free_path.py @@ -0,0 +1,161 @@ +# -*- coding: utf-8 -*- +# Copyright 2007-2024 The eXSpy developers +# +# This file is part of eXSpy. +# +# eXSpy is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# eXSpy is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with eXSpy. If not, see . + + +import numpy as np +import math + + +def _F(electron_energy): + return (1 + electron_energy / 1022) / (1 + electron_energy / 511) ** 2 + + +def _theta_E(density, electron_energy): + return 5.5 * density**0.3 / (_F(electron_energy) * electron_energy) + + +def iMFP_Iakoubovskii(density, electron_energy): + """Estimate electron inelastic mean free path from density + + Parameters + ---------- + density : float + Material density in g/cm**3 + beam_energy : float + Electron beam energy in keV + + Returns + ------- + inelastic_mean_free_path : float + The inelastic mean free path in nanometers. + + See Also + -------- + exspy.utils.eels.iMFP_TPP2M, exspy.utils.eels.angular_correction + + Notes + ----- + For details see Equation 9 in reference [*]_. + + .. [*] Iakoubovskii, K., K. Mitsuishi, Y. Nakayama, and K. Furuya. + ‘Thickness Measurements with Electron Energy Loss Spectroscopy’. + Microscopy Research and Technique 71, no. 8 (2008): 626–31. + https://onlinelibrary.wiley.com/doi/10.1002/jemt.20597 + """ + theta_C = 20 # mrad + inv_lambda = ( + 11 + * density**0.3 + / (200 * _F(electron_energy) * electron_energy) + * np.log(theta_C**2 / _theta_E(density, electron_energy) ** 2) + ) + return 1 / inv_lambda + + +def iMFP_TPP2M(electron_energy, density, M, N_v, E_g): + """Electron inelastic mean free path using TPP-2M. + + Parameters + ---------- + electron_energy : float + Electron beam energy in keV + density : float + Material density in g/cm**3 + M : float + Molar mass in g / mol + N_v : int + Number of valence electron + E_g : float + Band gap in eV + + Returns + ------- + inelastic_mean_free_path : float + The inelastic mean free path in nanometers. + + See Also + -------- + exspy.utils.eels.iMFP_Iakoubovskii, exspy.utils.eels.iMFP_angular_correction + + Notes + ----- + For details see reference [*]_. + + .. [*] Shinotsuka, H., S. Tanuma, C. J. Powell, and D. R. Penn. ‘Calculations + of Electron Inelastic Mean Free Paths. X. Data for 41 Elemental Solids over + the 50 EV to 200 KeV Range with the Relativistic Full Penn Algorithm: + Calculations of Electron Inelastic Mean Free Paths. X’. Surface and + Interface Analysis 47, no. 9 (September 2015): 871–88. + https://onlinelibrary.wiley.com/doi/10.1002/sia.5789 + """ + E = electron_energy * 1e3 + rho = density + alpha = (1 + E / 1021999.8) / (1 + E / 510998.9) ** 2 + E_p = 28.816 * math.sqrt(N_v * rho / M) + gamma = 0.191 / math.sqrt(rho) + U = (E_p / 28.816) ** 2 + C = 19.7 - 9.1 * U + D = 534 - 208 * U + beta = -1 + 9.44 / math.sqrt(E_p**2 + E_g**2) + 0.69 * rho**0.1 + iMFP = ( + alpha * E / (E_p**2 * (beta * math.log(gamma * alpha * E) - C / E + D / E**2)) + ) + return iMFP + + +def iMFP_angular_correction(density, beam_energy, alpha, beta): + """Estimate the effect of limited collection angle on EELS mean free path + + Parameters + ---------- + density : float + Material density in g/cm**3 + beam_energy : float + Electron beam energy in keV + alpha, beta : float + Convergence and collection angles in mrad. + + Returns + ------- + correction : float + The correction factor on the mean free path due to the collection angle. + + See Also + -------- + exspy.utils.eels.iMFP_Iakoubovskii, exspy.utils.eels.iMFP_TPP2M + + Notes + ----- + For details see Equation 9 in reference [*]_. + + .. [*] Iakoubovskii, K., K. Mitsuishi, Y. Nakayama, and K. Furuya. + ‘Thickness Measurements with Electron Energy Loss Spectroscopy’. + Microscopy Research and Technique 71, no. 8 (2008): 626–31. + https://onlinelibrary.wiley.com/doi/10.1002/jemt.20597 + """ + theta_C = 20 # mrad + A = ( + alpha**2 + + beta**2 + + 2 * _theta_E(density, beam_energy) ** 2 + + abs(alpha**2 - beta**2) + ) + B = alpha**2 + beta**2 + 2 * theta_C**2 + abs(alpha**2 - beta**2) + return np.log(theta_C**2 / _theta_E(density, beam_energy) ** 2) / np.log( + A * theta_C**2 / B / _theta_E(density, beam_energy) ** 2 + ) diff --git a/exspy/misc/eels/gosh_gos.py b/exspy/_misc/eels/gosh_gos.py similarity index 93% rename from exspy/misc/eels/gosh_gos.py rename to exspy/_misc/eels/gosh_gos.py index e3e710ce0..782381acd 100644 --- a/exspy/misc/eels/gosh_gos.py +++ b/exspy/_misc/eels/gosh_gos.py @@ -24,7 +24,7 @@ from scipy import constants from hyperspy.defaults_parser import preferences -from exspy.misc.eels.base_gos import TabulatedGOS +from exspy._misc.eels.base_gos import TabulatedGOS _logger = logging.getLogger(__name__) @@ -32,17 +32,17 @@ R = constants.value("Rydberg constant times hc in eV") a0 = constants.value("Bohr radius") -DFT_GOSH = { +_DFT_GOSH = { "DOI": "10.5281/zenodo.7645765", "URL": "doi:10.5281/zenodo.7645765/Segger_Guzzinati_Kohl_1.5.0.gosh", "KNOWN_HASH": "md5:7fee8891c147a4f769668403b54c529b", } -DIRAC_GOSH = { +_DIRAC_GOSH = { "DOI": "10.5281/zenodo.12800856", "URL": "doi:10.5281/zenodo.12800856/Dirac_GOS_compact.gosh", "KNOWN_HASH": "md5:01a855d3750d2c063955248358dbee8d", } -GOSH_SOURCES = {"dft": DFT_GOSH, "dirac": DIRAC_GOSH} +_GOSH_SOURCES = {"dft": _DFT_GOSH, "dirac": _DIRAC_GOSH} class GoshGOS(TabulatedGOS): @@ -101,11 +101,11 @@ def __init__(self, element_subshell, gos_file_path=None, source="dft"): if gos_file_path is None: source = source.lower() - assert source in GOSH_SOURCES.keys(), f"Invalid source: {source}" + assert source in _GOSH_SOURCES.keys(), f"Invalid source: {source}" self._name = source gos_file_path = pooch.retrieve( - url=GOSH_SOURCES[source]["URL"], - known_hash=GOSH_SOURCES[source]["KNOWN_HASH"], + url=_GOSH_SOURCES[source]["URL"], + known_hash=_GOSH_SOURCES[source]["KNOWN_HASH"], progressbar=preferences.General.show_progressbar, ) self.gos_file_path = gos_file_path diff --git a/exspy/misc/eels/hartree_slater_gos.py b/exspy/_misc/eels/hartree_slater_gos.py similarity index 99% rename from exspy/misc/eels/hartree_slater_gos.py rename to exspy/_misc/eels/hartree_slater_gos.py index 8439136fa..d57ca0431 100644 --- a/exspy/misc/eels/hartree_slater_gos.py +++ b/exspy/_misc/eels/hartree_slater_gos.py @@ -23,7 +23,7 @@ from scipy import constants from hyperspy.defaults_parser import preferences -from exspy.misc.eels.base_gos import TabulatedGOS +from exspy._misc.eels.base_gos import TabulatedGOS _logger = logging.getLogger(__name__) diff --git a/exspy/misc/eels/hydrogenic_gos.py b/exspy/_misc/eels/hydrogenic_gos.py similarity index 99% rename from exspy/misc/eels/hydrogenic_gos.py rename to exspy/_misc/eels/hydrogenic_gos.py index d7fb2e13e..669497ff6 100644 --- a/exspy/misc/eels/hydrogenic_gos.py +++ b/exspy/_misc/eels/hydrogenic_gos.py @@ -22,7 +22,7 @@ import numpy as np from scipy import integrate, interpolate, constants -from exspy.misc.eels.base_gos import BaseGOS +from exspy._misc.eels.base_gos import BaseGOS _logger = logging.getLogger(__name__) diff --git a/exspy/_misc/eels/tools.py b/exspy/_misc/eels/tools.py new file mode 100644 index 000000000..61c3e7e10 --- /dev/null +++ b/exspy/_misc/eels/tools.py @@ -0,0 +1,450 @@ +# -*- coding: utf-8 -*- +# Copyright 2007-2024 The eXSpy developers +# +# This file is part of eXSpy. +# +# eXSpy is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# eXSpy is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with eXSpy. If not, see . + +import math +import numbers +import logging + +import numpy as np +import matplotlib.pyplot as plt +from scipy import constants + +from hyperspy.misc.array_tools import rebin +from exspy._misc.elements import elements as elements_db +import hyperspy.defaults_parser + +_logger = logging.getLogger(__name__) + + +def _estimate_gain( + ns, cs, weighted=False, higher_than=None, plot_results=False, binning=0, pol_order=1 +): + if binning > 0: + factor = 2**binning + remainder = np.mod(ns.shape[1], factor) + if remainder != 0: + ns = ns[:, remainder:] + cs = cs[:, remainder:] + new_shape = (ns.shape[0], ns.shape[1] / factor) + ns = rebin(ns, new_shape) + cs = rebin(cs, new_shape) + + noise = ns - cs + variance = np.var(noise, 0) + average = np.mean(cs, 0).squeeze() + + # Select only the values higher_than for the calculation + if higher_than is not None: + sorting_index_array = np.argsort(average) + average_sorted = average[sorting_index_array] + average_higher_than = average_sorted > higher_than + variance_sorted = variance.squeeze()[sorting_index_array] + variance2fit = variance_sorted[average_higher_than] + average2fit = average_sorted[average_higher_than] + else: + variance2fit = variance + average2fit = average + + fit = np.polynomial.Polynomial.fit(average2fit, variance2fit, pol_order) + if weighted is True: + import hyperspy.api as hs + + s = hs.signals.Signal1D(variance2fit) + s.axes_manager.signal_axes[0].axis = average2fit + m = s.create_model() + line = hs.model.components1D.Polynomial() + line.a.value = fit[1] + line.b.value = fit[0] + m.append(line) + m.fit(weights=True) + fit[0] = line.b.value + fit[1] = line.a.value + + if plot_results is True: + plt.figure() + plt.scatter(average.squeeze(), variance.squeeze()) + plt.xlabel("Counts") + plt.ylabel("Variance") + plt.plot(average2fit, np.polyval(fit, average2fit), color="red") + results = {"fit": fit, "variance": variance.squeeze(), "counts": average.squeeze()} + + return results + + +def _estimate_correlation_factor(g0, gk, k): + a = math.sqrt(g0 / gk) + e = k * (a - 1) / (a - k) + c = (1 - e) ** 2 + return c + + +def estimate_variance_parameters( + noisy_signal, + clean_signal, + mask=None, + pol_order=1, + higher_than=None, + return_results=False, + plot_results=True, + weighted=False, + store_results="ask", +): + """Find the scale and offset of the Poissonian noise + + By comparing an SI with its denoised version (i.e. by PCA), + this plots an estimation of the variance as a function of the number of counts + and fits a polynomial to the result. + + Parameters + ---------- + noisy_SI, clean_SI : hyperspy.api.signals.Signal1D + mask : numpy.ndarray + To define the channels that will be used in the calculation. + pol_order : int + The order of the polynomial. + higher_than: float + To restrict the fit to counts over the given value. + return_results : bool + Whether to return the results or not. + plot_results : bool + Whether to plot the results or not. + store_results: {True, False, "ask"}, default "ask" + If True, it stores the result in the signal metadata + + Returns + ------- + dict + Dictionary with the result of a linear fit to estimate the offset + and scale factor + + """ + with noisy_signal.unfolded(), clean_signal.unfolded(): + # The rest of the code assumes that the first data axis + # is the navigation axis. We transpose the data if that is not the + # case. + ns = ( + noisy_signal.data.copy() + if noisy_signal.axes_manager[0].index_in_array == 0 + else noisy_signal.data.T.copy() + ) + cs = ( + clean_signal.data.copy() + if clean_signal.axes_manager[0].index_in_array == 0 + else clean_signal.data.T.copy() + ) + + if mask is not None: + _slice = [ + slice(None), + ] * len(ns.shape) + _slice[noisy_signal.axes_manager.signal_axes[0].index_in_array] = ~mask + ns = ns[_slice] + cs = cs[_slice] + + results0 = _estimate_gain( + ns, + cs, + weighted=weighted, + higher_than=higher_than, + plot_results=plot_results, + binning=0, + pol_order=pol_order, + ) + + results2 = _estimate_gain( + ns, + cs, + weighted=weighted, + higher_than=higher_than, + plot_results=False, + binning=2, + pol_order=pol_order, + ) + + c = _estimate_correlation_factor(results0["fit"][0], results2["fit"][0], 4) + + message = ( + "Gain factor: %.2f\n" % results0["fit"][0] + + "Gain offset: %.2f\n" % results0["fit"][1] + + "Correlation factor: %.2f\n" % c + ) + if store_results == "ask": + is_ok = "" + while is_ok not in ("Yes", "No"): + is_ok = input(message + "Would you like to store the results (Yes/No)?") + is_ok = is_ok == "Yes" + else: + is_ok = store_results + _logger.info(message) + if is_ok: + noisy_signal.metadata.set_item( + "Signal.Noise_properties.Variance_linear_model.gain_factor", + results0["fit"][0], + ) + noisy_signal.metadata.set_item( + "Signal.Noise_properties.Variance_linear_model.gain_offset", + results0["fit"][1], + ) + noisy_signal.metadata.set_item( + "Signal.Noise_properties.Variance_linear_model." "correlation_factor", c + ) + noisy_signal.metadata.set_item( + "Signal.Noise_properties.Variance_linear_model." + + "parameters_estimation_method", + "eXSpy", + ) + + if return_results is True: + return results0 + + +def power_law_perc_area(E1, E2, r): + a = E1 + b = E2 + return ( + 100 + * ( + (a**r * r - a**r) + * (a / (a**r * r - a**r) - (b + a) / ((b + a) ** r * r - (b + a) ** r)) + ) + / a + ) + + +def rel_std_of_fraction(a, std_a, b, std_b, corr_factor=1): + rel_a = std_a / a + rel_b = std_b / b + return np.sqrt(rel_a**2 + rel_b**2 - 2 * rel_a * rel_b * corr_factor) + + +def ratio(edge_A, edge_B): + a = edge_A.intensity.value + std_a = edge_A.intensity.std + b = edge_B.intensity.value + std_b = edge_B.intensity.std + ratio = a / b + ratio_std = ratio * rel_std_of_fraction(a, std_a, b, std_b) + _logger.info( + "Ratio %s/%s %1.3f +- %1.3f ", edge_A.name, edge_B.name, a / b, 1.96 * ratio_std + ) + return ratio, ratio_std + + +def eels_constant(s, zlp, t): + r"""Calculate the constant of proportionality (k) in the relationship + between the EELS signal and the dielectric function. + dielectric function from a single scattering distribution (SSD) using + the Kramers-Kronig relations. + + .. math:: + + S(E)=\frac{I_{0}t}{\pi a_{0}m_{0}v^{2}}\ln\left[1+\left(\frac{\beta} + {\theta_{E}}\right)^{2}\right]\Im(\frac{-1}{\epsilon(E)})= + k\Im(\frac{-1}{\epsilon(E)}) + + + Parameters + ---------- + zlp: {number, BaseSignal} + If the ZLP is the same for all spectra, the intengral of the ZLP + can be provided as a number. Otherwise, if the ZLP intensity is not + the same for all spectra, it can be provided as i) a Signal + of the same dimensions as the current signal containing the ZLP + spectra for each location ii) a Signal of signal dimension 0 + and navigation_dimension equal to the current signal containing the + integrated ZLP intensity. + t: {None, number, BaseSignal} + The sample thickness in nm. If the thickness is the same for all + spectra it can be given by a number. Otherwise, it can be provided + as a Signal with signal dimension 0 and navigation_dimension equal + to the current signal. + + Returns + ------- + k: Signal instance + + """ + + # Constants and units + me = constants.value("electron mass energy equivalent in MeV") * 1e3 # keV + + # Mapped parameters + try: + e0 = s.metadata.Acquisition_instrument.TEM.beam_energy + except BaseException: + raise AttributeError( + "Please define the beam energy." + "You can do this e.g. by using the " + "set_microscope_parameters method" + ) + try: + beta = s.metadata.Acquisition_instrument.TEM.Detector.EELS.collection_angle + except BaseException: + raise AttributeError( + "Please define the collection semi-angle." + "You can do this e.g. by using the " + "set_microscope_parameters method" + ) + + axis = s.axes_manager.signal_axes[0] + eaxis = axis.axis.copy() + if eaxis[0] == 0: + # Avoid singularity at E=0 + eaxis[0] = 1e-10 + + if isinstance(zlp, hyperspy.signal.BaseSignal): + if zlp.axes_manager.navigation_dimension == s.axes_manager.navigation_dimension: + if zlp.axes_manager.signal_dimension == 0: + i0 = zlp.data + else: + i0 = zlp.integrate1D(axis.index_in_axes_manager).data + else: + raise ValueError( + "The ZLP signal dimensions are not " + "compatible with the dimensions of the " + "low-loss signal" + ) + # The following prevents errors if the signal is a single spectrum + if len(i0) != 1: + i0 = i0.reshape(np.insert(i0.shape, axis.index_in_array, 1)) + elif isinstance(zlp, numbers.Number): + i0 = zlp + else: + raise ValueError( + "The zero-loss peak input is not valid, it must be\ + in the BaseSignal class or a Number." + ) + + if isinstance(t, hyperspy.signal.BaseSignal): + if ( + t.axes_manager.navigation_dimension == s.axes_manager.navigation_dimension + ) and (t.axes_manager.signal_dimension == 0): + t = t.data + t = t.reshape(np.insert(t.shape, axis.index_in_array, 1)) + else: + raise ValueError( + "The thickness signal dimensions are not " + "compatible with the dimensions of the " + "low-loss signal" + ) + + # Kinetic definitions + ke = e0 * (1 + e0 / 2.0 / me) / (1 + e0 / me) ** 2 + tgt = e0 * (2 * me + e0) / (me + e0) + k = s.__class__( + data=(t * i0 / (332.5 * ke)) * np.log(1 + (beta * tgt / eaxis) ** 2) + ) + k.metadata.General.title = "EELS proportionality constant K" + return k + + +def get_edges_near_energy(energy, width=10, only_major=False, order="closest"): + """Find edges near a given energy that are within the given energy + window. + + Parameters + ---------- + energy : float + Energy to search, in eV + width : float + Width of window, in eV, around energy in which to find nearby + energies, i.e. a value of 10 eV (the default) means to + search +/- 5 eV. The default is 10. + only_major : bool + Whether to show only the major edges. The default is False. + order : str + Sort the edges, if 'closest', return in the order of energy difference, + if 'ascending', return in ascending order, similarly for 'descending' + + Returns + ------- + edges : list + All edges that are within the given energy window, sorted by + energy difference to the given energy. + + See Also + -------- + exspy.utils.eels.get_info_from_edges + """ + + if width < 0: + raise ValueError("Provided width needs to be >= 0.") + if order not in ("closest", "ascending", "descending"): + raise ValueError("order needs to be 'closest', 'ascending' or " "'descending'") + + Emin, Emax = energy - width / 2, energy + width / 2 + + # find all subshells that have its energy within range + valid_edges = [] + for element, element_info in elements_db.items(): + try: + for shell, shell_info in element_info["Atomic_properties"][ + "Binding_energies" + ].items(): + if only_major: + if shell_info["relevance"] != "Major": + continue + if shell[-1] != "a" and Emin <= shell_info["onset_energy (eV)"] <= Emax: + subshell = "{}_{}".format(element, shell) + Ediff = abs(shell_info["onset_energy (eV)"] - energy) + valid_edges.append( + (subshell, shell_info["onset_energy (eV)"], Ediff) + ) + except KeyError: + continue + + # Sort according to 'order' and return only the edges + if order == "closest": + edges = [edge for edge, _, _ in sorted(valid_edges, key=lambda x: x[2])] + elif order == "ascending": + edges = [edge for edge, _, _ in sorted(valid_edges, key=lambda x: x[1])] + elif order == "descending": + edges = [ + edge for edge, _, _ in sorted(valid_edges, key=lambda x: x[1], reverse=True) + ] + + return edges + + +def get_info_from_edges(edges): + """Return the information of a sequence of edges as a list of dictionaries + + Parameters + ---------- + edges : str or iterable + the sequence of edges, each entry in the format of 'element_subshell'. + + Returns + ------- + info : list + A list of dictionaries with information corresponding to the provided + edges. + + See Also + -------- + exspy.utils.eels.get_edges_near_energy + """ + + edges = np.atleast_1d(edges) + info = [] + for edge in edges: + element, subshell = edge.split("_") + d = elements_db[element]["Atomic_properties"]["Binding_energies"][subshell] + info.append(d) + + return info diff --git a/exspy/_misc/elements.py b/exspy/_misc/elements.py new file mode 100644 index 000000000..ba7153143 --- /dev/null +++ b/exspy/_misc/elements.py @@ -0,0 +1,5059 @@ +# Database +# +# The X-ray lines energies are taken from Chantler2005, +# Chantler, C.T., Olsen, K., Dragoset, R.A., Kishore, A.R., +# Kotochigova, S.A., and Zucker, D.S. +# +# The line weight, more precisely the approximate line weight for K,L M +# shells are taken from epq library +# +# The field 'threshold' and 'edge' are taken from Gatan EELS atlas +# https://eels.info/atlas (retrieved in June 2020) + +from hyperspy.misc.utils import DictionaryTreeBrowser + +elements = { + "Ru": { + "Physical_properties": {"density (g/cm^3)": 12.37}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.33039, "energy (keV)": 2.6833}, + "Kb": {"weight": 0.15, "energy (keV)": 21.6566}, + "Ka": {"weight": 1.0, "energy (keV)": 19.2793}, + "Lb2": {"weight": 0.07259, "energy (keV)": 2.8359}, + "La": {"weight": 1.0, "energy (keV)": 2.5585}, + "Ln": {"weight": 0.0126, "energy (keV)": 2.3819}, + "Ll": {"weight": 0.0411, "energy (keV)": 2.2529}, + "Lb3": {"weight": 0.0654, "energy (keV)": 2.7634}, + "Lg3": {"weight": 0.0115, "energy (keV)": 3.1809}, + "Lg1": {"weight": 0.02176, "energy (keV)": 2.9649}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 279.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 279.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "", + "onset_energy (eV)": 461.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "", + "onset_energy (eV)": 483.0, + }, + }, + }, + "General_properties": {"Z": 44, "atomic_weight": 101.07, "name": "ruthenium"}, + }, + "Re": { + "Physical_properties": {"density (g/cm^3)": 21.02}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.4408, "energy (keV)": 10.0098}, + "Kb": {"weight": 0.15, "energy (keV)": 69.3091}, + "Ka": {"weight": 1.0, "energy (keV)": 61.1411}, + "M2N4": {"weight": 0.01, "energy (keV)": 2.4079}, + "Ma": {"weight": 1.0, "energy (keV)": 1.8423}, + "Lb4": {"weight": 0.09869, "energy (keV)": 9.8451}, + "La": {"weight": 1.0, "energy (keV)": 8.6524}, + "Ln": {"weight": 0.0151, "energy (keV)": 9.027}, + "M3O4": {"energy (keV)": 2.36124, "weight": 0.001}, + "Ll": {"weight": 0.05299, "energy (keV)": 7.6036}, + "Mb": {"weight": 0.59443, "energy (keV)": 1.9083}, + "Mg": {"weight": 0.08505, "energy (keV)": 2.1071}, + "Lb2": {"weight": 0.21219, "energy (keV)": 10.2751}, + "Lb3": {"weight": 0.1222, "energy (keV)": 10.1594}, + "M3O5": {"energy (keV)": 2.36209, "weight": 0.01}, + "Lg3": {"weight": 0.0331, "energy (keV)": 12.0823}, + "Lg1": {"weight": 0.08864, "energy (keV)": 11.685}, + "Mz": {"weight": 0.01344, "energy (keV)": 1.4385}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1883.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1949.0, + }, + }, + }, + "General_properties": {"Z": 75, "atomic_weight": 186.207, "name": "rhenium"}, + }, + "Ra": { + "Physical_properties": {"density (g/cm^3)": 5.0}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.4, "energy (keV)": 15.2359}, + "Kb": {"weight": 0.15, "energy (keV)": 100.1302}, + "Ka": {"weight": 1.0, "energy (keV)": 88.4776}, + "M2N4": {"weight": 0.00674, "energy (keV)": 3.8536}, + "Lb4": {"weight": 0.06209, "energy (keV)": 14.7472}, + "La": {"weight": 1.0, "energy (keV)": 12.3395}, + "Ln": {"weight": 0.0133, "energy (keV)": 13.6623}, + "Ll": {"weight": 0.06429, "energy (keV)": 10.6224}, + "Mb": {"weight": 0.64124, "energy (keV)": 2.9495}, + "Mg": {"weight": 0.33505, "energy (keV)": 3.1891}, + "Lb2": {"weight": 0.23579, "energy (keV)": 14.8417}, + "Lg3": {"weight": 0.017, "energy (keV)": 18.3576}, + "Lg1": {"weight": 0.08, "energy (keV)": 17.8484}, + "Lb3": {"weight": 0.06, "energy (keV)": 15.4449}, + "Mz": {"weight": 0.03512, "energy (keV)": 2.2258}, + }, + "Binding_energies": { + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 15444.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3248.0, + }, + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3105.0, + }, + "N6": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 299.0, + }, + "N7": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 299.0, + }, + "O4": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 67.0, + }, + "O5": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 67.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 19237.0, + }, + "L2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 18484.0, + }, + "M1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 4822.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 4490.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3792.0, + }, + "N1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1208.0, + }, + "N2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1058.0, + }, + "N3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 879.0, + }, + "N4": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 636.0, + }, + "N5": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 603.0, + }, + "O1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 254.0, + }, + "O2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 254.0, + }, + "O3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 153.0, + }, + }, + }, + "General_properties": {"Z": 88, "atomic_weight": 226, "name": "radium"}, + }, + "Rb": { + "Physical_properties": {"density (g/cm^3)": 1.532}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.39095, "energy (keV)": 1.7521}, + "Kb": {"weight": 0.1558, "energy (keV)": 14.9612}, + "Ka": {"weight": 1.0, "energy (keV)": 13.3953}, + "La": {"weight": 1.0, "energy (keV)": 1.6941}, + "Ln": {"weight": 0.01709, "energy (keV)": 1.5418}, + "Ll": {"weight": 0.0441, "energy (keV)": 1.4823}, + "Lb3": {"weight": 0.04709, "energy (keV)": 1.8266}, + "Lg3": {"weight": 0.0058, "energy (keV)": 2.0651}, + }, + "Binding_energies": { + "M2": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 247.0, + }, + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 110.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 110.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1864.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1804.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "", + "onset_energy (eV)": 238.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 2065.0, + }, + }, + }, + "General_properties": {"Z": 37, "atomic_weight": 85.4678, "name": "rubidium"}, + }, + "Rn": { + "Physical_properties": {"density (g/cm^3)": 0.00973}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.38463, "energy (keV)": 14.3156}, + "Kb": {"weight": 0.15, "energy (keV)": 94.866}, + "Ka": {"weight": 1.0, "energy (keV)": 83.7846}, + "M2N4": {"weight": 0.00863, "energy (keV)": 3.5924}, + "Lb4": {"weight": 0.06, "energy (keV)": 13.89}, + "La": {"weight": 1.0, "energy (keV)": 11.727}, + "Ln": {"weight": 0.0134, "energy (keV)": 12.8551}, + "Ll": {"weight": 0.0625, "energy (keV)": 10.1374}, + "Mb": {"weight": 0.64124, "energy (keV)": 2.80187}, + "Mg": {"weight": 0.21845, "energy (keV)": 3.001}, + "Lb2": {"weight": 0.2325, "energy (keV)": 14.0824}, + "Lg3": {"weight": 0.017, "energy (keV)": 17.281}, + "Lg1": {"weight": 0.08, "energy (keV)": 16.7705}, + "Lb3": {"weight": 0.0607, "energy (keV)": 14.511}, + "Mz": {"weight": 0.0058, "energy (keV)": 2.1244}, + }, + "Binding_energies": { + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 14619.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3022.0, + }, + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 2892.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 18049.0, + }, + "L2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 17337.0, + }, + "M1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 4482.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 4159.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3538.0, + }, + "N1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1097.0, + }, + "N2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 929.0, + }, + "N3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 768.0, + }, + "N4": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 567.0, + }, + }, + }, + "General_properties": {"Z": 86, "atomic_weight": 222, "name": "radon"}, + }, + "Rh": { + "Physical_properties": {"density (g/cm^3)": 12.45}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.33463, "energy (keV)": 2.8344}, + "Kb": {"weight": 0.15, "energy (keV)": 22.7237}, + "Ka": {"weight": 1.0, "energy (keV)": 20.2161}, + "Lb2": {"weight": 0.08539, "energy (keV)": 3.0013}, + "Lb4": {"weight": 0.0395, "energy (keV)": 2.8909}, + "La": {"weight": 1.0, "energy (keV)": 2.6968}, + "Ln": {"weight": 0.0126, "energy (keV)": 2.519}, + "Ll": {"weight": 0.0411, "energy (keV)": 2.3767}, + "Lb3": {"weight": 0.06669, "energy (keV)": 2.9157}, + "Lg3": {"weight": 0.0121, "energy (keV)": 3.364}, + "Lg1": {"weight": 0.02623, "energy (keV)": 3.1436}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 308.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 312.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "", + "onset_energy (eV)": 496.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "", + "onset_energy (eV)": 521.0, + }, + }, + }, + "General_properties": {"Z": 45, "atomic_weight": 102.9055, "name": "rhodium"}, + }, + "H": { + "Physical_properties": {"density (g/cm^3)": 8.99e-5}, + "Atomic_properties": { + "Xray_lines": {"Ka": {"weight": 1.0, "energy (keV)": 0.0013598}}, + "Binding_energies": { + "K": { + "relevance": "Major", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 13.598, + } + }, + }, + "General_properties": {"Z": 1, "atomic_weight": 1.00794, "name": "hydrogen"}, + }, + "He": { + "Physical_properties": {"density (g/cm^3)": 1.785e-4}, + "Atomic_properties": { + "Xray_lines": {"Ka": {"weight": 1.0, "energy (keV)": 0.0024587}}, + "Binding_energies": { + "K": { + "relevance": "Major", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 24.587, + } + }, + }, + "General_properties": {"Z": 2, "atomic_weight": 4.002602, "name": "helium"}, + }, + "Be": { + "Physical_properties": {"density (g/cm^3)": 1.848}, + "Atomic_properties": { + "Xray_lines": {"Ka": {"weight": 1.0, "energy (keV)": 0.10258}}, + "Binding_energies": { + "K": { + "relevance": "Major", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 111.0, + } + }, + }, + "General_properties": {"Z": 4, "atomic_weight": 9.012182, "name": "beryllium"}, + }, + "Ba": { + "Physical_properties": {"density (g/cm^3)": 3.51}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.43048, "energy (keV)": 4.8275}, + "Kb": {"weight": 0.15, "energy (keV)": 36.3784}, + "Ka": {"weight": 1.0, "energy (keV)": 32.1936}, + "Lb2": {"weight": 0.1905, "energy (keV)": 5.1571}, + "Lb4": {"weight": 0.08859, "energy (keV)": 4.8521}, + "La": {"weight": 1.0, "energy (keV)": 4.4663}, + "Ln": {"weight": 0.0151, "energy (keV)": 4.3308}, + "Ll": {"weight": 0.04299, "energy (keV)": 3.9542}, + "Lb3": {"weight": 0.13779, "energy (keV)": 4.9266}, + "Lg3": {"weight": 0.0331, "energy (keV)": 5.8091}, + "Lg1": {"weight": 0.07487, "energy (keV)": 5.5311}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 781.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 796.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1062.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1137.0, + }, + "N4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 90.0, + }, + "N5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 90.0, + }, + }, + }, + "General_properties": {"Z": 56, "atomic_weight": 137.327, "name": "barium"}, + }, + "Bi": { + "Physical_properties": {"density (g/cm^3)": 9.78}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.4, "energy (keV)": 13.0235}, + "Kb": {"weight": 0.15, "energy (keV)": 87.349}, + "Ka": {"weight": 1.0, "energy (keV)": 77.1073}, + "M2N4": {"weight": 0.00863, "energy (keV)": 3.2327}, + "Ma": {"weight": 1.0, "energy (keV)": 2.4222}, + "Lb4": {"weight": 0.05639, "energy (keV)": 12.6912}, + "La": {"weight": 1.0, "energy (keV)": 10.839}, + "Ln": {"weight": 0.0134, "energy (keV)": 11.712}, + "M3O4": {"energy (keV)": 3.1504, "weight": 0.01}, + "Ll": {"weight": 0.06, "energy (keV)": 9.4195}, + "Mb": {"weight": 0.64124, "energy (keV)": 2.5257}, + "Mg": {"weight": 0.21845, "energy (keV)": 2.7369}, + "Lb2": {"weight": 0.2278, "energy (keV)": 12.9786}, + "Lb3": {"weight": 0.0607, "energy (keV)": 13.2106}, + "M3O5": {"energy (keV)": 3.1525, "weight": 0.01}, + "Lg3": {"weight": 0.017, "energy (keV)": 15.7086}, + "Lg1": {"weight": 0.08, "energy (keV)": 15.2475}, + "Mz": {"weight": 0.0058, "energy (keV)": 1.9007}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 2580.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 2688.0, + }, + }, + }, + "General_properties": {"Z": 83, "atomic_weight": 208.9804, "name": "bismuth"}, + }, + "Br": { + "Physical_properties": {"density (g/cm^3)": 3.12}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.39175, "energy (keV)": 1.5259}, + "Kb": {"weight": 0.15289, "energy (keV)": 13.2922}, + "Ka": {"weight": 1.0, "energy (keV)": 11.9238}, + "La": {"weight": 1.0, "energy (keV)": 1.4809}, + "Ln": {"weight": 0.0182, "energy (keV)": 1.3395}, + "Ll": {"weight": 0.0462, "energy (keV)": 1.2934}, + "Lb3": {"weight": 0.04629, "energy (keV)": 1.6005}, + }, + "Binding_energies": { + "L2": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1596.0, + }, + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1550.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 1782.0, + }, + }, + }, + "General_properties": {"Z": 35, "atomic_weight": 79.904, "name": "bromine"}, + }, + "P": { + "Physical_properties": {"density (g/cm^3)": 1.823}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.0498, "energy (keV)": 2.13916}, + "Ka": {"weight": 1.0, "energy (keV)": 2.0133}, + }, + "Binding_energies": { + "K": { + "relevance": "Major", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 2146.0, + }, + "L2,3": { + "relevance": "Major", + # overlaps + # with L2 + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 132.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 189.0, + }, + }, + }, + "General_properties": { + "Z": 15, + "atomic_weight": 30.973762, + "name": "phosphorus", + }, + }, + "Os": { + "Physical_properties": {"density (g/cm^3)": 22.59}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.43207, "energy (keV)": 10.3542}, + "Kb": {"weight": 0.15, "energy (keV)": 71.4136}, + "Ka": {"weight": 1.0, "energy (keV)": 62.9999}, + "M2N4": {"weight": 0.02901, "energy (keV)": 2.5028}, + "Ma": {"weight": 1.0, "energy (keV)": 1.9138}, + "Lb4": {"weight": 0.08369, "energy (keV)": 10.1758}, + "La": {"weight": 1.0, "energy (keV)": 8.9108}, + "Ln": {"weight": 0.01479, "energy (keV)": 9.3365}, + "M3O4": {"energy (keV)": 2.45015, "weight": 0.005}, + "Ll": {"weight": 0.05389, "energy (keV)": 7.8224}, + "Mb": {"weight": 0.59443, "energy (keV)": 1.9845}, + "Mg": {"weight": 0.08505, "energy (keV)": 2.1844}, + "Lb2": {"weight": 0.2146, "energy (keV)": 10.5981}, + "Lb3": {"weight": 0.1024, "energy (keV)": 10.5108}, + "M3O5": {"energy (keV)": 2.45117, "weight": 0.01}, + "Lg3": {"weight": 0.028, "energy (keV)": 12.4998}, + "Lg1": {"weight": 0.08768, "energy (keV)": 12.0956}, + "Mz": {"weight": 0.01344, "energy (keV)": 1.4919}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1960.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 2031.0, + }, + }, + }, + "General_properties": {"Z": 76, "atomic_weight": 190.23, "name": "osmium"}, + }, + "Ge": { + "Physical_properties": {"density (g/cm^3)": 5.323}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.16704, "energy (keV)": 1.2191}, + "Kb": {"weight": 0.1322, "energy (keV)": 10.9823}, + "Ka": {"weight": 1.0, "energy (keV)": 9.8864}, + "La": {"weight": 1.0, "energy (keV)": 1.188}, + "Ln": {"weight": 0.02, "energy (keV)": 1.0678}, + "Ll": {"weight": 0.0511, "energy (keV)": 1.0367}, + "Lb3": {"weight": 0.04429, "energy (keV)": 1.2935}, + }, + "Binding_energies": { + "L2": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1248.0, + }, + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1217.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 1414.0, + }, + }, + }, + "General_properties": {"Z": 32, "atomic_weight": 72.64, "name": "germanium"}, + }, + "Gd": { + "Physical_properties": {"density (g/cm^3)": 7.901}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.44127, "energy (keV)": 6.7131}, + "Kb": {"weight": 0.15, "energy (keV)": 48.6951}, + "Ka": {"weight": 1.0, "energy (keV)": 42.9963}, + "M2N4": {"weight": 0.014, "energy (keV)": 1.5478}, + "Ma": {"weight": 1.0, "energy (keV)": 1.17668}, + "Lb4": {"weight": 0.08789, "energy (keV)": 6.6873}, + "La": {"weight": 1.0, "energy (keV)": 6.0576}, + "Ln": {"weight": 0.01489, "energy (keV)": 6.0495}, + "Ll": {"weight": 0.04629, "energy (keV)": 5.362}, + "Mb": {"weight": 0.88, "energy (keV)": 1.20792}, + "Mg": {"weight": 0.261, "energy (keV)": 1.4035}, + "Lb2": {"weight": 0.2014, "energy (keV)": 7.1023}, + "Lb3": {"weight": 0.1255, "energy (keV)": 6.8316}, + "Lg3": {"weight": 0.032, "energy (keV)": 8.1047}, + "Lg1": {"weight": 0.08207, "energy (keV)": 7.7898}, + "Mz": {"weight": 0.06, "energy (keV)": 0.9143}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1185.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1217.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1544.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1688.0, + }, + "N4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 141.0, + }, + "N5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 141.0, + }, + }, + }, + "General_properties": {"Z": 64, "atomic_weight": 157.25, "name": "gadolinium"}, + }, + "Ga": { + "Physical_properties": {"density (g/cm^3)": 5.904}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.16704, "energy (keV)": 1.1249}, + "Kb": {"weight": 0.1287, "energy (keV)": 10.2642}, + "Ka": {"weight": 1.0, "energy (keV)": 9.2517}, + "La": {"weight": 1.0, "energy (keV)": 1.098}, + "Ln": {"weight": 0.02509, "energy (keV)": 0.9842}, + "Ll": {"weight": 0.0544, "energy (keV)": 0.9573}, + "Lb3": {"weight": 0.0461, "energy (keV)": 1.1948}, + }, + "Binding_energies": { + "L2": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1142.0, + }, + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1115.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 1298.0, + }, + }, + }, + "General_properties": {"Z": 31, "atomic_weight": 69.723, "name": "gallium"}, + }, + "Pr": { + "Physical_properties": {"density (g/cm^3)": 6.64}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.42872, "energy (keV)": 5.4893}, + "Kb": {"weight": 0.15, "energy (keV)": 40.7484}, + "Ka": {"weight": 1.0, "energy (keV)": 36.0263}, + "M2N4": {"weight": 0.055, "energy (keV)": 1.2242}, + "Ma": {"weight": 1.0, "energy (keV)": 0.8936}, + "Lb4": {"weight": 0.0864, "energy (keV)": 5.4974}, + "La": {"weight": 1.0, "energy (keV)": 5.0333}, + "Ln": {"weight": 0.01489, "energy (keV)": 4.9294}, + "Ll": {"weight": 0.044, "energy (keV)": 4.4533}, + "Mb": {"weight": 0.85, "energy (keV)": 0.9476}, + "Mg": {"weight": 0.6, "energy (keV)": 1.129}, + "Lb2": {"weight": 0.19519, "energy (keV)": 5.8511}, + "Lb3": {"weight": 0.13089, "energy (keV)": 5.5926}, + "Lg3": {"weight": 0.0321, "energy (keV)": 6.6172}, + "Lg1": {"weight": 0.07687, "energy (keV)": 6.3272}, + "Mz": {"weight": 0.068, "energy (keV)": 0.7134}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 931.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 951.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1242.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1337.0, + }, + "N4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 114.0, + }, + "N5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 114.0, + }, + }, + }, + "General_properties": { + "Z": 59, + "atomic_weight": 140.90765, + "name": "praseodymium", + }, + }, + "Pt": { + "Physical_properties": {"density (g/cm^3)": 21.09}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.4088, "energy (keV)": 11.0707}, + "Kb": {"weight": 0.15, "energy (keV)": 75.7494}, + "Ka": {"weight": 1.0, "energy (keV)": 66.8311}, + "M2N4": {"weight": 0.02901, "energy (keV)": 2.6957}, + "Ma": {"weight": 1.0, "energy (keV)": 2.0505}, + "Lb4": {"weight": 0.0662, "energy (keV)": 10.8534}, + "La": {"weight": 1.0, "energy (keV)": 9.4421}, + "Ln": {"weight": 0.01399, "energy (keV)": 9.9766}, + "M3O4": {"energy (keV)": 2.63796, "weight": 0.005}, + "Ll": {"weight": 0.0554, "energy (keV)": 8.2677}, + "Mb": {"weight": 0.59443, "energy (keV)": 2.1276}, + "Mg": {"weight": 0.08505, "energy (keV)": 2.3321}, + "Lb2": {"weight": 0.21829, "energy (keV)": 11.2504}, + "Lb3": {"weight": 0.0783, "energy (keV)": 11.2345}, + "M3O5": {"energy (keV)": 2.63927, "weight": 0.01}, + "Lg3": {"weight": 0.0218, "energy (keV)": 13.3609}, + "Lg1": {"weight": 0.08448, "energy (keV)": 12.9418}, + "Mz": {"weight": 0.01344, "energy (keV)": 1.6026}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 2122.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 2202.0, + }, + }, + }, + "General_properties": {"Z": 78, "atomic_weight": 195.084, "name": "platinum"}, + }, + "C": { + "Physical_properties": {"density (g/cm^3)": 2.26}, + "Atomic_properties": { + "Xray_lines": {"Ka": {"weight": 1.0, "energy (keV)": 0.2774}}, + "Binding_energies": { + "K": { + "relevance": "Major", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 284.0, + }, + "K1a": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 284.0, + }, + }, + }, + "General_properties": {"Z": 6, "atomic_weight": 12.0107, "name": "carbon"}, + }, + "Pb": { + "Physical_properties": {"density (g/cm^3)": 11.34}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.3836, "energy (keV)": 12.6144}, + "Kb": {"weight": 0.15, "energy (keV)": 84.9381}, + "Ka": {"weight": 1.0, "energy (keV)": 74.9693}, + "M2N4": {"weight": 0.00863, "energy (keV)": 3.119}, + "Ma": {"weight": 1.0, "energy (keV)": 2.3459}, + "Lb4": {"weight": 0.055, "energy (keV)": 12.3066}, + "La": {"weight": 1.0, "energy (keV)": 10.5512}, + "Ln": {"weight": 0.0132, "energy (keV)": 11.3493}, + "M3O4": {"energy (keV)": 3.0446, "weight": 0.01}, + "Ll": {"weight": 0.0586, "energy (keV)": 9.1845}, + "Mb": {"weight": 0.64124, "energy (keV)": 2.4427}, + "Mg": {"weight": 0.21845, "energy (keV)": 2.6535}, + "Lb2": {"weight": 0.2244, "energy (keV)": 12.6223}, + "Lb3": {"weight": 0.06049, "energy (keV)": 12.7944}, + "M3O5": {"energy (keV)": 3.0472, "weight": 0.01}, + "Lg3": {"weight": 0.017, "energy (keV)": 15.2163}, + "Lg1": {"weight": 0.08256, "energy (keV)": 14.7648}, + "Mz": {"weight": 0.0058, "energy (keV)": 1.8395}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 2484.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 2586.0, + }, + }, + }, + "General_properties": {"Z": 82, "atomic_weight": 207.2, "name": "lead"}, + }, + "Pa": { + "Physical_properties": {"density (g/cm^3)": 15.37}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.4, "energy (keV)": 16.7025}, + "Kb": {"weight": 0.15, "energy (keV)": 108.4272}, + "Ka": {"weight": 1.0, "energy (keV)": 95.8679}, + "M2N4": {"weight": 0.00674, "energy (keV)": 4.2575}, + "Ma": {"weight": 1.0, "energy (keV)": 3.0823}, + "Lb4": {"weight": 0.04, "energy (keV)": 16.1037}, + "La": {"weight": 1.0, "energy (keV)": 13.2913}, + "Ln": {"weight": 0.0126, "energy (keV)": 14.9468}, + "M3O4": {"energy (keV)": 4.07712, "weight": 0.01}, + "Ll": {"weight": 0.0682, "energy (keV)": 11.3662}, + "Mb": {"weight": 0.64124, "energy (keV)": 3.24}, + "Mg": {"weight": 0.33505, "energy (keV)": 3.4656}, + "Lb2": {"weight": 0.236, "energy (keV)": 16.0249}, + "Lb3": {"weight": 0.06, "energy (keV)": 16.9308}, + "M3O5": {"energy (keV)": 4.08456, "weight": 0.01}, + "Lg3": {"weight": 0.017, "energy (keV)": 20.0979}, + "Lg1": {"weight": 0.08, "energy (keV)": 19.5703}, + "Mz": {"weight": 0.03512, "energy (keV)": 2.4351}, + }, + "Binding_energies": { + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 16733.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3611.0, + }, + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3442.0, + }, + "N6": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 371.0, + }, + "N7": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 360.0, + }, + "O4": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 94.0, + }, + "O5": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 94.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 21105.0, + }, + "L2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 20314.0, + }, + "M1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 5367.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 5001.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 4174.0, + }, + "N1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1387.0, + }, + "N2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1224.0, + }, + "N3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1007.0, + }, + "N4": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 743.0, + }, + "N5": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 708.0, + }, + "O2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 310.0, + }, + "O1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 223.0, + }, + }, + }, + "General_properties": { + "Z": 91, + "atomic_weight": 231.03586, + "name": "protactinium", + }, + }, + "Pd": { + "Physical_properties": {"density (g/cm^3)": 12.023}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.34375, "energy (keV)": 2.9903}, + "Kb": {"weight": 0.15, "energy (keV)": 23.8188}, + "Ka": {"weight": 1.0, "energy (keV)": 21.177}, + "Lb2": {"weight": 0.10349, "energy (keV)": 3.16828}, + "Lb4": {"weight": 0.0407, "energy (keV)": 3.0452}, + "La": {"weight": 1.0, "energy (keV)": 2.8386}, + "Ln": {"weight": 0.0129, "energy (keV)": 2.6604}, + "Ll": {"weight": 0.0412, "energy (keV)": 2.5034}, + "Lb3": {"weight": 0.0682, "energy (keV)": 3.0728}, + "Lg3": {"weight": 0.0125, "energy (keV)": 3.5532}, + "Lg1": {"weight": 0.03256, "energy (keV)": 3.32485}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 335.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 340.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 531.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 559.0, + }, + }, + }, + "General_properties": {"Z": 46, "atomic_weight": 106.42, "name": "palladium"}, + }, + "Cd": { + "Physical_properties": {"density (g/cm^3)": 8.65}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.35704, "energy (keV)": 3.3165}, + "Kb": {"weight": 0.15, "energy (keV)": 26.0947}, + "Ka": {"weight": 1.0, "energy (keV)": 23.1737}, + "Lb2": {"weight": 0.1288, "energy (keV)": 3.5282}, + "Lb4": {"weight": 0.0469, "energy (keV)": 3.3673}, + "La": {"weight": 1.0, "energy (keV)": 3.1338}, + "Ln": {"weight": 0.0132, "energy (keV)": 2.9568}, + "Ll": {"weight": 0.04169, "energy (keV)": 2.7673}, + "Lb3": {"weight": 0.07719, "energy (keV)": 3.4015}, + "Lg3": {"weight": 0.0151, "energy (keV)": 3.9511}, + "Lg1": {"weight": 0.0416, "energy (keV)": 3.7177}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 404.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 411.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 616.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 651.0, + }, + }, + }, + "General_properties": {"Z": 48, "atomic_weight": 112.411, "name": "cadmium"}, + }, + "Po": { + "Physical_properties": {"density (g/cm^3)": 9.196}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.38536, "energy (keV)": 13.4463}, + "Kb": {"weight": 0.15, "energy (keV)": 89.8031}, + "Ka": {"weight": 1.0, "energy (keV)": 79.2912}, + "M2N4": {"weight": 0.00863, "energy (keV)": 3.3539}, + "Lb4": {"weight": 0.05709, "energy (keV)": 13.0852}, + "La": {"weight": 1.0, "energy (keV)": 11.1308}, + "Ln": {"weight": 0.0133, "energy (keV)": 12.0949}, + "Ll": {"weight": 0.0607, "energy (keV)": 9.6644}, + "Mb": {"weight": 0.64124, "energy (keV)": 2.62266}, + "Mg": {"weight": 0.21845, "energy (keV)": 2.8285}, + "Lb2": {"weight": 0.2289, "energy (keV)": 13.3404}, + "Lg3": {"weight": 0.017, "energy (keV)": 16.2343}, + "Lg1": {"weight": 0.08, "energy (keV)": 15.7441}, + "Lb3": {"weight": 0.0603, "energy (keV)": 13.6374}, + "Mz": {"weight": 0.00354, "energy (keV)": 1.978}, + }, + "Binding_energies": { + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 13814.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 2798.0, + }, + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 2683.0, + }, + "O4": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 31.0, + }, + "O5": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 31.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 16939.0, + }, + "L2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 16244.0, + }, + "M1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 4149.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3854.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3302.0, + }, + "N1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 995.0, + }, + "N2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 851.0, + }, + }, + "N3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 705.0, + }, + "N4": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 500.0, + }, + "N5": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 473.0, + }, + }, + "General_properties": {"Z": 84, "atomic_weight": 209, "name": "polonium"}, + }, + "Pm": { + "Physical_properties": {"density (g/cm^3)": 7.264}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.4308, "energy (keV)": 5.9613}, + "Kb": {"weight": 0.15, "energy (keV)": 43.8271}, + "Ka": {"weight": 1.0, "energy (keV)": 38.7247}, + "M2N4": {"weight": 0.028, "energy (keV)": 1.351}, + "Ma": {"weight": 1.0, "energy (keV)": 0.9894}, + "Lb4": {"weight": 0.07799, "energy (keV)": 5.9565}, + "La": {"weight": 1.0, "energy (keV)": 5.4324}, + "Ln": {"weight": 0.01479, "energy (keV)": 5.3663}, + "Ll": {"weight": 0.0448, "energy (keV)": 4.8128}, + "Mb": {"weight": 0.89, "energy (keV)": 1.0475}, + "Mg": {"weight": 0.4, "energy (keV)": 1.2365}, + "Lb2": {"weight": 0.196, "energy (keV)": 6.3389}, + "Lb3": {"weight": 0.1247, "energy (keV)": 6.071}, + "Lg3": {"weight": 0.0311, "energy (keV)": 7.1919}, + "Lg1": {"weight": 0.0784, "energy (keV)": 6.8924}, + "Mz": {"weight": 0.068, "energy (keV)": 0.7909}, + }, + "Binding_energies": { + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 6459.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1052.0, + }, + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1027.0, + }, + "N4": { + "relevance": "Minor", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 120.0, + }, + "N5": { + "relevance": "Minor", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 121.0, + }, + "O2": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 24.0, + }, + "O3": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 24.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 7428.0, + }, + "L2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 7013.0, + }, + "M1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt Onset", + "onset_energy (eV)": 1646.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "Sharp Peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1471.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "Sharp Peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1357.0, + }, + "N1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt Onset", + "onset_energy (eV)": 330.0, + }, + "N2": { + "relevance": "Minor", + "threshold": "Sharp Peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 242.0, + }, + }, + "N3": { + "relevance": "Minor", + "threshold": "Sharp Peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 242.0, + }, + }, + "General_properties": {"Z": 61, "atomic_weight": 145, "name": "promethium"}, + }, + "Ho": { + "Physical_properties": {"density (g/cm^3)": 8.795}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.45056, "energy (keV)": 7.5263}, + "Kb": {"weight": 0.15, "energy (keV)": 53.8765}, + "Ka": {"weight": 1.0, "energy (keV)": 47.5466}, + "M2N4": {"weight": 0.072, "energy (keV)": 1.7618}, + "Ma": {"weight": 1.0, "energy (keV)": 1.3477}, + "Lb4": {"weight": 0.09039, "energy (keV)": 7.4714}, + "La": {"weight": 1.0, "energy (keV)": 6.7197}, + "Ln": {"weight": 0.0151, "energy (keV)": 6.7895}, + "Ll": {"weight": 0.04759, "energy (keV)": 5.9428}, + "Mb": {"weight": 0.59443, "energy (keV)": 1.3878}, + "Mg": {"weight": 0.1418, "energy (keV)": 1.5802}, + "Lb2": {"weight": 0.23563, "energy (keV)": 7.9101}, + "Lb3": {"weight": 0.06, "energy (keV)": 7.653}, + "Lg3": {"weight": 0.0321, "energy (keV)": 9.0876}, + "Lg1": {"weight": 0.08448, "energy (keV)": 8.7568}, + "Mz": {"weight": 0.6629, "energy (keV)": 1.0448}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1351.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1391.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1741.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1923.0, + }, + "N4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 161.0, + }, + "N5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 161.0, + }, + }, + }, + "General_properties": {"Z": 67, "atomic_weight": 164.93032, "name": "holmium"}, + }, + "Hf": { + "Physical_properties": {"density (g/cm^3)": 13.31}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.46231, "energy (keV)": 9.023}, + "Kb": {"weight": 0.15, "energy (keV)": 63.2432}, + "Ka": {"weight": 1.0, "energy (keV)": 55.7901}, + "M2N4": {"weight": 0.01, "energy (keV)": 2.1416}, + "Ma": {"weight": 1.0, "energy (keV)": 1.6446}, + "Lb4": {"weight": 0.10189, "energy (keV)": 8.9053}, + "La": {"weight": 1.0, "energy (keV)": 7.899}, + "Ln": {"weight": 0.0158, "energy (keV)": 8.1385}, + "Ll": {"weight": 0.05089, "energy (keV)": 6.9598}, + "Mb": {"weight": 0.59443, "energy (keV)": 1.6993}, + "Mg": {"weight": 0.08505, "energy (keV)": 1.8939}, + "Lb2": {"weight": 0.2048, "energy (keV)": 9.347}, + "Lb3": {"weight": 0.1316, "energy (keV)": 9.1631}, + "Lg3": {"weight": 0.0347, "energy (keV)": 10.8903}, + "Lg1": {"weight": 0.08968, "energy (keV)": 10.5156}, + "Mz": {"weight": 0.06, "energy (keV)": 1.2813}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1662.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1716.0, + }, + }, + }, + "General_properties": {"Z": 72, "atomic_weight": 178.49, "name": "hafnium"}, + }, + "Hg": { + "Physical_properties": {"density (g/cm^3)": 13.534}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.39504, "energy (keV)": 11.8238}, + "Kb": {"weight": 0.15, "energy (keV)": 80.2552}, + "Ka": {"weight": 1.0, "energy (keV)": 70.8184}, + "M2N4": {"weight": 0.02901, "energy (keV)": 2.9002}, + "Ma": {"weight": 1.0, "energy (keV)": 2.1964}, + "Lb4": {"weight": 0.0566, "energy (keV)": 11.5608}, + "La": {"weight": 1.0, "energy (keV)": 9.989}, + "Ln": {"weight": 0.0136, "energy (keV)": 10.6471}, + "M3O4": {"energy (keV)": 2.8407, "weight": 0.005}, + "Ll": {"weight": 0.05709, "energy (keV)": 8.7223}, + "Mb": {"weight": 0.64124, "energy (keV)": 2.2827}, + "Mg": {"weight": 0.08505, "energy (keV)": 2.4873}, + "Lb2": {"weight": 0.2221, "energy (keV)": 11.9241}, + "Lb3": {"weight": 0.06469, "energy (keV)": 11.9922}, + "M3O5": {"energy (keV)": 2.8407, "weight": 0.01}, + "Lg3": {"weight": 0.0184, "energy (keV)": 14.2683}, + "Lg1": {"weight": 0.0832, "energy (keV)": 13.8304}, + "Mz": {"weight": 0.01344, "energy (keV)": 1.7239}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 2295.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 2385.0, + }, + }, + }, + "General_properties": {"Z": 80, "atomic_weight": 200.59, "name": "mercury"}, + }, + "Mg": { + "Physical_properties": {"density (g/cm^3)": 1.738}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.01, "energy (keV)": 1.305}, + "Ka": {"weight": 1.0, "energy (keV)": 1.2536}, + }, + "Binding_energies": { + "K": { + "relevance": "Major", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 1305.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 51.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 51.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 89.0, + }, + }, + }, + "General_properties": {"Z": 12, "atomic_weight": 24.305, "name": "magnesium"}, + }, + "K": { + "Physical_properties": {"density (g/cm^3)": 0.856}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.1039, "energy (keV)": 3.5896}, + "Ka": {"weight": 1.0, "energy (keV)": 3.3138}, + }, + "Binding_energies": { + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 294.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 296.0, + }, + "L1a": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 377.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 377.0, + }, + }, + }, + "General_properties": {"Z": 19, "atomic_weight": 39.0983, "name": "potassium"}, + }, + "Mn": { + "Physical_properties": {"density (g/cm^3)": 7.47}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.1252, "energy (keV)": 6.4904}, + "Ka": {"weight": 1.0, "energy (keV)": 5.8987}, + "La": {"weight": 1.0, "energy (keV)": 0.63316}, + "Ln": {"weight": 0.1898, "energy (keV)": 0.5675}, + "Ll": {"weight": 0.3898, "energy (keV)": 0.5564}, + "Lb3": {"weight": 0.0263, "energy (keV)": 0.7204}, + }, + "Binding_energies": { + "M2": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 51.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 651.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 640.0, + }, + "M3": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 51.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 769.0, + }, + }, + }, + "General_properties": { + "Z": 25, + "atomic_weight": 54.938045, + "name": "manganese", + }, + }, + "O": { + "Physical_properties": {"density (g/cm^3)": 0.001429}, + "Atomic_properties": { + "Xray_lines": {"Ka": {"weight": 1.0, "energy (keV)": 0.5249}}, + "Binding_energies": { + "K": { + "relevance": "Major", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 532.0, + } + }, + }, + "General_properties": {"Z": 8, "atomic_weight": 15.9994, "name": "oxygen"}, + }, + "S": { + "Physical_properties": {"density (g/cm^3)": 1.96}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.06525, "energy (keV)": 2.46427}, + "Ka": {"weight": 1.0, "energy (keV)": 2.3072}, + }, + "Binding_energies": { + "L2,3": { + "relevance": "Major", + # overlaps + # with L2 + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 165.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 229.0, + }, + }, + }, + "General_properties": {"Z": 16, "atomic_weight": 32.065, "name": "sulfur"}, + }, + "W": { + "Physical_properties": {"density (g/cm^3)": 19.25}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.3679, "energy (keV)": 9.6724}, + "Kb": {"weight": 0.15, "energy (keV)": 67.244}, + "Ka": {"weight": 1.0, "energy (keV)": 59.3182}, + "M2N4": {"weight": 0.01, "energy (keV)": 2.3161}, + "Ma": {"weight": 1.0, "energy (keV)": 1.7756}, + "Lb4": {"weight": 0.05649, "energy (keV)": 9.5249}, + "La": {"weight": 1.0, "energy (keV)": 8.3976}, + "Ln": {"weight": 0.01155, "energy (keV)": 8.7244}, + "M3O4": {"energy (keV)": 2.2749, "weight": 0.001}, + "Ll": {"weight": 0.04169, "energy (keV)": 7.3872}, + "Mb": {"weight": 0.59443, "energy (keV)": 1.8351}, + "Mg": {"weight": 0.08505, "energy (keV)": 2.0356}, + "Lb2": {"weight": 0.21385, "energy (keV)": 9.9614}, + "Lb3": {"weight": 0.07077, "energy (keV)": 9.8188}, + "M3O5": {"energy (keV)": 2.281, "weight": 0.01}, + "Lg3": {"weight": 0.0362, "energy (keV)": 11.6745}, + "Lg1": {"weight": 0.05658, "energy (keV)": 11.2852}, + "Mz": {"weight": 0.01344, "energy (keV)": 1.3839}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1809.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1872.0, + }, + }, + }, + "General_properties": {"Z": 74, "atomic_weight": 183.84, "name": "tungsten"}, + }, + "Zn": { + "Physical_properties": {"density (g/cm^3)": 7.14}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.1679, "energy (keV)": 1.0347}, + "Kb": {"weight": 0.12605, "energy (keV)": 9.572}, + "Ka": {"weight": 1.0, "energy (keV)": 8.6389}, + "La": {"weight": 1.0, "energy (keV)": 1.0116}, + "Ln": {"weight": 0.0368, "energy (keV)": 0.9069}, + "Ll": {"weight": 0.0603, "energy (keV)": 0.8838}, + "Lb3": {"weight": 0.002, "energy (keV)": 1.107}, + }, + "Binding_energies": { + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 87.0, + }, + "L2": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1043.0, + }, + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1020.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 87.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 1194.0, + }, + }, + }, + "General_properties": {"Z": 30, "atomic_weight": 65.38, "name": "zinc"}, + }, + "Eu": { + "Physical_properties": {"density (g/cm^3)": 5.244}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.43904, "energy (keV)": 6.4565}, + "Kb": {"weight": 0.15, "energy (keV)": 47.0384}, + "Ka": {"weight": 1.0, "energy (keV)": 41.5421}, + "M2N4": {"weight": 0.013, "energy (keV)": 1.4807}, + "Ma": {"weight": 1.0, "energy (keV)": 1.0991}, + "Lb4": {"weight": 0.0874, "energy (keV)": 6.4381}, + "La": {"weight": 1.0, "energy (keV)": 5.846}, + "Ln": {"weight": 0.015, "energy (keV)": 5.8171}, + "Ll": {"weight": 0.04559, "energy (keV)": 5.1769}, + "Mb": {"weight": 0.87, "energy (keV)": 1.15769}, + "Mg": {"weight": 0.26, "energy (keV)": 1.3474}, + "Lb2": {"weight": 0.1985, "energy (keV)": 6.8437}, + "Lb3": {"weight": 0.1265, "energy (keV)": 6.5714}, + "Lg3": {"weight": 0.0318, "energy (keV)": 7.7954}, + "Lg1": {"weight": 0.08064, "energy (keV)": 7.4839}, + "Mz": {"weight": 0.06, "energy (keV)": 0.8743}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1131.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1161.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1481.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1614.0, + }, + "N4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 134.0, + }, + "N5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 134.0, + }, + }, + }, + "General_properties": {"Z": 63, "atomic_weight": 151.964, "name": "europium"}, + }, + "Zr": { + "Physical_properties": {"density (g/cm^3)": 6.511}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.37912, "energy (keV)": 2.1243}, + "Kb": {"weight": 0.15, "energy (keV)": 17.6671}, + "Ka": {"weight": 1.0, "energy (keV)": 15.7753}, + "Lb2": {"weight": 0.0177, "energy (keV)": 2.2223}, + "La": {"weight": 1.0, "energy (keV)": 2.0423}, + "Ln": {"weight": 0.0153, "energy (keV)": 1.8764}, + "Ll": {"weight": 0.04209, "energy (keV)": 1.792}, + "Lb3": {"weight": 0.05219, "energy (keV)": 2.2011}, + "Lg3": {"weight": 0.0082, "energy (keV)": 2.5029}, + "Lg1": {"weight": 0.006, "energy (keV)": 2.30268}, + }, + "Binding_energies": { + "M2": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "", + "onset_energy (eV)": 344.0, + }, + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 181.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 181.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 2307.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 2222.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "", + "onset_energy (eV)": 330.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 2532.0, + }, + }, + }, + "General_properties": {"Z": 40, "atomic_weight": 91.224, "name": "zirconium"}, + }, + "Er": { + "Physical_properties": {"density (g/cm^3)": 9.066}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.45263, "energy (keV)": 7.811}, + "Kb": {"weight": 0.15, "energy (keV)": 55.6737}, + "Ka": {"weight": 1.0, "energy (keV)": 49.1276}, + "M2N4": {"weight": 0.0045, "energy (keV)": 1.8291}, + "Ma": {"weight": 1.0, "energy (keV)": 1.405}, + "Lb4": {"weight": 0.0922, "energy (keV)": 7.7455}, + "La": {"weight": 1.0, "energy (keV)": 6.9486}, + "Ln": {"weight": 0.0153, "energy (keV)": 7.0578}, + "Ll": {"weight": 0.0482, "energy (keV)": 6.1514}, + "Mb": {"weight": 0.59443, "energy (keV)": 1.449}, + "Mg": {"weight": 0.08505, "energy (keV)": 1.6442}, + "Lb2": {"weight": 0.2005, "energy (keV)": 8.1903}, + "Lb3": {"weight": 0.1258, "energy (keV)": 7.9395}, + "Lg3": {"weight": 0.0324, "energy (keV)": 9.4313}, + "Lg1": {"weight": 0.08487, "energy (keV)": 9.0876}, + "Mz": {"weight": 0.06, "energy (keV)": 1.0893}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1409.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1453.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1812.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 2006.0, + }, + "N4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 168.0, + }, + "N5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 168.0, + }, + }, + }, + "General_properties": {"Z": 68, "atomic_weight": 167.259, "name": "erbium"}, + }, + "Ni": { + "Physical_properties": {"density (g/cm^3)": 8.908}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.1677, "energy (keV)": 0.8683}, + "Kb": {"weight": 0.1277, "energy (keV)": 8.2647}, + "Ka": {"weight": 1.0, "energy (keV)": 7.4781}, + "La": {"weight": 1.0, "energy (keV)": 0.8511}, + "Ln": {"weight": 0.09693, "energy (keV)": 0.7601}, + "Ll": {"weight": 0.14133, "energy (keV)": 0.7429}, + "Lb3": {"weight": 0.00199, "energy (keV)": 0.94}, + }, + "Binding_energies": { + "M2": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 68.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 872.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 855.0, + }, + "M3": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 68.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 1008.0, + }, + }, + }, + "General_properties": {"Z": 28, "atomic_weight": 58.6934, "name": "nickel"}, + }, + "Na": { + "Physical_properties": {"density (g/cm^3)": 0.968}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.01, "energy (keV)": 1.0721}, + "Ka": {"weight": 1.0, "energy (keV)": 1.041}, + }, + "Binding_energies": { + "K": { + "relevance": "Major", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 1072.0, + }, + "L2,3": { + "relevance": "Major", + # overlaps + # with L2 + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 31.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 63.0, + }, + }, + }, + "General_properties": {"Z": 11, "atomic_weight": 22.98976928, "name": "sodium"}, + }, + "Nb": { + "Physical_properties": {"density (g/cm^3)": 8.57}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.32519, "energy (keV)": 2.2573}, + "Kb": {"weight": 0.15, "energy (keV)": 18.6226}, + "Ka": {"weight": 1.0, "energy (keV)": 16.6151}, + "Lb2": {"weight": 0.03299, "energy (keV)": 2.3705}, + "La": {"weight": 1.0, "energy (keV)": 2.1659}, + "Ln": {"weight": 0.0129, "energy (keV)": 1.9963}, + "Ll": {"weight": 0.04169, "energy (keV)": 1.9021}, + "Lb3": {"weight": 0.06429, "energy (keV)": 2.3347}, + "Lg3": {"weight": 0.0103, "energy (keV)": 2.6638}, + "Lg1": {"weight": 0.00975, "energy (keV)": 2.4615}, + }, + "Binding_energies": { + "M2": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "", + "onset_energy (eV)": 378.0, + }, + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 202.3, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 205.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 2465.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 2371.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "", + "onset_energy (eV)": 363.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 2698.0, + }, + }, + }, + "General_properties": {"Z": 41, "atomic_weight": 92.90638, "name": "niobium"}, + }, + "Nd": { + "Physical_properties": {"density (g/cm^3)": 7.01}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.42672, "energy (keV)": 5.722}, + "Kb": {"weight": 0.15, "energy (keV)": 42.2715}, + "Ka": {"weight": 1.0, "energy (keV)": 37.361}, + "M2N4": {"weight": 0.052, "energy (keV)": 1.2853}, + "Ma": {"weight": 1.0, "energy (keV)": 0.9402}, + "Lb4": {"weight": 0.0858, "energy (keV)": 5.7232}, + "La": {"weight": 1.0, "energy (keV)": 5.2302}, + "Ln": {"weight": 0.01469, "energy (keV)": 5.1462}, + "Ll": {"weight": 0.04429, "energy (keV)": 4.6326}, + "Mb": {"weight": 0.99, "energy (keV)": 0.9965}, + "Mg": {"weight": 0.625, "energy (keV)": 1.1799}, + "Lb2": {"weight": 0.1957, "energy (keV)": 6.0904}, + "Lb3": {"weight": 0.12869, "energy (keV)": 5.8286}, + "Lg3": {"weight": 0.0318, "energy (keV)": 6.9014}, + "Lg1": {"weight": 0.07712, "energy (keV)": 6.604}, + "Mz": {"weight": 0.069, "energy (keV)": 0.7531}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 978.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1000.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1297.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1403.0, + }, + "N4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 118.0, + }, + "N5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 118.0, + }, + }, + }, + "General_properties": {"Z": 60, "atomic_weight": 144.242, "name": "neodymium"}, + }, + "Ne": { + "Physical_properties": {"density (g/cm^3)": 0.0009}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.01, "energy (keV)": 0.8669}, + "Ka": {"weight": 1.0, "energy (keV)": 0.8486}, + }, + "Binding_energies": { + "K": { + "relevance": "Major", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 867.0, + } + }, + }, + "General_properties": {"Z": 10, "atomic_weight": 20.1791, "name": "neon"}, + }, + "Fr": { + "Physical_properties": {"density (g/cm^3)": "NaN"}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.38327, "energy (keV)": 14.7703}, + "Kb": {"weight": 0.15, "energy (keV)": 97.474}, + "Ka": {"weight": 1.0, "energy (keV)": 86.1058}, + "M2N4": {"weight": 0.00674, "energy (keV)": 3.7237}, + "Lb4": {"weight": 0.0603, "energy (keV)": 14.312}, + "La": {"weight": 1.0, "energy (keV)": 12.0315}, + "Ln": {"weight": 0.0134, "energy (keV)": 13.2545}, + "Ll": {"weight": 0.06339, "energy (keV)": 10.3792}, + "Mb": {"weight": 0.64124, "energy (keV)": 2.88971}, + "Mg": {"weight": 0.21845, "energy (keV)": 3.086}, + "Lb2": {"weight": 0.2337, "energy (keV)": 14.4542}, + "Lg3": {"weight": 0.017, "energy (keV)": 17.829}, + "Lg1": {"weight": 0.08, "energy (keV)": 17.3032}, + "Lb3": {"weight": 0.05969, "energy (keV)": 14.976}, + "Mz": {"weight": 0.0058, "energy (keV)": 2.1897}, + }, + "Binding_energies": { + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 15031.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3136.0, + }, + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3000.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 18639.0, + }, + "L2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 17907.0, + }, + "M1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 4652.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 4327.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3663.0, + }, + "N1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1153.0, + }, + "N2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 980.0, + }, + "N3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 810.0, + }, + "N4": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 603.0, + }, + "N5": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 577.0, + }, + }, + }, + "General_properties": {"Z": 87, "atomic_weight": 223, "name": "francium"}, + }, + "Fe": { + "Physical_properties": {"density (g/cm^3)": 7.874}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.1272, "energy (keV)": 7.058}, + "Ka": {"weight": 1.0, "energy (keV)": 6.4039}, + "La": {"weight": 1.0, "energy (keV)": 0.7045}, + "Ln": {"weight": 0.12525, "energy (keV)": 0.6282}, + "Ll": {"weight": 0.3086, "energy (keV)": 0.6152}, + "Lb3": {"weight": 0.02448, "energy (keV)": 0.7921}, + }, + "Binding_energies": { + "K": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 7113.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 846.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 721.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 708.0, + }, + "M3": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 57.0, + }, + "M2": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 57.0, + }, + }, + }, + "General_properties": {"Z": 26, "atomic_weight": 55.845, "name": "iron"}, + }, + "B": { + "Physical_properties": {"density (g/cm^3)": 2.46}, + "Atomic_properties": { + "Xray_lines": {"Ka": {"weight": 1.0, "energy (keV)": 0.1833}}, + "Binding_energies": { + "K": { + "relevance": "Major", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 188.0, + } + }, + }, + "General_properties": {"Z": 5, "atomic_weight": 10.811, "name": "boron"}, + }, + "F": { + "Physical_properties": {"density (g/cm^3)": 0.001696}, + "Atomic_properties": { + "Xray_lines": {"Ka": {"weight": 1.0, "energy (keV)": 0.6768}}, + "Binding_energies": { + "K": { + "relevance": "Major", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 685.0, + } + }, + }, + "General_properties": {"Z": 9, "atomic_weight": 18.9984032, "name": "fluorine"}, + }, + "Sr": { + "Physical_properties": {"density (g/cm^3)": 2.63}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.37975, "energy (keV)": 1.8718}, + "Kb": {"weight": 0.15, "energy (keV)": 15.8355}, + "Ka": {"weight": 1.0, "energy (keV)": 14.165}, + "La": {"weight": 1.0, "energy (keV)": 1.8065}, + "Ln": {"weight": 0.01669, "energy (keV)": 1.6493}, + "Ll": {"weight": 0.04309, "energy (keV)": 1.5821}, + "Lb3": {"weight": 0.047, "energy (keV)": 1.9472}, + "Lg3": {"weight": 0.0065, "energy (keV)": 2.1964}, + }, + "Binding_energies": { + "M2": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "", + "onset_energy (eV)": 280.0, + }, + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 134.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 134.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 2007.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1940.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "", + "onset_energy (eV)": 269.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 2216.0, + }, + }, + }, + "General_properties": {"Z": 38, "atomic_weight": 87.62, "name": "strontium"}, + }, + "N": { + "Physical_properties": {"density (g/cm^3)": 0.001251}, + "Atomic_properties": { + "Xray_lines": {"Ka": {"weight": 1.0, "energy (keV)": 0.3924}}, + "Binding_energies": { + "K": { + "relevance": "Major", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 401.0, + } + }, + }, + "General_properties": {"Z": 7, "atomic_weight": 14.0067, "name": "nitrogen"}, + }, + "Kr": { + "Physical_properties": {"density (g/cm^3)": 0.00375}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.39031, "energy (keV)": 1.6383}, + "Kb": {"weight": 0.1538, "energy (keV)": 14.1118}, + "Ka": {"weight": 1.0, "energy (keV)": 12.6507}, + "La": {"weight": 1.0, "energy (keV)": 1.586}, + "Ln": {"weight": 0.0175, "energy (keV)": 1.43887}, + "Ll": {"weight": 0.04509, "energy (keV)": 1.38657}, + "Lb3": {"weight": 0.0465, "energy (keV)": 1.7072}, + "Lg3": {"weight": 0.005, "energy (keV)": 1.921}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 89.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 89.0, + }, + "L2": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1727.0, + }, + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1675.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 1921.0, + }, + }, + }, + "General_properties": {"Z": 36, "atomic_weight": 83.798, "name": "krypton"}, + }, + "Si": { + "Physical_properties": {"density (g/cm^3)": 2.33}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.02779, "energy (keV)": 1.8389}, + "Ka": {"weight": 1.0, "energy (keV)": 1.7397}, + }, + "Binding_energies": { + "K": { + "relevance": "Major", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 1839.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 99.8, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 99.2, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 149.7, + }, + }, + }, + "General_properties": {"Z": 14, "atomic_weight": 28.0855, "name": "silicon"}, + }, + "Sn": { + "Physical_properties": {"density (g/cm^3)": 7.31}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.43456, "energy (keV)": 3.6628}, + "Kb": {"weight": 0.15, "energy (keV)": 28.4857}, + "Ka": {"weight": 1.0, "energy (keV)": 25.2713}, + "Lb2": {"weight": 0.14689, "energy (keV)": 3.9049}, + "Lb4": {"weight": 0.0948, "energy (keV)": 3.7083}, + "La": {"weight": 1.0, "energy (keV)": 3.444}, + "Ln": {"weight": 0.0158, "energy (keV)": 3.2723}, + "Ll": {"weight": 0.0416, "energy (keV)": 3.045}, + "Lb3": {"weight": 0.1547, "energy (keV)": 3.7503}, + "Lg3": {"weight": 0.0321, "energy (keV)": 4.3761}, + "Lg1": {"weight": 0.058, "energy (keV)": 4.1322}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 485.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 494.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 714.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 756.0, + }, + }, + }, + "General_properties": {"Z": 50, "atomic_weight": 118.71, "name": "tin"}, + }, + "Sm": { + "Physical_properties": {"density (g/cm^3)": 7.353}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.43512, "energy (keV)": 6.2058}, + "Kb": {"weight": 0.15, "energy (keV)": 45.4144}, + "Ka": {"weight": 1.0, "energy (keV)": 40.118}, + "M2N4": {"weight": 0.012, "energy (keV)": 1.4117}, + "Ma": {"weight": 1.0, "energy (keV)": 1.0428}, + "Lb4": {"weight": 0.08689, "energy (keV)": 6.1961}, + "La": {"weight": 1.0, "energy (keV)": 5.636}, + "Ln": {"weight": 0.01489, "energy (keV)": 5.589}, + "Ll": {"weight": 0.04519, "energy (keV)": 4.9934}, + "Mb": {"weight": 0.88, "energy (keV)": 1.1005}, + "Mg": {"weight": 0.26, "energy (keV)": 1.2908}, + "Lb2": {"weight": 0.19769, "energy (keV)": 6.5872}, + "Lb3": {"weight": 0.12669, "energy (keV)": 6.317}, + "Lg3": {"weight": 0.0318, "energy (keV)": 7.4894}, + "Lg1": {"weight": 0.07951, "energy (keV)": 7.1828}, + "Mz": {"weight": 0.06, "energy (keV)": 0.8328}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1080.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1106.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1420.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1541.0, + }, + "N4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 130.0, + }, + "N5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 130.0, + }, + }, + }, + "General_properties": {"Z": 62, "atomic_weight": 150.36, "name": "samarium"}, + }, + "V": { + "Physical_properties": {"density (g/cm^3)": 6.11}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.1225, "energy (keV)": 5.4273}, + "Ka": {"weight": 1.0, "energy (keV)": 4.9522}, + "La": {"weight": 1.0, "energy (keV)": 0.5129}, + "Ln": {"weight": 0.2805, "energy (keV)": 0.454}, + "Ll": {"weight": 0.5745, "energy (keV)": 0.4464}, + "Lb3": {"weight": 0.0154, "energy (keV)": 0.5904}, + }, + "Binding_energies": { + "M2": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 38.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 521.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 513.0, + }, + "M3": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 38.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 628.0, + }, + }, + }, + "General_properties": {"Z": 23, "atomic_weight": 50.9415, "name": "vanadium"}, + }, + "Sc": { + "Physical_properties": {"density (g/cm^3)": 2.985}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.12839, "energy (keV)": 4.4605}, + "Ka": {"weight": 1.0, "energy (keV)": 4.0906}, + "La": {"weight": 0.308, "energy (keV)": 0.4022}, + "Ln": {"weight": 0.488, "energy (keV)": 0.3529}, + "Ll": {"weight": 1.0, "energy (keV)": 0.3484}, + "Lb3": {"weight": 0.037, "energy (keV)": 0.4681}, + }, + "Binding_energies": { + "M2": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 32.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 407.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 402.0, + }, + "M3": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 32.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 500.0, + }, + }, + }, + "General_properties": {"Z": 21, "atomic_weight": 44.955912, "name": "scandium"}, + }, + "Sb": { + "Physical_properties": {"density (g/cm^3)": 6.697}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.4276, "energy (keV)": 3.8435}, + "Kb": {"weight": 0.15, "energy (keV)": 29.7256}, + "Ka": {"weight": 1.0, "energy (keV)": 26.359}, + "Lb2": {"weight": 0.1556, "energy (keV)": 4.1008}, + "Lb4": {"weight": 0.0932, "energy (keV)": 3.8864}, + "La": {"weight": 1.0, "energy (keV)": 3.6047}, + "Ln": {"weight": 0.0155, "energy (keV)": 3.4367}, + "Ll": {"weight": 0.0419, "energy (keV)": 3.1885}, + "Lb3": {"weight": 0.15099, "energy (keV)": 3.9327}, + "Lg3": {"weight": 0.0321, "energy (keV)": 4.5999}, + "Lg1": {"weight": 0.06064, "energy (keV)": 4.349}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 528.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 537.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 766.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 812.0, + }, + }, + }, + "General_properties": {"Z": 51, "atomic_weight": 121.76, "name": "antimony"}, + }, + "Se": { + "Physical_properties": {"density (g/cm^3)": 4.819}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.38848, "energy (keV)": 1.4195}, + "Kb": {"weight": 0.1505, "energy (keV)": 12.4959}, + "Ka": {"weight": 1.0, "energy (keV)": 11.222}, + "La": {"weight": 1.0, "energy (keV)": 1.3791}, + "Ln": {"weight": 0.0187, "energy (keV)": 1.2447}, + "Ll": {"weight": 0.04759, "energy (keV)": 1.2043}, + "Lb3": {"weight": 0.047, "energy (keV)": 1.492}, + }, + "Binding_energies": { + "L2": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1476.0, + }, + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1436.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 1654.0, + }, + }, + }, + "General_properties": {"Z": 34, "atomic_weight": 78.96, "name": "selenium"}, + }, + "Co": { + "Physical_properties": {"density (g/cm^3)": 8.9}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.1277, "energy (keV)": 7.6494}, + "Ka": {"weight": 1.0, "energy (keV)": 6.9303}, + "La": {"weight": 1.0, "energy (keV)": 0.7757}, + "Ln": {"weight": 0.0833, "energy (keV)": 0.6929}, + "Ll": {"weight": 0.2157, "energy (keV)": 0.6779}, + "Lb3": {"weight": 0.0238, "energy (keV)": 0.8661}, + }, + "Binding_energies": { + "M2": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 59.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 794.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 779.0, + }, + "M3": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 59.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 926.0, + }, + }, + }, + "General_properties": {"Z": 27, "atomic_weight": 58.933195, "name": "cobalt"}, + }, + "Cl": { + "Physical_properties": {"density (g/cm^3)": 0.003214}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.0838, "energy (keV)": 2.8156}, + "Ka": {"weight": 1.0, "energy (keV)": 2.6224}, + }, + "Binding_energies": { + "L2,3": { + "relevance": "Major", + # overlaps + # with L2 + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 200.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 270.0, + }, + }, + }, + "General_properties": {"Z": 17, "atomic_weight": 35.453, "name": "chlorine"}, + }, + "Ca": { + "Physical_properties": {"density (g/cm^3)": 1.55}, + "Atomic_properties": { + "Xray_lines": { + "Ln": {"weight": 0.23, "energy (keV)": 0.3063}, + "Kb": {"weight": 0.112, "energy (keV)": 4.0127}, + "Ka": {"weight": 1.0, "energy (keV)": 3.6917}, + "Ll": {"weight": 1.0, "energy (keV)": 0.3027}, + "La": {"weight": 0.0, "energy (keV)": 0.3464}, + }, + "Binding_energies": { + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 350.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 346.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 438.0, + }, + }, + }, + "General_properties": {"Z": 20, "atomic_weight": 40.078, "name": "calcium"}, + }, + "Ce": { + "Physical_properties": {"density (g/cm^3)": 6.689}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.43, "energy (keV)": 5.2629}, + "Kb": {"weight": 0.15, "energy (keV)": 39.2576}, + "Ka": {"weight": 1.0, "energy (keV)": 34.7196}, + "M2N4": {"weight": 0.08, "energy (keV)": 1.1628}, + "Ma": {"weight": 1.0, "energy (keV)": 0.8455}, + "Lb4": {"weight": 0.08699, "energy (keV)": 5.276}, + "La": {"weight": 1.0, "energy (keV)": 4.8401}, + "Ln": {"weight": 0.015, "energy (keV)": 4.7296}, + "Ll": {"weight": 0.0436, "energy (keV)": 4.2888}, + "Mb": {"weight": 0.91, "energy (keV)": 0.8154}, + "Mg": {"weight": 0.5, "energy (keV)": 1.0754}, + "Lb2": {"weight": 0.19399, "energy (keV)": 5.6134}, + "Lb3": {"weight": 0.1325, "energy (keV)": 5.3634}, + "Lg3": {"weight": 0.0324, "energy (keV)": 6.3416}, + "Lg1": {"weight": 0.0764, "energy (keV)": 6.0542}, + "Mz": {"weight": 0.07, "energy (keV)": 0.6761}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 883.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 901.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1185.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1273.0, + }, + "N4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 110.0, + }, + "N5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 110.0, + }, + }, + }, + "General_properties": {"Z": 58, "atomic_weight": 140.116, "name": "cerium"}, + }, + "Xe": { + "Physical_properties": {"density (g/cm^3)": 0.0059}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.42248, "energy (keV)": 4.4183}, + "Kb": {"weight": 0.15, "energy (keV)": 33.6244}, + "Ka": {"weight": 1.0, "energy (keV)": 29.7792}, + "Lb2": {"weight": 0.17699, "energy (keV)": 4.7182}, + "Lb4": {"weight": 0.08929, "energy (keV)": 4.4538}, + "La": {"weight": 1.0, "energy (keV)": 4.1099}, + "Ln": {"weight": 0.015, "energy (keV)": 3.9591}, + "Ll": {"weight": 0.0424, "energy (keV)": 3.6376}, + "Lb3": {"weight": 0.14119, "energy (keV)": 4.5158}, + "Lg3": {"weight": 0.0323, "energy (keV)": 5.3061}, + "Lg1": {"weight": 0.06848, "energy (keV)": 5.0397}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 672.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 685.0, + }, + }, + }, + "General_properties": {"Z": 54, "atomic_weight": 131.293, "name": "xenon"}, + }, + "Tm": { + "Physical_properties": {"density (g/cm^3)": 9.321}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.45831, "energy (keV)": 8.1023}, + "Kb": {"weight": 0.15, "energy (keV)": 57.5051}, + "Ka": {"weight": 1.0, "energy (keV)": 50.7416}, + "M2N4": {"weight": 0.01, "energy (keV)": 1.9102}, + "Ma": {"weight": 1.0, "energy (keV)": 1.4624}, + "Lb4": {"weight": 0.09449, "energy (keV)": 8.0259}, + "La": {"weight": 1.0, "energy (keV)": 7.1803}, + "Ln": {"weight": 0.0156, "energy (keV)": 7.3101}, + "Ll": {"weight": 0.04889, "energy (keV)": 6.3412}, + "Mb": {"weight": 0.59443, "energy (keV)": 1.5093}, + "Mg": {"weight": 0.08505, "energy (keV)": 1.7049}, + "Lb2": {"weight": 0.20059, "energy (keV)": 8.4684}, + "Lb3": {"weight": 0.1273, "energy (keV)": 8.2312}, + "Lg3": {"weight": 0.0329, "energy (keV)": 9.7791}, + "Lg1": {"weight": 0.08615, "energy (keV)": 9.4373}, + "Mz": {"weight": 0.06, "energy (keV)": 1.1311}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1468.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1515.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1884.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 2090.0, + }, + "N4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 180.0, + }, + "N5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 180.0, + }, + }, + }, + "General_properties": {"Z": 69, "atomic_weight": 168.93421, "name": "thulium"}, + }, + "Cs": { + "Physical_properties": {"density (g/cm^3)": 1.879}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.42983, "energy (keV)": 4.6199}, + "Kb": {"weight": 0.15, "energy (keV)": 34.987}, + "Ka": {"weight": 1.0, "energy (keV)": 30.9727}, + "Lb2": {"weight": 0.19589, "energy (keV)": 4.9354}, + "Lb4": {"weight": 0.08869, "energy (keV)": 4.6493}, + "La": {"weight": 1.0, "energy (keV)": 4.2864}, + "Ln": {"weight": 0.0152, "energy (keV)": 4.1423}, + "Ll": {"weight": 0.04269, "energy (keV)": 3.7948}, + "Lb3": {"weight": 0.1399, "energy (keV)": 4.7167}, + "Lg3": {"weight": 0.0325, "energy (keV)": 5.5527}, + "Lg1": {"weight": 0.07215, "energy (keV)": 5.2806}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 726.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 740.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 998.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1065.0, + }, + "N4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 78.0, + }, + "N5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 78.0, + }, + }, + }, + "General_properties": {"Z": 55, "atomic_weight": 132.9054519, "name": "cesium"}, + }, + "Cr": { + "Physical_properties": {"density (g/cm^3)": 7.14}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.134, "energy (keV)": 5.9467}, + "Ka": {"weight": 1.0, "energy (keV)": 5.4147}, + "La": {"weight": 1.0, "energy (keV)": 0.5722}, + "Ln": {"weight": 0.2353, "energy (keV)": 0.5096}, + "Ll": {"weight": 0.6903, "energy (keV)": 0.5004}, + "Lb3": {"weight": 0.0309, "energy (keV)": 0.6521}, + }, + "Binding_energies": { + "M2": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 43.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 584.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 575.0, + }, + "M3": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 43.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 695.0, + }, + }, + }, + "General_properties": {"Z": 24, "atomic_weight": 51.9961, "name": "chromium"}, + }, + "Cu": { + "Physical_properties": {"density (g/cm^3)": 8.92}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.03197, "energy (keV)": 0.9494}, + "Kb": {"weight": 0.13157, "energy (keV)": 8.9053}, + "Ka": {"weight": 1.0, "energy (keV)": 8.0478}, + "La": {"weight": 1.0, "energy (keV)": 0.9295}, + "Ln": {"weight": 0.01984, "energy (keV)": 0.8312}, + "Ll": {"weight": 0.08401, "energy (keV)": 0.8113}, + "Lb3": {"weight": 0.00114, "energy (keV)": 1.0225}, + }, + "Binding_energies": { + "M2": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 74.0, + }, + "L2": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 951.0, + }, + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 931.0, + }, + "M3": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 74.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 1096.0, + }, + }, + }, + "General_properties": {"Z": 29, "atomic_weight": 63.546, "name": "copper"}, + }, + "La": { + "Physical_properties": {"density (g/cm^3)": 6.146}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.42631, "energy (keV)": 5.0421}, + "Kb": {"weight": 0.15, "energy (keV)": 37.8012}, + "Ka": {"weight": 1.0, "energy (keV)": 33.4419}, + "M2N4": {"weight": 0.022, "energy (keV)": 1.1055}, + "Ma": {"weight": 1.0, "energy (keV)": 0.8173}, + "Lb4": {"weight": 0.0872, "energy (keV)": 5.0619}, + "La": {"weight": 1.0, "energy (keV)": 4.651}, + "Ln": {"weight": 0.015, "energy (keV)": 4.5293}, + "Ll": {"weight": 0.0432, "energy (keV)": 4.1214}, + "Mb": {"weight": 0.9, "energy (keV)": 0.8162}, + "Mg": {"weight": 0.4, "energy (keV)": 1.0245}, + "Lb2": {"weight": 0.19579, "energy (keV)": 5.3838}, + "Lb3": {"weight": 0.1341, "energy (keV)": 5.1429}, + "Lg3": {"weight": 0.0329, "energy (keV)": 6.0749}, + "Lg1": {"weight": 0.07656, "energy (keV)": 5.7917}, + "Mz": {"weight": 0.06, "energy (keV)": 0.6403}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 832.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 849.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1123.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1204.0, + }, + "N4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 99.0, + }, + "N5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 99.0, + }, + }, + }, + "General_properties": { + "Z": 57, + "atomic_weight": 138.90547, + "name": "lanthanum", + }, + }, + "Li": { + "Physical_properties": {"density (g/cm^3)": 0.534}, + "Atomic_properties": { + "Binding_energies": { + "K": { + "relevance": "Major", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 55.0, + } + } + }, + "General_properties": {"atomic_weight": 6.939, "Z": 3, "name": "lithium"}, + }, + "Tl": { + "Physical_properties": {"density (g/cm^3)": 11.85}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.39112, "energy (keV)": 12.2128}, + "Kb": {"weight": 0.15, "energy (keV)": 82.5738}, + "Ka": {"weight": 1.0, "energy (keV)": 72.8729}, + "M2N4": {"weight": 0.00863, "energy (keV)": 3.0091}, + "Ma": {"weight": 1.0, "energy (keV)": 2.2708}, + "Lb4": {"weight": 0.05419, "energy (keV)": 11.931}, + "La": {"weight": 1.0, "energy (keV)": 10.2682}, + "Ln": {"weight": 0.0134, "energy (keV)": 10.9938}, + "M3O4": {"energy (keV)": 2.9413, "weight": 0.005}, + "Ll": {"weight": 0.0578, "energy (keV)": 8.9534}, + "Mb": {"weight": 0.64124, "energy (keV)": 2.3623}, + "Mg": {"weight": 0.21845, "energy (keV)": 2.5704}, + "Lb2": {"weight": 0.22289, "energy (keV)": 12.2713}, + "Lb3": {"weight": 0.0607, "energy (keV)": 12.3901}, + "M3O5": {"energy (keV)": 2.9435, "weight": 0.01}, + "Lg3": {"weight": 0.0175, "energy (keV)": 14.7377}, + "Lg1": {"weight": 0.08304, "energy (keV)": 14.2913}, + "Mz": {"weight": 0.0058, "energy (keV)": 1.7803}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 2389.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 2485.0, + }, + }, + }, + "General_properties": {"Z": 81, "atomic_weight": 204.3833, "name": "thallium"}, + }, + "Lu": { + "Physical_properties": {"density (g/cm^3)": 9.841}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.46975, "energy (keV)": 8.7092}, + "Kb": {"weight": 0.15, "energy (keV)": 61.2902}, + "Ka": {"weight": 1.0, "energy (keV)": 54.0697}, + "M2N4": {"weight": 0.01, "energy (keV)": 2.0587}, + "Ma": {"weight": 1.0, "energy (keV)": 1.5816}, + "Lb4": {"weight": 0.0996, "energy (keV)": 8.6069}, + "La": {"weight": 1.0, "energy (keV)": 7.6556}, + "Ln": {"weight": 0.016, "energy (keV)": 7.8574}, + "Ll": {"weight": 0.05009, "energy (keV)": 6.7529}, + "Mb": {"weight": 0.59443, "energy (keV)": 1.6325}, + "Mg": {"weight": 0.08505, "energy (keV)": 1.8286}, + "Lb2": {"weight": 0.20359, "energy (keV)": 9.0491}, + "Lb3": {"weight": 0.13099, "energy (keV)": 8.8468}, + "Lg3": {"weight": 0.0342, "energy (keV)": 10.5111}, + "Lg1": {"weight": 0.08968, "energy (keV)": 10.1438}, + "Mz": {"weight": 0.06, "energy (keV)": 1.2292}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1588.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1639.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 2024.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 2263.0, + }, + "N4": { + "relevance": "Major", + "threshold": "", + "edge": "Very delayed", + "onset_energy (eV)": 195.0, + }, + "N5": { + "relevance": "Major", + "threshold": "", + "edge": "Very delayed", + "onset_energy (eV)": 195.0, + }, + }, + }, + "General_properties": {"Z": 71, "atomic_weight": 174.9668, "name": "lutetium"}, + }, + "Th": { + "Physical_properties": {"density (g/cm^3)": 11.724}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.4, "energy (keV)": 16.2024}, + "Kb": {"weight": 0.15, "energy (keV)": 105.6049}, + "Ka": {"weight": 1.0, "energy (keV)": 93.3507}, + "M2N4": {"weight": 0.00674, "energy (keV)": 4.1163}, + "Ma": {"weight": 1.0, "energy (keV)": 2.9968}, + "Lb4": {"weight": 0.05, "energy (keV)": 15.6417}, + "La": {"weight": 1.0, "energy (keV)": 12.9683}, + "Ln": {"weight": 0.0134, "energy (keV)": 14.5109}, + "M3O4": {"energy (keV)": 3.9518, "weight": 0.01}, + "Ll": {"weight": 0.06709, "energy (keV)": 11.118}, + "Mb": {"weight": 0.64124, "energy (keV)": 3.1464}, + "Mg": {"weight": 0.33505, "energy (keV)": 3.3697}, + "Lb2": {"weight": 0.236, "energy (keV)": 15.6239}, + "Lb3": {"weight": 0.06, "energy (keV)": 16.426}, + "M3O5": {"energy (keV)": 3.9582, "weight": 0.01}, + "Lg3": {"weight": 0.017, "energy (keV)": 19.5048}, + "Lg1": {"weight": 0.08, "energy (keV)": 18.9791}, + "Mz": {"weight": 0.03512, "energy (keV)": 2.3647}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 3332.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 3491.0, + }, + "O5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 83.0, + }, + "O4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 83.0, + }, + }, + }, + "General_properties": {"Z": 90, "atomic_weight": 232.03806, "name": "thorium"}, + }, + "Ti": { + "Physical_properties": {"density (g/cm^3)": 4.507}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.11673, "energy (keV)": 4.9318}, + "Ka": {"weight": 1.0, "energy (keV)": 4.5109}, + "La": {"weight": 0.694, "energy (keV)": 0.4555}, + "Ln": {"weight": 0.491, "energy (keV)": 0.4012}, + "Ll": {"weight": 1.0, "energy (keV)": 0.3952}, + "Lb3": {"weight": 0.166, "energy (keV)": 0.5291}, + }, + "Binding_energies": { + "M2": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 35.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 462.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 456.0, + }, + "M3": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 35.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 564.0, + }, + }, + }, + "General_properties": {"Z": 22, "atomic_weight": 47.867, "name": "titanium"}, + }, + "Te": { + "Physical_properties": {"density (g/cm^3)": 6.24}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.43183, "energy (keV)": 4.0295}, + "Kb": {"weight": 0.15, "energy (keV)": 30.9951}, + "Ka": {"weight": 1.0, "energy (keV)": 27.4724}, + "Lb2": {"weight": 0.16269, "energy (keV)": 4.3016}, + "Lb4": {"weight": 0.0906, "energy (keV)": 4.0695}, + "La": {"weight": 1.0, "energy (keV)": 3.7693}, + "Ln": {"weight": 0.0154, "energy (keV)": 3.606}, + "Ll": {"weight": 0.0419, "energy (keV)": 3.3354}, + "Lb3": {"weight": 0.1458, "energy (keV)": 4.1205}, + "Lg3": {"weight": 0.0317, "energy (keV)": 4.829}, + "Lg1": {"weight": 0.06375, "energy (keV)": 4.5722}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 572.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 582.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 819.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 870.0, + }, + }, + }, + "General_properties": {"Z": 52, "atomic_weight": 127.6, "name": "tellurium"}, + }, + "Tb": { + "Physical_properties": {"density (g/cm^3)": 8.219}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.44104, "energy (keV)": 6.9766}, + "Kb": {"weight": 0.15, "energy (keV)": 50.3844}, + "Ka": {"weight": 1.0, "energy (keV)": 44.4817}, + "M2N4": {"weight": 0.014, "energy (keV)": 1.6207}, + "Ma": {"weight": 1.0, "energy (keV)": 1.2326}, + "Lb4": {"weight": 0.0874, "energy (keV)": 6.9403}, + "La": {"weight": 1.0, "energy (keV)": 6.2728}, + "Ln": {"weight": 0.01479, "energy (keV)": 6.2841}, + "Ll": {"weight": 0.0465, "energy (keV)": 5.5465}, + "Mb": {"weight": 0.78, "energy (keV)": 1.2656}, + "Mg": {"weight": 0.2615, "energy (keV)": 1.4643}, + "Lb2": {"weight": 0.19929, "energy (keV)": 7.367}, + "Lb3": {"weight": 0.124, "energy (keV)": 7.0967}, + "Lg3": {"weight": 0.0315, "energy (keV)": 8.423}, + "Lg1": {"weight": 0.08168, "energy (keV)": 8.1046}, + "Mz": {"weight": 0.06, "energy (keV)": 0.9562}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1241.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1275.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1611.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1768.0, + }, + "N4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 148.0, + }, + "N5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 148.0, + }, + }, + }, + "General_properties": {"Z": 65, "atomic_weight": 158.92535, "name": "terbium"}, + }, + "Tc": { + "Physical_properties": {"density (g/cm^3)": 11.5}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.32951, "energy (keV)": 2.5368}, + "Kb": {"weight": 0.15, "energy (keV)": 20.619}, + "Ka": {"weight": 1.0, "energy (keV)": 18.3671}, + "Lb2": {"weight": 0.05839, "energy (keV)": 2.67017}, + "La": {"weight": 1.0, "energy (keV)": 2.424}, + "Ln": {"weight": 0.0127, "energy (keV)": 2.2456}, + "Ll": {"weight": 0.0412, "energy (keV)": 2.1293}, + "Lb3": {"weight": 0.0644, "energy (keV)": 2.6175}, + "Lg3": {"weight": 0.0111, "energy (keV)": 3.0036}, + "Lg1": {"weight": 0.01744, "energy (keV)": 2.78619}, + }, + "Binding_energies": { + "K": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 21044.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 2793.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 2677.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 256.0, + }, + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 253.0, + }, + "N2": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 39.0, + }, + "N3": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 39.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 3043.0, + }, + "M1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 544.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 445.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 425.0, + }, + "N1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 68.0, + }, + }, + }, + "General_properties": {"Z": 43, "atomic_weight": 98, "name": "technetium"}, + }, + "Ta": { + "Physical_properties": {"density (g/cm^3)": 16.65}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.46248, "energy (keV)": 9.3429}, + "Kb": {"weight": 0.15, "energy (keV)": 65.2224}, + "Ka": {"weight": 1.0, "energy (keV)": 57.5353}, + "M2N4": {"weight": 0.01, "energy (keV)": 2.2274}, + "Ma": {"weight": 1.0, "energy (keV)": 1.7101}, + "Lb4": {"weight": 0.10449, "energy (keV)": 9.2128}, + "La": {"weight": 1.0, "energy (keV)": 8.146}, + "Ln": {"weight": 0.0158, "energy (keV)": 8.4281}, + "M3O4": {"energy (keV)": 2.1883, "weight": 0.0001}, + "Ll": {"weight": 0.0515, "energy (keV)": 7.1731}, + "Mb": {"weight": 0.59443, "energy (keV)": 1.7682}, + "Mg": {"weight": 0.08505, "energy (keV)": 1.9647}, + "Lb2": {"weight": 0.2076, "energy (keV)": 9.6518}, + "Lb3": {"weight": 0.1333, "energy (keV)": 9.4875}, + "M3O5": {"energy (keV)": 2.194, "weight": 0.01}, + "Lg3": {"weight": 0.0354, "energy (keV)": 11.277}, + "Lg1": {"weight": 0.09071, "energy (keV)": 10.8948}, + "Mz": {"weight": 0.01344, "energy (keV)": 1.3306}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1735.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1793.0, + }, + }, + }, + "General_properties": {"Z": 73, "atomic_weight": 180.94788, "name": "tantalum"}, + }, + "Yb": { + "Physical_properties": {"density (g/cm^3)": 6.57}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.46224, "energy (keV)": 8.4019}, + "Kb": {"weight": 0.15, "energy (keV)": 59.3825}, + "Ka": {"weight": 1.0, "energy (keV)": 52.3887}, + "M2N4": {"weight": 0.01, "energy (keV)": 1.9749}, + "Ma": {"weight": 1.0, "energy (keV)": 1.5215}, + "Lb4": {"weight": 0.09589, "energy (keV)": 8.3134}, + "La": {"weight": 1.0, "energy (keV)": 7.4158}, + "Ln": {"weight": 0.0157, "energy (keV)": 7.5801}, + "Ll": {"weight": 0.0494, "energy (keV)": 6.5455}, + "Mb": {"weight": 0.59443, "energy (keV)": 1.57}, + "Mg": {"weight": 0.08505, "energy (keV)": 1.7649}, + "Lb2": {"weight": 0.2017, "energy (keV)": 8.7587}, + "Lb3": {"weight": 0.12789, "energy (keV)": 8.5366}, + "Lg3": {"weight": 0.0331, "energy (keV)": 10.1429}, + "Lg1": {"weight": 0.08728, "energy (keV)": 9.7801}, + "Mz": {"weight": 0.06, "energy (keV)": 1.1843}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1528.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1576.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1950.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 2173.0, + }, + "N4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 184.0, + }, + "N5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 184.0, + }, + }, + }, + "General_properties": {"Z": 70, "atomic_weight": 173.054, "name": "ytterbium"}, + }, + "Dy": { + "Physical_properties": {"density (g/cm^3)": 8.551}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.444, "energy (keV)": 7.2481}, + "Kb": {"weight": 0.15, "energy (keV)": 52.1129}, + "Ka": {"weight": 1.0, "energy (keV)": 45.9984}, + "M2N4": {"weight": 0.008, "energy (keV)": 1.6876}, + "Ma": {"weight": 1.0, "energy (keV)": 1.2907}, + "Lb4": {"weight": 0.0891, "energy (keV)": 7.204}, + "La": {"weight": 1.0, "energy (keV)": 6.4952}, + "Ln": {"weight": 0.01489, "energy (keV)": 6.5338}, + "Ll": {"weight": 0.0473, "energy (keV)": 5.7433}, + "Mb": {"weight": 0.76, "energy (keV)": 1.3283}, + "Mg": {"weight": 0.08505, "energy (keV)": 1.5214}, + "Lb2": {"weight": 0.2, "energy (keV)": 7.6359}, + "Lb3": {"weight": 0.12529, "energy (keV)": 7.3702}, + "Lg3": {"weight": 0.0319, "energy (keV)": 8.7529}, + "Lg1": {"weight": 0.08295, "energy (keV)": 8.4264}, + "Mz": {"weight": 0.06, "energy (keV)": 1.002}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1295.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 1332.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1676.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1842.0, + }, + "N4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 154.0, + }, + "N5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 154.0, + }, + }, + }, + "General_properties": {"Z": 66, "atomic_weight": 162.5, "name": "dysprosium"}, + }, + "I": { + "Physical_properties": {"density (g/cm^3)": 4.94}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.43087, "energy (keV)": 4.2208}, + "Kb": {"weight": 0.15, "energy (keV)": 32.2948}, + "Ka": {"weight": 1.0, "energy (keV)": 28.6123}, + "Lb2": {"weight": 0.17059, "energy (keV)": 4.5075}, + "Lb4": {"weight": 0.09189, "energy (keV)": 4.2576}, + "La": {"weight": 1.0, "energy (keV)": 3.9377}, + "Ln": {"weight": 0.0154, "energy (keV)": 3.78}, + "Ll": {"weight": 0.0423, "energy (keV)": 3.485}, + "Lb3": {"weight": 0.1464, "energy (keV)": 4.3135}, + "Lg3": {"weight": 0.0327, "energy (keV)": 5.0654}, + "Lg1": {"weight": 0.06704, "energy (keV)": 4.8025}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 620.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 631.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 875.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 930.0, + }, + }, + }, + "General_properties": {"Z": 53, "atomic_weight": 126.90447, "name": "iodine"}, + }, + "U": { + "Physical_properties": {"density (g/cm^3)": 19.05}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.4, "energy (keV)": 17.22}, + "Kb": {"weight": 0.15, "energy (keV)": 111.3026}, + "Ka": {"weight": 1.0, "energy (keV)": 98.4397}, + "M2N4": {"weight": 0.00674, "energy (keV)": 4.4018}, + "Ma": {"weight": 1.0, "energy (keV)": 3.1708}, + "Lb4": {"weight": 0.04, "energy (keV)": 16.5752}, + "La": {"weight": 1.0, "energy (keV)": 13.6146}, + "Ln": {"weight": 0.01199, "energy (keV)": 15.3996}, + "M3O4": {"energy (keV)": 4.1984, "weight": 0.01}, + "Ll": {"weight": 0.069, "energy (keV)": 11.6183}, + "Mb": {"weight": 0.6086, "energy (keV)": 3.3363}, + "Mg": {"weight": 0.33505, "energy (keV)": 3.5657}, + "Lb2": {"weight": 0.236, "energy (keV)": 16.4286}, + "Lb3": {"weight": 0.06, "energy (keV)": 17.454}, + "M3O5": {"energy (keV)": 4.2071, "weight": 0.01}, + "Lg3": {"weight": 0.017, "energy (keV)": 20.7125}, + "Lg1": {"weight": 0.08, "energy (keV)": 20.1672}, + "Mz": {"weight": 0.03512, "energy (keV)": 2.5068}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 3552.0, + }, + "M4": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 3728.0, + }, + "O5": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 96.0, + }, + "O4": { + "relevance": "Major", + "threshold": "Broad peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 96.0, + }, + }, + }, + "General_properties": {"Z": 92, "atomic_weight": 238.02891, "name": "uranium"}, + }, + "Y": { + "Physical_properties": {"density (g/cm^3)": 4.472}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.39127, "energy (keV)": 1.9959}, + "Kb": {"weight": 0.15, "energy (keV)": 16.7381}, + "Ka": {"weight": 1.0, "energy (keV)": 14.9584}, + "Lb2": {"weight": 0.00739, "energy (keV)": 2.08}, + "La": {"weight": 1.0, "energy (keV)": 1.9226}, + "Ln": {"weight": 0.0162, "energy (keV)": 1.7619}, + "Ll": {"weight": 0.0428, "energy (keV)": 1.6864}, + "Lb3": {"weight": 0.05059, "energy (keV)": 2.0722}, + "Lg3": {"weight": 0.0075, "energy (keV)": 2.3469}, + "Lg1": {"weight": 0.00264, "energy (keV)": 2.1555}, + }, + "Binding_energies": { + "M2": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "", + "onset_energy (eV)": 312.0, + }, + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 160.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 160.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 2155.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 2080.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "", + "onset_energy (eV)": 300.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 2372.0, + }, + }, + }, + "General_properties": {"Z": 39, "atomic_weight": 88.90585, "name": "yttrium"}, + }, + "Ac": { + "Physical_properties": {"density (g/cm^3)": 10.07}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.4, "energy (keV)": 15.713}, + "Kb": {"weight": 0.15, "energy (keV)": 102.846}, + "Ka": {"weight": 1.0, "energy (keV)": 90.884}, + "M2N4": {"weight": 0.00674, "energy (keV)": 3.9811}, + "Ma": {"energy (keV)": 2.9239330000000003, "weight": 1.0}, + "La": {"weight": 1.0, "energy (keV)": 12.652}, + "Ln": {"weight": 0.0133, "energy (keV)": 14.0812}, + "M3O4": {"energy (keV)": 3.82586, "weight": 0.01}, + "Ll": {"weight": 0.06549, "energy (keV)": 10.869}, + "Mb": {"weight": 0.64124, "energy (keV)": 3.06626}, + "Mg": {"weight": 0.33505, "energy (keV)": 3.272}, + "M3O5": {"energy (keV)": 3.83206, "weight": 0.01}, + "Lb2": {"weight": 0.236, "energy (keV)": 15.234}, + "Lg3": {"weight": 0.017, "energy (keV)": 18.95}, + "Lg1": {"weight": 0.08, "energy (keV)": 18.4083}, + "Lb3": {"weight": 0.06, "energy (keV)": 15.931}, + "Mz": {"weight": 0.03512, "energy (keV)": 2.329}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3219.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3370.0, + }, + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 15871.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 19840.0, + }, + "L2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 19083.0, + }, + "M1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 5002.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 4656.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3909.0, + }, + "N1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1269.0, + }, + "N2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1080.0, + }, + "N3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 890.0, + }, + "N4": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 675.0, + }, + }, + }, + "General_properties": {"Z": 89, "atomic_weight": 227, "name": "actinium"}, + }, + "Ag": { + "Physical_properties": {"density (g/cm^3)": 10.49}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.35175, "energy (keV)": 3.1509}, + "Kb": {"weight": 0.15, "energy (keV)": 24.9426}, + "Ka": {"weight": 1.0, "energy (keV)": 22.1629}, + "Lb2": {"weight": 0.1165, "energy (keV)": 3.3478}, + "Lb4": {"weight": 0.0444, "energy (keV)": 3.2034}, + "La": {"weight": 1.0, "energy (keV)": 2.9844}, + "Ln": {"weight": 0.0131, "energy (keV)": 2.8062}, + "Ll": {"weight": 0.04129, "energy (keV)": 2.6336}, + "Lb3": {"weight": 0.0737, "energy (keV)": 3.2344}, + "Lg3": {"weight": 0.014, "energy (keV)": 3.7499}, + "Lg1": {"weight": 0.03735, "energy (keV)": 3.5204}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 367.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 373.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 571.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 602.0, + }, + }, + }, + "General_properties": {"Z": 47, "atomic_weight": 107.8682, "name": "silver"}, + }, + "Ir": { + "Physical_properties": {"density (g/cm^3)": 22.56}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.4168, "energy (keV)": 10.708}, + "Kb": {"weight": 0.15, "energy (keV)": 73.5603}, + "Ka": {"weight": 1.0, "energy (keV)": 64.8958}, + "M2N4": {"weight": 0.02901, "energy (keV)": 2.5973}, + "Ma": {"weight": 1.0, "energy (keV)": 1.9799}, + "Lb4": {"weight": 0.07269, "energy (keV)": 10.5098}, + "La": {"weight": 1.0, "energy (keV)": 9.1748}, + "Ln": {"weight": 0.01429, "energy (keV)": 9.6504}, + "M3O4": {"energy (keV)": 2.54264, "weight": 0.005}, + "Ll": {"weight": 0.05429, "energy (keV)": 8.0415}, + "Mb": {"weight": 0.59443, "energy (keV)": 2.0527}, + "Mg": {"weight": 0.08505, "energy (keV)": 2.2558}, + "Lb2": {"weight": 0.216, "energy (keV)": 10.9203}, + "Lb3": {"weight": 0.0874, "energy (keV)": 10.8678}, + "M3O5": {"energy (keV)": 2.54385, "weight": 0.01}, + "Lg3": {"weight": 0.024, "energy (keV)": 12.9242}, + "Lg1": {"weight": 0.08543, "energy (keV)": 12.5127}, + "Mz": {"weight": 0.01344, "energy (keV)": 1.5461}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 2040.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 2116.0, + }, + }, + }, + "General_properties": {"Z": 77, "atomic_weight": 192.217, "name": "iridium"}, + }, + "Al": { + "Physical_properties": {"density (g/cm^3)": 2.7}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.0132, "energy (keV)": 1.5596}, + "Ka": {"weight": 1.0, "energy (keV)": 1.4865}, + }, + "Binding_energies": { + "K": { + "relevance": "Major", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 1560.0, + }, + "L2,3": { + "relevance": "Major", + # Overlaps + # with L2 + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 73.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 118.0, + }, + }, + }, + "General_properties": { + "Z": 13, + "atomic_weight": 26.9815386, + "name": "aluminum", + }, + }, + "As": { + "Physical_properties": {"density (g/cm^3)": 5.727}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.16704, "energy (keV)": 1.3174}, + "Kb": {"weight": 0.14589, "energy (keV)": 11.7262}, + "Ka": {"weight": 1.0, "energy (keV)": 10.5436}, + "La": {"weight": 1.0, "energy (keV)": 1.2819}, + "Ln": {"weight": 0.01929, "energy (keV)": 1.1551}, + "Ll": {"weight": 0.04929, "energy (keV)": 1.1196}, + "Lb3": {"weight": 0.04769, "energy (keV)": 1.386}, + }, + "Binding_energies": { + "L2": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1359.0, + }, + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 1323.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 1526.0, + }, + }, + }, + "General_properties": {"Z": 33, "atomic_weight": 74.9216, "name": "arsenic"}, + }, + "Ar": { + "Physical_properties": {"density (g/cm^3)": 0.001784}, + "Atomic_properties": { + "Xray_lines": { + "Kb": {"weight": 0.10169, "energy (keV)": 3.1905}, + "Ka": {"weight": 1.0, "energy (keV)": 2.9577}, + }, + "Binding_energies": { + "L2,3": { + "relevance": "Major", + # overlaps + # with L2 + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 245.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 320.0, + }, + }, + }, + "General_properties": {"Z": 18, "atomic_weight": 39.948, "name": "argon"}, + }, + "Au": { + "Physical_properties": {"density (g/cm^3)": 19.3}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.40151, "energy (keV)": 11.4425}, + "Kb": {"weight": 0.15, "energy (keV)": 77.9819}, + "Ka": {"weight": 1.0, "energy (keV)": 68.8062}, + "M2N4": {"weight": 0.02901, "energy (keV)": 2.7958}, + "Ma": {"weight": 1.0, "energy (keV)": 2.1229}, + "Lb4": {"weight": 0.0594, "energy (keV)": 11.205}, + "La": {"weight": 1.0, "energy (keV)": 9.713}, + "Ln": {"weight": 0.01379, "energy (keV)": 10.3087}, + "M3O4": {"energy (keV)": 2.73469, "weight": 0.005}, + "Ll": {"weight": 0.0562, "energy (keV)": 8.4938}, + "Mb": {"weight": 0.59443, "energy (keV)": 2.2047}, + "Mg": {"weight": 0.08505, "energy (keV)": 2.4091}, + "Lb2": {"weight": 0.21949, "energy (keV)": 11.5848}, + "Lb3": {"weight": 0.069, "energy (keV)": 11.6098}, + "M3O5": {"energy (keV)": 2.73621, "weight": 0.01}, + "Lg3": {"weight": 0.0194, "energy (keV)": 13.8074}, + "Lg1": {"weight": 0.08407, "energy (keV)": 13.3816}, + "Mz": {"weight": 0.01344, "energy (keV)": 1.6603}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 2206.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 2291.0, + }, + }, + }, + "General_properties": {"Z": 79, "atomic_weight": 196.966569, "name": "gold"}, + }, + "At": { + "Physical_properties": {"density (g/cm^3)": "NaN"}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.38048, "energy (keV)": 13.876}, + "Kb": {"weight": 0.15, "energy (keV)": 92.3039}, + "Ka": {"weight": 1.0, "energy (keV)": 81.5164}, + "M2N4": {"weight": 0.00863, "energy (keV)": 3.4748}, + "Lb4": {"weight": 0.05809, "energy (keV)": 13.485}, + "La": {"weight": 1.0, "energy (keV)": 11.4268}, + "Ln": {"weight": 0.0132, "energy (keV)": 12.4677}, + "Ll": {"weight": 0.06179, "energy (keV)": 9.8965}, + "Mb": {"weight": 0.64124, "energy (keV)": 2.71162}, + "Mg": {"weight": 0.21845, "energy (keV)": 2.95061}, + "Lb2": {"weight": 0.2305, "energy (keV)": 13.73812}, + "Lg3": {"weight": 0.017, "energy (keV)": 16.753}, + "Lg1": {"weight": 0.08, "energy (keV)": 16.2515}, + "Lb3": {"weight": 0.06, "energy (keV)": 14.067}, + "Mz": {"weight": 0.00354, "energy (keV)": 2.0467}, + }, + "Binding_energies": { + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 14214.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 2908.0, + }, + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 2787.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 17493.0, + }, + "L2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 16785.0, + }, + "M1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 4317.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 4008.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3426.0, + }, + "N1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1042.0, + }, + "N2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 886.0, + }, + "N3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 740.0, + }, + "N4": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 879.0, + }, + "N5": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 533.0, + }, + }, + }, + "General_properties": {"Z": 85, "atomic_weight": 210, "name": "astatine"}, + }, + "In": { + "Physical_properties": {"density (g/cm^3)": 7.31}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.3616, "energy (keV)": 3.4872}, + "Kb": {"weight": 0.15, "energy (keV)": 27.2756}, + "Ka": {"weight": 1.0, "energy (keV)": 24.2098}, + "Lb2": {"weight": 0.1371, "energy (keV)": 3.7139}, + "Lb4": {"weight": 0.05349, "energy (keV)": 3.5353}, + "La": {"weight": 1.0, "energy (keV)": 3.287}, + "Ln": {"weight": 0.0132, "energy (keV)": 3.1124}, + "Ll": {"weight": 0.0415, "energy (keV)": 2.9045}, + "Lb3": {"weight": 0.08779, "energy (keV)": 3.5732}, + "Lg3": {"weight": 0.0177, "energy (keV)": 4.1601}, + "Lg1": {"weight": 0.04535, "energy (keV)": 3.9218}, + }, + "Binding_energies": { + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 443.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 451.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 664.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 702.0, + }, + }, + }, + "General_properties": {"Z": 49, "atomic_weight": 114.818, "name": "indium"}, + }, + "Mo": { + "Physical_properties": {"density (g/cm^3)": 10.28}, + "Atomic_properties": { + "Xray_lines": { + "Lb1": {"weight": 0.32736, "energy (keV)": 2.3948}, + "Kb": {"weight": 0.15, "energy (keV)": 19.6072}, + "Ka": {"weight": 1.0, "energy (keV)": 17.4793}, + "Lb2": {"weight": 0.04509, "energy (keV)": 2.5184}, + "La": {"weight": 1.0, "energy (keV)": 2.2932}, + "Ln": {"weight": 0.0128, "energy (keV)": 2.1205}, + "Ll": {"weight": 0.0415, "energy (keV)": 2.0156}, + "Lb3": {"weight": 0.06299, "energy (keV)": 2.4732}, + "Lg3": {"weight": 0.0105, "energy (keV)": 2.8307}, + "Lg1": {"weight": 0.01335, "energy (keV)": 2.6233}, + }, + "Binding_energies": { + "M2": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "", + "onset_energy (eV)": 410.0, + }, + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 227.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "Delayed maximum", + "onset_energy (eV)": 228.0, + }, + "L2": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 2625.0, + }, + "L3": { + "relevance": "Major", + "threshold": "Sharp peak", + "edge": "Delayed maximum", + "onset_energy (eV)": 2520.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "Sharp peak", + "edge": "", + "onset_energy (eV)": 392.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "Abrupt onset", + "onset_energy (eV)": 2866.0, + }, + }, + }, + "General_properties": {"Z": 42, "atomic_weight": 95.96, "name": "molybdenum"}, + }, + "Am": { + "Physical_properties": {"density (g/cm^3)": 12}, + "Atomic_properties": { + "Binding_energies": { + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 18504.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 4092.0, + }, + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3887.0, + }, + "O4": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 116.0, + }, + "O5": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 103.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 23773.0, + }, + "L2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 22944.0, + }, + "M1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 6121.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 5710.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 4667.0, + }, + "N1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1617.0, + }, + "N2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1412.0, + }, + "N3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1136.0, + }, + "N4": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 879.0, + }, + "N5": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 828.0, + }, + } + }, + "General_properties": {"Z": 95, "atomic_weight": 243, "name": "americium"}, + }, + "Np": { + "Physical_properties": {"density (g/cm^3)": 19.38}, + "Atomic_properties": { + "Binding_energies": { + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 17610.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3850.0, + }, + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3666.0, + }, + "N6": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 415.0, + }, + "N7": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 404.0, + }, + "O4": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 109.0, + }, + "O5": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 101.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 22427.0, + }, + "L2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 21601.0, + }, + "M1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 5723.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 5366.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 4435.0, + }, + "N1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1501.0, + }, + "N2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1328.0, + }, + "N3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1087.0, + }, + "N4": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 816.0, + }, + "N5": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 770.0, + }, + "O2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 283.0, + }, + "O1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 206.0, + }, + } + }, + "General_properties": {"Z": 93, "atomic_weight": 237, "name": "neptunium"}, + }, + "Pu": { + "Physical_properties": {"density (g/cm^3)": 19.82}, + "Atomic_properties": { + "Binding_energies": { + "L3": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 18057.0, + }, + "M4": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3973.0, + }, + "M5": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 3778.0, + }, + "N6": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 446.0, + }, + "N7": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 432.0, + }, + "O4": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 116.0, + }, + "O5": { + "relevance": "Major", + "threshold": "", + "edge": "", + "onset_energy (eV)": 105.0, + }, + "L1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 23097.0, + }, + "L2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 22266.0, + }, + "M1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 5933.0, + }, + "M2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 5541.0, + }, + "M3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 4557.0, + }, + "N1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1559.0, + }, + "N2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1372.0, + }, + "N3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 1115.0, + }, + "N4": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 849.0, + }, + "N5": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 801.0, + }, + "O1": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 352.0, + }, + "O2": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 274.0, + }, + "O3": { + "relevance": "Minor", + "threshold": "", + "edge": "", + "onset_energy (eV)": 207.0, + }, + } + }, + "General_properties": {"Z": 94, "atomic_weight": 244, "name": "plutonium"}, + }, +} + +elements_db = DictionaryTreeBrowser(elements) +elements_db.__doc__ = """ +Database of element properties. + +The following properties are included: + +.. code:: + + ├── Atomic_properties + │ ├── Binding_energies + │ └── Xray_lines + ├── General_properties + │ ├── Z + │ ├── atomic_weight + │ └── name + └── Physical_properties + └── density_gcm3 + +Examples +-------- +>>> exspy.material.elements.Fe.General_properties +├── Z = 26 +├── atomic_weight = 55.845 +└── name = iron +>>> exspy.material.elements.Fe.Physical_properties +└── density (g/cm^3) = 7.874 +>>> exspy.material.elements.Fe.Atomic_properties.Xray_lines +├── Ka +│ ├── energy (keV) = 6.404 +│ └── weight = 1.0 +├── Kb +│ ├── energy (keV) = 7.0568 +│ └── weight = 0.1272 +├── La +│ ├── energy (keV) = 0.705 +│ └── weight = 1.0 +├── Lb3 +│ ├── energy (keV) = 0.792 +│ └── weight = 0.02448 +├── Ll +│ ├── energy (keV) = 0.615 +│ └── weight = 0.3086 +└── Ln + ├── energy (keV) = 0.62799 + └── weight = 0.12525 +""" + +# read dictionary of atomic numbers from eXSpy, and add the elements that +# do not currently exist in the database (in case anyone is doing EDS on +# Ununpentium...) +atomic_number2name = dict((p.General_properties.Z, e) for (e, p) in elements_db) +atomic_number2name.update( + { + 96: "Cm", + 97: "Bk", + 98: "Cf", + 99: "Es", + 100: "Fm", + 101: "Md", + 102: "No", + 103: "Lr", + 104: "Rf", + 105: "Db", + 106: "Sg", + 107: "Bh", + 108: "Hs", + 109: "Mt", + 110: "Ds", + 111: "Rg", + 112: "Cp", + 113: "Uut", + 114: "Uuq", + 115: "Uup", + 116: "Uuh", + 117: "Uus", + 118: "Uuo", + 119: "Uue", + } +) diff --git a/exspy/_misc/material.py b/exspy/_misc/material.py new file mode 100644 index 000000000..08f6c034d --- /dev/null +++ b/exspy/_misc/material.py @@ -0,0 +1,536 @@ +# -*- coding: utf-8 -*- +# Copyright 2007-2024 The eXSpy developers +# +# This file is part of eXSpy. +# +# eXSpy is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# eXSpy is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with eXSpy. If not, see . + +from collections.abc import Iterable +import numpy as np +import numbers +import copy + +from exspy._misc.elements import elements as elements_db +from exspy._misc.eds.ffast_mac import ffast_mac_db as ffast_mac +from exspy._misc.eds import utils as utils_eds +from hyperspy.misc.utils import stack + + +def _weight_to_atomic(weight_percent, elements): + """Convert weight percent (wt%) to atomic percent (at.%). + + Parameters + ---------- + weight_percent : array of float + The weight fractions (composition) of the sample. + elements : list of str + A list of element abbreviations, e.g. ['Al','Zn'] + + Returns + ------- + atomic_percent : array of float + Composition in atomic percent. + + Examples + -------- + Calculate the atomic percent of modern bronze given its weight percent: + + >>> exspy.material.weight_to_atomic((88, 12), ("Cu", "Sn")) + array([ 93.19698614, 6.80301386]) + + """ + if len(elements) != len(weight_percent): + raise ValueError( + "The number of elements must match the size of the first axis" + "of weight_percent." + ) + atomic_weights = np.array( + [ + elements_db[element]["General_properties"]["atomic_weight"] + for element in elements + ] + ) + atomic_percent = np.array(list(map(np.divide, weight_percent, atomic_weights))) + sum_weight = atomic_percent.sum(axis=0) / 100.0 + for i, el in enumerate(elements): + atomic_percent[i] /= sum_weight + atomic_percent[i] = np.where(sum_weight == 0.0, 0.0, atomic_percent[i]) + return atomic_percent + + +def weight_to_atomic(weight_percent, elements="auto"): + """Convert weight percent (wt%) to atomic percent (at.%). + + Parameters + ---------- + weight_percent : list of float or list of signals + The weight fractions (composition) of the sample. + elements : list of str + A list of element abbreviations, e.g. ['Al','Zn']. If elements is + 'auto', take the elements in en each signal metadata of th + weight_percent list. + + Returns + ------- + atomic_percent : numpy.ndarray of float + Composition in atomic percent. + + Examples + -------- + Calculate the atomic percent of modern bronze given its weight percent: + + >>> exspy.material.weight_to_atomic((88, 12), ("Cu", "Sn")) + array([ 93.19698614, 6.80301386]) + + See also + -------- + exspy.material.atomic_to_weight + + """ + from hyperspy.signals import BaseSignal + + elements = _elements_auto(weight_percent, elements) + + if isinstance(weight_percent[0], BaseSignal): + atomic_percent = stack(weight_percent) + atomic_percent.data = _weight_to_atomic(atomic_percent.data, elements) + atomic_percent.data = np.nan_to_num(atomic_percent.data) + atomic_percent = atomic_percent.split() + for i, el in enumerate(elements): + atomic_percent[i].metadata.General.title = "atomic percent of " + el + return atomic_percent + else: + return _weight_to_atomic(weight_percent, elements) + + +def _atomic_to_weight(atomic_percent, elements): + """Convert atomic percent to weight percent. + + Parameters + ---------- + atomic_percent : array + The atomic fractions (composition) of the sample. + elements : list of str + A list of element abbreviations, e.g. ['Al','Zn'] + + Returns + ------- + weight_percent : numpy.ndarray of float + Composition in weight percent. + + Examples + -------- + Calculate the weight percent of modern bronze given its atomic percent: + + >>> exspy.material.atomic_to_weight([93.2, 6.8], ("Cu", "Sn")) + array([ 88.00501989, 11.99498011]) + + """ + if len(elements) != len(atomic_percent): + raise ValueError( + "The number of elements must match the size of the first axis" + "of atomic_percent." + ) + atomic_weights = np.array( + [ + elements_db[element]["General_properties"]["atomic_weight"] + for element in elements + ] + ) + weight_percent = np.array(list(map(np.multiply, atomic_percent, atomic_weights))) + sum_atomic = weight_percent.sum(axis=0) / 100.0 + for i, el in enumerate(elements): + weight_percent[i] /= sum_atomic + weight_percent[i] = np.where(sum_atomic == 0.0, 0.0, weight_percent[i]) + return weight_percent + + +def atomic_to_weight(atomic_percent, elements="auto"): + """Convert atomic percent to weight percent. + + Parameters + ---------- + atomic_percent : list of float or list of signals + The atomic fractions (composition) of the sample. + elements : list of str + A list of element abbreviations, e.g. ['Al','Zn']. If elements is + 'auto', take the elements in en each signal metadata of the + atomic_percent list. + + Returns + ------- + weight_percent : numpy.ndarray of float + Composition in weight percent. + + Examples + -------- + Calculate the weight percent of modern bronze given its atomic percent: + + >>> exspy.material.atomic_to_weight([93.2, 6.8], ("Cu", "Sn")) + array([ 88.00501989, 11.99498011]) + + See also + -------- + exspy.material.weight_to_atomic + + """ + from hyperspy.signals import BaseSignal + + elements = _elements_auto(atomic_percent, elements) + if isinstance(atomic_percent[0], BaseSignal): + weight_percent = stack(atomic_percent, show_progressbar=False) + weight_percent.data = _atomic_to_weight(weight_percent.data, elements) + weight_percent = weight_percent.split() + for i, el in enumerate(elements): + atomic_percent[i].metadata.General.title = "weight percent of " + el + return weight_percent + else: + return _atomic_to_weight(atomic_percent, elements) + + +def _density_of_mixture(weight_percent, elements, mean="harmonic"): + """Calculate the density a mixture of elements. + + The density of the elements is retrieved from an internal database. The + calculation is only valid if there is no interaction between the + components. + + Parameters + ---------- + weight_percent : array + A list of weight percent for the different elements. If the total + is not equal to 100, each weight percent is divided by the sum + of the list (normalization). + elements : list of str + A list of element symbols, e.g. ['Al', 'Zn'] + mean : ``'harmonic'`` or ``'weighted'`` + The type of mean use to estimate the density. + Default is ``'harmonic'``. + + Returns + ------- + density : numpy.ndarray of float + The density in g/cm3. + + Examples + -------- + Calculate the density of modern bronze given its weight percent: + + >>> exspy.material.density_of_mixture([88, 12],['Cu', 'Sn']) + 8.6903187973131466 + + """ + if len(elements) != len(weight_percent): + raise ValueError( + "The number of elements must match the size of the first axis" + "of weight_percent." + ) + densities = np.array( + [ + elements_db[element]["Physical_properties"]["density (g/cm^3)"] + for element in elements + ] + ) + sum_densities = np.zeros_like(weight_percent, dtype="float") + try: + if mean == "harmonic": + for i, weight in enumerate(weight_percent): + sum_densities[i] = weight / densities[i] + sum_densities = sum_densities.sum(axis=0) + density = np.sum(weight_percent, axis=0) / sum_densities + return np.where(sum_densities == 0.0, 0.0, density) + elif mean == "weighted": + for i, weight in enumerate(weight_percent): + sum_densities[i] = weight * densities[i] + sum_densities = sum_densities.sum(axis=0) + sum_weight = np.sum(weight_percent, axis=0) + density = sum_densities / sum_weight + return np.where(sum_weight == 0.0, 0.0, density) + except TypeError: + raise ValueError( + "The density of one of the elements is unknown (Probably At or Fr)." + ) + + +def density_of_mixture(weight_percent, elements="auto", mean="harmonic"): + """Calculate the density of a mixture of elements. + + The density of the elements is retrieved from an internal database. The + calculation is only valid if there is no interaction between the + components. + + Parameters + ---------- + weight_percent : list of float or list of signals + A list of weight percent for the different elements. If the total + is not equal to 100, each weight percent is divided by the sum + of the list (normalization). + elements : list of str + A list of element symbols, e.g. ['Al', 'Zn']. If elements is 'auto', + take the elements in en each signal metadata of the weight_percent + list. + mean : ``'harmonic'`` or ``'weighted'`` + The type of mean use to estimate the density. + Default is ``'harmonic'``. + + Returns + ------- + density : numpy.ndarray of float or hyperspy.api.signals.BaseSignal + The density in g/cm3. + + Examples + -------- + Calculate the density of modern bronze given its weight percent: + + >>> exspy.material.density_of_mixture([88, 12],['Cu', 'Sn']) + 8.6903187973131466 + + """ + from hyperspy.signals import BaseSignal + + elements = _elements_auto(weight_percent, elements) + if isinstance(weight_percent[0], BaseSignal): + density = weight_percent[0]._deepcopy_with_new_data( + _density_of_mixture(stack(weight_percent).data, elements, mean=mean) + ) + return density + else: + return _density_of_mixture(weight_percent, elements, mean=mean) + + +def mass_absorption_coefficient(element, energies): + """ + Mass absorption coefficient (mu/rho) of a X-ray absorbed in a pure + material. + + The mass absorption is retrieved from the database of Chantler2005 + + Parameters + ---------- + element: str + The element symbol of the absorber, e.g. 'Al'. + energies: float or list of float or str or list of str + The energy or energies of the X-ray in keV, or the name of the X-rays, + e.g. 'Al_Ka'. + + Return + ------ + mass_absorption_coefficients : numpy.ndarray of float + Mass absorption coefficient(s) in cm^2/g + + Examples + -------- + >>> exspy.material.mass_absorption_coefficient( + >>> element='Al', energies=['C_Ka','Al_Ka']) + array([ 26330.38933818, 372.02616732]) + + See also + -------- + exspy.material.mass_absorption_mixture + + Note + ---- + See https://dx.doi.org/10.18434/T4HS32 + Chantler, C.T., Olsen, K., Dragoset, R.A., Kishore, A.R., Kotochigova, + S.A., and Zucker, D.S. (2005), X-Ray Form Factor, Attenuation and + Scattering Tables (version 2.1). + """ + energies_db = np.array(ffast_mac[element].energies_keV) + macs = np.array(ffast_mac[element].mass_absorption_coefficient_cm2g) + energies = copy.copy(energies) + if isinstance(energies, str): + energies = utils_eds._get_energy_xray_line(energies) + elif isinstance(energies, Iterable): + for i, energy in enumerate(energies): + if isinstance(energy, str): + energies[i] = utils_eds._get_energy_xray_line(energy) + index = np.searchsorted(energies_db, energies) + mac_res = np.exp( + np.log(macs[index - 1]) + + np.log(macs[index] / macs[index - 1]) + * ( + np.log(energies / energies_db[index - 1]) + / np.log(energies_db[index] / energies_db[index - 1]) + ) + ) + return np.nan_to_num(mac_res) + + +def _mass_absorption_mixture(weight_percent, elements, energies): + """Calculate the mass absorption coefficient for X-ray absorbed in a + mixture of elements. + + The mass absorption coefficient is calculated as a weighted mean of the + weight percent and is retrieved from the database of Chantler2005. + + Parameters + ---------- + weight_percent: np.array + The composition of the absorber(s) in weight percent. The first + dimension of the matrix corresponds to the elements. + elements: list of str + The list of element symbol of the absorber, e.g. ['Al','Zn']. + energies: float or list of float or str or list of str + The energy or energies of the X-ray in keV, or the name of the X-rays, + e.g. 'Al_Ka'. + + Examples + -------- + >>> exspy.material.mass_absorption_mixture( + >>> elements=['Al','Zn'], weight_percent=[50,50], energies='Al_Ka') + 2587.4161643905127 + + Return + ------ + mass_absorption_coefficient : numpy.ndarray of float + The mass absorption coefficient(s) in cm^2/g + + See also + -------- + exspy.material.mass_absorption + + Note + ---- + See https://dx.doi.org/10.18434/T4HS32 + Chantler, C.T., Olsen, K., Dragoset, R.A., Kishore, A.R., Kotochigova, + S.A., and Zucker, D.S. (2005), X-Ray Form Factor, Attenuation and + Scattering Tables (version 2.1). + """ + if len(elements) != len(weight_percent): + raise ValueError("Elements and weight_fraction should have the same length") + if isinstance(weight_percent[0], Iterable): + weight_fraction = np.array(weight_percent) + weight_fraction /= np.sum(weight_fraction, 0) + mac_res = np.zeros([len(energies)] + list(weight_fraction.shape[1:])) + for element, weight in zip(elements, weight_fraction): + mac_re = mass_absorption_coefficient(element, energies) + mac_res += np.array([weight * ma for ma in mac_re]) + return mac_res + else: + mac_res = np.array( + [mass_absorption_coefficient(el, energies) for el in elements] + ) + mac_res = np.dot(weight_percent, mac_res) / np.sum(weight_percent, 0) + return mac_res + + +def mass_absorption_mixture(weight_percent, elements="auto", energies="auto"): + """Calculate the mass absorption coefficient for X-ray absorbed in a + mixture of elements. + + The mass absorption coefficient is calculated as a weighted mean of the + weight percent and is retrieved from the database of Chantler2005. + + Parameters + ---------- + weight_percent: list of float or list of signals + The composition of the absorber(s) in weight percent. The first + dimension of the matrix corresponds to the elements. + elements: list of str or 'auto' + The list of element symbol of the absorber, e.g. ['Al','Zn']. If + elements is 'auto', take the elements in each signal metadata of the + weight_percent list. + energies: list of float or list of str or 'auto' + The energy or energies of the X-ray in keV, or the name of the X-rays, + e.g. 'Al_Ka'. If 'auto', take the lines in each signal metadata of the + weight_percent list. + + Examples + -------- + >>> exspy.material.mass_absorption_mixture( + >>> elements=['Al','Zn'], weight_percent=[50,50], energies='Al_Ka') + 2587.41616439 + + Return + ------ + mass_absorption_coefficient : numpy.ndarray of float or hyperspy.api.signals.BaseSignal + The Mass absorption coefficient(s) of the mixture in cm^2/g + + See also + -------- + exspy.material.mass_absorption_coefficient + + Note + ---- + See https://dx.doi.org/10.18434/T4HS32 + Chantler, C.T., Olsen, K., Dragoset, R.A., Kishore, A.R., Kotochigova, + S.A., and Zucker, D.S. (2005), X-Ray Form Factor, Attenuation and + Scattering Tables (version 2.1). + + """ + from hyperspy.signals import BaseSignal + + elements = _elements_auto(weight_percent, elements) + energies = _lines_auto(weight_percent, energies) + if isinstance(weight_percent[0], BaseSignal): + weight_per = np.array([wt.data for wt in weight_percent]) + mac_res = stack( + [weight_percent[0].deepcopy()] * len(energies), show_progressbar=False + ) + mac_res.data = _mass_absorption_mixture(weight_per, elements, energies) + mac_res = mac_res.split() + for i, energy in enumerate(energies): + mac_res[i].metadata.set_item("Sample.xray_lines", ([energy])) + mac_res[i].metadata.General.set_item( + "title", + "Absoprtion coeff of" + " %s in %s" % (energy, mac_res[i].metadata.General.title), + ) + if mac_res[i].metadata.has_item("Sample.elements"): + del mac_res[i].metadata.Sample.elements + return mac_res + else: + return _mass_absorption_mixture(weight_percent, elements, energies) + + +def _lines_auto(composition, xray_lines): + if isinstance(composition[0], numbers.Number): + if isinstance(xray_lines, str): + if xray_lines == "auto": + raise ValueError("The X-ray lines needs to be provided.") + else: + if isinstance(xray_lines, str): + if xray_lines == "auto": + xray_lines = [] + for compo in composition: + if len(compo.metadata.Sample.xray_lines) > 1: + raise ValueError( + "The signal %s contains more than one X-ray lines " + "but this function requires only one X-ray lines " + "per signal." % compo.metadata.General.title + ) + else: + xray_lines.append(compo.metadata.Sample.xray_lines[0]) + return xray_lines + + +def _elements_auto(composition, elements): + if isinstance(composition[0], numbers.Number): + if isinstance(elements, str): + if elements == "auto": + raise ValueError("The elements needs to be provided.") + else: + if isinstance(elements, str): + if elements == "auto": + elements = [] + for compo in composition: + if len(compo.metadata.Sample.elements) > 1: + raise ValueError( + "The signal %s contains more than one element " + "but this function requires only one element " + "per signal." % compo.metadata.General.title + ) + else: + elements.append(compo.metadata.Sample.elements[0]) + return elements diff --git a/exspy/signal_tools.py b/exspy/_signal_tools.py similarity index 98% rename from exspy/signal_tools.py rename to exspy/_signal_tools.py index 44bbca1ad..d4b10f909 100644 --- a/exspy/signal_tools.py +++ b/exspy/_signal_tools.py @@ -4,7 +4,7 @@ from hyperspy.exceptions import SignalDimensionError from hyperspy.ui_registry import add_gui_method from hyperspy.signal_tools import SpanSelectorInSignal1D -from exspy.misc.eels.tools import get_edges_near_energy, get_info_from_edges +from exspy._misc.eels.tools import get_edges_near_energy, get_info_from_edges @add_gui_method(toolkey="exspy.EELSSpectrum.print_edges_table") diff --git a/exspy/components/eels_cl_edge.py b/exspy/components/eels_cl_edge.py index 56f4eb965..9bb143bf8 100644 --- a/exspy/components/eels_cl_edge.py +++ b/exspy/components/eels_cl_edge.py @@ -26,10 +26,10 @@ from scipy.interpolate import splev from hyperspy.component import Component -from exspy.misc.eels.gosh_gos import GoshGOS, GOSH_SOURCES -from exspy.misc.eels.hartree_slater_gos import HartreeSlaterGOS -from exspy.misc.eels.hydrogenic_gos import HydrogenicGOS -from exspy.misc.eels.effective_angle import effective_angle +from exspy._misc.eels.gosh_gos import GoshGOS, _GOSH_SOURCES +from exspy._misc.eels.hartree_slater_gos import HartreeSlaterGOS +from exspy._misc.eels.hydrogenic_gos import HydrogenicGOS +from exspy._misc.eels.effective_angle import effective_angle from hyperspy.ui_registry import add_gui_method from hyperspy.exceptions import VisibleDeprecationWarning @@ -554,7 +554,7 @@ def as_dictionary(self, fullcopy=True): EELSCLEdge.__doc__ %= ( - GOSH_SOURCES["dft"]["DOI"], - GOSH_SOURCES["dirac"]["DOI"], - GOSH_SOURCES["dft"]["DOI"], + _GOSH_SOURCES["dft"]["DOI"], + _GOSH_SOURCES["dirac"]["DOI"], + _GOSH_SOURCES["dft"]["DOI"], ) diff --git a/exspy/data/__init__.py b/exspy/data/__init__.py index 731006946..b4610c35d 100644 --- a/exspy/data/__init__.py +++ b/exspy/data/__init__.py @@ -26,7 +26,7 @@ from hyperspy.misc.math_tools import check_random_state import exspy -from exspy.misc.eels.eelsdb import eelsdb +from exspy._misc.eels.eelsdb import eelsdb __all__ = [ diff --git a/exspy/material.py b/exspy/material.py new file mode 100644 index 000000000..f02658a2d --- /dev/null +++ b/exspy/material.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# Copyright 2007-2024 The eXSpy developers +# +# This file is part of eXSpy. +# +# eXSpy is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# eXSpy is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with eXSpy. If not, see . + +from ._misc.material import ( + atomic_to_weight, + density_of_mixture, + mass_absorption_coefficient, + mass_absorption_mixture, + weight_to_atomic, +) +from ._misc.elements import elements_db as elements + + +__all__ = [ + "atomic_to_weight", + "density_of_mixture", + "elements", + "mass_absorption_coefficient", + "mass_absorption_mixture", + "weight_to_atomic", +] + + +def __dir__(): + return sorted(__all__) diff --git a/exspy/misc/__init__.py b/exspy/misc/__init__.py index e69de29bb..f9dbc11e7 100644 --- a/exspy/misc/__init__.py +++ b/exspy/misc/__init__.py @@ -0,0 +1 @@ +# Deprecated and to be removed in exspy 1.0 diff --git a/exspy/misc/eds/__init__.py b/exspy/misc/eds/__init__.py index e69de29bb..f9dbc11e7 100644 --- a/exspy/misc/eds/__init__.py +++ b/exspy/misc/eds/__init__.py @@ -0,0 +1 @@ +# Deprecated and to be removed in exspy 1.0 diff --git a/exspy/misc/eds/utils.py b/exspy/misc/eds/utils.py index be29a191a..b5f5c690e 100644 --- a/exspy/misc/eds/utils.py +++ b/exspy/misc/eds/utils.py @@ -1,754 +1,32 @@ -# -*- coding: utf-8 -*- -# Copyright 2007-2024 The eXSpy developers -# -# This file is part of eXSpy. -# -# eXSpy is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# eXSpy is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with eXSpy. If not, see . - - -import numpy as np -import math -from scipy import constants -from hyperspy.misc.utils import stack -from exspy.misc.elements import elements as elements_db -from functools import reduce - - -eV2keV = 1000.0 -sigma2fwhm = 2 * math.sqrt(2 * math.log(2)) - - -_ABSORPTION_CORRECTION_DOCSTRING = """absorption_correction : numpy.ndarray or None - If None (default), absorption correction is ignored, otherwise, the - array must contain values between 0 and 1 to correct the intensities - based on estimated absorption. -""" - - -def _get_element_and_line(xray_line): - """ - Returns the element name and line character for a particular X-ray line as - a tuple. - - By example, if xray_line = 'Mn_Ka' this function returns ('Mn', 'Ka') - """ - lim = xray_line.find("_") - if lim == -1: - raise ValueError(f"Invalid xray-line: {xray_line}") - return xray_line[:lim], xray_line[lim + 1 :] - - -def _get_energy_xray_line(xray_line): - """ - Returns the energy (in keV) associated with a given X-ray line. - - By example, if xray_line = 'Mn_Ka' this function returns 5.8987 - """ - element, line = _get_element_and_line(xray_line) - return elements_db[element]["Atomic_properties"]["Xray_lines"][line]["energy (keV)"] - - -def _get_xray_lines_family(xray_line): - """ - Returns the family to which a particular X-ray line belongs. - - By example, if xray_line = 'Mn_Ka' this function returns 'Mn_K' - """ - return xray_line[: xray_line.find("_") + 2] - - -def _parse_only_lines(only_lines): - if isinstance(only_lines, str): - pass - elif hasattr(only_lines, "__iter__"): - if any(isinstance(line, str) is False for line in only_lines): - return only_lines - else: - return only_lines - only_lines = list(only_lines) - for only_line in only_lines: - if only_line == "a": - only_lines.extend(["Ka", "La", "Ma"]) - elif only_line == "b": - only_lines.extend(["Kb", "Lb1", "Mb"]) - return only_lines - - -def get_xray_lines_near_energy(energy, width=0.2, only_lines=None): - """Find xray lines near a specific energy, more specifically all xray lines - that satisfy only_lines and are within the given energy window width around - the passed energy. - - Parameters - ---------- - energy : float - Energy to search near in keV - width : float - Window width in keV around energy in which to find nearby energies, - i.e. a value of 0.2 keV (the default) means to search +/- 0.1 keV. - only_lines : - If not None, only the given lines will be added (eg. ('a','Kb')). - - Returns - ------- - List of xray-lines sorted by energy difference to given energy. - """ - only_lines = _parse_only_lines(only_lines) - valid_lines = [] - E_min, E_max = energy - width / 2.0, energy + width / 2.0 - for element, el_props in elements_db.items(): - # Not all elements in the DB have the keys, so catch KeyErrors - try: - lines = el_props["Atomic_properties"]["Xray_lines"] - except KeyError: - continue - for line, l_props in lines.items(): - if only_lines and line not in only_lines: - continue - line_energy = l_props["energy (keV)"] - if E_min <= line_energy <= E_max: - # Store line in Element_Line format, and energy difference - valid_lines.append((element + "_" + line, abs(line_energy - energy))) - # Sort by energy difference, but return only the line names - return [line for line, _ in sorted(valid_lines, key=lambda x: x[1])] - - -def get_FWHM_at_Energy(energy_resolution_MnKa, E): - """Calculates an approximate FWHM, accounting for peak broadening due to the - detector, for a peak at energy E given a known width at a reference energy. - - The factor 2.5 is a constant derived by Fiori & Newbury as references - below. - - Parameters - ---------- - energy_resolution_MnKa : float - Energy resolution of Mn Ka in eV - E : float - Energy of the peak in keV - - Returns - ------- - float : FWHM of the peak in keV - - Notes - ----- - This method implements the equation derived by Fiori and Newbury as is - documented in the following: - - Fiori, C. E., and Newbury, D. E. (1978). In SEM/1978/I, SEM, Inc., - AMF O'Hare, Illinois, p. 401. - - Goldstein et al. (2003). "Scanning Electron Microscopy & X-ray - Microanalysis", Plenum, third edition, p 315. - - """ - FWHM_ref = energy_resolution_MnKa - E_ref = _get_energy_xray_line("Mn_Ka") - - FWHM_e = 2.5 * (E - E_ref) * eV2keV + FWHM_ref * FWHM_ref - - return math.sqrt(FWHM_e) / 1000.0 # In mrad - - -def xray_range(xray_line, beam_energy, density="auto"): - """Return the maximum range of X-ray generation according to the - Anderson-Hasler parameterization. - - Parameters - ---------- - xray_line: str - The X-ray line, e.g. 'Al_Ka' - beam_energy: float - The energy of the beam in kV. - density: {float, 'auto'} - The density of the material in g/cm3. If 'auto', the density - of the pure element is used. - - Returns - ------- - X-ray range in micrometer. - - Examples - -------- - >>> # X-ray range of Cu Ka in pure Copper at 30 kV in micron - >>> hs.eds.xray_range('Cu_Ka', 30.) - 1.9361716759499248 - - >>> # X-ray range of Cu Ka in pure Carbon at 30kV in micron - >>> hs.eds.xray_range('Cu_Ka', 30., hs.material.elements.C. - >>> Physical_properties.density_gcm3) - 7.6418811280855454 - - Notes - ----- - From Anderson, C.A. and M.F. Hasler (1966). In proceedings of the - 4th international conference on X-ray optics and microanalysis. - - See also the textbook of Goldstein et al., Plenum publisher, - third edition p 286 - - """ - - element, line = _get_element_and_line(xray_line) - if density == "auto": - density = elements_db[element]["Physical_properties"]["density (g/cm^3)"] - Xray_energy = _get_energy_xray_line(xray_line) - # Note: magic numbers here are from Andersen-Hasler parameterization. See - # docstring for associated references. - return 0.064 / density * (np.power(beam_energy, 1.68) - np.power(Xray_energy, 1.68)) - - -def electron_range(element, beam_energy, density="auto", tilt=0): - """Returns the maximum electron range for a pure bulk material according to - the Kanaya-Okayama parameterziation. - - Parameters - ---------- - element: str - The element symbol, e.g. 'Al'. - beam_energy: float - The energy of the beam in keV. - density: {float, 'auto'} - The density of the material in g/cm3. If 'auto', the density of - the pure element is used. - tilt: float. - The tilt of the sample in degrees. - - Returns - ------- - Electron range in micrometers. - - Examples - -------- - >>> # Electron range in pure Copper at 30 kV in micron - >>> hs.eds.electron_range('Cu', 30.) - 2.8766744984001607 - - Notes - ----- - From Kanaya, K. and S. Okayama (1972). J. Phys. D. Appl. Phys. 5, p43 - - See also the textbook of Goldstein et al., Plenum publisher, - third edition p 72. - - """ - - if density == "auto": - density = elements_db[element]["Physical_properties"]["density (g/cm^3)"] - Z = elements_db[element]["General_properties"]["Z"] - A = elements_db[element]["General_properties"]["atomic_weight"] - # Note: magic numbers here are from Kanaya-Okayama parameterization. See - # docstring for associated references. - return ( - 0.0276 - * A - / np.power(Z, 0.89) - / density - * np.power(beam_energy, 1.67) - * math.cos(math.radians(tilt)) - ) - - -def take_off_angle(tilt_stage, azimuth_angle, elevation_angle, beta_tilt=0.0): - """Calculate the take-off-angle (TOA). - - TOA is the angle with which the X-rays leave the surface towards - the detector. - - Parameters - ---------- - alpha_tilt: float - The alpha-tilt of the stage in degrees. The sample is facing the detector - when positively tilted. - azimuth_angle: float - The azimuth of the detector in degrees. 0 is perpendicular to the alpha - tilt axis. - elevation_angle: float - The elevation of the detector in degrees. - beta_tilt: float - The beta-tilt of the stage in degrees. The sample is facing positive 90 - in the azimuthal direction when positively tilted. - - Returns - ------- - take_off_angle: float. - In degrees. - - Examples - -------- - >>> hs.eds.take_off_angle(alpha_tilt=10., beta_tilt=0. - >>> azimuth_angle=45., elevation_angle=22.) - 28.865971201155283 - """ - - if tilt_stage is None: - raise ValueError( - "Unable to calculate take-off angle. The metadata property " - "`Stage.tilt_alpha` is not set." - ) - - if azimuth_angle is None: - raise ValueError( - "Unable to calculate take-off angle. The metadata property " - "`Detector.EDS.azimuth_angle` is not set." - ) - - if elevation_angle is None: - raise ValueError( - "Unable to calculate take-off angle. The metadata property " - "`Detector.EDS.elevation_angle` is not set." - ) - - alpha = math.radians(tilt_stage) - beta = -math.radians(beta_tilt) - phi = math.radians(azimuth_angle) - theta = -math.radians(elevation_angle) - - return 90 - math.degrees( - np.arccos( - math.sin(alpha) * math.cos(beta) * math.cos(phi) * math.cos(theta) - - math.sin(beta) * math.sin(phi) * math.cos(theta) - - math.cos(alpha) * math.cos(beta) * math.sin(theta) - ) - ) - - -def xray_lines_model( - elements, - beam_energy=200, - weight_percents=None, - energy_resolution_MnKa=130, - energy_axis=None, -): - """ - Generate a model of X-ray lines using a Gaussian distribution for each - peak. - - The area under a main peak (alpha) is equal to 1 and weighted by the - composition. - - Parameters - ---------- - elements : list of strings - A list of chemical element symbols. - beam_energy: float - The energy of the beam in keV. - weight_percents: list of float - The composition in weight percent. - energy_resolution_MnKa: float - The energy resolution of the detector in eV - energy_axis: dic - The dictionary for the energy axis. It must contains 'size' and the - units must be 'eV' of 'keV'. - - Example - ------- - >>> s = xray_lines_model(['Cu', 'Fe'], beam_energy=30) - >>> s.plot() - """ - from exspy.signals.eds_tem import EDSTEMSpectrum - from hyperspy import components1d - - if energy_axis is None: - energy_axis = { - "name": "E", - "scale": 0.01, - "units": "keV", - "offset": -0.1, - "size": 1024, - } - s = EDSTEMSpectrum(np.zeros(energy_axis["size"]), axes=[energy_axis]) - s.set_microscope_parameters( - beam_energy=beam_energy, energy_resolution_MnKa=energy_resolution_MnKa - ) - s.add_elements(elements) - counts_rate = 1.0 - live_time = 1.0 - if weight_percents is None: - weight_percents = [100.0 / len(elements)] * len(elements) - m = s.create_model() - if len(elements) == len(weight_percents): - for element, weight_percent in zip(elements, weight_percents): - for line, properties in elements_db[element]["Atomic_properties"][ - "Xray_lines" - ].items(): - line_energy = properties["energy (keV)"] - ratio_line = properties["weight"] - if s._get_xray_lines_in_spectral_range([element + "_" + line])[1] == []: - g = components1d.Gaussian() - g.centre.value = line_energy - g.sigma.value = ( - get_FWHM_at_Energy(energy_resolution_MnKa, line_energy) - / sigma2fwhm - ) - g.A.value = ( - live_time * counts_rate * weight_percent / 100 * ratio_line - ) - m.append(g) - else: - raise ValueError( - "The number of elements specified is not the same " - "as the number of weight_percents" - ) - - s.data = m.as_signal().data - return s - - -def quantification_cliff_lorimer( - intensities, kfactors, absorption_correction=None, mask=None -): - """ - Quantification using Cliff-Lorimer - - Parameters - ---------- - intensities: numpy.array - the intensities for each X-ray lines. The first axis should be the - elements axis. - kfactors: list of float - The list of kfactor in same order as intensities eg. kfactors = - [1, 1.47, 1.72] for ['Al_Ka','Cr_Ka', 'Ni_Ka'] - %s - mask: array of bool, signal of bool or None - The mask with the dimension of intensities[0]. If a pixel is True, - the composition is set to zero. - - Return - ------ - numpy.array containing the weight fraction with the same - shape as intensities. - """ - # Value used as an threshold to prevent using zeros as denominator - min_intensity = 0.1 - dim = intensities.shape - dim2 = reduce(lambda x, y: x * y, dim[1:]) - intens = intensities.reshape(dim[0], dim2).astype(float) - - if absorption_correction is None: - # default to ones - absorption_correction = np.ones_like(intens, dtype=float) - else: - absorption_correction = absorption_correction.reshape(dim[0], dim2) - - for i in range(dim2): - index = np.where(intens[:, i] > min_intensity)[0] - if len(index) > 1: - ref_index, ref_index2 = index[:2] - intens[:, i] = _quantification_cliff_lorimer( - intens[:, i], - kfactors, - absorption_correction[:, i], - ref_index, - ref_index2, - ) - else: - intens[:, i] = np.zeros_like(intens[:, i]) - if len(index) == 1: - intens[index[0], i] = 1.0 - - intens = intens.reshape(dim) - if mask is not None: - from hyperspy.signals import BaseSignal - - if isinstance(mask, BaseSignal): - mask = mask.data - if mask.dtype != bool: - mask = mask.astype(bool) - for i in range(dim[0]): - intens[i][mask] = 0 - - return intens - - -quantification_cliff_lorimer.__doc__ %= _ABSORPTION_CORRECTION_DOCSTRING - - -def _quantification_cliff_lorimer( - intensities, kfactors, absorption_correction, ref_index=0, ref_index2=1 -): - """ - Quantification using Cliff-Lorimer - - Parameters - ---------- - intensities: numpy.array - the intensities for each X-ray lines. The first axis should be the - elements axis. - absorption_correction: numpy.ndarray - value between 0 and 1 in order to correct the intensities based on - estimated absorption. - kfactors: list of float - The list of kfactor in same order as intensities eg. kfactors = - [1, 1.47, 1.72] for ['Al_Ka','Cr_Ka', 'Ni_Ka'] - ref_index, ref_index2: int - index of the elements that will be in the denominator. Should be non - zeros if possible. - - Return - ------ - numpy.array containing the weight fraction with the same - shape as intensities. - """ - if len(intensities) != len(kfactors): - raise ValueError( - "The number of kfactors must match the size of the " - "first axis of intensities." - ) - - ab = np.zeros_like(intensities, dtype="float") - composition = np.ones_like(intensities, dtype="float") - # ab = Ia/Ib / kab - other_index = list(range(len(kfactors))) - other_index.pop(ref_index) - for i in other_index: - ab[i] = ( - (intensities[ref_index] * absorption_correction[ref_index]) - / (intensities[i] * absorption_correction[i]) - * (kfactors[ref_index] / kfactors[i]) - ) - # Ca = ab /(1 + ab + ab/ac + ab/ad + ...) - for i in other_index: - if i == ref_index2: - composition[ref_index] += ab[ref_index2] - else: - composition[ref_index] += ab[ref_index2] / ab[i] - composition[ref_index] = ab[ref_index2] / composition[ref_index] - # Cb = Ca / ab - for i in other_index: - composition[i] = composition[ref_index] / ab[i] - return composition - - -def quantification_zeta_factor(intensities, zfactors, dose, absorption_correction=None): - """ - Quantification using the zeta-factor method - - Parameters - ---------- - intensities: numpy.array - The intensities for each X-ray line. The first axis should be the - elements axis. - zfactors: list of float - The list of zeta-factors in the same order as intensities - e.g. zfactors = [628.10, 539.89] for ['As_Ka', 'Ga_Ka']. - dose: float - The total electron dose given by i*t*N, i the current, - t the acquisition time and - N the number of electrons per unit electric charge (1/e). - %s - - Returns - ------ - A numpy.array containing the weight fraction with the same - shape as intensities and mass thickness in kg/m^2. - """ - if absorption_correction is None: - # default to ones - absorption_correction = np.ones_like(intensities, dtype="float") - - sumzi = np.zeros_like(intensities[0], dtype="float") - composition = np.zeros_like(intensities, dtype="float") - for intensity, zfactor, acf in zip(intensities, zfactors, absorption_correction): - sumzi = sumzi + (intensity * zfactor * acf) - for i, (intensity, zfactor, acf) in enumerate( - zip(intensities, zfactors, absorption_correction) - ): - composition[i] = intensity * zfactor * acf / sumzi - mass_thickness = sumzi / dose - return composition, mass_thickness - - -quantification_zeta_factor.__doc__ %= _ABSORPTION_CORRECTION_DOCSTRING - - -def get_abs_corr_zeta(weight_percent, mass_thickness, take_off_angle): - """ - Calculate absorption correction terms. - - Parameters - ---------- - weight_percent: list of signal - Composition in weight percent. - mass_thickness: signal - Density-thickness map in kg/m^2 - take_off_angle: float - X-ray take-off angle in degrees. - """ - from exspy.misc import material - - toa_rad = np.radians(take_off_angle) - csc_toa = 1.0 / np.sin(toa_rad) - # convert from cm^2/g to m^2/kg - mac = ( - stack( - material.mass_absorption_mixture(weight_percent=weight_percent), - show_progressbar=False, - ) - * 0.1 - ) - expo = mac.data * mass_thickness.data * csc_toa - acf = expo / (1.0 - np.exp(-(expo))) - return acf - - -def quantification_cross_section( - intensities, cross_sections, dose, absorption_correction=None -): - """ - Quantification using EDX cross sections - Calculate the atomic compostion and the number of atoms per pixel - from the raw X-ray intensity - - Parameters - ---------- - intensity : numpy.ndarray - The integrated intensity for each X-ray line, where the first axis - is the element axis. - cross_sections : list of floats - List of X-ray scattering cross-sections in the same order as the - intensities. - dose: float - the dose per unit area given by i*t*N/A, i the current, - t the acquisition time, and - N the number of electron by unit electric charge. - %s - - Returns - ------- - numpy.array containing the atomic fraction of each element, with - the same shape as the intensity input. - numpy.array of the number of atoms counts for each element, with the same - shape as the intensity input. - """ - - if absorption_correction is None: - # default to ones - absorption_correction = np.ones_like(intensities, dtype=float) - - shp = len(intensities.shape) - 1 - slices = (slice(None),) + (None,) * shp - x_sections = np.array(cross_sections, dtype=float)[slices] - number_of_atoms = intensities / (x_sections * dose * 1e-10) * absorption_correction - total_atoms = np.cumsum(number_of_atoms, axis=0)[-1] - composition = number_of_atoms / total_atoms - - return composition, number_of_atoms - - -quantification_cross_section.__doc__ %= _ABSORPTION_CORRECTION_DOCSTRING - - -def get_abs_corr_cross_section( - composition, number_of_atoms, take_off_angle, probe_area -): - """ - Calculate absorption correction terms. - - Parameters - ---------- - number_of_atoms: list of signal - Stack of maps with number of atoms per pixel. - take_off_angle: float - X-ray take-off angle in degrees. - """ - from exspy.misc import material - - toa_rad = np.radians(take_off_angle) - Av = constants.Avogadro - elements = [intensity.metadata.Sample.elements[0] for intensity in number_of_atoms] - atomic_weights = np.array( - [ - elements_db[element]["General_properties"]["atomic_weight"] - for element in elements - ] - ) - - number_of_atoms = stack(number_of_atoms, show_progressbar=False).data - - # calculate the total_mass in kg/m^2, or mass thickness. - total_mass = np.zeros_like(number_of_atoms[0], dtype="float") - for i, (weight) in enumerate(atomic_weights): - total_mass += number_of_atoms[i] * weight / Av / 1e3 / probe_area / 1e-18 - # determine mass absorption coefficients and convert from cm^2/g to m^2/kg. - to_stack = material.mass_absorption_mixture( - weight_percent=material.atomic_to_weight(composition) - ) - mac = stack(to_stack, show_progressbar=False) * 0.1 - acf = np.zeros_like(number_of_atoms) - csc_toa = 1 / math.sin(toa_rad) - # determine an absorption coeficient per element per pixel. - for i, (weight) in enumerate(atomic_weights): - expo = mac.data[i] * total_mass * csc_toa - acf[i] = expo / (1 - np.exp(-expo)) - return acf - - -def edx_cross_section_to_zeta(cross_sections, elements): - """Convert a list of cross_sections in barns (b) to zeta-factors (kg/m^2). - - Parameters - ---------- - cross_section: list of float - A list of cross sections in barns. - elements: list of str - A list of element chemical symbols in the same order as the - cross sections e.g. ['Al','Zn'] - - Returns - ------- - zeta_factors : list of float - zeta_factors with units kg/m^2. - - """ - if len(elements) != len(cross_sections): - raise ValueError( - "The number of elements must match the number of cross sections." - ) - zeta_factors = [] - for i, element in enumerate(elements): - atomic_weight = elements_db[element]["General_properties"]["atomic_weight"] - zeta = atomic_weight / (cross_sections[i] * constants.Avogadro * 1e-25) - zeta_factors.append(zeta) - return zeta_factors - - -def zeta_to_edx_cross_section(zfactors, elements): - """Convert a list of zeta-factors (kg/m^2) to cross_sections in barns (b). - - Parameters - ---------- - zfactors: list of float - A list of zeta-factors. - elements: list of str - A list of element chemical symbols in the same order as the - cross sections e.g. ['Al','Zn'] - - Returns - ------- - cross_sections : list of float - cross_sections with units in barns. - - """ - if len(elements) != len(zfactors): - raise ValueError( - "The number of elements must match the number of cross sections." - ) - cross_sections = [] - for i, element in enumerate(elements): - atomic_weight = elements_db[element]["General_properties"]["atomic_weight"] - xsec = atomic_weight / (zfactors[i] * constants.Avogadro * 1e-25) - cross_sections.append(xsec) - return cross_sections +import warnings + +from hyperspy.exceptions import VisibleDeprecationWarning + +from exspy._misc.eds.utils import ( + cross_section_to_zeta, + electron_range, + get_xray_lines_near_energy, + take_off_angle, + xray_range, + zeta_to_cross_section, +) + + +warnings.warn( + "This module is deprecated, use `exspy.utils.eds` instead. " + "It will be removed in exspy 1.0.", + VisibleDeprecationWarning, +) + +__all__ = [ + "cross_section_to_zeta", + "electron_range", + "get_xray_lines_near_energy", + "take_off_angle", + "xray_range", + "zeta_to_cross_section", +] + + +def __dir__(): + return sorted(__all__) diff --git a/exspy/misc/eels/__init__.py b/exspy/misc/eels/__init__.py deleted file mode 100644 index 76a0d5eb9..000000000 --- a/exspy/misc/eels/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from exspy.misc.eels.hydrogenic_gos import HydrogenicGOS -from exspy.misc.eels.gosh_gos import GoshGOS -from exspy.misc.eels.hartree_slater_gos import HartreeSlaterGOS - -__all__ = ["HydrogenicGOS", "GoshGOS", "HartreeSlaterGOS"] diff --git a/exspy/misc/eels/_init__.py b/exspy/misc/eels/_init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/exspy/misc/eels/electron_inelastic_mean_free_path.py b/exspy/misc/eels/electron_inelastic_mean_free_path.py index 4c865d415..3167c4fd4 100644 --- a/exspy/misc/eels/electron_inelastic_mean_free_path.py +++ b/exspy/misc/eels/electron_inelastic_mean_free_path.py @@ -1,144 +1,24 @@ -# -*- coding: utf-8 -*- -# Copyright 2007-2024 The eXSpy developers -# -# This file is part of eXSpy. -# -# eXSpy is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# eXSpy is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with eXSpy. If not, see . +# Deprecated and to be removed in exspy 1.0 +import warnings -import numpy as np -import math +from hyperspy.exceptions import VisibleDeprecationWarning +from exspy.utils.eels import ( + iMFP_angular_correction, + iMFP_Iakoubovskii, + iMFP_TPP2M, +) -def _F(electron_energy): - return (1 + electron_energy / 1022) / (1 + electron_energy / 511) ** 2 +__all__ = [ + "iMFP_angular_correction", + "iMFP_Iakoubovskii", + "iMFP_TPP2M", +] -def _theta_E(density, electron_energy): - return 5.5 * density**0.3 / (_F(electron_energy) * electron_energy) - - -def iMFP_Iakoubovskii(density, electron_energy): - """Estimate electron inelastic mean free path from density - - Parameters - ---------- - density : float - Material density in g/cm**3 - beam_energy : float - Electron beam energy in keV - - Notes - ----- - For details see Equation 9 in reference [*]_. - - .. [*] Iakoubovskii, K., K. Mitsuishi, Y. Nakayama, and K. Furuya. - ‘Thickness Measurements with Electron Energy Loss Spectroscopy’. - Microscopy Research and Technique 71, no. 8 (2008): 626–31. - https://onlinelibrary.wiley.com/doi/10.1002/jemt.20597 - - Returns - ------- - float - Inelastic mean free path in nanometers - """ - theta_C = 20 # mrad - inv_lambda = ( - 11 - * density**0.3 - / (200 * _F(electron_energy) * electron_energy) - * np.log(theta_C**2 / _theta_E(density, electron_energy) ** 2) - ) - return 1 / inv_lambda - - -def iMFP_TPP2M(electron_energy, density, M, N_v, E_g): - """Electron inelastic mean free path using TPP-2M - - Parameters - ---------- - electron_energy : float - Electron beam energy in keV - density : float - Material density in g/cm**3 - M : float - Molar mass in g / mol - N_v : int - Number of valence electron - E_g : float - Band gap in eV - - Returns - ------- - float - Inelastic mean free path in nanometers - - Notes - ----- - For details see reference [*]_. - - .. [*] Shinotsuka, H., S. Tanuma, C. J. Powell, and D. R. Penn. ‘Calculations - of Electron Inelastic Mean Free Paths. X. Data for 41 Elemental Solids over - the 50 EV to 200 KeV Range with the Relativistic Full Penn Algorithm: - Calculations of Electron Inelastic Mean Free Paths. X’. Surface and - Interface Analysis 47, no. 9 (September 2015): 871–88. - https://onlinelibrary.wiley.com/doi/10.1002/sia.5789 - """ - E = electron_energy * 1e3 - rho = density - alpha = (1 + E / 1021999.8) / (1 + E / 510998.9) ** 2 - E_p = 28.816 * math.sqrt(N_v * rho / M) - gamma = 0.191 / math.sqrt(rho) - U = (E_p / 28.816) ** 2 - C = 19.7 - 9.1 * U - D = 534 - 208 * U - beta = -1 + 9.44 / math.sqrt(E_p**2 + E_g**2) + 0.69 * rho**0.1 - iMFP = ( - alpha * E / (E_p**2 * (beta * math.log(gamma * alpha * E) - C / E + D / E**2)) - ) - return iMFP - - -def iMFP_angular_correction(density, beam_energy, alpha, beta): - """Estimate the effect of limited collection angle on EELS mean free path - - Parameters - ---------- - density : float - Material density in g/cm**3 - beam_energy : float - Electron beam energy in keV - alpha, beta : float - Convergence and collection angles in mrad. - - Notes - ----- - For details see Equation 9 in reference [*]_. - - .. [*] Iakoubovskii, K., K. Mitsuishi, Y. Nakayama, and K. Furuya. - ‘Thickness Measurements with Electron Energy Loss Spectroscopy’. - Microscopy Research and Technique 71, no. 8 (2008): 626–31. - https://onlinelibrary.wiley.com/doi/10.1002/jemt.20597 - """ - theta_C = 20 # mrad - A = ( - alpha**2 - + beta**2 - + 2 * _theta_E(density, beam_energy) ** 2 - + abs(alpha**2 - beta**2) - ) - B = alpha**2 + beta**2 + 2 * theta_C**2 + abs(alpha**2 - beta**2) - return np.log(theta_C**2 / _theta_E(density, beam_energy) ** 2) / np.log( - A * theta_C**2 / B / _theta_E(density, beam_energy) ** 2 - ) +warnings.warn( + "This module is deprecated, use `exspy.utils.eels` instead. " + "It will be removed in exspy 1.0.", + VisibleDeprecationWarning, +) diff --git a/exspy/misc/eels/tools.py b/exspy/misc/eels/tools.py index e7e255467..e1e75fd56 100644 --- a/exspy/misc/eels/tools.py +++ b/exspy/misc/eels/tools.py @@ -1,442 +1,29 @@ -# -*- coding: utf-8 -*- -# Copyright 2007-2024 The eXSpy developers -# -# This file is part of eXSpy. -# -# eXSpy is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# eXSpy is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with eXSpy. If not, see . +# Deprecated and to be removed in exspy 1.0 -import math -import numbers -import logging +import warnings -import numpy as np -import matplotlib.pyplot as plt -from scipy import constants +from hyperspy.exceptions import VisibleDeprecationWarning -from hyperspy.misc.array_tools import rebin -from exspy.misc.elements import elements as elements_db -import hyperspy.defaults_parser +from exspy.utils.eels import ( + effective_angle, + get_edges_near_energy, + get_info_from_edges, +) -_logger = logging.getLogger(__name__) +__all__ = [ + "effective_angle", + "get_edges_near_energy", + "get_info_from_edges", +] -def _estimate_gain( - ns, cs, weighted=False, higher_than=None, plot_results=False, binning=0, pol_order=1 -): - if binning > 0: - factor = 2**binning - remainder = np.mod(ns.shape[1], factor) - if remainder != 0: - ns = ns[:, remainder:] - cs = cs[:, remainder:] - new_shape = (ns.shape[0], ns.shape[1] / factor) - ns = rebin(ns, new_shape) - cs = rebin(cs, new_shape) - noise = ns - cs - variance = np.var(noise, 0) - average = np.mean(cs, 0).squeeze() +def __dir__(): + return sorted(__all__) - # Select only the values higher_than for the calculation - if higher_than is not None: - sorting_index_array = np.argsort(average) - average_sorted = average[sorting_index_array] - average_higher_than = average_sorted > higher_than - variance_sorted = variance.squeeze()[sorting_index_array] - variance2fit = variance_sorted[average_higher_than] - average2fit = average_sorted[average_higher_than] - else: - variance2fit = variance - average2fit = average - fit = np.polynomial.Polynomial.fit(average2fit, variance2fit, pol_order) - if weighted is True: - import hyperspy.api as hs - - s = hs.signals.Signal1D(variance2fit) - s.axes_manager.signal_axes[0].axis = average2fit - m = s.create_model() - line = hs.model.components1D.Polynomial() - line.a.value = fit[1] - line.b.value = fit[0] - m.append(line) - m.fit(weights=True) - fit[0] = line.b.value - fit[1] = line.a.value - - if plot_results is True: - plt.figure() - plt.scatter(average.squeeze(), variance.squeeze()) - plt.xlabel("Counts") - plt.ylabel("Variance") - plt.plot(average2fit, np.polyval(fit, average2fit), color="red") - results = {"fit": fit, "variance": variance.squeeze(), "counts": average.squeeze()} - - return results - - -def _estimate_correlation_factor(g0, gk, k): - a = math.sqrt(g0 / gk) - e = k * (a - 1) / (a - k) - c = (1 - e) ** 2 - return c - - -def estimate_variance_parameters( - noisy_signal, - clean_signal, - mask=None, - pol_order=1, - higher_than=None, - return_results=False, - plot_results=True, - weighted=False, - store_results="ask", -): - """Find the scale and offset of the Poissonian noise - - By comparing an SI with its denoised version (i.e. by PCA), - this plots an estimation of the variance as a function of the number of counts - and fits a polynomial to the result. - - Parameters - ---------- - noisy_SI, clean_SI : hyperspy.api.signals.Signal1D - mask : numpy.ndarray - To define the channels that will be used in the calculation. - pol_order : int - The order of the polynomial. - higher_than: float - To restrict the fit to counts over the given value. - return_results : bool - Whether to return the results or not. - plot_results : bool - Whether to plot the results or not. - store_results: {True, False, "ask"}, default "ask" - If True, it stores the result in the signal metadata - - Returns - ------- - dict - Dictionary with the result of a linear fit to estimate the offset - and scale factor - - """ - with noisy_signal.unfolded(), clean_signal.unfolded(): - # The rest of the code assumes that the first data axis - # is the navigation axis. We transpose the data if that is not the - # case. - ns = ( - noisy_signal.data.copy() - if noisy_signal.axes_manager[0].index_in_array == 0 - else noisy_signal.data.T.copy() - ) - cs = ( - clean_signal.data.copy() - if clean_signal.axes_manager[0].index_in_array == 0 - else clean_signal.data.T.copy() - ) - - if mask is not None: - _slice = [ - slice(None), - ] * len(ns.shape) - _slice[noisy_signal.axes_manager.signal_axes[0].index_in_array] = ~mask - ns = ns[_slice] - cs = cs[_slice] - - results0 = _estimate_gain( - ns, - cs, - weighted=weighted, - higher_than=higher_than, - plot_results=plot_results, - binning=0, - pol_order=pol_order, - ) - - results2 = _estimate_gain( - ns, - cs, - weighted=weighted, - higher_than=higher_than, - plot_results=False, - binning=2, - pol_order=pol_order, - ) - - c = _estimate_correlation_factor(results0["fit"][0], results2["fit"][0], 4) - - message = ( - "Gain factor: %.2f\n" % results0["fit"][0] - + "Gain offset: %.2f\n" % results0["fit"][1] - + "Correlation factor: %.2f\n" % c - ) - if store_results == "ask": - is_ok = "" - while is_ok not in ("Yes", "No"): - is_ok = input(message + "Would you like to store the results (Yes/No)?") - is_ok = is_ok == "Yes" - else: - is_ok = store_results - _logger.info(message) - if is_ok: - noisy_signal.metadata.set_item( - "Signal.Noise_properties.Variance_linear_model.gain_factor", - results0["fit"][0], - ) - noisy_signal.metadata.set_item( - "Signal.Noise_properties.Variance_linear_model.gain_offset", - results0["fit"][1], - ) - noisy_signal.metadata.set_item( - "Signal.Noise_properties.Variance_linear_model." "correlation_factor", c - ) - noisy_signal.metadata.set_item( - "Signal.Noise_properties.Variance_linear_model." - + "parameters_estimation_method", - "eXSpy", - ) - - if return_results is True: - return results0 - - -def power_law_perc_area(E1, E2, r): - a = E1 - b = E2 - return ( - 100 - * ( - (a**r * r - a**r) - * (a / (a**r * r - a**r) - (b + a) / ((b + a) ** r * r - (b + a) ** r)) - ) - / a - ) - - -def rel_std_of_fraction(a, std_a, b, std_b, corr_factor=1): - rel_a = std_a / a - rel_b = std_b / b - return np.sqrt(rel_a**2 + rel_b**2 - 2 * rel_a * rel_b * corr_factor) - - -def ratio(edge_A, edge_B): - a = edge_A.intensity.value - std_a = edge_A.intensity.std - b = edge_B.intensity.value - std_b = edge_B.intensity.std - ratio = a / b - ratio_std = ratio * rel_std_of_fraction(a, std_a, b, std_b) - _logger.info( - "Ratio %s/%s %1.3f +- %1.3f ", edge_A.name, edge_B.name, a / b, 1.96 * ratio_std - ) - return ratio, ratio_std - - -def eels_constant(s, zlp, t): - r"""Calculate the constant of proportionality (k) in the relationship - between the EELS signal and the dielectric function. - dielectric function from a single scattering distribution (SSD) using - the Kramers-Kronig relations. - - .. math:: - - S(E)=\frac{I_{0}t}{\pi a_{0}m_{0}v^{2}}\ln\left[1+\left(\frac{\beta} - {\theta_{E}}\right)^{2}\right]\Im(\frac{-1}{\epsilon(E)})= - k\Im(\frac{-1}{\epsilon(E)}) - - - Parameters - ---------- - zlp: {number, BaseSignal} - If the ZLP is the same for all spectra, the intengral of the ZLP - can be provided as a number. Otherwise, if the ZLP intensity is not - the same for all spectra, it can be provided as i) a Signal - of the same dimensions as the current signal containing the ZLP - spectra for each location ii) a Signal of signal dimension 0 - and navigation_dimension equal to the current signal containing the - integrated ZLP intensity. - t: {None, number, BaseSignal} - The sample thickness in nm. If the thickness is the same for all - spectra it can be given by a number. Otherwise, it can be provided - as a Signal with signal dimension 0 and navigation_dimension equal - to the current signal. - - Returns - ------- - k: Signal instance - - """ - - # Constants and units - me = constants.value("electron mass energy equivalent in MeV") * 1e3 # keV - - # Mapped parameters - try: - e0 = s.metadata.Acquisition_instrument.TEM.beam_energy - except BaseException: - raise AttributeError( - "Please define the beam energy." - "You can do this e.g. by using the " - "set_microscope_parameters method" - ) - try: - beta = s.metadata.Acquisition_instrument.TEM.Detector.EELS.collection_angle - except BaseException: - raise AttributeError( - "Please define the collection semi-angle." - "You can do this e.g. by using the " - "set_microscope_parameters method" - ) - - axis = s.axes_manager.signal_axes[0] - eaxis = axis.axis.copy() - if eaxis[0] == 0: - # Avoid singularity at E=0 - eaxis[0] = 1e-10 - - if isinstance(zlp, hyperspy.signal.BaseSignal): - if zlp.axes_manager.navigation_dimension == s.axes_manager.navigation_dimension: - if zlp.axes_manager.signal_dimension == 0: - i0 = zlp.data - else: - i0 = zlp.integrate1D(axis.index_in_axes_manager).data - else: - raise ValueError( - "The ZLP signal dimensions are not " - "compatible with the dimensions of the " - "low-loss signal" - ) - # The following prevents errors if the signal is a single spectrum - if len(i0) != 1: - i0 = i0.reshape(np.insert(i0.shape, axis.index_in_array, 1)) - elif isinstance(zlp, numbers.Number): - i0 = zlp - else: - raise ValueError( - "The zero-loss peak input is not valid, it must be\ - in the BaseSignal class or a Number." - ) - - if isinstance(t, hyperspy.signal.BaseSignal): - if ( - t.axes_manager.navigation_dimension == s.axes_manager.navigation_dimension - ) and (t.axes_manager.signal_dimension == 0): - t = t.data - t = t.reshape(np.insert(t.shape, axis.index_in_array, 1)) - else: - raise ValueError( - "The thickness signal dimensions are not " - "compatible with the dimensions of the " - "low-loss signal" - ) - - # Kinetic definitions - ke = e0 * (1 + e0 / 2.0 / me) / (1 + e0 / me) ** 2 - tgt = e0 * (2 * me + e0) / (me + e0) - k = s.__class__( - data=(t * i0 / (332.5 * ke)) * np.log(1 + (beta * tgt / eaxis) ** 2) - ) - k.metadata.General.title = "EELS proportionality constant K" - return k - - -def get_edges_near_energy(energy, width=10, only_major=False, order="closest"): - """Find edges near a given energy that are within the given energy - window. - - Parameters - ---------- - energy : float - Energy to search, in eV - width : float - Width of window, in eV, around energy in which to find nearby - energies, i.e. a value of 10 eV (the default) means to - search +/- 5 eV. The default is 10. - only_major : bool - Whether to show only the major edges. The default is False. - order : str - Sort the edges, if 'closest', return in the order of energy difference, - if 'ascending', return in ascending order, similarly for 'descending' - - Returns - ------- - edges : list - All edges that are within the given energy window, sorted by - energy difference to the given energy. - """ - - if width < 0: - raise ValueError("Provided width needs to be >= 0.") - if order not in ("closest", "ascending", "descending"): - raise ValueError("order needs to be 'closest', 'ascending' or " "'descending'") - - Emin, Emax = energy - width / 2, energy + width / 2 - - # find all subshells that have its energy within range - valid_edges = [] - for element, element_info in elements_db.items(): - try: - for shell, shell_info in element_info["Atomic_properties"][ - "Binding_energies" - ].items(): - if only_major: - if shell_info["relevance"] != "Major": - continue - if shell[-1] != "a" and Emin <= shell_info["onset_energy (eV)"] <= Emax: - subshell = "{}_{}".format(element, shell) - Ediff = abs(shell_info["onset_energy (eV)"] - energy) - valid_edges.append( - (subshell, shell_info["onset_energy (eV)"], Ediff) - ) - except KeyError: - continue - - # Sort according to 'order' and return only the edges - if order == "closest": - edges = [edge for edge, _, _ in sorted(valid_edges, key=lambda x: x[2])] - elif order == "ascending": - edges = [edge for edge, _, _ in sorted(valid_edges, key=lambda x: x[1])] - elif order == "descending": - edges = [ - edge for edge, _, _ in sorted(valid_edges, key=lambda x: x[1], reverse=True) - ] - - return edges - - -def get_info_from_edges(edges): - """Return the information of a sequence of edges as a list of dictionaries - - Parameters - ---------- - edges : str or iterable - the sequence of edges, each entry in the format of 'element_subshell'. - - Returns - ------- - info : list - a list of dictionaries with information corresponding to the provided - edges. - """ - - edges = np.atleast_1d(edges) - info = [] - for edge in edges: - element, subshell = edge.split("_") - d = elements_db[element]["Atomic_properties"]["Binding_energies"][subshell] - info.append(d) - - return info +warnings.warn( + "This module is deprecated, use `exspy.utils.eels` instead. " + "It will be removed in exspy 1.0.", + VisibleDeprecationWarning, +) diff --git a/exspy/misc/elements.py b/exspy/misc/elements.py index ee78f68d2..0d367a2b4 100644 --- a/exspy/misc/elements.py +++ b/exspy/misc/elements.py @@ -1,5014 +1,23 @@ -# Database -# -# The X-ray lines energies are taken from Chantler2005, -# Chantler, C.T., Olsen, K., Dragoset, R.A., Kishore, A.R., -# Kotochigova, S.A., and Zucker, D.S. -# -# The line weight, more precisely the approximate line weight for K,L M -# shells are taken from epq library -# -# The field 'threshold' and 'edge' are taken from Gatan EELS atlas -# https://eels.info/atlas (retrieved in June 2020) +# Deprecated and to be removed in exspy 1.0 -from hyperspy.misc.utils import DictionaryTreeBrowser +import warnings -elements = { - "Ru": { - "Physical_properties": {"density (g/cm^3)": 12.37}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.33039, "energy (keV)": 2.6833}, - "Kb": {"weight": 0.15, "energy (keV)": 21.6566}, - "Ka": {"weight": 1.0, "energy (keV)": 19.2793}, - "Lb2": {"weight": 0.07259, "energy (keV)": 2.8359}, - "La": {"weight": 1.0, "energy (keV)": 2.5585}, - "Ln": {"weight": 0.0126, "energy (keV)": 2.3819}, - "Ll": {"weight": 0.0411, "energy (keV)": 2.2529}, - "Lb3": {"weight": 0.0654, "energy (keV)": 2.7634}, - "Lg3": {"weight": 0.0115, "energy (keV)": 3.1809}, - "Lg1": {"weight": 0.02176, "energy (keV)": 2.9649}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 279.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 279.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "", - "onset_energy (eV)": 461.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "", - "onset_energy (eV)": 483.0, - }, - }, - }, - "General_properties": {"Z": 44, "atomic_weight": 101.07, "name": "ruthenium"}, - }, - "Re": { - "Physical_properties": {"density (g/cm^3)": 21.02}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.4408, "energy (keV)": 10.0098}, - "Kb": {"weight": 0.15, "energy (keV)": 69.3091}, - "Ka": {"weight": 1.0, "energy (keV)": 61.1411}, - "M2N4": {"weight": 0.01, "energy (keV)": 2.4079}, - "Ma": {"weight": 1.0, "energy (keV)": 1.8423}, - "Lb4": {"weight": 0.09869, "energy (keV)": 9.8451}, - "La": {"weight": 1.0, "energy (keV)": 8.6524}, - "Ln": {"weight": 0.0151, "energy (keV)": 9.027}, - "M3O4": {"energy (keV)": 2.36124, "weight": 0.001}, - "Ll": {"weight": 0.05299, "energy (keV)": 7.6036}, - "Mb": {"weight": 0.59443, "energy (keV)": 1.9083}, - "Mg": {"weight": 0.08505, "energy (keV)": 2.1071}, - "Lb2": {"weight": 0.21219, "energy (keV)": 10.2751}, - "Lb3": {"weight": 0.1222, "energy (keV)": 10.1594}, - "M3O5": {"energy (keV)": 2.36209, "weight": 0.01}, - "Lg3": {"weight": 0.0331, "energy (keV)": 12.0823}, - "Lg1": {"weight": 0.08864, "energy (keV)": 11.685}, - "Mz": {"weight": 0.01344, "energy (keV)": 1.4385}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1883.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1949.0, - }, - }, - }, - "General_properties": {"Z": 75, "atomic_weight": 186.207, "name": "rhenium"}, - }, - "Ra": { - "Physical_properties": {"density (g/cm^3)": 5.0}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.4, "energy (keV)": 15.2359}, - "Kb": {"weight": 0.15, "energy (keV)": 100.1302}, - "Ka": {"weight": 1.0, "energy (keV)": 88.4776}, - "M2N4": {"weight": 0.00674, "energy (keV)": 3.8536}, - "Lb4": {"weight": 0.06209, "energy (keV)": 14.7472}, - "La": {"weight": 1.0, "energy (keV)": 12.3395}, - "Ln": {"weight": 0.0133, "energy (keV)": 13.6623}, - "Ll": {"weight": 0.06429, "energy (keV)": 10.6224}, - "Mb": {"weight": 0.64124, "energy (keV)": 2.9495}, - "Mg": {"weight": 0.33505, "energy (keV)": 3.1891}, - "Lb2": {"weight": 0.23579, "energy (keV)": 14.8417}, - "Lg3": {"weight": 0.017, "energy (keV)": 18.3576}, - "Lg1": {"weight": 0.08, "energy (keV)": 17.8484}, - "Lb3": {"weight": 0.06, "energy (keV)": 15.4449}, - "Mz": {"weight": 0.03512, "energy (keV)": 2.2258}, - }, - "Binding_energies": { - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 15444.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3248.0, - }, - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3105.0, - }, - "N6": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 299.0, - }, - "N7": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 299.0, - }, - "O4": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 67.0, - }, - "O5": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 67.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 19237.0, - }, - "L2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 18484.0, - }, - "M1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 4822.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 4490.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3792.0, - }, - "N1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1208.0, - }, - "N2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1058.0, - }, - "N3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 879.0, - }, - "N4": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 636.0, - }, - "N5": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 603.0, - }, - "O1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 254.0, - }, - "O2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 254.0, - }, - "O3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 153.0, - }, - }, - }, - "General_properties": {"Z": 88, "atomic_weight": 226, "name": "radium"}, - }, - "Rb": { - "Physical_properties": {"density (g/cm^3)": 1.532}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.39095, "energy (keV)": 1.7521}, - "Kb": {"weight": 0.1558, "energy (keV)": 14.9612}, - "Ka": {"weight": 1.0, "energy (keV)": 13.3953}, - "La": {"weight": 1.0, "energy (keV)": 1.6941}, - "Ln": {"weight": 0.01709, "energy (keV)": 1.5418}, - "Ll": {"weight": 0.0441, "energy (keV)": 1.4823}, - "Lb3": {"weight": 0.04709, "energy (keV)": 1.8266}, - "Lg3": {"weight": 0.0058, "energy (keV)": 2.0651}, - }, - "Binding_energies": { - "M2": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 247.0, - }, - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 110.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 110.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1864.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1804.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "", - "onset_energy (eV)": 238.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 2065.0, - }, - }, - }, - "General_properties": {"Z": 37, "atomic_weight": 85.4678, "name": "rubidium"}, - }, - "Rn": { - "Physical_properties": {"density (g/cm^3)": 0.00973}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.38463, "energy (keV)": 14.3156}, - "Kb": {"weight": 0.15, "energy (keV)": 94.866}, - "Ka": {"weight": 1.0, "energy (keV)": 83.7846}, - "M2N4": {"weight": 0.00863, "energy (keV)": 3.5924}, - "Lb4": {"weight": 0.06, "energy (keV)": 13.89}, - "La": {"weight": 1.0, "energy (keV)": 11.727}, - "Ln": {"weight": 0.0134, "energy (keV)": 12.8551}, - "Ll": {"weight": 0.0625, "energy (keV)": 10.1374}, - "Mb": {"weight": 0.64124, "energy (keV)": 2.80187}, - "Mg": {"weight": 0.21845, "energy (keV)": 3.001}, - "Lb2": {"weight": 0.2325, "energy (keV)": 14.0824}, - "Lg3": {"weight": 0.017, "energy (keV)": 17.281}, - "Lg1": {"weight": 0.08, "energy (keV)": 16.7705}, - "Lb3": {"weight": 0.0607, "energy (keV)": 14.511}, - "Mz": {"weight": 0.0058, "energy (keV)": 2.1244}, - }, - "Binding_energies": { - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 14619.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3022.0, - }, - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 2892.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 18049.0, - }, - "L2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 17337.0, - }, - "M1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 4482.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 4159.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3538.0, - }, - "N1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1097.0, - }, - "N2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 929.0, - }, - "N3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 768.0, - }, - "N4": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 567.0, - }, - }, - }, - "General_properties": {"Z": 86, "atomic_weight": 222, "name": "radon"}, - }, - "Rh": { - "Physical_properties": {"density (g/cm^3)": 12.45}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.33463, "energy (keV)": 2.8344}, - "Kb": {"weight": 0.15, "energy (keV)": 22.7237}, - "Ka": {"weight": 1.0, "energy (keV)": 20.2161}, - "Lb2": {"weight": 0.08539, "energy (keV)": 3.0013}, - "Lb4": {"weight": 0.0395, "energy (keV)": 2.8909}, - "La": {"weight": 1.0, "energy (keV)": 2.6968}, - "Ln": {"weight": 0.0126, "energy (keV)": 2.519}, - "Ll": {"weight": 0.0411, "energy (keV)": 2.3767}, - "Lb3": {"weight": 0.06669, "energy (keV)": 2.9157}, - "Lg3": {"weight": 0.0121, "energy (keV)": 3.364}, - "Lg1": {"weight": 0.02623, "energy (keV)": 3.1436}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 308.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 312.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "", - "onset_energy (eV)": 496.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "", - "onset_energy (eV)": 521.0, - }, - }, - }, - "General_properties": {"Z": 45, "atomic_weight": 102.9055, "name": "rhodium"}, - }, - "H": { - "Physical_properties": {"density (g/cm^3)": 8.99e-5}, - "Atomic_properties": { - "Xray_lines": {"Ka": {"weight": 1.0, "energy (keV)": 0.0013598}}, - "Binding_energies": { - "K": { - "relevance": "Major", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 13.598, - } - }, - }, - "General_properties": {"Z": 1, "atomic_weight": 1.00794, "name": "hydrogen"}, - }, - "He": { - "Physical_properties": {"density (g/cm^3)": 1.785e-4}, - "Atomic_properties": { - "Xray_lines": {"Ka": {"weight": 1.0, "energy (keV)": 0.0024587}}, - "Binding_energies": { - "K": { - "relevance": "Major", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 24.587, - } - }, - }, - "General_properties": {"Z": 2, "atomic_weight": 4.002602, "name": "helium"}, - }, - "Be": { - "Physical_properties": {"density (g/cm^3)": 1.848}, - "Atomic_properties": { - "Xray_lines": {"Ka": {"weight": 1.0, "energy (keV)": 0.10258}}, - "Binding_energies": { - "K": { - "relevance": "Major", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 111.0, - } - }, - }, - "General_properties": {"Z": 4, "atomic_weight": 9.012182, "name": "beryllium"}, - }, - "Ba": { - "Physical_properties": {"density (g/cm^3)": 3.51}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.43048, "energy (keV)": 4.8275}, - "Kb": {"weight": 0.15, "energy (keV)": 36.3784}, - "Ka": {"weight": 1.0, "energy (keV)": 32.1936}, - "Lb2": {"weight": 0.1905, "energy (keV)": 5.1571}, - "Lb4": {"weight": 0.08859, "energy (keV)": 4.8521}, - "La": {"weight": 1.0, "energy (keV)": 4.4663}, - "Ln": {"weight": 0.0151, "energy (keV)": 4.3308}, - "Ll": {"weight": 0.04299, "energy (keV)": 3.9542}, - "Lb3": {"weight": 0.13779, "energy (keV)": 4.9266}, - "Lg3": {"weight": 0.0331, "energy (keV)": 5.8091}, - "Lg1": {"weight": 0.07487, "energy (keV)": 5.5311}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 781.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 796.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1062.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1137.0, - }, - "N4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 90.0, - }, - "N5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 90.0, - }, - }, - }, - "General_properties": {"Z": 56, "atomic_weight": 137.327, "name": "barium"}, - }, - "Bi": { - "Physical_properties": {"density (g/cm^3)": 9.78}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.4, "energy (keV)": 13.0235}, - "Kb": {"weight": 0.15, "energy (keV)": 87.349}, - "Ka": {"weight": 1.0, "energy (keV)": 77.1073}, - "M2N4": {"weight": 0.00863, "energy (keV)": 3.2327}, - "Ma": {"weight": 1.0, "energy (keV)": 2.4222}, - "Lb4": {"weight": 0.05639, "energy (keV)": 12.6912}, - "La": {"weight": 1.0, "energy (keV)": 10.839}, - "Ln": {"weight": 0.0134, "energy (keV)": 11.712}, - "M3O4": {"energy (keV)": 3.1504, "weight": 0.01}, - "Ll": {"weight": 0.06, "energy (keV)": 9.4195}, - "Mb": {"weight": 0.64124, "energy (keV)": 2.5257}, - "Mg": {"weight": 0.21845, "energy (keV)": 2.7369}, - "Lb2": {"weight": 0.2278, "energy (keV)": 12.9786}, - "Lb3": {"weight": 0.0607, "energy (keV)": 13.2106}, - "M3O5": {"energy (keV)": 3.1525, "weight": 0.01}, - "Lg3": {"weight": 0.017, "energy (keV)": 15.7086}, - "Lg1": {"weight": 0.08, "energy (keV)": 15.2475}, - "Mz": {"weight": 0.0058, "energy (keV)": 1.9007}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 2580.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 2688.0, - }, - }, - }, - "General_properties": {"Z": 83, "atomic_weight": 208.9804, "name": "bismuth"}, - }, - "Br": { - "Physical_properties": {"density (g/cm^3)": 3.12}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.39175, "energy (keV)": 1.5259}, - "Kb": {"weight": 0.15289, "energy (keV)": 13.2922}, - "Ka": {"weight": 1.0, "energy (keV)": 11.9238}, - "La": {"weight": 1.0, "energy (keV)": 1.4809}, - "Ln": {"weight": 0.0182, "energy (keV)": 1.3395}, - "Ll": {"weight": 0.0462, "energy (keV)": 1.2934}, - "Lb3": {"weight": 0.04629, "energy (keV)": 1.6005}, - }, - "Binding_energies": { - "L2": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1596.0, - }, - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1550.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 1782.0, - }, - }, - }, - "General_properties": {"Z": 35, "atomic_weight": 79.904, "name": "bromine"}, - }, - "P": { - "Physical_properties": {"density (g/cm^3)": 1.823}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.0498, "energy (keV)": 2.13916}, - "Ka": {"weight": 1.0, "energy (keV)": 2.0133}, - }, - "Binding_energies": { - "K": { - "relevance": "Major", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 2146.0, - }, - "L2,3": { - "relevance": "Major", - # overlaps - # with L2 - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 132.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 189.0, - }, - }, - }, - "General_properties": { - "Z": 15, - "atomic_weight": 30.973762, - "name": "phosphorus", - }, - }, - "Os": { - "Physical_properties": {"density (g/cm^3)": 22.59}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.43207, "energy (keV)": 10.3542}, - "Kb": {"weight": 0.15, "energy (keV)": 71.4136}, - "Ka": {"weight": 1.0, "energy (keV)": 62.9999}, - "M2N4": {"weight": 0.02901, "energy (keV)": 2.5028}, - "Ma": {"weight": 1.0, "energy (keV)": 1.9138}, - "Lb4": {"weight": 0.08369, "energy (keV)": 10.1758}, - "La": {"weight": 1.0, "energy (keV)": 8.9108}, - "Ln": {"weight": 0.01479, "energy (keV)": 9.3365}, - "M3O4": {"energy (keV)": 2.45015, "weight": 0.005}, - "Ll": {"weight": 0.05389, "energy (keV)": 7.8224}, - "Mb": {"weight": 0.59443, "energy (keV)": 1.9845}, - "Mg": {"weight": 0.08505, "energy (keV)": 2.1844}, - "Lb2": {"weight": 0.2146, "energy (keV)": 10.5981}, - "Lb3": {"weight": 0.1024, "energy (keV)": 10.5108}, - "M3O5": {"energy (keV)": 2.45117, "weight": 0.01}, - "Lg3": {"weight": 0.028, "energy (keV)": 12.4998}, - "Lg1": {"weight": 0.08768, "energy (keV)": 12.0956}, - "Mz": {"weight": 0.01344, "energy (keV)": 1.4919}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1960.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 2031.0, - }, - }, - }, - "General_properties": {"Z": 76, "atomic_weight": 190.23, "name": "osmium"}, - }, - "Ge": { - "Physical_properties": {"density (g/cm^3)": 5.323}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.16704, "energy (keV)": 1.2191}, - "Kb": {"weight": 0.1322, "energy (keV)": 10.9823}, - "Ka": {"weight": 1.0, "energy (keV)": 9.8864}, - "La": {"weight": 1.0, "energy (keV)": 1.188}, - "Ln": {"weight": 0.02, "energy (keV)": 1.0678}, - "Ll": {"weight": 0.0511, "energy (keV)": 1.0367}, - "Lb3": {"weight": 0.04429, "energy (keV)": 1.2935}, - }, - "Binding_energies": { - "L2": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1248.0, - }, - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1217.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 1414.0, - }, - }, - }, - "General_properties": {"Z": 32, "atomic_weight": 72.64, "name": "germanium"}, - }, - "Gd": { - "Physical_properties": {"density (g/cm^3)": 7.901}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.44127, "energy (keV)": 6.7131}, - "Kb": {"weight": 0.15, "energy (keV)": 48.6951}, - "Ka": {"weight": 1.0, "energy (keV)": 42.9963}, - "M2N4": {"weight": 0.014, "energy (keV)": 1.5478}, - "Ma": {"weight": 1.0, "energy (keV)": 1.17668}, - "Lb4": {"weight": 0.08789, "energy (keV)": 6.6873}, - "La": {"weight": 1.0, "energy (keV)": 6.0576}, - "Ln": {"weight": 0.01489, "energy (keV)": 6.0495}, - "Ll": {"weight": 0.04629, "energy (keV)": 5.362}, - "Mb": {"weight": 0.88, "energy (keV)": 1.20792}, - "Mg": {"weight": 0.261, "energy (keV)": 1.4035}, - "Lb2": {"weight": 0.2014, "energy (keV)": 7.1023}, - "Lb3": {"weight": 0.1255, "energy (keV)": 6.8316}, - "Lg3": {"weight": 0.032, "energy (keV)": 8.1047}, - "Lg1": {"weight": 0.08207, "energy (keV)": 7.7898}, - "Mz": {"weight": 0.06, "energy (keV)": 0.9143}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1185.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1217.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1544.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1688.0, - }, - "N4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 141.0, - }, - "N5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 141.0, - }, - }, - }, - "General_properties": {"Z": 64, "atomic_weight": 157.25, "name": "gadolinium"}, - }, - "Ga": { - "Physical_properties": {"density (g/cm^3)": 5.904}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.16704, "energy (keV)": 1.1249}, - "Kb": {"weight": 0.1287, "energy (keV)": 10.2642}, - "Ka": {"weight": 1.0, "energy (keV)": 9.2517}, - "La": {"weight": 1.0, "energy (keV)": 1.098}, - "Ln": {"weight": 0.02509, "energy (keV)": 0.9842}, - "Ll": {"weight": 0.0544, "energy (keV)": 0.9573}, - "Lb3": {"weight": 0.0461, "energy (keV)": 1.1948}, - }, - "Binding_energies": { - "L2": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1142.0, - }, - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1115.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 1298.0, - }, - }, - }, - "General_properties": {"Z": 31, "atomic_weight": 69.723, "name": "gallium"}, - }, - "Pr": { - "Physical_properties": {"density (g/cm^3)": 6.64}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.42872, "energy (keV)": 5.4893}, - "Kb": {"weight": 0.15, "energy (keV)": 40.7484}, - "Ka": {"weight": 1.0, "energy (keV)": 36.0263}, - "M2N4": {"weight": 0.055, "energy (keV)": 1.2242}, - "Ma": {"weight": 1.0, "energy (keV)": 0.8936}, - "Lb4": {"weight": 0.0864, "energy (keV)": 5.4974}, - "La": {"weight": 1.0, "energy (keV)": 5.0333}, - "Ln": {"weight": 0.01489, "energy (keV)": 4.9294}, - "Ll": {"weight": 0.044, "energy (keV)": 4.4533}, - "Mb": {"weight": 0.85, "energy (keV)": 0.9476}, - "Mg": {"weight": 0.6, "energy (keV)": 1.129}, - "Lb2": {"weight": 0.19519, "energy (keV)": 5.8511}, - "Lb3": {"weight": 0.13089, "energy (keV)": 5.5926}, - "Lg3": {"weight": 0.0321, "energy (keV)": 6.6172}, - "Lg1": {"weight": 0.07687, "energy (keV)": 6.3272}, - "Mz": {"weight": 0.068, "energy (keV)": 0.7134}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 931.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 951.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1242.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1337.0, - }, - "N4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 114.0, - }, - "N5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 114.0, - }, - }, - }, - "General_properties": { - "Z": 59, - "atomic_weight": 140.90765, - "name": "praseodymium", - }, - }, - "Pt": { - "Physical_properties": {"density (g/cm^3)": 21.09}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.4088, "energy (keV)": 11.0707}, - "Kb": {"weight": 0.15, "energy (keV)": 75.7494}, - "Ka": {"weight": 1.0, "energy (keV)": 66.8311}, - "M2N4": {"weight": 0.02901, "energy (keV)": 2.6957}, - "Ma": {"weight": 1.0, "energy (keV)": 2.0505}, - "Lb4": {"weight": 0.0662, "energy (keV)": 10.8534}, - "La": {"weight": 1.0, "energy (keV)": 9.4421}, - "Ln": {"weight": 0.01399, "energy (keV)": 9.9766}, - "M3O4": {"energy (keV)": 2.63796, "weight": 0.005}, - "Ll": {"weight": 0.0554, "energy (keV)": 8.2677}, - "Mb": {"weight": 0.59443, "energy (keV)": 2.1276}, - "Mg": {"weight": 0.08505, "energy (keV)": 2.3321}, - "Lb2": {"weight": 0.21829, "energy (keV)": 11.2504}, - "Lb3": {"weight": 0.0783, "energy (keV)": 11.2345}, - "M3O5": {"energy (keV)": 2.63927, "weight": 0.01}, - "Lg3": {"weight": 0.0218, "energy (keV)": 13.3609}, - "Lg1": {"weight": 0.08448, "energy (keV)": 12.9418}, - "Mz": {"weight": 0.01344, "energy (keV)": 1.6026}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 2122.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 2202.0, - }, - }, - }, - "General_properties": {"Z": 78, "atomic_weight": 195.084, "name": "platinum"}, - }, - "C": { - "Physical_properties": {"density (g/cm^3)": 2.26}, - "Atomic_properties": { - "Xray_lines": {"Ka": {"weight": 1.0, "energy (keV)": 0.2774}}, - "Binding_energies": { - "K": { - "relevance": "Major", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 284.0, - }, - "K1a": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 284.0, - }, - }, - }, - "General_properties": {"Z": 6, "atomic_weight": 12.0107, "name": "carbon"}, - }, - "Pb": { - "Physical_properties": {"density (g/cm^3)": 11.34}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.3836, "energy (keV)": 12.6144}, - "Kb": {"weight": 0.15, "energy (keV)": 84.9381}, - "Ka": {"weight": 1.0, "energy (keV)": 74.9693}, - "M2N4": {"weight": 0.00863, "energy (keV)": 3.119}, - "Ma": {"weight": 1.0, "energy (keV)": 2.3459}, - "Lb4": {"weight": 0.055, "energy (keV)": 12.3066}, - "La": {"weight": 1.0, "energy (keV)": 10.5512}, - "Ln": {"weight": 0.0132, "energy (keV)": 11.3493}, - "M3O4": {"energy (keV)": 3.0446, "weight": 0.01}, - "Ll": {"weight": 0.0586, "energy (keV)": 9.1845}, - "Mb": {"weight": 0.64124, "energy (keV)": 2.4427}, - "Mg": {"weight": 0.21845, "energy (keV)": 2.6535}, - "Lb2": {"weight": 0.2244, "energy (keV)": 12.6223}, - "Lb3": {"weight": 0.06049, "energy (keV)": 12.7944}, - "M3O5": {"energy (keV)": 3.0472, "weight": 0.01}, - "Lg3": {"weight": 0.017, "energy (keV)": 15.2163}, - "Lg1": {"weight": 0.08256, "energy (keV)": 14.7648}, - "Mz": {"weight": 0.0058, "energy (keV)": 1.8395}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 2484.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 2586.0, - }, - }, - }, - "General_properties": {"Z": 82, "atomic_weight": 207.2, "name": "lead"}, - }, - "Pa": { - "Physical_properties": {"density (g/cm^3)": 15.37}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.4, "energy (keV)": 16.7025}, - "Kb": {"weight": 0.15, "energy (keV)": 108.4272}, - "Ka": {"weight": 1.0, "energy (keV)": 95.8679}, - "M2N4": {"weight": 0.00674, "energy (keV)": 4.2575}, - "Ma": {"weight": 1.0, "energy (keV)": 3.0823}, - "Lb4": {"weight": 0.04, "energy (keV)": 16.1037}, - "La": {"weight": 1.0, "energy (keV)": 13.2913}, - "Ln": {"weight": 0.0126, "energy (keV)": 14.9468}, - "M3O4": {"energy (keV)": 4.07712, "weight": 0.01}, - "Ll": {"weight": 0.0682, "energy (keV)": 11.3662}, - "Mb": {"weight": 0.64124, "energy (keV)": 3.24}, - "Mg": {"weight": 0.33505, "energy (keV)": 3.4656}, - "Lb2": {"weight": 0.236, "energy (keV)": 16.0249}, - "Lb3": {"weight": 0.06, "energy (keV)": 16.9308}, - "M3O5": {"energy (keV)": 4.08456, "weight": 0.01}, - "Lg3": {"weight": 0.017, "energy (keV)": 20.0979}, - "Lg1": {"weight": 0.08, "energy (keV)": 19.5703}, - "Mz": {"weight": 0.03512, "energy (keV)": 2.4351}, - }, - "Binding_energies": { - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 16733.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3611.0, - }, - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3442.0, - }, - "N6": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 371.0, - }, - "N7": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 360.0, - }, - "O4": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 94.0, - }, - "O5": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 94.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 21105.0, - }, - "L2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 20314.0, - }, - "M1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 5367.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 5001.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 4174.0, - }, - "N1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1387.0, - }, - "N2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1224.0, - }, - "N3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1007.0, - }, - "N4": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 743.0, - }, - "N5": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 708.0, - }, - "O2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 310.0, - }, - "O1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 223.0, - }, - }, - }, - "General_properties": { - "Z": 91, - "atomic_weight": 231.03586, - "name": "protactinium", - }, - }, - "Pd": { - "Physical_properties": {"density (g/cm^3)": 12.023}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.34375, "energy (keV)": 2.9903}, - "Kb": {"weight": 0.15, "energy (keV)": 23.8188}, - "Ka": {"weight": 1.0, "energy (keV)": 21.177}, - "Lb2": {"weight": 0.10349, "energy (keV)": 3.16828}, - "Lb4": {"weight": 0.0407, "energy (keV)": 3.0452}, - "La": {"weight": 1.0, "energy (keV)": 2.8386}, - "Ln": {"weight": 0.0129, "energy (keV)": 2.6604}, - "Ll": {"weight": 0.0412, "energy (keV)": 2.5034}, - "Lb3": {"weight": 0.0682, "energy (keV)": 3.0728}, - "Lg3": {"weight": 0.0125, "energy (keV)": 3.5532}, - "Lg1": {"weight": 0.03256, "energy (keV)": 3.32485}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 335.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 340.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 531.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 559.0, - }, - }, - }, - "General_properties": {"Z": 46, "atomic_weight": 106.42, "name": "palladium"}, - }, - "Cd": { - "Physical_properties": {"density (g/cm^3)": 8.65}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.35704, "energy (keV)": 3.3165}, - "Kb": {"weight": 0.15, "energy (keV)": 26.0947}, - "Ka": {"weight": 1.0, "energy (keV)": 23.1737}, - "Lb2": {"weight": 0.1288, "energy (keV)": 3.5282}, - "Lb4": {"weight": 0.0469, "energy (keV)": 3.3673}, - "La": {"weight": 1.0, "energy (keV)": 3.1338}, - "Ln": {"weight": 0.0132, "energy (keV)": 2.9568}, - "Ll": {"weight": 0.04169, "energy (keV)": 2.7673}, - "Lb3": {"weight": 0.07719, "energy (keV)": 3.4015}, - "Lg3": {"weight": 0.0151, "energy (keV)": 3.9511}, - "Lg1": {"weight": 0.0416, "energy (keV)": 3.7177}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 404.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 411.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 616.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 651.0, - }, - }, - }, - "General_properties": {"Z": 48, "atomic_weight": 112.411, "name": "cadmium"}, - }, - "Po": { - "Physical_properties": {"density (g/cm^3)": 9.196}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.38536, "energy (keV)": 13.4463}, - "Kb": {"weight": 0.15, "energy (keV)": 89.8031}, - "Ka": {"weight": 1.0, "energy (keV)": 79.2912}, - "M2N4": {"weight": 0.00863, "energy (keV)": 3.3539}, - "Lb4": {"weight": 0.05709, "energy (keV)": 13.0852}, - "La": {"weight": 1.0, "energy (keV)": 11.1308}, - "Ln": {"weight": 0.0133, "energy (keV)": 12.0949}, - "Ll": {"weight": 0.0607, "energy (keV)": 9.6644}, - "Mb": {"weight": 0.64124, "energy (keV)": 2.62266}, - "Mg": {"weight": 0.21845, "energy (keV)": 2.8285}, - "Lb2": {"weight": 0.2289, "energy (keV)": 13.3404}, - "Lg3": {"weight": 0.017, "energy (keV)": 16.2343}, - "Lg1": {"weight": 0.08, "energy (keV)": 15.7441}, - "Lb3": {"weight": 0.0603, "energy (keV)": 13.6374}, - "Mz": {"weight": 0.00354, "energy (keV)": 1.978}, - }, - "Binding_energies": { - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 13814.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 2798.0, - }, - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 2683.0, - }, - "O4": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 31.0, - }, - "O5": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 31.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 16939.0, - }, - "L2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 16244.0, - }, - "M1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 4149.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3854.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3302.0, - }, - "N1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 995.0, - }, - "N2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 851.0, - }, - }, - "N3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 705.0, - }, - "N4": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 500.0, - }, - "N5": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 473.0, - }, - }, - "General_properties": {"Z": 84, "atomic_weight": 209, "name": "polonium"}, - }, - "Pm": { - "Physical_properties": {"density (g/cm^3)": 7.264}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.4308, "energy (keV)": 5.9613}, - "Kb": {"weight": 0.15, "energy (keV)": 43.8271}, - "Ka": {"weight": 1.0, "energy (keV)": 38.7247}, - "M2N4": {"weight": 0.028, "energy (keV)": 1.351}, - "Ma": {"weight": 1.0, "energy (keV)": 0.9894}, - "Lb4": {"weight": 0.07799, "energy (keV)": 5.9565}, - "La": {"weight": 1.0, "energy (keV)": 5.4324}, - "Ln": {"weight": 0.01479, "energy (keV)": 5.3663}, - "Ll": {"weight": 0.0448, "energy (keV)": 4.8128}, - "Mb": {"weight": 0.89, "energy (keV)": 1.0475}, - "Mg": {"weight": 0.4, "energy (keV)": 1.2365}, - "Lb2": {"weight": 0.196, "energy (keV)": 6.3389}, - "Lb3": {"weight": 0.1247, "energy (keV)": 6.071}, - "Lg3": {"weight": 0.0311, "energy (keV)": 7.1919}, - "Lg1": {"weight": 0.0784, "energy (keV)": 6.8924}, - "Mz": {"weight": 0.068, "energy (keV)": 0.7909}, - }, - "Binding_energies": { - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 6459.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1052.0, - }, - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1027.0, - }, - "N4": { - "relevance": "Minor", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 120.0, - }, - "N5": { - "relevance": "Minor", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 121.0, - }, - "O2": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 24.0, - }, - "O3": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 24.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 7428.0, - }, - "L2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 7013.0, - }, - "M1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt Onset", - "onset_energy (eV)": 1646.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "Sharp Peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1471.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "Sharp Peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1357.0, - }, - "N1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt Onset", - "onset_energy (eV)": 330.0, - }, - "N2": { - "relevance": "Minor", - "threshold": "Sharp Peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 242.0, - }, - }, - "N3": { - "relevance": "Minor", - "threshold": "Sharp Peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 242.0, - }, - }, - "General_properties": {"Z": 61, "atomic_weight": 145, "name": "promethium"}, - }, - "Ho": { - "Physical_properties": {"density (g/cm^3)": 8.795}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.45056, "energy (keV)": 7.5263}, - "Kb": {"weight": 0.15, "energy (keV)": 53.8765}, - "Ka": {"weight": 1.0, "energy (keV)": 47.5466}, - "M2N4": {"weight": 0.072, "energy (keV)": 1.7618}, - "Ma": {"weight": 1.0, "energy (keV)": 1.3477}, - "Lb4": {"weight": 0.09039, "energy (keV)": 7.4714}, - "La": {"weight": 1.0, "energy (keV)": 6.7197}, - "Ln": {"weight": 0.0151, "energy (keV)": 6.7895}, - "Ll": {"weight": 0.04759, "energy (keV)": 5.9428}, - "Mb": {"weight": 0.59443, "energy (keV)": 1.3878}, - "Mg": {"weight": 0.1418, "energy (keV)": 1.5802}, - "Lb2": {"weight": 0.23563, "energy (keV)": 7.9101}, - "Lb3": {"weight": 0.06, "energy (keV)": 7.653}, - "Lg3": {"weight": 0.0321, "energy (keV)": 9.0876}, - "Lg1": {"weight": 0.08448, "energy (keV)": 8.7568}, - "Mz": {"weight": 0.6629, "energy (keV)": 1.0448}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1351.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1391.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1741.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1923.0, - }, - "N4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 161.0, - }, - "N5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 161.0, - }, - }, - }, - "General_properties": {"Z": 67, "atomic_weight": 164.93032, "name": "holmium"}, - }, - "Hf": { - "Physical_properties": {"density (g/cm^3)": 13.31}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.46231, "energy (keV)": 9.023}, - "Kb": {"weight": 0.15, "energy (keV)": 63.2432}, - "Ka": {"weight": 1.0, "energy (keV)": 55.7901}, - "M2N4": {"weight": 0.01, "energy (keV)": 2.1416}, - "Ma": {"weight": 1.0, "energy (keV)": 1.6446}, - "Lb4": {"weight": 0.10189, "energy (keV)": 8.9053}, - "La": {"weight": 1.0, "energy (keV)": 7.899}, - "Ln": {"weight": 0.0158, "energy (keV)": 8.1385}, - "Ll": {"weight": 0.05089, "energy (keV)": 6.9598}, - "Mb": {"weight": 0.59443, "energy (keV)": 1.6993}, - "Mg": {"weight": 0.08505, "energy (keV)": 1.8939}, - "Lb2": {"weight": 0.2048, "energy (keV)": 9.347}, - "Lb3": {"weight": 0.1316, "energy (keV)": 9.1631}, - "Lg3": {"weight": 0.0347, "energy (keV)": 10.8903}, - "Lg1": {"weight": 0.08968, "energy (keV)": 10.5156}, - "Mz": {"weight": 0.06, "energy (keV)": 1.2813}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1662.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1716.0, - }, - }, - }, - "General_properties": {"Z": 72, "atomic_weight": 178.49, "name": "hafnium"}, - }, - "Hg": { - "Physical_properties": {"density (g/cm^3)": 13.534}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.39504, "energy (keV)": 11.8238}, - "Kb": {"weight": 0.15, "energy (keV)": 80.2552}, - "Ka": {"weight": 1.0, "energy (keV)": 70.8184}, - "M2N4": {"weight": 0.02901, "energy (keV)": 2.9002}, - "Ma": {"weight": 1.0, "energy (keV)": 2.1964}, - "Lb4": {"weight": 0.0566, "energy (keV)": 11.5608}, - "La": {"weight": 1.0, "energy (keV)": 9.989}, - "Ln": {"weight": 0.0136, "energy (keV)": 10.6471}, - "M3O4": {"energy (keV)": 2.8407, "weight": 0.005}, - "Ll": {"weight": 0.05709, "energy (keV)": 8.7223}, - "Mb": {"weight": 0.64124, "energy (keV)": 2.2827}, - "Mg": {"weight": 0.08505, "energy (keV)": 2.4873}, - "Lb2": {"weight": 0.2221, "energy (keV)": 11.9241}, - "Lb3": {"weight": 0.06469, "energy (keV)": 11.9922}, - "M3O5": {"energy (keV)": 2.8407, "weight": 0.01}, - "Lg3": {"weight": 0.0184, "energy (keV)": 14.2683}, - "Lg1": {"weight": 0.0832, "energy (keV)": 13.8304}, - "Mz": {"weight": 0.01344, "energy (keV)": 1.7239}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 2295.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 2385.0, - }, - }, - }, - "General_properties": {"Z": 80, "atomic_weight": 200.59, "name": "mercury"}, - }, - "Mg": { - "Physical_properties": {"density (g/cm^3)": 1.738}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.01, "energy (keV)": 1.305}, - "Ka": {"weight": 1.0, "energy (keV)": 1.2536}, - }, - "Binding_energies": { - "K": { - "relevance": "Major", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 1305.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 51.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 51.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 89.0, - }, - }, - }, - "General_properties": {"Z": 12, "atomic_weight": 24.305, "name": "magnesium"}, - }, - "K": { - "Physical_properties": {"density (g/cm^3)": 0.856}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.1039, "energy (keV)": 3.5896}, - "Ka": {"weight": 1.0, "energy (keV)": 3.3138}, - }, - "Binding_energies": { - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 294.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 296.0, - }, - "L1a": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 377.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 377.0, - }, - }, - }, - "General_properties": {"Z": 19, "atomic_weight": 39.0983, "name": "potassium"}, - }, - "Mn": { - "Physical_properties": {"density (g/cm^3)": 7.47}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.1252, "energy (keV)": 6.4904}, - "Ka": {"weight": 1.0, "energy (keV)": 5.8987}, - "La": {"weight": 1.0, "energy (keV)": 0.63316}, - "Ln": {"weight": 0.1898, "energy (keV)": 0.5675}, - "Ll": {"weight": 0.3898, "energy (keV)": 0.5564}, - "Lb3": {"weight": 0.0263, "energy (keV)": 0.7204}, - }, - "Binding_energies": { - "M2": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 51.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 651.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 640.0, - }, - "M3": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 51.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 769.0, - }, - }, - }, - "General_properties": { - "Z": 25, - "atomic_weight": 54.938045, - "name": "manganese", - }, - }, - "O": { - "Physical_properties": {"density (g/cm^3)": 0.001429}, - "Atomic_properties": { - "Xray_lines": {"Ka": {"weight": 1.0, "energy (keV)": 0.5249}}, - "Binding_energies": { - "K": { - "relevance": "Major", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 532.0, - } - }, - }, - "General_properties": {"Z": 8, "atomic_weight": 15.9994, "name": "oxygen"}, - }, - "S": { - "Physical_properties": {"density (g/cm^3)": 1.96}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.06525, "energy (keV)": 2.46427}, - "Ka": {"weight": 1.0, "energy (keV)": 2.3072}, - }, - "Binding_energies": { - "L2,3": { - "relevance": "Major", - # overlaps - # with L2 - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 165.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 229.0, - }, - }, - }, - "General_properties": {"Z": 16, "atomic_weight": 32.065, "name": "sulfur"}, - }, - "W": { - "Physical_properties": {"density (g/cm^3)": 19.25}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.3679, "energy (keV)": 9.6724}, - "Kb": {"weight": 0.15, "energy (keV)": 67.244}, - "Ka": {"weight": 1.0, "energy (keV)": 59.3182}, - "M2N4": {"weight": 0.01, "energy (keV)": 2.3161}, - "Ma": {"weight": 1.0, "energy (keV)": 1.7756}, - "Lb4": {"weight": 0.05649, "energy (keV)": 9.5249}, - "La": {"weight": 1.0, "energy (keV)": 8.3976}, - "Ln": {"weight": 0.01155, "energy (keV)": 8.7244}, - "M3O4": {"energy (keV)": 2.2749, "weight": 0.001}, - "Ll": {"weight": 0.04169, "energy (keV)": 7.3872}, - "Mb": {"weight": 0.59443, "energy (keV)": 1.8351}, - "Mg": {"weight": 0.08505, "energy (keV)": 2.0356}, - "Lb2": {"weight": 0.21385, "energy (keV)": 9.9614}, - "Lb3": {"weight": 0.07077, "energy (keV)": 9.8188}, - "M3O5": {"energy (keV)": 2.281, "weight": 0.01}, - "Lg3": {"weight": 0.0362, "energy (keV)": 11.6745}, - "Lg1": {"weight": 0.05658, "energy (keV)": 11.2852}, - "Mz": {"weight": 0.01344, "energy (keV)": 1.3839}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1809.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1872.0, - }, - }, - }, - "General_properties": {"Z": 74, "atomic_weight": 183.84, "name": "tungsten"}, - }, - "Zn": { - "Physical_properties": {"density (g/cm^3)": 7.14}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.1679, "energy (keV)": 1.0347}, - "Kb": {"weight": 0.12605, "energy (keV)": 9.572}, - "Ka": {"weight": 1.0, "energy (keV)": 8.6389}, - "La": {"weight": 1.0, "energy (keV)": 1.0116}, - "Ln": {"weight": 0.0368, "energy (keV)": 0.9069}, - "Ll": {"weight": 0.0603, "energy (keV)": 0.8838}, - "Lb3": {"weight": 0.002, "energy (keV)": 1.107}, - }, - "Binding_energies": { - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 87.0, - }, - "L2": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1043.0, - }, - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1020.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 87.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 1194.0, - }, - }, - }, - "General_properties": {"Z": 30, "atomic_weight": 65.38, "name": "zinc"}, - }, - "Eu": { - "Physical_properties": {"density (g/cm^3)": 5.244}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.43904, "energy (keV)": 6.4565}, - "Kb": {"weight": 0.15, "energy (keV)": 47.0384}, - "Ka": {"weight": 1.0, "energy (keV)": 41.5421}, - "M2N4": {"weight": 0.013, "energy (keV)": 1.4807}, - "Ma": {"weight": 1.0, "energy (keV)": 1.0991}, - "Lb4": {"weight": 0.0874, "energy (keV)": 6.4381}, - "La": {"weight": 1.0, "energy (keV)": 5.846}, - "Ln": {"weight": 0.015, "energy (keV)": 5.8171}, - "Ll": {"weight": 0.04559, "energy (keV)": 5.1769}, - "Mb": {"weight": 0.87, "energy (keV)": 1.15769}, - "Mg": {"weight": 0.26, "energy (keV)": 1.3474}, - "Lb2": {"weight": 0.1985, "energy (keV)": 6.8437}, - "Lb3": {"weight": 0.1265, "energy (keV)": 6.5714}, - "Lg3": {"weight": 0.0318, "energy (keV)": 7.7954}, - "Lg1": {"weight": 0.08064, "energy (keV)": 7.4839}, - "Mz": {"weight": 0.06, "energy (keV)": 0.8743}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1131.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1161.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1481.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1614.0, - }, - "N4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 134.0, - }, - "N5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 134.0, - }, - }, - }, - "General_properties": {"Z": 63, "atomic_weight": 151.964, "name": "europium"}, - }, - "Zr": { - "Physical_properties": {"density (g/cm^3)": 6.511}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.37912, "energy (keV)": 2.1243}, - "Kb": {"weight": 0.15, "energy (keV)": 17.6671}, - "Ka": {"weight": 1.0, "energy (keV)": 15.7753}, - "Lb2": {"weight": 0.0177, "energy (keV)": 2.2223}, - "La": {"weight": 1.0, "energy (keV)": 2.0423}, - "Ln": {"weight": 0.0153, "energy (keV)": 1.8764}, - "Ll": {"weight": 0.04209, "energy (keV)": 1.792}, - "Lb3": {"weight": 0.05219, "energy (keV)": 2.2011}, - "Lg3": {"weight": 0.0082, "energy (keV)": 2.5029}, - "Lg1": {"weight": 0.006, "energy (keV)": 2.30268}, - }, - "Binding_energies": { - "M2": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "", - "onset_energy (eV)": 344.0, - }, - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 181.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 181.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 2307.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 2222.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "", - "onset_energy (eV)": 330.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 2532.0, - }, - }, - }, - "General_properties": {"Z": 40, "atomic_weight": 91.224, "name": "zirconium"}, - }, - "Er": { - "Physical_properties": {"density (g/cm^3)": 9.066}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.45263, "energy (keV)": 7.811}, - "Kb": {"weight": 0.15, "energy (keV)": 55.6737}, - "Ka": {"weight": 1.0, "energy (keV)": 49.1276}, - "M2N4": {"weight": 0.0045, "energy (keV)": 1.8291}, - "Ma": {"weight": 1.0, "energy (keV)": 1.405}, - "Lb4": {"weight": 0.0922, "energy (keV)": 7.7455}, - "La": {"weight": 1.0, "energy (keV)": 6.9486}, - "Ln": {"weight": 0.0153, "energy (keV)": 7.0578}, - "Ll": {"weight": 0.0482, "energy (keV)": 6.1514}, - "Mb": {"weight": 0.59443, "energy (keV)": 1.449}, - "Mg": {"weight": 0.08505, "energy (keV)": 1.6442}, - "Lb2": {"weight": 0.2005, "energy (keV)": 8.1903}, - "Lb3": {"weight": 0.1258, "energy (keV)": 7.9395}, - "Lg3": {"weight": 0.0324, "energy (keV)": 9.4313}, - "Lg1": {"weight": 0.08487, "energy (keV)": 9.0876}, - "Mz": {"weight": 0.06, "energy (keV)": 1.0893}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1409.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1453.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1812.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 2006.0, - }, - "N4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 168.0, - }, - "N5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 168.0, - }, - }, - }, - "General_properties": {"Z": 68, "atomic_weight": 167.259, "name": "erbium"}, - }, - "Ni": { - "Physical_properties": {"density (g/cm^3)": 8.908}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.1677, "energy (keV)": 0.8683}, - "Kb": {"weight": 0.1277, "energy (keV)": 8.2647}, - "Ka": {"weight": 1.0, "energy (keV)": 7.4781}, - "La": {"weight": 1.0, "energy (keV)": 0.8511}, - "Ln": {"weight": 0.09693, "energy (keV)": 0.7601}, - "Ll": {"weight": 0.14133, "energy (keV)": 0.7429}, - "Lb3": {"weight": 0.00199, "energy (keV)": 0.94}, - }, - "Binding_energies": { - "M2": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 68.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 872.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 855.0, - }, - "M3": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 68.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 1008.0, - }, - }, - }, - "General_properties": {"Z": 28, "atomic_weight": 58.6934, "name": "nickel"}, - }, - "Na": { - "Physical_properties": {"density (g/cm^3)": 0.968}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.01, "energy (keV)": 1.0721}, - "Ka": {"weight": 1.0, "energy (keV)": 1.041}, - }, - "Binding_energies": { - "K": { - "relevance": "Major", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 1072.0, - }, - "L2,3": { - "relevance": "Major", - # overlaps - # with L2 - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 31.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 63.0, - }, - }, - }, - "General_properties": {"Z": 11, "atomic_weight": 22.98976928, "name": "sodium"}, - }, - "Nb": { - "Physical_properties": {"density (g/cm^3)": 8.57}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.32519, "energy (keV)": 2.2573}, - "Kb": {"weight": 0.15, "energy (keV)": 18.6226}, - "Ka": {"weight": 1.0, "energy (keV)": 16.6151}, - "Lb2": {"weight": 0.03299, "energy (keV)": 2.3705}, - "La": {"weight": 1.0, "energy (keV)": 2.1659}, - "Ln": {"weight": 0.0129, "energy (keV)": 1.9963}, - "Ll": {"weight": 0.04169, "energy (keV)": 1.9021}, - "Lb3": {"weight": 0.06429, "energy (keV)": 2.3347}, - "Lg3": {"weight": 0.0103, "energy (keV)": 2.6638}, - "Lg1": {"weight": 0.00975, "energy (keV)": 2.4615}, - }, - "Binding_energies": { - "M2": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "", - "onset_energy (eV)": 378.0, - }, - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 202.3, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 205.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 2465.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 2371.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "", - "onset_energy (eV)": 363.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 2698.0, - }, - }, - }, - "General_properties": {"Z": 41, "atomic_weight": 92.90638, "name": "niobium"}, - }, - "Nd": { - "Physical_properties": {"density (g/cm^3)": 7.01}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.42672, "energy (keV)": 5.722}, - "Kb": {"weight": 0.15, "energy (keV)": 42.2715}, - "Ka": {"weight": 1.0, "energy (keV)": 37.361}, - "M2N4": {"weight": 0.052, "energy (keV)": 1.2853}, - "Ma": {"weight": 1.0, "energy (keV)": 0.9402}, - "Lb4": {"weight": 0.0858, "energy (keV)": 5.7232}, - "La": {"weight": 1.0, "energy (keV)": 5.2302}, - "Ln": {"weight": 0.01469, "energy (keV)": 5.1462}, - "Ll": {"weight": 0.04429, "energy (keV)": 4.6326}, - "Mb": {"weight": 0.99, "energy (keV)": 0.9965}, - "Mg": {"weight": 0.625, "energy (keV)": 1.1799}, - "Lb2": {"weight": 0.1957, "energy (keV)": 6.0904}, - "Lb3": {"weight": 0.12869, "energy (keV)": 5.8286}, - "Lg3": {"weight": 0.0318, "energy (keV)": 6.9014}, - "Lg1": {"weight": 0.07712, "energy (keV)": 6.604}, - "Mz": {"weight": 0.069, "energy (keV)": 0.7531}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 978.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1000.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1297.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1403.0, - }, - "N4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 118.0, - }, - "N5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 118.0, - }, - }, - }, - "General_properties": {"Z": 60, "atomic_weight": 144.242, "name": "neodymium"}, - }, - "Ne": { - "Physical_properties": {"density (g/cm^3)": 0.0009}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.01, "energy (keV)": 0.8669}, - "Ka": {"weight": 1.0, "energy (keV)": 0.8486}, - }, - "Binding_energies": { - "K": { - "relevance": "Major", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 867.0, - } - }, - }, - "General_properties": {"Z": 10, "atomic_weight": 20.1791, "name": "neon"}, - }, - "Fr": { - "Physical_properties": {"density (g/cm^3)": "NaN"}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.38327, "energy (keV)": 14.7703}, - "Kb": {"weight": 0.15, "energy (keV)": 97.474}, - "Ka": {"weight": 1.0, "energy (keV)": 86.1058}, - "M2N4": {"weight": 0.00674, "energy (keV)": 3.7237}, - "Lb4": {"weight": 0.0603, "energy (keV)": 14.312}, - "La": {"weight": 1.0, "energy (keV)": 12.0315}, - "Ln": {"weight": 0.0134, "energy (keV)": 13.2545}, - "Ll": {"weight": 0.06339, "energy (keV)": 10.3792}, - "Mb": {"weight": 0.64124, "energy (keV)": 2.88971}, - "Mg": {"weight": 0.21845, "energy (keV)": 3.086}, - "Lb2": {"weight": 0.2337, "energy (keV)": 14.4542}, - "Lg3": {"weight": 0.017, "energy (keV)": 17.829}, - "Lg1": {"weight": 0.08, "energy (keV)": 17.3032}, - "Lb3": {"weight": 0.05969, "energy (keV)": 14.976}, - "Mz": {"weight": 0.0058, "energy (keV)": 2.1897}, - }, - "Binding_energies": { - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 15031.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3136.0, - }, - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3000.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 18639.0, - }, - "L2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 17907.0, - }, - "M1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 4652.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 4327.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3663.0, - }, - "N1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1153.0, - }, - "N2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 980.0, - }, - "N3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 810.0, - }, - "N4": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 603.0, - }, - "N5": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 577.0, - }, - }, - }, - "General_properties": {"Z": 87, "atomic_weight": 223, "name": "francium"}, - }, - "Fe": { - "Physical_properties": {"density (g/cm^3)": 7.874}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.1272, "energy (keV)": 7.058}, - "Ka": {"weight": 1.0, "energy (keV)": 6.4039}, - "La": {"weight": 1.0, "energy (keV)": 0.7045}, - "Ln": {"weight": 0.12525, "energy (keV)": 0.6282}, - "Ll": {"weight": 0.3086, "energy (keV)": 0.6152}, - "Lb3": {"weight": 0.02448, "energy (keV)": 0.7921}, - }, - "Binding_energies": { - "K": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 7113.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 846.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 721.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 708.0, - }, - "M3": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 57.0, - }, - "M2": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 57.0, - }, - }, - }, - "General_properties": {"Z": 26, "atomic_weight": 55.845, "name": "iron"}, - }, - "B": { - "Physical_properties": {"density (g/cm^3)": 2.46}, - "Atomic_properties": { - "Xray_lines": {"Ka": {"weight": 1.0, "energy (keV)": 0.1833}}, - "Binding_energies": { - "K": { - "relevance": "Major", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 188.0, - } - }, - }, - "General_properties": {"Z": 5, "atomic_weight": 10.811, "name": "boron"}, - }, - "F": { - "Physical_properties": {"density (g/cm^3)": 0.001696}, - "Atomic_properties": { - "Xray_lines": {"Ka": {"weight": 1.0, "energy (keV)": 0.6768}}, - "Binding_energies": { - "K": { - "relevance": "Major", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 685.0, - } - }, - }, - "General_properties": {"Z": 9, "atomic_weight": 18.9984032, "name": "fluorine"}, - }, - "Sr": { - "Physical_properties": {"density (g/cm^3)": 2.63}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.37975, "energy (keV)": 1.8718}, - "Kb": {"weight": 0.15, "energy (keV)": 15.8355}, - "Ka": {"weight": 1.0, "energy (keV)": 14.165}, - "La": {"weight": 1.0, "energy (keV)": 1.8065}, - "Ln": {"weight": 0.01669, "energy (keV)": 1.6493}, - "Ll": {"weight": 0.04309, "energy (keV)": 1.5821}, - "Lb3": {"weight": 0.047, "energy (keV)": 1.9472}, - "Lg3": {"weight": 0.0065, "energy (keV)": 2.1964}, - }, - "Binding_energies": { - "M2": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "", - "onset_energy (eV)": 280.0, - }, - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 134.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 134.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 2007.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1940.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "", - "onset_energy (eV)": 269.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 2216.0, - }, - }, - }, - "General_properties": {"Z": 38, "atomic_weight": 87.62, "name": "strontium"}, - }, - "N": { - "Physical_properties": {"density (g/cm^3)": 0.001251}, - "Atomic_properties": { - "Xray_lines": {"Ka": {"weight": 1.0, "energy (keV)": 0.3924}}, - "Binding_energies": { - "K": { - "relevance": "Major", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 401.0, - } - }, - }, - "General_properties": {"Z": 7, "atomic_weight": 14.0067, "name": "nitrogen"}, - }, - "Kr": { - "Physical_properties": {"density (g/cm^3)": 0.00375}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.39031, "energy (keV)": 1.6383}, - "Kb": {"weight": 0.1538, "energy (keV)": 14.1118}, - "Ka": {"weight": 1.0, "energy (keV)": 12.6507}, - "La": {"weight": 1.0, "energy (keV)": 1.586}, - "Ln": {"weight": 0.0175, "energy (keV)": 1.43887}, - "Ll": {"weight": 0.04509, "energy (keV)": 1.38657}, - "Lb3": {"weight": 0.0465, "energy (keV)": 1.7072}, - "Lg3": {"weight": 0.005, "energy (keV)": 1.921}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 89.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 89.0, - }, - "L2": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1727.0, - }, - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1675.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 1921.0, - }, - }, - }, - "General_properties": {"Z": 36, "atomic_weight": 83.798, "name": "krypton"}, - }, - "Si": { - "Physical_properties": {"density (g/cm^3)": 2.33}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.02779, "energy (keV)": 1.8389}, - "Ka": {"weight": 1.0, "energy (keV)": 1.7397}, - }, - "Binding_energies": { - "K": { - "relevance": "Major", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 1839.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 99.8, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 99.2, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 149.7, - }, - }, - }, - "General_properties": {"Z": 14, "atomic_weight": 28.0855, "name": "silicon"}, - }, - "Sn": { - "Physical_properties": {"density (g/cm^3)": 7.31}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.43456, "energy (keV)": 3.6628}, - "Kb": {"weight": 0.15, "energy (keV)": 28.4857}, - "Ka": {"weight": 1.0, "energy (keV)": 25.2713}, - "Lb2": {"weight": 0.14689, "energy (keV)": 3.9049}, - "Lb4": {"weight": 0.0948, "energy (keV)": 3.7083}, - "La": {"weight": 1.0, "energy (keV)": 3.444}, - "Ln": {"weight": 0.0158, "energy (keV)": 3.2723}, - "Ll": {"weight": 0.0416, "energy (keV)": 3.045}, - "Lb3": {"weight": 0.1547, "energy (keV)": 3.7503}, - "Lg3": {"weight": 0.0321, "energy (keV)": 4.3761}, - "Lg1": {"weight": 0.058, "energy (keV)": 4.1322}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 485.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 494.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 714.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 756.0, - }, - }, - }, - "General_properties": {"Z": 50, "atomic_weight": 118.71, "name": "tin"}, - }, - "Sm": { - "Physical_properties": {"density (g/cm^3)": 7.353}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.43512, "energy (keV)": 6.2058}, - "Kb": {"weight": 0.15, "energy (keV)": 45.4144}, - "Ka": {"weight": 1.0, "energy (keV)": 40.118}, - "M2N4": {"weight": 0.012, "energy (keV)": 1.4117}, - "Ma": {"weight": 1.0, "energy (keV)": 1.0428}, - "Lb4": {"weight": 0.08689, "energy (keV)": 6.1961}, - "La": {"weight": 1.0, "energy (keV)": 5.636}, - "Ln": {"weight": 0.01489, "energy (keV)": 5.589}, - "Ll": {"weight": 0.04519, "energy (keV)": 4.9934}, - "Mb": {"weight": 0.88, "energy (keV)": 1.1005}, - "Mg": {"weight": 0.26, "energy (keV)": 1.2908}, - "Lb2": {"weight": 0.19769, "energy (keV)": 6.5872}, - "Lb3": {"weight": 0.12669, "energy (keV)": 6.317}, - "Lg3": {"weight": 0.0318, "energy (keV)": 7.4894}, - "Lg1": {"weight": 0.07951, "energy (keV)": 7.1828}, - "Mz": {"weight": 0.06, "energy (keV)": 0.8328}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1080.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1106.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1420.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1541.0, - }, - "N4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 130.0, - }, - "N5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 130.0, - }, - }, - }, - "General_properties": {"Z": 62, "atomic_weight": 150.36, "name": "samarium"}, - }, - "V": { - "Physical_properties": {"density (g/cm^3)": 6.11}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.1225, "energy (keV)": 5.4273}, - "Ka": {"weight": 1.0, "energy (keV)": 4.9522}, - "La": {"weight": 1.0, "energy (keV)": 0.5129}, - "Ln": {"weight": 0.2805, "energy (keV)": 0.454}, - "Ll": {"weight": 0.5745, "energy (keV)": 0.4464}, - "Lb3": {"weight": 0.0154, "energy (keV)": 0.5904}, - }, - "Binding_energies": { - "M2": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 38.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 521.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 513.0, - }, - "M3": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 38.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 628.0, - }, - }, - }, - "General_properties": {"Z": 23, "atomic_weight": 50.9415, "name": "vanadium"}, - }, - "Sc": { - "Physical_properties": {"density (g/cm^3)": 2.985}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.12839, "energy (keV)": 4.4605}, - "Ka": {"weight": 1.0, "energy (keV)": 4.0906}, - "La": {"weight": 0.308, "energy (keV)": 0.4022}, - "Ln": {"weight": 0.488, "energy (keV)": 0.3529}, - "Ll": {"weight": 1.0, "energy (keV)": 0.3484}, - "Lb3": {"weight": 0.037, "energy (keV)": 0.4681}, - }, - "Binding_energies": { - "M2": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 32.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 407.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 402.0, - }, - "M3": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 32.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 500.0, - }, - }, - }, - "General_properties": {"Z": 21, "atomic_weight": 44.955912, "name": "scandium"}, - }, - "Sb": { - "Physical_properties": {"density (g/cm^3)": 6.697}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.4276, "energy (keV)": 3.8435}, - "Kb": {"weight": 0.15, "energy (keV)": 29.7256}, - "Ka": {"weight": 1.0, "energy (keV)": 26.359}, - "Lb2": {"weight": 0.1556, "energy (keV)": 4.1008}, - "Lb4": {"weight": 0.0932, "energy (keV)": 3.8864}, - "La": {"weight": 1.0, "energy (keV)": 3.6047}, - "Ln": {"weight": 0.0155, "energy (keV)": 3.4367}, - "Ll": {"weight": 0.0419, "energy (keV)": 3.1885}, - "Lb3": {"weight": 0.15099, "energy (keV)": 3.9327}, - "Lg3": {"weight": 0.0321, "energy (keV)": 4.5999}, - "Lg1": {"weight": 0.06064, "energy (keV)": 4.349}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 528.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 537.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 766.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 812.0, - }, - }, - }, - "General_properties": {"Z": 51, "atomic_weight": 121.76, "name": "antimony"}, - }, - "Se": { - "Physical_properties": {"density (g/cm^3)": 4.819}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.38848, "energy (keV)": 1.4195}, - "Kb": {"weight": 0.1505, "energy (keV)": 12.4959}, - "Ka": {"weight": 1.0, "energy (keV)": 11.222}, - "La": {"weight": 1.0, "energy (keV)": 1.3791}, - "Ln": {"weight": 0.0187, "energy (keV)": 1.2447}, - "Ll": {"weight": 0.04759, "energy (keV)": 1.2043}, - "Lb3": {"weight": 0.047, "energy (keV)": 1.492}, - }, - "Binding_energies": { - "L2": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1476.0, - }, - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1436.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 1654.0, - }, - }, - }, - "General_properties": {"Z": 34, "atomic_weight": 78.96, "name": "selenium"}, - }, - "Co": { - "Physical_properties": {"density (g/cm^3)": 8.9}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.1277, "energy (keV)": 7.6494}, - "Ka": {"weight": 1.0, "energy (keV)": 6.9303}, - "La": {"weight": 1.0, "energy (keV)": 0.7757}, - "Ln": {"weight": 0.0833, "energy (keV)": 0.6929}, - "Ll": {"weight": 0.2157, "energy (keV)": 0.6779}, - "Lb3": {"weight": 0.0238, "energy (keV)": 0.8661}, - }, - "Binding_energies": { - "M2": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 59.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 794.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 779.0, - }, - "M3": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 59.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 926.0, - }, - }, - }, - "General_properties": {"Z": 27, "atomic_weight": 58.933195, "name": "cobalt"}, - }, - "Cl": { - "Physical_properties": {"density (g/cm^3)": 0.003214}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.0838, "energy (keV)": 2.8156}, - "Ka": {"weight": 1.0, "energy (keV)": 2.6224}, - }, - "Binding_energies": { - "L2,3": { - "relevance": "Major", - # overlaps - # with L2 - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 200.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 270.0, - }, - }, - }, - "General_properties": {"Z": 17, "atomic_weight": 35.453, "name": "chlorine"}, - }, - "Ca": { - "Physical_properties": {"density (g/cm^3)": 1.55}, - "Atomic_properties": { - "Xray_lines": { - "Ln": {"weight": 0.23, "energy (keV)": 0.3063}, - "Kb": {"weight": 0.112, "energy (keV)": 4.0127}, - "Ka": {"weight": 1.0, "energy (keV)": 3.6917}, - "Ll": {"weight": 1.0, "energy (keV)": 0.3027}, - "La": {"weight": 0.0, "energy (keV)": 0.3464}, - }, - "Binding_energies": { - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 350.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 346.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 438.0, - }, - }, - }, - "General_properties": {"Z": 20, "atomic_weight": 40.078, "name": "calcium"}, - }, - "Ce": { - "Physical_properties": {"density (g/cm^3)": 6.689}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.43, "energy (keV)": 5.2629}, - "Kb": {"weight": 0.15, "energy (keV)": 39.2576}, - "Ka": {"weight": 1.0, "energy (keV)": 34.7196}, - "M2N4": {"weight": 0.08, "energy (keV)": 1.1628}, - "Ma": {"weight": 1.0, "energy (keV)": 0.8455}, - "Lb4": {"weight": 0.08699, "energy (keV)": 5.276}, - "La": {"weight": 1.0, "energy (keV)": 4.8401}, - "Ln": {"weight": 0.015, "energy (keV)": 4.7296}, - "Ll": {"weight": 0.0436, "energy (keV)": 4.2888}, - "Mb": {"weight": 0.91, "energy (keV)": 0.8154}, - "Mg": {"weight": 0.5, "energy (keV)": 1.0754}, - "Lb2": {"weight": 0.19399, "energy (keV)": 5.6134}, - "Lb3": {"weight": 0.1325, "energy (keV)": 5.3634}, - "Lg3": {"weight": 0.0324, "energy (keV)": 6.3416}, - "Lg1": {"weight": 0.0764, "energy (keV)": 6.0542}, - "Mz": {"weight": 0.07, "energy (keV)": 0.6761}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 883.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 901.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1185.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1273.0, - }, - "N4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 110.0, - }, - "N5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 110.0, - }, - }, - }, - "General_properties": {"Z": 58, "atomic_weight": 140.116, "name": "cerium"}, - }, - "Xe": { - "Physical_properties": {"density (g/cm^3)": 0.0059}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.42248, "energy (keV)": 4.4183}, - "Kb": {"weight": 0.15, "energy (keV)": 33.6244}, - "Ka": {"weight": 1.0, "energy (keV)": 29.7792}, - "Lb2": {"weight": 0.17699, "energy (keV)": 4.7182}, - "Lb4": {"weight": 0.08929, "energy (keV)": 4.4538}, - "La": {"weight": 1.0, "energy (keV)": 4.1099}, - "Ln": {"weight": 0.015, "energy (keV)": 3.9591}, - "Ll": {"weight": 0.0424, "energy (keV)": 3.6376}, - "Lb3": {"weight": 0.14119, "energy (keV)": 4.5158}, - "Lg3": {"weight": 0.0323, "energy (keV)": 5.3061}, - "Lg1": {"weight": 0.06848, "energy (keV)": 5.0397}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 672.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 685.0, - }, - }, - }, - "General_properties": {"Z": 54, "atomic_weight": 131.293, "name": "xenon"}, - }, - "Tm": { - "Physical_properties": {"density (g/cm^3)": 9.321}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.45831, "energy (keV)": 8.1023}, - "Kb": {"weight": 0.15, "energy (keV)": 57.5051}, - "Ka": {"weight": 1.0, "energy (keV)": 50.7416}, - "M2N4": {"weight": 0.01, "energy (keV)": 1.9102}, - "Ma": {"weight": 1.0, "energy (keV)": 1.4624}, - "Lb4": {"weight": 0.09449, "energy (keV)": 8.0259}, - "La": {"weight": 1.0, "energy (keV)": 7.1803}, - "Ln": {"weight": 0.0156, "energy (keV)": 7.3101}, - "Ll": {"weight": 0.04889, "energy (keV)": 6.3412}, - "Mb": {"weight": 0.59443, "energy (keV)": 1.5093}, - "Mg": {"weight": 0.08505, "energy (keV)": 1.7049}, - "Lb2": {"weight": 0.20059, "energy (keV)": 8.4684}, - "Lb3": {"weight": 0.1273, "energy (keV)": 8.2312}, - "Lg3": {"weight": 0.0329, "energy (keV)": 9.7791}, - "Lg1": {"weight": 0.08615, "energy (keV)": 9.4373}, - "Mz": {"weight": 0.06, "energy (keV)": 1.1311}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1468.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1515.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1884.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 2090.0, - }, - "N4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 180.0, - }, - "N5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 180.0, - }, - }, - }, - "General_properties": {"Z": 69, "atomic_weight": 168.93421, "name": "thulium"}, - }, - "Cs": { - "Physical_properties": {"density (g/cm^3)": 1.879}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.42983, "energy (keV)": 4.6199}, - "Kb": {"weight": 0.15, "energy (keV)": 34.987}, - "Ka": {"weight": 1.0, "energy (keV)": 30.9727}, - "Lb2": {"weight": 0.19589, "energy (keV)": 4.9354}, - "Lb4": {"weight": 0.08869, "energy (keV)": 4.6493}, - "La": {"weight": 1.0, "energy (keV)": 4.2864}, - "Ln": {"weight": 0.0152, "energy (keV)": 4.1423}, - "Ll": {"weight": 0.04269, "energy (keV)": 3.7948}, - "Lb3": {"weight": 0.1399, "energy (keV)": 4.7167}, - "Lg3": {"weight": 0.0325, "energy (keV)": 5.5527}, - "Lg1": {"weight": 0.07215, "energy (keV)": 5.2806}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 726.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 740.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 998.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1065.0, - }, - "N4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 78.0, - }, - "N5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 78.0, - }, - }, - }, - "General_properties": {"Z": 55, "atomic_weight": 132.9054519, "name": "cesium"}, - }, - "Cr": { - "Physical_properties": {"density (g/cm^3)": 7.14}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.134, "energy (keV)": 5.9467}, - "Ka": {"weight": 1.0, "energy (keV)": 5.4147}, - "La": {"weight": 1.0, "energy (keV)": 0.5722}, - "Ln": {"weight": 0.2353, "energy (keV)": 0.5096}, - "Ll": {"weight": 0.6903, "energy (keV)": 0.5004}, - "Lb3": {"weight": 0.0309, "energy (keV)": 0.6521}, - }, - "Binding_energies": { - "M2": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 43.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 584.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 575.0, - }, - "M3": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 43.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 695.0, - }, - }, - }, - "General_properties": {"Z": 24, "atomic_weight": 51.9961, "name": "chromium"}, - }, - "Cu": { - "Physical_properties": {"density (g/cm^3)": 8.92}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.03197, "energy (keV)": 0.9494}, - "Kb": {"weight": 0.13157, "energy (keV)": 8.9053}, - "Ka": {"weight": 1.0, "energy (keV)": 8.0478}, - "La": {"weight": 1.0, "energy (keV)": 0.9295}, - "Ln": {"weight": 0.01984, "energy (keV)": 0.8312}, - "Ll": {"weight": 0.08401, "energy (keV)": 0.8113}, - "Lb3": {"weight": 0.00114, "energy (keV)": 1.0225}, - }, - "Binding_energies": { - "M2": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 74.0, - }, - "L2": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 951.0, - }, - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 931.0, - }, - "M3": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 74.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 1096.0, - }, - }, - }, - "General_properties": {"Z": 29, "atomic_weight": 63.546, "name": "copper"}, - }, - "La": { - "Physical_properties": {"density (g/cm^3)": 6.146}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.42631, "energy (keV)": 5.0421}, - "Kb": {"weight": 0.15, "energy (keV)": 37.8012}, - "Ka": {"weight": 1.0, "energy (keV)": 33.4419}, - "M2N4": {"weight": 0.022, "energy (keV)": 1.1055}, - "Ma": {"weight": 1.0, "energy (keV)": 0.8173}, - "Lb4": {"weight": 0.0872, "energy (keV)": 5.0619}, - "La": {"weight": 1.0, "energy (keV)": 4.651}, - "Ln": {"weight": 0.015, "energy (keV)": 4.5293}, - "Ll": {"weight": 0.0432, "energy (keV)": 4.1214}, - "Mb": {"weight": 0.9, "energy (keV)": 0.8162}, - "Mg": {"weight": 0.4, "energy (keV)": 1.0245}, - "Lb2": {"weight": 0.19579, "energy (keV)": 5.3838}, - "Lb3": {"weight": 0.1341, "energy (keV)": 5.1429}, - "Lg3": {"weight": 0.0329, "energy (keV)": 6.0749}, - "Lg1": {"weight": 0.07656, "energy (keV)": 5.7917}, - "Mz": {"weight": 0.06, "energy (keV)": 0.6403}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 832.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 849.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1123.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1204.0, - }, - "N4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 99.0, - }, - "N5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 99.0, - }, - }, - }, - "General_properties": { - "Z": 57, - "atomic_weight": 138.90547, - "name": "lanthanum", - }, - }, - "Li": { - "Physical_properties": {"density (g/cm^3)": 0.534}, - "Atomic_properties": { - "Binding_energies": { - "K": { - "relevance": "Major", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 55.0, - } - } - }, - "General_properties": {"atomic_weight": 6.939, "Z": 3, "name": "lithium"}, - }, - "Tl": { - "Physical_properties": {"density (g/cm^3)": 11.85}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.39112, "energy (keV)": 12.2128}, - "Kb": {"weight": 0.15, "energy (keV)": 82.5738}, - "Ka": {"weight": 1.0, "energy (keV)": 72.8729}, - "M2N4": {"weight": 0.00863, "energy (keV)": 3.0091}, - "Ma": {"weight": 1.0, "energy (keV)": 2.2708}, - "Lb4": {"weight": 0.05419, "energy (keV)": 11.931}, - "La": {"weight": 1.0, "energy (keV)": 10.2682}, - "Ln": {"weight": 0.0134, "energy (keV)": 10.9938}, - "M3O4": {"energy (keV)": 2.9413, "weight": 0.005}, - "Ll": {"weight": 0.0578, "energy (keV)": 8.9534}, - "Mb": {"weight": 0.64124, "energy (keV)": 2.3623}, - "Mg": {"weight": 0.21845, "energy (keV)": 2.5704}, - "Lb2": {"weight": 0.22289, "energy (keV)": 12.2713}, - "Lb3": {"weight": 0.0607, "energy (keV)": 12.3901}, - "M3O5": {"energy (keV)": 2.9435, "weight": 0.01}, - "Lg3": {"weight": 0.0175, "energy (keV)": 14.7377}, - "Lg1": {"weight": 0.08304, "energy (keV)": 14.2913}, - "Mz": {"weight": 0.0058, "energy (keV)": 1.7803}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 2389.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 2485.0, - }, - }, - }, - "General_properties": {"Z": 81, "atomic_weight": 204.3833, "name": "thallium"}, - }, - "Lu": { - "Physical_properties": {"density (g/cm^3)": 9.841}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.46975, "energy (keV)": 8.7092}, - "Kb": {"weight": 0.15, "energy (keV)": 61.2902}, - "Ka": {"weight": 1.0, "energy (keV)": 54.0697}, - "M2N4": {"weight": 0.01, "energy (keV)": 2.0587}, - "Ma": {"weight": 1.0, "energy (keV)": 1.5816}, - "Lb4": {"weight": 0.0996, "energy (keV)": 8.6069}, - "La": {"weight": 1.0, "energy (keV)": 7.6556}, - "Ln": {"weight": 0.016, "energy (keV)": 7.8574}, - "Ll": {"weight": 0.05009, "energy (keV)": 6.7529}, - "Mb": {"weight": 0.59443, "energy (keV)": 1.6325}, - "Mg": {"weight": 0.08505, "energy (keV)": 1.8286}, - "Lb2": {"weight": 0.20359, "energy (keV)": 9.0491}, - "Lb3": {"weight": 0.13099, "energy (keV)": 8.8468}, - "Lg3": {"weight": 0.0342, "energy (keV)": 10.5111}, - "Lg1": {"weight": 0.08968, "energy (keV)": 10.1438}, - "Mz": {"weight": 0.06, "energy (keV)": 1.2292}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1588.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1639.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 2024.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 2263.0, - }, - "N4": { - "relevance": "Major", - "threshold": "", - "edge": "Very delayed", - "onset_energy (eV)": 195.0, - }, - "N5": { - "relevance": "Major", - "threshold": "", - "edge": "Very delayed", - "onset_energy (eV)": 195.0, - }, - }, - }, - "General_properties": {"Z": 71, "atomic_weight": 174.9668, "name": "lutetium"}, - }, - "Th": { - "Physical_properties": {"density (g/cm^3)": 11.724}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.4, "energy (keV)": 16.2024}, - "Kb": {"weight": 0.15, "energy (keV)": 105.6049}, - "Ka": {"weight": 1.0, "energy (keV)": 93.3507}, - "M2N4": {"weight": 0.00674, "energy (keV)": 4.1163}, - "Ma": {"weight": 1.0, "energy (keV)": 2.9968}, - "Lb4": {"weight": 0.05, "energy (keV)": 15.6417}, - "La": {"weight": 1.0, "energy (keV)": 12.9683}, - "Ln": {"weight": 0.0134, "energy (keV)": 14.5109}, - "M3O4": {"energy (keV)": 3.9518, "weight": 0.01}, - "Ll": {"weight": 0.06709, "energy (keV)": 11.118}, - "Mb": {"weight": 0.64124, "energy (keV)": 3.1464}, - "Mg": {"weight": 0.33505, "energy (keV)": 3.3697}, - "Lb2": {"weight": 0.236, "energy (keV)": 15.6239}, - "Lb3": {"weight": 0.06, "energy (keV)": 16.426}, - "M3O5": {"energy (keV)": 3.9582, "weight": 0.01}, - "Lg3": {"weight": 0.017, "energy (keV)": 19.5048}, - "Lg1": {"weight": 0.08, "energy (keV)": 18.9791}, - "Mz": {"weight": 0.03512, "energy (keV)": 2.3647}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 3332.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 3491.0, - }, - "O5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 83.0, - }, - "O4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 83.0, - }, - }, - }, - "General_properties": {"Z": 90, "atomic_weight": 232.03806, "name": "thorium"}, - }, - "Ti": { - "Physical_properties": {"density (g/cm^3)": 4.507}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.11673, "energy (keV)": 4.9318}, - "Ka": {"weight": 1.0, "energy (keV)": 4.5109}, - "La": {"weight": 0.694, "energy (keV)": 0.4555}, - "Ln": {"weight": 0.491, "energy (keV)": 0.4012}, - "Ll": {"weight": 1.0, "energy (keV)": 0.3952}, - "Lb3": {"weight": 0.166, "energy (keV)": 0.5291}, - }, - "Binding_energies": { - "M2": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 35.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 462.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 456.0, - }, - "M3": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 35.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 564.0, - }, - }, - }, - "General_properties": {"Z": 22, "atomic_weight": 47.867, "name": "titanium"}, - }, - "Te": { - "Physical_properties": {"density (g/cm^3)": 6.24}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.43183, "energy (keV)": 4.0295}, - "Kb": {"weight": 0.15, "energy (keV)": 30.9951}, - "Ka": {"weight": 1.0, "energy (keV)": 27.4724}, - "Lb2": {"weight": 0.16269, "energy (keV)": 4.3016}, - "Lb4": {"weight": 0.0906, "energy (keV)": 4.0695}, - "La": {"weight": 1.0, "energy (keV)": 3.7693}, - "Ln": {"weight": 0.0154, "energy (keV)": 3.606}, - "Ll": {"weight": 0.0419, "energy (keV)": 3.3354}, - "Lb3": {"weight": 0.1458, "energy (keV)": 4.1205}, - "Lg3": {"weight": 0.0317, "energy (keV)": 4.829}, - "Lg1": {"weight": 0.06375, "energy (keV)": 4.5722}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 572.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 582.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 819.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 870.0, - }, - }, - }, - "General_properties": {"Z": 52, "atomic_weight": 127.6, "name": "tellurium"}, - }, - "Tb": { - "Physical_properties": {"density (g/cm^3)": 8.219}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.44104, "energy (keV)": 6.9766}, - "Kb": {"weight": 0.15, "energy (keV)": 50.3844}, - "Ka": {"weight": 1.0, "energy (keV)": 44.4817}, - "M2N4": {"weight": 0.014, "energy (keV)": 1.6207}, - "Ma": {"weight": 1.0, "energy (keV)": 1.2326}, - "Lb4": {"weight": 0.0874, "energy (keV)": 6.9403}, - "La": {"weight": 1.0, "energy (keV)": 6.2728}, - "Ln": {"weight": 0.01479, "energy (keV)": 6.2841}, - "Ll": {"weight": 0.0465, "energy (keV)": 5.5465}, - "Mb": {"weight": 0.78, "energy (keV)": 1.2656}, - "Mg": {"weight": 0.2615, "energy (keV)": 1.4643}, - "Lb2": {"weight": 0.19929, "energy (keV)": 7.367}, - "Lb3": {"weight": 0.124, "energy (keV)": 7.0967}, - "Lg3": {"weight": 0.0315, "energy (keV)": 8.423}, - "Lg1": {"weight": 0.08168, "energy (keV)": 8.1046}, - "Mz": {"weight": 0.06, "energy (keV)": 0.9562}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1241.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1275.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1611.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1768.0, - }, - "N4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 148.0, - }, - "N5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 148.0, - }, - }, - }, - "General_properties": {"Z": 65, "atomic_weight": 158.92535, "name": "terbium"}, - }, - "Tc": { - "Physical_properties": {"density (g/cm^3)": 11.5}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.32951, "energy (keV)": 2.5368}, - "Kb": {"weight": 0.15, "energy (keV)": 20.619}, - "Ka": {"weight": 1.0, "energy (keV)": 18.3671}, - "Lb2": {"weight": 0.05839, "energy (keV)": 2.67017}, - "La": {"weight": 1.0, "energy (keV)": 2.424}, - "Ln": {"weight": 0.0127, "energy (keV)": 2.2456}, - "Ll": {"weight": 0.0412, "energy (keV)": 2.1293}, - "Lb3": {"weight": 0.0644, "energy (keV)": 2.6175}, - "Lg3": {"weight": 0.0111, "energy (keV)": 3.0036}, - "Lg1": {"weight": 0.01744, "energy (keV)": 2.78619}, - }, - "Binding_energies": { - "K": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 21044.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 2793.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 2677.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 256.0, - }, - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 253.0, - }, - "N2": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 39.0, - }, - "N3": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 39.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 3043.0, - }, - "M1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 544.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 445.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 425.0, - }, - "N1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 68.0, - }, - }, - }, - "General_properties": {"Z": 43, "atomic_weight": 98, "name": "technetium"}, - }, - "Ta": { - "Physical_properties": {"density (g/cm^3)": 16.65}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.46248, "energy (keV)": 9.3429}, - "Kb": {"weight": 0.15, "energy (keV)": 65.2224}, - "Ka": {"weight": 1.0, "energy (keV)": 57.5353}, - "M2N4": {"weight": 0.01, "energy (keV)": 2.2274}, - "Ma": {"weight": 1.0, "energy (keV)": 1.7101}, - "Lb4": {"weight": 0.10449, "energy (keV)": 9.2128}, - "La": {"weight": 1.0, "energy (keV)": 8.146}, - "Ln": {"weight": 0.0158, "energy (keV)": 8.4281}, - "M3O4": {"energy (keV)": 2.1883, "weight": 0.0001}, - "Ll": {"weight": 0.0515, "energy (keV)": 7.1731}, - "Mb": {"weight": 0.59443, "energy (keV)": 1.7682}, - "Mg": {"weight": 0.08505, "energy (keV)": 1.9647}, - "Lb2": {"weight": 0.2076, "energy (keV)": 9.6518}, - "Lb3": {"weight": 0.1333, "energy (keV)": 9.4875}, - "M3O5": {"energy (keV)": 2.194, "weight": 0.01}, - "Lg3": {"weight": 0.0354, "energy (keV)": 11.277}, - "Lg1": {"weight": 0.09071, "energy (keV)": 10.8948}, - "Mz": {"weight": 0.01344, "energy (keV)": 1.3306}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1735.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1793.0, - }, - }, - }, - "General_properties": {"Z": 73, "atomic_weight": 180.94788, "name": "tantalum"}, - }, - "Yb": { - "Physical_properties": {"density (g/cm^3)": 6.57}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.46224, "energy (keV)": 8.4019}, - "Kb": {"weight": 0.15, "energy (keV)": 59.3825}, - "Ka": {"weight": 1.0, "energy (keV)": 52.3887}, - "M2N4": {"weight": 0.01, "energy (keV)": 1.9749}, - "Ma": {"weight": 1.0, "energy (keV)": 1.5215}, - "Lb4": {"weight": 0.09589, "energy (keV)": 8.3134}, - "La": {"weight": 1.0, "energy (keV)": 7.4158}, - "Ln": {"weight": 0.0157, "energy (keV)": 7.5801}, - "Ll": {"weight": 0.0494, "energy (keV)": 6.5455}, - "Mb": {"weight": 0.59443, "energy (keV)": 1.57}, - "Mg": {"weight": 0.08505, "energy (keV)": 1.7649}, - "Lb2": {"weight": 0.2017, "energy (keV)": 8.7587}, - "Lb3": {"weight": 0.12789, "energy (keV)": 8.5366}, - "Lg3": {"weight": 0.0331, "energy (keV)": 10.1429}, - "Lg1": {"weight": 0.08728, "energy (keV)": 9.7801}, - "Mz": {"weight": 0.06, "energy (keV)": 1.1843}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1528.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1576.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1950.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 2173.0, - }, - "N4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 184.0, - }, - "N5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 184.0, - }, - }, - }, - "General_properties": {"Z": 70, "atomic_weight": 173.054, "name": "ytterbium"}, - }, - "Dy": { - "Physical_properties": {"density (g/cm^3)": 8.551}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.444, "energy (keV)": 7.2481}, - "Kb": {"weight": 0.15, "energy (keV)": 52.1129}, - "Ka": {"weight": 1.0, "energy (keV)": 45.9984}, - "M2N4": {"weight": 0.008, "energy (keV)": 1.6876}, - "Ma": {"weight": 1.0, "energy (keV)": 1.2907}, - "Lb4": {"weight": 0.0891, "energy (keV)": 7.204}, - "La": {"weight": 1.0, "energy (keV)": 6.4952}, - "Ln": {"weight": 0.01489, "energy (keV)": 6.5338}, - "Ll": {"weight": 0.0473, "energy (keV)": 5.7433}, - "Mb": {"weight": 0.76, "energy (keV)": 1.3283}, - "Mg": {"weight": 0.08505, "energy (keV)": 1.5214}, - "Lb2": {"weight": 0.2, "energy (keV)": 7.6359}, - "Lb3": {"weight": 0.12529, "energy (keV)": 7.3702}, - "Lg3": {"weight": 0.0319, "energy (keV)": 8.7529}, - "Lg1": {"weight": 0.08295, "energy (keV)": 8.4264}, - "Mz": {"weight": 0.06, "energy (keV)": 1.002}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1295.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 1332.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1676.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1842.0, - }, - "N4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 154.0, - }, - "N5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 154.0, - }, - }, - }, - "General_properties": {"Z": 66, "atomic_weight": 162.5, "name": "dysprosium"}, - }, - "I": { - "Physical_properties": {"density (g/cm^3)": 4.94}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.43087, "energy (keV)": 4.2208}, - "Kb": {"weight": 0.15, "energy (keV)": 32.2948}, - "Ka": {"weight": 1.0, "energy (keV)": 28.6123}, - "Lb2": {"weight": 0.17059, "energy (keV)": 4.5075}, - "Lb4": {"weight": 0.09189, "energy (keV)": 4.2576}, - "La": {"weight": 1.0, "energy (keV)": 3.9377}, - "Ln": {"weight": 0.0154, "energy (keV)": 3.78}, - "Ll": {"weight": 0.0423, "energy (keV)": 3.485}, - "Lb3": {"weight": 0.1464, "energy (keV)": 4.3135}, - "Lg3": {"weight": 0.0327, "energy (keV)": 5.0654}, - "Lg1": {"weight": 0.06704, "energy (keV)": 4.8025}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 620.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 631.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 875.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 930.0, - }, - }, - }, - "General_properties": {"Z": 53, "atomic_weight": 126.90447, "name": "iodine"}, - }, - "U": { - "Physical_properties": {"density (g/cm^3)": 19.05}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.4, "energy (keV)": 17.22}, - "Kb": {"weight": 0.15, "energy (keV)": 111.3026}, - "Ka": {"weight": 1.0, "energy (keV)": 98.4397}, - "M2N4": {"weight": 0.00674, "energy (keV)": 4.4018}, - "Ma": {"weight": 1.0, "energy (keV)": 3.1708}, - "Lb4": {"weight": 0.04, "energy (keV)": 16.5752}, - "La": {"weight": 1.0, "energy (keV)": 13.6146}, - "Ln": {"weight": 0.01199, "energy (keV)": 15.3996}, - "M3O4": {"energy (keV)": 4.1984, "weight": 0.01}, - "Ll": {"weight": 0.069, "energy (keV)": 11.6183}, - "Mb": {"weight": 0.6086, "energy (keV)": 3.3363}, - "Mg": {"weight": 0.33505, "energy (keV)": 3.5657}, - "Lb2": {"weight": 0.236, "energy (keV)": 16.4286}, - "Lb3": {"weight": 0.06, "energy (keV)": 17.454}, - "M3O5": {"energy (keV)": 4.2071, "weight": 0.01}, - "Lg3": {"weight": 0.017, "energy (keV)": 20.7125}, - "Lg1": {"weight": 0.08, "energy (keV)": 20.1672}, - "Mz": {"weight": 0.03512, "energy (keV)": 2.5068}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 3552.0, - }, - "M4": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 3728.0, - }, - "O5": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 96.0, - }, - "O4": { - "relevance": "Major", - "threshold": "Broad peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 96.0, - }, - }, - }, - "General_properties": {"Z": 92, "atomic_weight": 238.02891, "name": "uranium"}, - }, - "Y": { - "Physical_properties": {"density (g/cm^3)": 4.472}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.39127, "energy (keV)": 1.9959}, - "Kb": {"weight": 0.15, "energy (keV)": 16.7381}, - "Ka": {"weight": 1.0, "energy (keV)": 14.9584}, - "Lb2": {"weight": 0.00739, "energy (keV)": 2.08}, - "La": {"weight": 1.0, "energy (keV)": 1.9226}, - "Ln": {"weight": 0.0162, "energy (keV)": 1.7619}, - "Ll": {"weight": 0.0428, "energy (keV)": 1.6864}, - "Lb3": {"weight": 0.05059, "energy (keV)": 2.0722}, - "Lg3": {"weight": 0.0075, "energy (keV)": 2.3469}, - "Lg1": {"weight": 0.00264, "energy (keV)": 2.1555}, - }, - "Binding_energies": { - "M2": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "", - "onset_energy (eV)": 312.0, - }, - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 160.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 160.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 2155.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 2080.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "", - "onset_energy (eV)": 300.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 2372.0, - }, - }, - }, - "General_properties": {"Z": 39, "atomic_weight": 88.90585, "name": "yttrium"}, - }, - "Ac": { - "Physical_properties": {"density (g/cm^3)": 10.07}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.4, "energy (keV)": 15.713}, - "Kb": {"weight": 0.15, "energy (keV)": 102.846}, - "Ka": {"weight": 1.0, "energy (keV)": 90.884}, - "M2N4": {"weight": 0.00674, "energy (keV)": 3.9811}, - "Ma": {"energy (keV)": 2.9239330000000003, "weight": 1.0}, - "La": {"weight": 1.0, "energy (keV)": 12.652}, - "Ln": {"weight": 0.0133, "energy (keV)": 14.0812}, - "M3O4": {"energy (keV)": 3.82586, "weight": 0.01}, - "Ll": {"weight": 0.06549, "energy (keV)": 10.869}, - "Mb": {"weight": 0.64124, "energy (keV)": 3.06626}, - "Mg": {"weight": 0.33505, "energy (keV)": 3.272}, - "M3O5": {"energy (keV)": 3.83206, "weight": 0.01}, - "Lb2": {"weight": 0.236, "energy (keV)": 15.234}, - "Lg3": {"weight": 0.017, "energy (keV)": 18.95}, - "Lg1": {"weight": 0.08, "energy (keV)": 18.4083}, - "Lb3": {"weight": 0.06, "energy (keV)": 15.931}, - "Mz": {"weight": 0.03512, "energy (keV)": 2.329}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3219.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3370.0, - }, - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 15871.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 19840.0, - }, - "L2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 19083.0, - }, - "M1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 5002.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 4656.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3909.0, - }, - "N1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1269.0, - }, - "N2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1080.0, - }, - "N3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 890.0, - }, - "N4": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 675.0, - }, - }, - }, - "General_properties": {"Z": 89, "atomic_weight": 227, "name": "actinium"}, - }, - "Ag": { - "Physical_properties": {"density (g/cm^3)": 10.49}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.35175, "energy (keV)": 3.1509}, - "Kb": {"weight": 0.15, "energy (keV)": 24.9426}, - "Ka": {"weight": 1.0, "energy (keV)": 22.1629}, - "Lb2": {"weight": 0.1165, "energy (keV)": 3.3478}, - "Lb4": {"weight": 0.0444, "energy (keV)": 3.2034}, - "La": {"weight": 1.0, "energy (keV)": 2.9844}, - "Ln": {"weight": 0.0131, "energy (keV)": 2.8062}, - "Ll": {"weight": 0.04129, "energy (keV)": 2.6336}, - "Lb3": {"weight": 0.0737, "energy (keV)": 3.2344}, - "Lg3": {"weight": 0.014, "energy (keV)": 3.7499}, - "Lg1": {"weight": 0.03735, "energy (keV)": 3.5204}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 367.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 373.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 571.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 602.0, - }, - }, - }, - "General_properties": {"Z": 47, "atomic_weight": 107.8682, "name": "silver"}, - }, - "Ir": { - "Physical_properties": {"density (g/cm^3)": 22.56}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.4168, "energy (keV)": 10.708}, - "Kb": {"weight": 0.15, "energy (keV)": 73.5603}, - "Ka": {"weight": 1.0, "energy (keV)": 64.8958}, - "M2N4": {"weight": 0.02901, "energy (keV)": 2.5973}, - "Ma": {"weight": 1.0, "energy (keV)": 1.9799}, - "Lb4": {"weight": 0.07269, "energy (keV)": 10.5098}, - "La": {"weight": 1.0, "energy (keV)": 9.1748}, - "Ln": {"weight": 0.01429, "energy (keV)": 9.6504}, - "M3O4": {"energy (keV)": 2.54264, "weight": 0.005}, - "Ll": {"weight": 0.05429, "energy (keV)": 8.0415}, - "Mb": {"weight": 0.59443, "energy (keV)": 2.0527}, - "Mg": {"weight": 0.08505, "energy (keV)": 2.2558}, - "Lb2": {"weight": 0.216, "energy (keV)": 10.9203}, - "Lb3": {"weight": 0.0874, "energy (keV)": 10.8678}, - "M3O5": {"energy (keV)": 2.54385, "weight": 0.01}, - "Lg3": {"weight": 0.024, "energy (keV)": 12.9242}, - "Lg1": {"weight": 0.08543, "energy (keV)": 12.5127}, - "Mz": {"weight": 0.01344, "energy (keV)": 1.5461}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 2040.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 2116.0, - }, - }, - }, - "General_properties": {"Z": 77, "atomic_weight": 192.217, "name": "iridium"}, - }, - "Al": { - "Physical_properties": {"density (g/cm^3)": 2.7}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.0132, "energy (keV)": 1.5596}, - "Ka": {"weight": 1.0, "energy (keV)": 1.4865}, - }, - "Binding_energies": { - "K": { - "relevance": "Major", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 1560.0, - }, - "L2,3": { - "relevance": "Major", - # Overlaps - # with L2 - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 73.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 118.0, - }, - }, - }, - "General_properties": { - "Z": 13, - "atomic_weight": 26.9815386, - "name": "aluminum", - }, - }, - "As": { - "Physical_properties": {"density (g/cm^3)": 5.727}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.16704, "energy (keV)": 1.3174}, - "Kb": {"weight": 0.14589, "energy (keV)": 11.7262}, - "Ka": {"weight": 1.0, "energy (keV)": 10.5436}, - "La": {"weight": 1.0, "energy (keV)": 1.2819}, - "Ln": {"weight": 0.01929, "energy (keV)": 1.1551}, - "Ll": {"weight": 0.04929, "energy (keV)": 1.1196}, - "Lb3": {"weight": 0.04769, "energy (keV)": 1.386}, - }, - "Binding_energies": { - "L2": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1359.0, - }, - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 1323.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 1526.0, - }, - }, - }, - "General_properties": {"Z": 33, "atomic_weight": 74.9216, "name": "arsenic"}, - }, - "Ar": { - "Physical_properties": {"density (g/cm^3)": 0.001784}, - "Atomic_properties": { - "Xray_lines": { - "Kb": {"weight": 0.10169, "energy (keV)": 3.1905}, - "Ka": {"weight": 1.0, "energy (keV)": 2.9577}, - }, - "Binding_energies": { - "L2,3": { - "relevance": "Major", - # overlaps - # with L2 - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 245.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 320.0, - }, - }, - }, - "General_properties": {"Z": 18, "atomic_weight": 39.948, "name": "argon"}, - }, - "Au": { - "Physical_properties": {"density (g/cm^3)": 19.3}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.40151, "energy (keV)": 11.4425}, - "Kb": {"weight": 0.15, "energy (keV)": 77.9819}, - "Ka": {"weight": 1.0, "energy (keV)": 68.8062}, - "M2N4": {"weight": 0.02901, "energy (keV)": 2.7958}, - "Ma": {"weight": 1.0, "energy (keV)": 2.1229}, - "Lb4": {"weight": 0.0594, "energy (keV)": 11.205}, - "La": {"weight": 1.0, "energy (keV)": 9.713}, - "Ln": {"weight": 0.01379, "energy (keV)": 10.3087}, - "M3O4": {"energy (keV)": 2.73469, "weight": 0.005}, - "Ll": {"weight": 0.0562, "energy (keV)": 8.4938}, - "Mb": {"weight": 0.59443, "energy (keV)": 2.2047}, - "Mg": {"weight": 0.08505, "energy (keV)": 2.4091}, - "Lb2": {"weight": 0.21949, "energy (keV)": 11.5848}, - "Lb3": {"weight": 0.069, "energy (keV)": 11.6098}, - "M3O5": {"energy (keV)": 2.73621, "weight": 0.01}, - "Lg3": {"weight": 0.0194, "energy (keV)": 13.8074}, - "Lg1": {"weight": 0.08407, "energy (keV)": 13.3816}, - "Mz": {"weight": 0.01344, "energy (keV)": 1.6603}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 2206.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 2291.0, - }, - }, - }, - "General_properties": {"Z": 79, "atomic_weight": 196.966569, "name": "gold"}, - }, - "At": { - "Physical_properties": {"density (g/cm^3)": "NaN"}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.38048, "energy (keV)": 13.876}, - "Kb": {"weight": 0.15, "energy (keV)": 92.3039}, - "Ka": {"weight": 1.0, "energy (keV)": 81.5164}, - "M2N4": {"weight": 0.00863, "energy (keV)": 3.4748}, - "Lb4": {"weight": 0.05809, "energy (keV)": 13.485}, - "La": {"weight": 1.0, "energy (keV)": 11.4268}, - "Ln": {"weight": 0.0132, "energy (keV)": 12.4677}, - "Ll": {"weight": 0.06179, "energy (keV)": 9.8965}, - "Mb": {"weight": 0.64124, "energy (keV)": 2.71162}, - "Mg": {"weight": 0.21845, "energy (keV)": 2.95061}, - "Lb2": {"weight": 0.2305, "energy (keV)": 13.73812}, - "Lg3": {"weight": 0.017, "energy (keV)": 16.753}, - "Lg1": {"weight": 0.08, "energy (keV)": 16.2515}, - "Lb3": {"weight": 0.06, "energy (keV)": 14.067}, - "Mz": {"weight": 0.00354, "energy (keV)": 2.0467}, - }, - "Binding_energies": { - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 14214.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 2908.0, - }, - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 2787.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 17493.0, - }, - "L2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 16785.0, - }, - "M1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 4317.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 4008.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3426.0, - }, - "N1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1042.0, - }, - "N2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 886.0, - }, - "N3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 740.0, - }, - "N4": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 879.0, - }, - "N5": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 533.0, - }, - }, - }, - "General_properties": {"Z": 85, "atomic_weight": 210, "name": "astatine"}, - }, - "In": { - "Physical_properties": {"density (g/cm^3)": 7.31}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.3616, "energy (keV)": 3.4872}, - "Kb": {"weight": 0.15, "energy (keV)": 27.2756}, - "Ka": {"weight": 1.0, "energy (keV)": 24.2098}, - "Lb2": {"weight": 0.1371, "energy (keV)": 3.7139}, - "Lb4": {"weight": 0.05349, "energy (keV)": 3.5353}, - "La": {"weight": 1.0, "energy (keV)": 3.287}, - "Ln": {"weight": 0.0132, "energy (keV)": 3.1124}, - "Ll": {"weight": 0.0415, "energy (keV)": 2.9045}, - "Lb3": {"weight": 0.08779, "energy (keV)": 3.5732}, - "Lg3": {"weight": 0.0177, "energy (keV)": 4.1601}, - "Lg1": {"weight": 0.04535, "energy (keV)": 3.9218}, - }, - "Binding_energies": { - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 443.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 451.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 664.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 702.0, - }, - }, - }, - "General_properties": {"Z": 49, "atomic_weight": 114.818, "name": "indium"}, - }, - "Mo": { - "Physical_properties": {"density (g/cm^3)": 10.28}, - "Atomic_properties": { - "Xray_lines": { - "Lb1": {"weight": 0.32736, "energy (keV)": 2.3948}, - "Kb": {"weight": 0.15, "energy (keV)": 19.6072}, - "Ka": {"weight": 1.0, "energy (keV)": 17.4793}, - "Lb2": {"weight": 0.04509, "energy (keV)": 2.5184}, - "La": {"weight": 1.0, "energy (keV)": 2.2932}, - "Ln": {"weight": 0.0128, "energy (keV)": 2.1205}, - "Ll": {"weight": 0.0415, "energy (keV)": 2.0156}, - "Lb3": {"weight": 0.06299, "energy (keV)": 2.4732}, - "Lg3": {"weight": 0.0105, "energy (keV)": 2.8307}, - "Lg1": {"weight": 0.01335, "energy (keV)": 2.6233}, - }, - "Binding_energies": { - "M2": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "", - "onset_energy (eV)": 410.0, - }, - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 227.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "Delayed maximum", - "onset_energy (eV)": 228.0, - }, - "L2": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 2625.0, - }, - "L3": { - "relevance": "Major", - "threshold": "Sharp peak", - "edge": "Delayed maximum", - "onset_energy (eV)": 2520.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "Sharp peak", - "edge": "", - "onset_energy (eV)": 392.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "Abrupt onset", - "onset_energy (eV)": 2866.0, - }, - }, - }, - "General_properties": {"Z": 42, "atomic_weight": 95.96, "name": "molybdenum"}, - }, - "Am": { - "Physical_properties": {"density (g/cm^3)": 12}, - "Atomic_properties": { - "Binding_energies": { - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 18504.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 4092.0, - }, - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3887.0, - }, - "O4": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 116.0, - }, - "O5": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 103.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 23773.0, - }, - "L2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 22944.0, - }, - "M1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 6121.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 5710.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 4667.0, - }, - "N1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1617.0, - }, - "N2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1412.0, - }, - "N3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1136.0, - }, - "N4": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 879.0, - }, - "N5": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 828.0, - }, - } - }, - "General_properties": {"Z": 95, "atomic_weight": 243, "name": "americium"}, - }, - "Np": { - "Physical_properties": {"density (g/cm^3)": 19.38}, - "Atomic_properties": { - "Binding_energies": { - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 17610.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3850.0, - }, - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3666.0, - }, - "N6": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 415.0, - }, - "N7": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 404.0, - }, - "O4": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 109.0, - }, - "O5": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 101.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 22427.0, - }, - "L2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 21601.0, - }, - "M1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 5723.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 5366.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 4435.0, - }, - "N1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1501.0, - }, - "N2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1328.0, - }, - "N3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1087.0, - }, - "N4": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 816.0, - }, - "N5": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 770.0, - }, - "O2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 283.0, - }, - "O1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 206.0, - }, - } - }, - "General_properties": {"Z": 93, "atomic_weight": 237, "name": "neptunium"}, - }, - "Pu": { - "Physical_properties": {"density (g/cm^3)": 19.82}, - "Atomic_properties": { - "Binding_energies": { - "L3": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 18057.0, - }, - "M4": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3973.0, - }, - "M5": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 3778.0, - }, - "N6": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 446.0, - }, - "N7": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 432.0, - }, - "O4": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 116.0, - }, - "O5": { - "relevance": "Major", - "threshold": "", - "edge": "", - "onset_energy (eV)": 105.0, - }, - "L1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 23097.0, - }, - "L2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 22266.0, - }, - "M1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 5933.0, - }, - "M2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 5541.0, - }, - "M3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 4557.0, - }, - "N1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1559.0, - }, - "N2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1372.0, - }, - "N3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 1115.0, - }, - "N4": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 849.0, - }, - "N5": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 801.0, - }, - "O1": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 352.0, - }, - "O2": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 274.0, - }, - "O3": { - "relevance": "Minor", - "threshold": "", - "edge": "", - "onset_energy (eV)": 207.0, - }, - } - }, - "General_properties": {"Z": 94, "atomic_weight": 244, "name": "plutonium"}, - }, -} +from hyperspy.exceptions import VisibleDeprecationWarning -elements_db = DictionaryTreeBrowser(elements) +from exspy._misc.elements import elements_db -# read dictionary of atomic numbers from eXSpy, and add the elements that -# do not currently exist in the database (in case anyone is doing EDS on -# Ununpentium...) -atomic_number2name = dict((p.General_properties.Z, e) for (e, p) in elements_db) -atomic_number2name.update( - { - 96: "Cm", - 97: "Bk", - 98: "Cf", - 99: "Es", - 100: "Fm", - 101: "Md", - 102: "No", - 103: "Lr", - 104: "Rf", - 105: "Db", - 106: "Sg", - 107: "Bh", - 108: "Hs", - 109: "Mt", - 110: "Ds", - 111: "Rg", - 112: "Cp", - 113: "Uut", - 114: "Uuq", - 115: "Uup", - 116: "Uuh", - 117: "Uus", - 118: "Uuo", - 119: "Uue", - } + +__all__ = [ + "elements_db", +] + + +def __dir__(): + return sorted(__all__) + + +warnings.warn( + "This module is deprecated, use `exspy.material` instead. " + "It will be removed in exspy 1.0.", + VisibleDeprecationWarning, ) diff --git a/exspy/misc/material.py b/exspy/misc/material.py index 071b458a7..f8dbd36c4 100644 --- a/exspy/misc/material.py +++ b/exspy/misc/material.py @@ -1,38 +1,24 @@ -# -*- coding: utf-8 -*- -# Copyright 2007-2024 The eXSpy developers -# -# This file is part of eXSpy. -# -# eXSpy is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# eXSpy is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with eXSpy. If not, see . +# Deprecated and to be removed in exspy 1.0 -from collections.abc import Iterable -import numpy as np -import numbers -import copy +import warnings -from exspy.misc.elements import elements as elements_db -from exspy.misc.eds.ffast_mac import ffast_mac_db as ffast_mac -from exspy.misc.eds import utils as utils_eds -from hyperspy.misc.utils import stack +from hyperspy.exceptions import VisibleDeprecationWarning + +from exspy.material import ( + atomic_to_weight, + density_of_mixture, + mass_absorption_coefficient, + mass_absorption_mixture, + weight_to_atomic, +) __all__ = [ "atomic_to_weight", - "weight_to_atomic", "density_of_mixture", "mass_absorption_coefficient", "mass_absorption_mixture", + "weight_to_atomic", ] @@ -40,489 +26,8 @@ def __dir__(): return sorted(__all__) -def _weight_to_atomic(weight_percent, elements): - """Convert weight percent (wt%) to atomic percent (at.%). - - Parameters - ---------- - weight_percent: array of float - The weight fractions (composition) of the sample. - elements: list of str - A list of element abbreviations, e.g. ['Al','Zn'] - - Returns - ------- - atomic_percent : array of float - Composition in atomic percent. - - Calculate the atomic percent of modern bronze given its weight percent: - >>> hs.material.weight_to_atomic((88, 12), ("Cu", "Sn")) - array([ 93.19698614, 6.80301386]) - - """ - if len(elements) != len(weight_percent): - raise ValueError( - "The number of elements must match the size of the first axis" - "of weight_percent." - ) - atomic_weights = np.array( - [ - elements_db[element]["General_properties"]["atomic_weight"] - for element in elements - ] - ) - atomic_percent = np.array(list(map(np.divide, weight_percent, atomic_weights))) - sum_weight = atomic_percent.sum(axis=0) / 100.0 - for i, el in enumerate(elements): - atomic_percent[i] /= sum_weight - atomic_percent[i] = np.where(sum_weight == 0.0, 0.0, atomic_percent[i]) - return atomic_percent - - -def weight_to_atomic(weight_percent, elements="auto"): - """Convert weight percent (wt%) to atomic percent (at.%). - - Parameters - ---------- - weight_percent: list of float or list of signals - The weight fractions (composition) of the sample. - elements: list of str - A list of element abbreviations, e.g. ['Al','Zn']. If elements is - 'auto', take the elements in en each signal metadata of th - weight_percent list. - - Returns - ------- - atomic_percent : as weight_percent - Composition in atomic percent. - - Examples - -------- - Calculate the atomic percent of modern bronze given its weight percent: - >>> hs.material.weight_to_atomic((88, 12), ("Cu", "Sn")) - array([ 93.19698614, 6.80301386]) - - """ - from hyperspy.signals import BaseSignal - - elements = _elements_auto(weight_percent, elements) - - if isinstance(weight_percent[0], BaseSignal): - atomic_percent = stack(weight_percent) - atomic_percent.data = _weight_to_atomic(atomic_percent.data, elements) - atomic_percent.data = np.nan_to_num(atomic_percent.data) - atomic_percent = atomic_percent.split() - for i, el in enumerate(elements): - atomic_percent[i].metadata.General.title = "atomic percent of " + el - return atomic_percent - else: - return _weight_to_atomic(weight_percent, elements) - - -def _atomic_to_weight(atomic_percent, elements): - """Convert atomic percent to weight percent. - - Parameters - ---------- - atomic_percent: array - The atomic fractions (composition) of the sample. - elements: list of str - A list of element abbreviations, e.g. ['Al','Zn'] - - Returns - ------- - weight_percent : array of float - composition in weight percent. - - Examples - -------- - Calculate the weight percent of modern bronze given its atomic percent: - >>> hs.material.atomic_to_weight([93.2, 6.8], ("Cu", "Sn")) - array([ 88.00501989, 11.99498011]) - - """ - if len(elements) != len(atomic_percent): - raise ValueError( - "The number of elements must match the size of the first axis" - "of atomic_percent." - ) - atomic_weights = np.array( - [ - elements_db[element]["General_properties"]["atomic_weight"] - for element in elements - ] - ) - weight_percent = np.array(list(map(np.multiply, atomic_percent, atomic_weights))) - sum_atomic = weight_percent.sum(axis=0) / 100.0 - for i, el in enumerate(elements): - weight_percent[i] /= sum_atomic - weight_percent[i] = np.where(sum_atomic == 0.0, 0.0, weight_percent[i]) - return weight_percent - - -def atomic_to_weight(atomic_percent, elements="auto"): - """Convert atomic percent to weight percent. - - Parameters - ---------- - atomic_percent: list of float or list of signals - The atomic fractions (composition) of the sample. - elements: list of str - A list of element abbreviations, e.g. ['Al','Zn']. If elements is - 'auto', take the elements in en each signal metadata of the - atomic_percent list. - - Returns - ------- - weight_percent : as atomic_percent - composition in weight percent. - - Examples - -------- - Calculate the weight percent of modern bronze given its atomic percent: - >>> hs.material.atomic_to_weight([93.2, 6.8], ("Cu", "Sn")) - array([ 88.00501989, 11.99498011]) - - """ - from hyperspy.signals import BaseSignal - - elements = _elements_auto(atomic_percent, elements) - if isinstance(atomic_percent[0], BaseSignal): - weight_percent = stack(atomic_percent, show_progressbar=False) - weight_percent.data = _atomic_to_weight(weight_percent.data, elements) - weight_percent = weight_percent.split() - for i, el in enumerate(elements): - atomic_percent[i].metadata.General.title = "weight percent of " + el - return weight_percent - else: - return _atomic_to_weight(atomic_percent, elements) - - -def _density_of_mixture(weight_percent, elements, mean="harmonic"): - """Calculate the density a mixture of elements. - - The density of the elements is retrieved from an internal database. The - calculation is only valid if there is no interaction between the - components. - - Parameters - ---------- - weight_percent: array - A list of weight percent for the different elements. If the total - is not equal to 100, each weight percent is divided by the sum - of the list (normalization). - elements: list of str - A list of element symbols, e.g. ['Al', 'Zn'] - mean: 'harmonic' or 'weighted' - The type of mean use to estimate the density - - Returns - ------- - density: The density in g/cm3. - - Examples - -------- - Calculate the density of modern bronze given its weight percent: - >>> hs.material.density_of_mixture([88, 12],['Cu', 'Sn']) - 8.6903187973131466 - - """ - if len(elements) != len(weight_percent): - raise ValueError( - "The number of elements must match the size of the first axis" - "of weight_percent." - ) - densities = np.array( - [ - elements_db[element]["Physical_properties"]["density (g/cm^3)"] - for element in elements - ] - ) - sum_densities = np.zeros_like(weight_percent, dtype="float") - try: - if mean == "harmonic": - for i, weight in enumerate(weight_percent): - sum_densities[i] = weight / densities[i] - sum_densities = sum_densities.sum(axis=0) - density = np.sum(weight_percent, axis=0) / sum_densities - return np.where(sum_densities == 0.0, 0.0, density) - elif mean == "weighted": - for i, weight in enumerate(weight_percent): - sum_densities[i] = weight * densities[i] - sum_densities = sum_densities.sum(axis=0) - sum_weight = np.sum(weight_percent, axis=0) - density = sum_densities / sum_weight - return np.where(sum_weight == 0.0, 0.0, density) - except TypeError: - raise ValueError( - "The density of one of the elements is unknown (Probably At or Fr)." - ) - - -def density_of_mixture(weight_percent, elements="auto", mean="harmonic"): - """Calculate the density of a mixture of elements. - - The density of the elements is retrieved from an internal database. The - calculation is only valid if there is no interaction between the - components. - - Parameters - ---------- - weight_percent: list of float or list of signals - A list of weight percent for the different elements. If the total - is not equal to 100, each weight percent is divided by the sum - of the list (normalization). - elements: list of str - A list of element symbols, e.g. ['Al', 'Zn']. If elements is 'auto', - take the elements in en each signal metadata of the weight_percent - list. - mean: 'harmonic' or 'weighted' - The type of mean use to estimate the density - - Returns - ------- - density: The density in g/cm3. - - Examples - -------- - Calculate the density of modern bronze given its weight percent: - >>> hs.material.density_of_mixture([88, 12],['Cu', 'Sn']) - 8.6903187973131466 - - """ - from hyperspy.signals import BaseSignal - - elements = _elements_auto(weight_percent, elements) - if isinstance(weight_percent[0], BaseSignal): - density = weight_percent[0]._deepcopy_with_new_data( - _density_of_mixture(stack(weight_percent).data, elements, mean=mean) - ) - return density - else: - return _density_of_mixture(weight_percent, elements, mean=mean) - - -def mass_absorption_coefficient(element, energies): - """ - Mass absorption coefficient (mu/rho) of a X-ray absorbed in a pure - material. - - The mass absorption is retrieved from the database of Chantler2005 - - Parameters - ---------- - element: str - The element symbol of the absorber, e.g. 'Al'. - energies: float or list of float or str or list of str - The energy or energies of the X-ray in keV, or the name of the X-rays, - e.g. 'Al_Ka'. - - Return - ------ - mass absorption coefficient(s) in cm^2/g - - Examples - -------- - >>> hs.material.mass_absorption_coefficient( - >>> element='Al', energies=['C_Ka','Al_Ka']) - array([ 26330.38933818, 372.02616732]) - - See also - -------- - :py:func:`~hs.material.mass_absorption_mixture` - - Note - ---- - See https://dx.doi.org/10.18434/T4HS32 - Chantler, C.T., Olsen, K., Dragoset, R.A., Kishore, A.R., Kotochigova, - S.A., and Zucker, D.S. (2005), X-Ray Form Factor, Attenuation and - Scattering Tables (version 2.1). - """ - energies_db = np.array(ffast_mac[element].energies_keV) - macs = np.array(ffast_mac[element].mass_absorption_coefficient_cm2g) - energies = copy.copy(energies) - if isinstance(energies, str): - energies = utils_eds._get_energy_xray_line(energies) - elif isinstance(energies, Iterable): - for i, energy in enumerate(energies): - if isinstance(energy, str): - energies[i] = utils_eds._get_energy_xray_line(energy) - index = np.searchsorted(energies_db, energies) - mac_res = np.exp( - np.log(macs[index - 1]) - + np.log(macs[index] / macs[index - 1]) - * ( - np.log(energies / energies_db[index - 1]) - / np.log(energies_db[index] / energies_db[index - 1]) - ) - ) - return np.nan_to_num(mac_res) - - -def _mass_absorption_mixture(weight_percent, elements, energies): - """Calculate the mass absorption coefficient for X-ray absorbed in a - mixture of elements. - - The mass absorption coefficient is calculated as a weighted mean of the - weight percent and is retrieved from the database of Chantler2005. - - Parameters - ---------- - weight_percent: np.array - The composition of the absorber(s) in weight percent. The first - dimension of the matrix corresponds to the elements. - elements: list of str - The list of element symbol of the absorber, e.g. ['Al','Zn']. - energies: float or list of float or str or list of str - The energy or energies of the X-ray in keV, or the name of the X-rays, - e.g. 'Al_Ka'. - - Examples - -------- - >>> hs.material.mass_absorption_mixture( - >>> elements=['Al','Zn'], weight_percent=[50,50], energies='Al_Ka') - 2587.4161643905127 - - Return - ------ - float or array of float - mass absorption coefficient(s) in cm^2/g - - See also - -------- - :py:func:`~hs.material.mass_absorption` - - Note - ---- - See https://dx.doi.org/10.18434/T4HS32 - Chantler, C.T., Olsen, K., Dragoset, R.A., Kishore, A.R., Kotochigova, - S.A., and Zucker, D.S. (2005), X-Ray Form Factor, Attenuation and - Scattering Tables (version 2.1). - """ - if len(elements) != len(weight_percent): - raise ValueError("Elements and weight_fraction should have the same length") - if isinstance(weight_percent[0], Iterable): - weight_fraction = np.array(weight_percent) - weight_fraction /= np.sum(weight_fraction, 0) - mac_res = np.zeros([len(energies)] + list(weight_fraction.shape[1:])) - for element, weight in zip(elements, weight_fraction): - mac_re = mass_absorption_coefficient(element, energies) - mac_res += np.array([weight * ma for ma in mac_re]) - return mac_res - else: - mac_res = np.array( - [mass_absorption_coefficient(el, energies) for el in elements] - ) - mac_res = np.dot(weight_percent, mac_res) / np.sum(weight_percent, 0) - return mac_res - - -def mass_absorption_mixture(weight_percent, elements="auto", energies="auto"): - """Calculate the mass absorption coefficient for X-ray absorbed in a - mixture of elements. - - The mass absorption coefficient is calculated as a weighted mean of the - weight percent and is retrieved from the database of Chantler2005. - - Parameters - ---------- - weight_percent: list of float or list of signals - The composition of the absorber(s) in weight percent. The first - dimension of the matrix corresponds to the elements. - elements: list of str or 'auto' - The list of element symbol of the absorber, e.g. ['Al','Zn']. If - elements is 'auto', take the elements in each signal metadata of the - weight_percent list. - energies: list of float or list of str or 'auto' - The energy or energies of the X-ray in keV, or the name of the X-rays, - e.g. 'Al_Ka'. If 'auto', take the lines in each signal metadata of the - weight_percent list. - - Examples - -------- - >>> hs.material.mass_absorption_mixture( - >>> elements=['Al','Zn'], weight_percent=[50,50], energies='Al_Ka') - 2587.41616439 - - Return - ------ - float or array of float - mass absorption coefficient(s) in cm^2/g - - See also - -------- - :py:func:`~hs.material.mass_absorption_coefficient` - - Note - ---- - See https://dx.doi.org/10.18434/T4HS32 - Chantler, C.T., Olsen, K., Dragoset, R.A., Kishore, A.R., Kotochigova, - S.A., and Zucker, D.S. (2005), X-Ray Form Factor, Attenuation and - Scattering Tables (version 2.1). - - """ - from hyperspy.signals import BaseSignal - - elements = _elements_auto(weight_percent, elements) - energies = _lines_auto(weight_percent, energies) - if isinstance(weight_percent[0], BaseSignal): - weight_per = np.array([wt.data for wt in weight_percent]) - mac_res = stack( - [weight_percent[0].deepcopy()] * len(energies), show_progressbar=False - ) - mac_res.data = _mass_absorption_mixture(weight_per, elements, energies) - mac_res = mac_res.split() - for i, energy in enumerate(energies): - mac_res[i].metadata.set_item("Sample.xray_lines", ([energy])) - mac_res[i].metadata.General.set_item( - "title", - "Absoprtion coeff of" - " %s in %s" % (energy, mac_res[i].metadata.General.title), - ) - if mac_res[i].metadata.has_item("Sample.elements"): - del mac_res[i].metadata.Sample.elements - return mac_res - else: - return _mass_absorption_mixture(weight_percent, elements, energies) - - -def _lines_auto(composition, xray_lines): - if isinstance(composition[0], numbers.Number): - if isinstance(xray_lines, str): - if xray_lines == "auto": - raise ValueError("The X-ray lines needs to be provided.") - else: - if isinstance(xray_lines, str): - if xray_lines == "auto": - xray_lines = [] - for compo in composition: - if len(compo.metadata.Sample.xray_lines) > 1: - raise ValueError( - "The signal %s contains more than one X-ray lines " - "but this function requires only one X-ray lines " - "per signal." % compo.metadata.General.title - ) - else: - xray_lines.append(compo.metadata.Sample.xray_lines[0]) - return xray_lines - - -def _elements_auto(composition, elements): - if isinstance(composition[0], numbers.Number): - if isinstance(elements, str): - if elements == "auto": - raise ValueError("The elements needs to be provided.") - else: - if isinstance(elements, str): - if elements == "auto": - elements = [] - for compo in composition: - if len(compo.metadata.Sample.elements) > 1: - raise ValueError( - "The signal %s contains more than one element " - "but this function requires only one element " - "per signal." % compo.metadata.General.title - ) - else: - elements.append(compo.metadata.Sample.elements[0]) - return elements +warnings.warn( + "This module is deprecated, use `exspy.material` instead. " + "It will be removed in exspy 1.0.", + VisibleDeprecationWarning, +) diff --git a/exspy/models/edsmodel.py b/exspy/models/edsmodel.py index 5ac38552a..b5c834889 100644 --- a/exspy/models/edsmodel.py +++ b/exspy/models/edsmodel.py @@ -24,12 +24,12 @@ import logging from hyperspy.misc.utils import stash_active_state -from exspy.misc.eds.utils import _get_element_and_line +from exspy._misc.eds.utils import _get_element_and_line from hyperspy.models.model1d import Model1D from exspy.signals.eds import EDSSpectrum -from exspy.misc.elements import elements as elements_db -from exspy.misc.eds import utils as utils_eds +from exspy._misc.elements import elements as elements_db +from exspy._misc.eds import utils as utils_eds import hyperspy.components1d as create_component _logger = logging.getLogger(__name__) diff --git a/exspy/models/eelsmodel.py b/exspy/models/eelsmodel.py index accbcef6f..973d21ac6 100644 --- a/exspy/models/eelsmodel.py +++ b/exspy/models/eelsmodel.py @@ -27,7 +27,7 @@ from exspy.components import EELSCLEdge from hyperspy.components1d import PowerLaw from hyperspy.docstrings.model import FIT_PARAMETERS_ARG -from exspy.docstrings.model import EELSMODEL_PARAMETERS +from exspy._docstrings.model import EELSMODEL_PARAMETERS from hyperspy.misc.utils import dummy_context_manager from hyperspy.models.model1d import Model1D diff --git a/exspy/signals/dielectric_function.py b/exspy/signals/dielectric_function.py index 01199dda2..d6667e99c 100644 --- a/exspy/signals/dielectric_function.py +++ b/exspy/signals/dielectric_function.py @@ -25,7 +25,7 @@ LazyComplexSignal1D, ) from hyperspy.docstrings.signal import LAZYSIGNAL_DOC -from exspy.misc.eels.tools import eels_constant +from exspy._misc.eels.tools import eels_constant class DielectricFunction(ComplexSignal1D): diff --git a/exspy/signals/eds.py b/exspy/signals/eds.py index 6a7115870..c8e537bf7 100644 --- a/exspy/signals/eds.py +++ b/exspy/signals/eds.py @@ -28,8 +28,8 @@ from hyperspy import utils from hyperspy.signal import BaseSignal from hyperspy._signals.signal1d import Signal1D, LazySignal1D -from exspy.misc.elements import elements as elements_db -from exspy.misc.eds import utils as utils_eds +from exspy._misc.elements import elements as elements_db +from exspy._misc.eds import utils as utils_eds from hyperspy.misc.utils import isiterable from hyperspy.docstrings.plot import BASE_PLOT_DOCSTRING_PARAMETERS, PLOT1D_DOCSTRING from hyperspy.docstrings.signal import LAZYSIGNAL_DOC diff --git a/exspy/signals/eds_tem.py b/exspy/signals/eds_tem.py index eec7572e3..55738e220 100755 --- a/exspy/signals/eds_tem.py +++ b/exspy/signals/eds_tem.py @@ -36,9 +36,9 @@ from .eds import EDSSpectrum, LazyEDSSpectrum from exspy._defaults_parser import preferences -from exspy.misc import material -from exspy.misc.eds import utils as utils_eds -from exspy.misc.elements import elements as elements_db +from exspy._misc import material +from exspy._misc.eds import utils as utils_eds +from exspy._misc.elements import elements as elements_db _logger = logging.getLogger(__name__) diff --git a/exspy/signals/eels.py b/exspy/signals/eels.py index c30524307..6ae83b848 100644 --- a/exspy/signals/eels.py +++ b/exspy/signals/eels.py @@ -46,14 +46,14 @@ LAZYSIGNAL_DOC, ) -from exspy.docstrings.model import EELSMODEL_PARAMETERS -from exspy.misc.elements import elements as elements_db -from exspy.misc.eels.tools import get_edges_near_energy -from exspy.misc.eels.electron_inelastic_mean_free_path import ( +from exspy._docstrings.model import EELSMODEL_PARAMETERS +from exspy._misc.elements import elements as elements_db +from exspy._misc.eels.tools import get_edges_near_energy +from exspy._misc.eels.electron_inelastic_mean_free_path import ( iMFP_Iakoubovskii, iMFP_angular_correction, ) -from exspy.signal_tools import EdgesRange +from exspy._signal_tools import EdgesRange _logger = logging.getLogger(__name__) diff --git a/exspy/tests/data/test_eelsdb.py b/exspy/tests/data/test_eelsdb.py index 6cdc43eb7..95d8cd944 100644 --- a/exspy/tests/data/test_eelsdb.py +++ b/exspy/tests/data/test_eelsdb.py @@ -22,7 +22,7 @@ import requests from requests.exceptions import SSLError -from exspy.misc.eels.eelsdb import eelsdb +from exspy._misc.eels.eelsdb import eelsdb def _eelsdb(**kwargs): diff --git a/exspy/tests/misc/test_eds.py b/exspy/tests/misc/test_eds.py index db250c903..1628c40e3 100644 --- a/exspy/tests/misc/test_eds.py +++ b/exspy/tests/misc/test_eds.py @@ -18,7 +18,7 @@ import numpy as np -from exspy.misc.eds.utils import get_xray_lines_near_energy, take_off_angle +from exspy._misc.eds.utils import get_xray_lines_near_energy, take_off_angle def test_xray_lines_near_energy(): diff --git a/exspy/tests/misc/test_eds_utils.py b/exspy/tests/misc/test_eds_utils.py index 08888807c..3d3476db9 100644 --- a/exspy/tests/misc/test_eds_utils.py +++ b/exspy/tests/misc/test_eds_utils.py @@ -18,7 +18,7 @@ import pytest -from exspy.misc.eds.utils import _get_element_and_line +from exspy._misc.eds.utils import _get_element_and_line def test_get_element_and_line(): diff --git a/exspy/tests/misc/test_eels.py b/exspy/tests/misc/test_eels.py index fc202b2f4..a5eef5fa8 100644 --- a/exspy/tests/misc/test_eels.py +++ b/exspy/tests/misc/test_eels.py @@ -18,7 +18,7 @@ import pytest -from exspy.misc.eels.tools import get_edges_near_energy, get_info_from_edges +from exspy._misc.eels.tools import get_edges_near_energy, get_info_from_edges def test_single_edge(): diff --git a/exspy/tests/misc/test_gos.py b/exspy/tests/misc/test_gos.py index eaac1e787..37d3f367c 100644 --- a/exspy/tests/misc/test_gos.py +++ b/exspy/tests/misc/test_gos.py @@ -23,10 +23,10 @@ import pytest from exspy._defaults_parser import preferences -from exspy.misc.eels.gosh_gos import GoshGOS -from exspy.misc.eels.hartree_slater_gos import HartreeSlaterGOS -from exspy.misc.eels import HydrogenicGOS -from exspy.misc.elements import elements +from exspy._misc.eels.gosh_gos import GoshGOS +from exspy._misc.eels.hartree_slater_gos import HartreeSlaterGOS +from exspy._misc.eels import HydrogenicGOS +from exspy._misc.elements import elements GOSH10 = pooch.retrieve( diff --git a/exspy/tests/misc/test_material.py b/exspy/tests/misc/test_material.py index 7b5a2927e..8fee8bae1 100644 --- a/exspy/tests/misc/test_material.py +++ b/exspy/tests/misc/test_material.py @@ -20,7 +20,7 @@ import pytest import exspy as ex -from exspy.misc.elements import elements_db +from exspy._misc.elements import elements_db import hyperspy.api as hs diff --git a/exspy/tests/models/test_edsmodel.py b/exspy/tests/models/test_edsmodel.py index 7df158fe3..dda99985e 100644 --- a/exspy/tests/models/test_edsmodel.py +++ b/exspy/tests/models/test_edsmodel.py @@ -23,8 +23,8 @@ from hyperspy.misc import utils import exspy -from exspy.misc.eds import utils as utils_eds -from exspy.misc.elements import elements as elements_db +from exspy._misc.eds import utils as utils_eds +from exspy._misc.elements import elements as elements_db # Create this outside the test class to diff --git a/exspy/tests/models/test_eelsmodel.py b/exspy/tests/models/test_eelsmodel.py index 1e8155478..9bc71edbd 100644 --- a/exspy/tests/models/test_eelsmodel.py +++ b/exspy/tests/models/test_eelsmodel.py @@ -25,12 +25,13 @@ import pytest import hyperspy.api as hs -from exspy.misc.elements import elements_db as elements from hyperspy.decorators import lazifyTestClass -from exspy.misc.eels.gosh_gos import DFT_GOSH, DIRAC_GOSH -from exspy.signals import EELSSpectrum from hyperspy.exceptions import VisibleDeprecationWarning +from exspy._misc.eels.gosh_gos import _DFT_GOSH, _DIRAC_GOSH +from exspy._misc.elements import elements_db as elements +from exspy.signals import EELSSpectrum + # Dask does not always work nicely with np.errstate, # see: https://github.com/dask/dask/issues/3245, so @@ -99,15 +100,15 @@ def test_gos_gosh_dirac(self): def test_gos_file(self): gos_file_path = pooch.retrieve( - url=DFT_GOSH["URL"], - known_hash=DFT_GOSH["KNOWN_HASH"], + url=_DFT_GOSH["URL"], + known_hash=_DFT_GOSH["KNOWN_HASH"], ) self.s.create_model(auto_add_edges=True, gos_file_path=gos_file_path) def test_gos_file_dirac(self): gos_file_path = pooch.retrieve( - url=DIRAC_GOSH["URL"], - known_hash=DIRAC_GOSH["KNOWN_HASH"], + url=_DIRAC_GOSH["URL"], + known_hash=_DIRAC_GOSH["KNOWN_HASH"], ) self.s.create_model( auto_add_edges=True, gos_file_path=gos_file_path, GOS="dirac" diff --git a/exspy/tests/signals/test_edges_range.py b/exspy/tests/signals/test_edges_range.py index 2e0d3a57b..ceb4c27ae 100644 --- a/exspy/tests/signals/test_edges_range.py +++ b/exspy/tests/signals/test_edges_range.py @@ -20,7 +20,7 @@ import numpy as np import exspy -from exspy.signal_tools import EdgesRange +from exspy._signal_tools import EdgesRange class Owner: diff --git a/exspy/tests/signals/test_eds_sem.py b/exspy/tests/signals/test_eds_sem.py index 1e280d3d2..59c541d18 100644 --- a/exspy/tests/signals/test_eds_sem.py +++ b/exspy/tests/signals/test_eds_sem.py @@ -26,7 +26,7 @@ import exspy from exspy._defaults_parser import preferences -import exspy.misc.eds.utils as eds_utils +import exspy._misc.eds.utils as eds_utils from exspy.signals import EDSSEMSpectrum diff --git a/exspy/tests/signals/test_eds_tem.py b/exspy/tests/signals/test_eds_tem.py index cb37bd5d1..2771008b0 100644 --- a/exspy/tests/signals/test_eds_tem.py +++ b/exspy/tests/signals/test_eds_tem.py @@ -26,7 +26,7 @@ import exspy from exspy._defaults_parser import preferences -from exspy.misc.eds import utils as utils_eds +from exspy._misc.eds import utils as utils_eds from exspy.signals import EDSTEMSpectrum @@ -420,16 +420,14 @@ def test_zeta_vs_cross_section(self): factors = [3, 5] method = "zeta" intensities = s.get_lines_intensity() - zfactors = utils_eds.edx_cross_section_to_zeta([3, 5], ["Al", "Zn"]) - factors2 = utils_eds.zeta_to_edx_cross_section(zfactors, ["Al", "Zn"]) + zfactors = utils_eds.cross_section_to_zeta([3, 5], ["Al", "Zn"]) + factors2 = utils_eds.zeta_to_cross_section(zfactors, ["Al", "Zn"]) np.testing.assert_allclose(factors, factors2, atol=1e-3) res = s.quantification( intensities, method, - factors=utils_eds.edx_cross_section_to_zeta( - [22.402, 21.7132], ["Al", "Zn"] - ), + factors=utils_eds.cross_section_to_zeta([22.402, 21.7132], ["Al", "Zn"]), ) res2 = s.quantification( intensities, method="cross_section", factors=[22.402, 21.7132] @@ -465,7 +463,7 @@ def test_quant_cross_section_ac(self): s = self.signal method = "cross_section" zfactors = [20, 50] - factors = utils_eds.zeta_to_edx_cross_section(zfactors, ["Al", "Zn"]) + factors = utils_eds.zeta_to_cross_section(zfactors, ["Al", "Zn"]) intensities = s.get_lines_intensity() res = s.quantification(intensities, method, factors, absorption_correction=True) res2 = s.quantification( @@ -507,13 +505,13 @@ def test_quant_zeros(self): def test_edx_cross_section_to_zeta(self): cs = [3, 6] elements = ["Pt", "Ni"] - res = utils_eds.edx_cross_section_to_zeta(cs, elements) + res = utils_eds.cross_section_to_zeta(cs, elements) np.testing.assert_allclose(res, [1079.815272, 162.4378035], atol=1e-3) def test_zeta_to_edx_cross_section(self): factors = [1079.815272, 162.4378035] elements = ["Pt", "Ni"] - res = utils_eds.zeta_to_edx_cross_section(factors, elements) + res = utils_eds.zeta_to_cross_section(factors, elements) np.testing.assert_allclose(res, [3, 6], atol=1e-3) def test_quant_element_order(self): diff --git a/exspy/tests/signals/test_kramers_kronig_transform.py b/exspy/tests/signals/test_kramers_kronig_transform.py index 43223278d..bef35b5bc 100644 --- a/exspy/tests/signals/test_kramers_kronig_transform.py +++ b/exspy/tests/signals/test_kramers_kronig_transform.py @@ -24,7 +24,7 @@ from hyperspy.components1d import Lorentzian from exspy.components import VolumePlasmonDrude -from exspy.misc.eels.tools import eels_constant +from exspy._misc.eels.tools import eels_constant from exspy.signals import EELSSpectrum diff --git a/exspy/tests/test_deprecated_import.py b/exspy/tests/test_deprecated_import.py new file mode 100644 index 000000000..5a2bd331d --- /dev/null +++ b/exspy/tests/test_deprecated_import.py @@ -0,0 +1,62 @@ +# ruff: noqa +# Remove in exspy 1.0 + +import pytest + +from hyperspy.exceptions import VisibleDeprecationWarning + + +def test_import_element(): + with pytest.warns(VisibleDeprecationWarning) as record: + from exspy.misc.elements import elements_db + + assert "use `exspy.material` instead" in record[0].message.args[0] + + +def test_import_material(): + with pytest.warns(VisibleDeprecationWarning) as record: + from exspy.misc.material import ( + atomic_to_weight, + density_of_mixture, + mass_absorption_coefficient, + mass_absorption_mixture, + weight_to_atomic, + ) + + assert "use `exspy.material` instead" in record[0].message.args[0] + + +def test_import_eds_utils(): + with pytest.warns(VisibleDeprecationWarning) as record: + from exspy.misc.eds.utils import ( + cross_section_to_zeta, + electron_range, + get_xray_lines_near_energy, + take_off_angle, + xray_range, + zeta_to_cross_section, + ) + + assert "use `exspy.utils.eds` instead" in record[0].message.args[0] + + +def test_import_eels_tools(): + with pytest.warns(VisibleDeprecationWarning) as record: + from exspy.misc.eels.tools import ( + effective_angle, + get_edges_near_energy, + get_info_from_edges, + ) + + assert "use `exspy.utils.eels` instead" in record[0].message.args[0] + + +def test_import_eels_electron_inelastic_mean_free_path(): + with pytest.warns(VisibleDeprecationWarning) as record: + from exspy.misc.eels.electron_inelastic_mean_free_path import ( + iMFP_angular_correction, + iMFP_Iakoubovskii, + iMFP_TPP2M, + ) + + assert "use `exspy.utils.eels` instead" in record[0].message.args[0] diff --git a/exspy/utils/__init__.py b/exspy/utils/__init__.py new file mode 100644 index 000000000..3b9cca650 --- /dev/null +++ b/exspy/utils/__init__.py @@ -0,0 +1,11 @@ +from . import eds +from . import eels + +__all__ = [ + "eds", + "eels", +] + + +def __dir__(): + return sorted(__all__) diff --git a/exspy/misc/eds/eds.py b/exspy/utils/eds.py similarity index 85% rename from exspy/misc/eds/eds.py rename to exspy/utils/eds.py index 5b0e0e764..757ed70b3 100644 --- a/exspy/misc/eds/eds.py +++ b/exspy/utils/eds.py @@ -17,23 +17,23 @@ # along with eXSpy. If not, see . -from exspy.misc.eds.utils import ( - edx_cross_section_to_zeta, +from exspy._misc.eds.utils import ( + cross_section_to_zeta, electron_range, get_xray_lines_near_energy, take_off_angle, xray_range, - zeta_to_edx_cross_section, + zeta_to_cross_section, ) __all__ = [ - "edx_cross_section_to_zeta", + "cross_section_to_zeta", "electron_range", "get_xray_lines_near_energy", "take_off_angle", "xray_range", - "zeta_to_edx_cross_section", + "zeta_to_cross_section", ] diff --git a/exspy/utils/eels.py b/exspy/utils/eels.py new file mode 100644 index 000000000..73fc9003f --- /dev/null +++ b/exspy/utils/eels.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Copyright 2007-2024 The eXSpy developers +# +# This file is part of eXSpy. +# +# eXSpy is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# eXSpy is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with eXSpy. If not, see . + + +from exspy._misc.eels.effective_angle import effective_angle +from exspy._misc.eels.electron_inelastic_mean_free_path import ( + iMFP_angular_correction, + iMFP_Iakoubovskii, + iMFP_TPP2M, +) +from exspy._misc.eels.tools import ( + get_edges_near_energy, + get_info_from_edges, +) + + +__all__ = [ + "effective_angle", + "get_edges_near_energy", + "get_info_from_edges", + "iMFP_angular_correction", + "iMFP_Iakoubovskii", + "iMFP_TPP2M", +] + + +def __dir__(): + return sorted(__all__) diff --git a/pyproject.toml b/pyproject.toml index d2b438f5c..c21cdbc64 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -71,7 +71,8 @@ file = "LICENSE" "sphinx-favicon", "sphinx-gallery", "sphinxcontrib-towncrier", - "towncrier", + # unpin when sphinxcontrib-towncrier support more recent version to towncrier + "towncrier<24", ] "tests" = [ "pytest >= 5.0", diff --git a/upcoming_changes/59.bugfix.rst b/upcoming_changes/59.bugfix.rst new file mode 100644 index 000000000..214e178b8 --- /dev/null +++ b/upcoming_changes/59.bugfix.rst @@ -0,0 +1 @@ +Add back functionalities, which were unintentionally removed from public API when splitting from hyperspy in :mod:`exspy.utils.eds`, :mod:`exspy.utils.eels` and :mod:`exspy.material`. \ No newline at end of file diff --git a/upcoming_changes/59.doc.rst b/upcoming_changes/59.doc.rst new file mode 100644 index 000000000..9a90883cb --- /dev/null +++ b/upcoming_changes/59.doc.rst @@ -0,0 +1 @@ +Fix examples in user guide, which needed to be updated after the split from hyperspy.