A package with a convenient python API for accessing various properties
of elements, ions and isotopes in the periodic table of elements.
Report Bug
·
Request Feature
·
Submit a Pull Request
- Table of Contents
- About the project
- Installation
- Documentation
- Data
- Getting started
- Contributing
- Implementations in other languages
- License
- Citing
- Funding
source: https://github.com/lmmentel/mendeleev
This package provides a convenient python API for accessing various properties of elements, ions and isotopes in the periodic table of elements.
Moreover it provides an easy to use interface to pandas and convenient visualization functionality through bokeh that enables you to create customized periodic tables displaying various properties.
Django Extensions is free and always will be. It is development and maintained by developers in an Open Source manner. Any support is welcome. You could help by writing documentation, pull-requests, report issues and/or translations. iodic trends in the periodic tables. If you want to look at some examples there are a few tutorials available as jupyter notebooks.
If you would like to explore the data available in mendeleev check out the interactive web app at mendeleev.herokuapp.com where you can create your own periodic tables and visualize the relations between various properties of elements.
The preferred installation method is with conda and you can install the package from the conda-forge Anaconda channel channel by
conda install -c lmmentel mendeleev=0.19.0
The package can also be installed using pip
pip install mendeleev
or pipenv
pipenv install mendeleev
You can also install the most recent version from the repository:
pip install git+https://github.com/lmmentel/mendeleev.git
Full documentation is hosted on Read the Docs.
There are also tutorials available as Jupyter notebooks on binder where you can explore the examples interactively:
A comprehensive list of the available data together with appropriate references are available in the documentation. Here the most important entries are listed:
- atomic number
- atomic volume
- atomic weight
- block
- cas
- electrons
- electronic configuration
- group
- name
- neutrons
- mass number
- period
- protons
- series
- symbol
- cpk_color
- jmol_color
- molcas_gv_color
- atomic radius (Slater, Rahm)
- covalent radius (Bragg, Cordero, Pyykko)
- ionic radius
- metallic radius
- van der Waals radius (Alvarez, Batsanov, Bondi, Dreiding, MM3, RT, Truhlar, UFF)
- Allen
- Allred & Rochow
- Cottrell & Sutton
- Ghosh
- Gordy
- Li & Xue
- Nagle
- Martynov & Batsanov
- Miedema
- Mulliken
- Pauling
- Sanderson
- discoverers
- discovery location
- discovery year
- dipole year
- description
- name origin
- sources
- uses
- boiling point
- C<sub>6</sub>
- critical temperature
- critical pressure
- density
- dipole polarizability
- electron affinity
- evaporation heat
- fusion heat
- gas basicity
- heat of formation
- ionization energies
- lattice constant
- lattice structure
- melting point
- oxidation states
- proton affinity
- specific heat capacity
- thermal conductivity
- triple point temperature
- triple point pressure
- hardness
- softness
- electrophilicity
- abundance in the Earth's crust
- abundance in the sea
- geochemical class
- Glawe number
- Goldschmidt class
- InChI
- is monoisotopic
- is radioactive
- isotopes
- Mendeleev number
- NIST WebBook URL
- nuclear screening constants (Slater & Clementi)
- abundance
- abundance uncertainty
- discovery year
- g-factor
- g-factor uncertainty
- half life
- half life uncertainty
- radioactivity
- mass
- mass number
- parity
- quadrupole moment
- quadrupole moment uncertainty
- spin
The simplest way of accessing the element data is by importing elements directly from the [mendeleev]{.title-ref} package by their symbols. For example consider iron (Fe):
>>> from mendeleev import Fe
>>> Fe.name
'Iron'
>>> Fe.atomic_number
26
>>> Fe.thermal_conductivity
80.4
Another, more flexible way is through the element
method that returns
the Element
object:
>>> from mendeleev import element
The element
method accepts unique identifiers: atomic number, atomic
symbol or element's name in English. To retrieve the entries on Silicon
by symbol type
>>> si = element('Si')
>>> si.name
'Silicon'
Similarly to access the data by atomic number or element names type
>>> al = element(13)
>>> al.name
'Aluminium'
>>> o = element('Oxygen')
>>> o.atomic_number
8
The element
method also accepts list or tuple of identifiers and then
returns a list of Element
objects
>>> c, h, o = element(['C', 'Hydrogen', 8])
>>> c.name, h.name, o.name
('Carbon', 'Hydrogen', 'Oxygen')
The isotopes
attribute returns a list of Isotope
objects with the
following attributes per isotope
atomic_number
mass
abundance
mass_number
>>> fe = element('Fe')
>>> for iso in fe.isotopes:
... print(iso)
26 55.93494 91.75% 56
26 56.93540 2.12% 57
26 57.93328 0.28% 58
26 53.93961 5.85% 54
The columns represent the attributes atomic_number
, mass
,
abundance
and mass_number
respectively.
mendeleev offers also methods for accessing whole tables of data, e.g. table with the data on all isotopes and methods for interacting directly with the database engine, for more details see the API documentation and this tutorial.
For those who work in the terminal there is a simple command line interface (CLI) for printing the information about a given element. The script name is [element.py]{.title-ref} and it accepts either the symbol or name of the element or it's atomic number as an argument and prints the data about it. For example, to print the properties of silicon type
$ element.py Si
_ _ _ _ _
_(_)(_)(_)(_)_ (_)
(_) (_)_ _
(_)_ _ _ _ (_)(_)
(_)(_)(_)(_)_ (_)
_ (_) (_)
(_)_ _ _ _(_)_ (_) _
(_)(_)(_)(_) (_)(_)(_)
Description
===========
Metalloid element belonging to group 14 of the periodic table. It is
the second most abundant element in the Earth's crust, making up 25.7%
of it by weight. Chemically less reactive than carbon. First
identified by Lavoisier in 1787 and first isolated in 1823 by
Berzelius.
Sources
=======
Makes up major portion of clay, granite, quartz (SiO2), and sand.
Commercial production depends on a reaction between sand (SiO2) and
carbon at a temperature of around 2200 °C.
Uses
====
Used in glass as silicon dioxide (SiO2). Silicon carbide (SiC) is one
of the hardest substances known and used in polishing. Also the
crystalline form is used in semiconductors.
Properties
==========
Abundance crust 282000
Abundance sea 2.2
Annotation
Atomic number 14
Atomic radius 132
Atomic radius rahm 232
Atomic volume 12.1
Atomic weight 28.085
Atomic weight uncertainty NaN
Block p
Boiling point 2628
C6 305
C6 gb 308
Cas 7440-21-3
Covalent radius bragg 117
Covalent radius cordero 111
Covalent radius pyykko 116
Covalent radius pyykko double 107
Covalent radius pyykko triple 102
Covalent radius slater 110
Cpk color #daa520
Density 2.33
Dipole polarizability 37.31
Discoverers Jöns Berzelius
Discovery location Sweden
Discovery year 1824
Electron affinity 1.38952
Electronic configuration [Ne] 3s2 3p2
En allen 11.33
En ghosh 0.178503
En pauling 1.9
Evaporation heat 383
Fusion heat 50.6
Gas basicity 814.1
Geochemical class major
Goldschmidt class litophile
Group id 14
Heat of formation 450
Is monoisotopic None
Is radioactive False
Jmol color #f0c8a0
Lattice constant 5.43
Lattice structure DIA
Melting point 1683
Metallic radius 117
Metallic radius c12 138
Molcas gv color #f0c8a0
Name Silicon
Name origin Latin: silex, silicus, (flint).
Period 3
Proton affinity 837
Series id 5
Specific heat 0.703
Symbol Si
Thermal conductivity 149
Vdw radius 210
Vdw radius alvarez 219
Vdw radius batsanov 210
Vdw radius bondi 210
Vdw radius dreiding 427
Vdw radius mm3 229
Vdw radius rt NaN
Vdw radius truhlar NaN
Vdw radius uff 429.5
mendeleev
is free and always will be. It is developed and maintained by developers in an Open Source manner.
Any contributions are welcome. You could help by writing documentation, pull-requests, report issues or suggesting new features.
Feel free to submit issues regarding:
- data updates and recommendations
- enhancement requests and new useful features
- code bugs
- data or citation inconsistencies or errors
- before stating to work on your pull request please submit an issue first
- fork the repo on github
- clone the project to your own machine
- commit changes to your own branch
- push your work back up to your fork
- submit a pull request so that your changes can be reviewed
Due to great work of other people there are alternative versions in different languages:
Name | Language | Source | Documentation | Releases |
---|---|---|---|---|
mendeleev |
gitlab | docs.rs/mendeleev | ||
Mendeleev.jl |
github | eben60.github.io/Mendeleev.jl/ |
This package is released under the permissive MIT license, see LICENSE
If you use mendeleev in a scientific publication, please consider citing the software as
L. M. Mentel, mendeleev - A Python resource for properties of chemical elements, ions and isotopes. , 2014-- . Available at: https://github.com/lmmentel/mendeleev.
Here's the reference in the BibLaTeX format
@software{mendeleev2014,
author = {Mentel, Łukasz},
title = {{mendeleev} -- A Python resource for properties of chemical elements, ions and isotopes},
url = {https://github.com/lmmentel/mendeleev},
version = {0.19.0},
date = {2014--},
}
or the older BibTeX format
@misc{mendeleev2014,
auhor = {Mentel, Łukasz},
title = {mendeleev} -- A Python resource for properties of chemical elements, ions and isotopes, ver. 0.19.0},
howpublished = {\url{https://github.com/lmmentel/mendeleev}},
year = {2014--},
}
This project was supported by the RCN (The Research Council of Norway) project number 239193.