Skip to main content

Definitions and properties of X-ray transitions

Project description

https://img.shields.io/pypi/v/pyxray.svg https://img.shields.io/travis/openmicroanalysis/pyxray.svg https://img.shields.io/codecov/c/github/openmicroanalysis/pyxray.svg

pyxray is a Python library that defines basic object to specify atomic subshells and X-ray transitions. The objects also provide critical information as the energy, existence and different notations of the X-ray transitions.

pyxray supports 3.x (no Python 2.x support).

Installation

Easiest way to install using pip:

pip install pyxray

For development installation from the git repository:

git clone git@github.com/openmicroanalysis/pyxray.git
cd pyxray
pip install -e .

See development section below

Methods

All methods below are accessed by importing pyxray:

import pyxray

Variables of the methods are defined as follows

  • element:

    either

    • Element object

    • atomic number

    • symbol (case insensitive)

    • name (in any language, case insensitive)

    • object with attribute atomic_number or z

  • atomic_shell:

    either

    • AtomicShell object

    • principal quantum number

    • any notation (case insensitive)

  • atomic_subshell:

    either

    • AtomicSubshell object

    • a tuple of principal quantum number, azimuthal quantum number and total angular momentum nominator (e.g. (1, 0, 1) for the atomic subshell 1s^{0.5}

    • any notation (case insensitive)

  • xraytransition:

    either

    • XrayTransition object

    • a tuple of source and destination subshells

    • any notation (case insensitive)

  • xraytransitionset:

    either

  • language:

    language code (e.g. en, fr, de)

  • notation:

    name of a notation (case insensitive), iupac, siegbahn and orbital are usually supported

  • encoding:

    type of encoding, either ascii, utf16, html or latex

  • reference:

    reference to use to retrieve this value, either

    • Reference object

    • BibTeX key of a reference

    • None, the default reference will be used or the first reference found

Element properties

Properties associated with an element, defined as the ground state of an atom where the number of protons equal the number of electrons.

  • pyxray.element(element)

    Returns element descriptor.

  • pyxray.element_atomic_number(element)

    Returns atomic number of an element.

    Examples:

    pyxray.element.atomic_number('fe') #=> 26
    pyxray.element.atomic_number('Fe') #=> 26
    pyxray.element.atomic_number('iron') #=> 26
    pyxray.element.atomic_number('eisen') #=> 26
  • pyxray.element_symbol(element, reference=None)

    Returns symbol of an element.

  • pyxray.element_name(element, language='en', reference=None)

    Returns full name of an element, in the language specified.

  • pyxray.element_atomic_weight(element, reference=None)

    Returns atomic weight of an element. The atomic weight is defined by the CIAAW as it is the ratio of the average atomic mass of an element over 1/12 of the mass of the carbon-12 atom.

  • pyxray.element_mass_density_kg_per_m3(element, reference=None)

    Returns mass density (in kg/m3) of an element.

  • pyxray.element_mass_density_g_per_cm3(element, reference=None)

    Returns mass density (in g/cm3) of an element.

  • pyxray.element_xray_transition(element, reference=None)

    Returns X-ray transition descriptor if x-ray transition has a probability greater than 0 for that element.

  • pyxray.element_xray_transitions(element, xraytransitionset=None, reference=None)

    Returns all X-ray transitions which have a probability greater than 0 for that element. If xraytransitionset is not None, returns all x-ray transitions for this x-ray transition set.

Atomic shell properties

Properties associated with an atomic shell, defined by its principal quantum number.

  • pyxray.atomic_shell(atomic_shell)

    Returns atomic shell descriptor.

  • pyxray.atomic_shell_notation(atomic_shell, notation, encoding='utf16', reference=None)

    Returns notation of an atomic shell.

Atomic subshell properties

Properties associated with an atomic subshell, a subdivision of atomic shells.

  • pyxray.atomic_subshell(atomic_subshell)

    Returns atomic subshell descriptor.

  • pyxray.atomic_subshell_notation(atomic_subshell, notation, encoding='utf16', reference=None)

    Returns notation of an atomic subshell.

    Examples:

    pyxray.atomic_subshell_notation('L3', 'iupac', 'latex') #=> 'L$_{3}$'
    pyxray.atomic_subshell_notation('L3', 'orbital') #-> '2p3/2'
  • pyxray.atomic_subshell_binding_energy_eV(element, atomic_subshell, reference=None)

    Returns binding energy of an element and atomic subshell (in eV).

  • pyxray.atomic_subshell_radiative_width_eV(element, atomic_subshell, reference=None)

    Returns radiative width of an element and atomic subshell (in eV).

  • pyxray.atomic_subshell_nonradiative_width_eV(element, atomic_subshell, reference=None)

    Returns nonradiative width of an element and atomic subshell (in eV).

  • pyxray.atomic_subshell_occupancy(element, atomic_subshell, reference=None)

    Returns occupancy of an element and atomic subshell.

X-ray transition properties

Properties associated with an electron transition, relaxation process of an electron between quantum states leading to X-rays emission.

  • pyxray.xray_transition(xraytransition)

    Returns X-ray transition descriptor.

  • pyxray.xray_transition_notation(xraytransition, notation, encoding='utf16', reference=None)

    Returns notation of an X-ray transition.

    Examples:

    pyxray.transition_notation('Ka1', 'iupac') #=> 'K-L3'
    pyxray.transition_notation('L3-M1', 'siegbahn', 'ascii') #=> 'Ll'
  • pyxray.xray_transition_energy_eV(element, xraytransition, reference=None)

    Returns energy of an element and X-ray transition (in eV).

    Examples:

    pyxray.xray_transition_energy_eV(14, 'Ka1') #=> 1740.0263764535946
    pyxray.xray_transition_energy_eV(14, 'Ma1') #=> NotFound exception
  • pyxray.xray_transition_probability(element, xraytransition, reference=None)

    Returns probability of an element and X-ray transition.

  • pyxray.xray_transition_relative_weight(element, xraytransition, reference=None)

    Returns relative weight of an element and X-ray transition.

X-ray transition set properties

Properties associated with an X-ray transition set, an indistinguishable X-ray transition (e.g. Ka from Ka1/Ka2).

  • pyxray.xray_transitionset(xraytransitionset)

    Returns X-ray transition set descriptor.

  • pyxray.xray_transitionset_notation(xraytransitionset, notation, encoding='utf16', reference=None)

    Returns notation of an X-ray transition set.

  • pyxray.xray_transitionset_energy_eV(element, xraytransitionset, reference=None)

    Returns energy of an element and X-ray transition set (in eV).

  • pyxray.xray_transitionset_relative_weight(element, xraytransitionset, reference=None)

    Returns relative weight of an element and X-ray transition set.

X-ray line

Object to represent an x-ray line, an x-ray line of an element. The x-ray line can either be a XrayTransition (a transition between two atomic subshells) or a XrayTransitionSet (a set of transitions, normally indistinguishable X-ray transitions).

  • pyxray.xray_line(element, line, reference=None)

    Returns X-ray line descriptor.

xrayline = pyxray.xray_line(14, 'Ka1')
xrayline.atomic_number #=> 14
xrayline.iupac #=> Si K–L3
xrayline.siegbahn #=> Si Kα1
xrayline.transitions #=> (XrayTransition([n=2, l=1, j=1.5] -> [n=1, l=0, j=0.5]),)
xrayline.energy_eV #=> 1740.0263764535946

xrayline = pyxray.xray_line(14, 'Ka')
xrayline.atomic_number #=> 14
xrayline.iupac #=> Si K–L(2,3)
xrayline.siegbahn #=> Si Kα
xrayline.transitions #=> (XrayTransition([n=2, l=1, j=0.5] -> [n=1, l=0, j=0.5]), XrayTransition([n=2, l=1, j=1.5] -> [n=1, l=0, j=0.5]))
xrayline.energy_eV #=> 1739.826155631858

As any other descriptors, X-ray line objects are immutable and hashable so they can be used as keys of a dictionary. It is also cached to prevent multiple instances of the same x-ray line.

xrayline1 = pyxray.xray_line(13, 'Ka1')
xrayline2 = pyxray.xray_line('Al', 'Ka1')
xrayline1 == xrayline2 #=> True
xrayline1 is xrayline2 #=> True

Release notes

1.3.3

  • Fix method element_xray_transitions not to return duplicates.

1.3.2

  • Add energy to XrayLine.

  • Fix missing energy property for x-ray transition sets from JEOL database.

  • Clean up of unit tests.

1.3.1

  • Make XrayLine a descriptor and add method to create it from database.

1.2.1

  • Fix in build process.

1.2.0

  • Add XrayLine class.

Development

pyxray stores all data for the above functions in a SQLite database. The database is constructed during the build process of the Python package (i.e. python setup.py build) using registered parsers. The provided parsers are located in the package pyxray.parser, but external parsers can be provided by registering to the entry point pyxray.parser. In short, the database is not provide in the source code, only in the distributed version. It is therefore necessary to build the SQLite database when running pyxray in development mode. Building the database will take several minutes. In short,

python3 setup.py build

License

The library is provided under the MIT license.

pyxray was partially developed as part of the doctorate thesis project of Philippe T. Pinard at RWTH Aachen University (Aachen, Germany) under the supervision of Dr. Silvia Richter.

Copyright (c) 2015-2016/06 Philippe Pinard and Silvia Richter

Copyright (c) 2016/06-2017 Philippe Pinard

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyxray-1.3.3.tar.gz (85.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyxray-1.3.3-py3-none-any.whl (469.2 kB view details)

Uploaded Python 3

File details

Details for the file pyxray-1.3.3.tar.gz.

File metadata

  • Download URL: pyxray-1.3.3.tar.gz
  • Upload date:
  • Size: 85.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyxray-1.3.3.tar.gz
Algorithm Hash digest
SHA256 9e4652f9fbbf0e872fcdaf6952bf125cec7c2e3037b939ae89a21e75890a90cb
MD5 e3bc1d88dd9d3d78aeca3177996a4fda
BLAKE2b-256 51e484a6c1c4ded973d2e7501703e89da9052d6a9012fed3f456ceb17e24d5ff

See more details on using hashes here.

File details

Details for the file pyxray-1.3.3-py3-none-any.whl.

File metadata

File hashes

Hashes for pyxray-1.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d23ad942e6610c034d1e62afc34bad8ec85583a33732221332ef151cb88333f3
MD5 4fdf77d2b3939a0c415c5540e3bb20e1
BLAKE2b-256 36135d27954324e6ff006990ce53e655fdf1bf6a069c46b1ad47fb5ee6968ecf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page