Skip to main content

SimulatedLIBS provides simple Python class to simulate LIBS spectra with NIST LIBS Database interface

Project description

Simulated LIBS

PyPI version License Tests ZENADO DOI

SimulatedLIBS provides Python class to simulate LIBS spectra with NIST LIBS Database interface.
SimulatedLIBS also allows the creation of simulated data sets that can be used to train ML models.
SimulatedLIBS was mentioned is FOSS For Spectroscopy by Prof. Bryan A. Hanson, DePauw University.

Project created for B.Eng. thesis:
Computer methods of the identification of the elements in optical spectra obtained by Laser Induced Breakdown Spectroscopy.

Thesis supervisor: Paweł Gąsior PhD
e-mail: pawel.gasior@ifpilm.pl
Institute of Plasma Physics and Laser Microfusion - IPPLM

Installation

pip install SimulatedLIBS

Import

from simLIBS import SimulatedLIBS

Example

Parameters:

  • Te - electron temperature [eV]
  • Ne - electron density [cm^-3]
  • elements - list of elements
  • percentages - list of elements concentrations
  • resoulution
  • wavelength range: low_w, upper_w
  • maximal ion charge: max_ion_charge
  • websraping: 'static' or 'dynamic'

Static websraping

libs = SimulatedLIBS(Te=1.0,
                     Ne=10**17,
                     elements=['W','Fe','Mo'],
                     percentages=[50,25,25],
                     resolution=1000,
                     low_w=200,
                     upper_w=1000,
                     max_ion_charge=3,
                     webscraping='static')

Plot

libs.plot(color='blue', title='W Fe Mo composition')

Save to file

libs.save_to_csv('filename.csv')

Interpolated spectrum

SimulatedLIBS interpolates retrieved data from NIST with cubic splines.

libs.get_interpolated_spectrum()

Raw spectrum

Raw retrieved data from NIST

libs.get_raw_spectrum()

Dynamic webscraping

libs = SimulatedLIBS(Te=1.0,
                     Ne=10**17,
                     elements=['W','Fe','Mo'],
                     percentages=[50,25,25],
                     resolution=1000,
                     low_w=200,
                     upper_w=1000,
                     max_ion_charge=3,
                     webscraping='dynamic')

Plot

libs.plot(color='blue', title='W Fe Mo composition')

Ion spectra

After simulation with parameter websraping = dynamic, ion spectra are stored in ion_spectra (pd.DataFrame) and can be plotted.

libs.plot_ion_spectra()

Random dataset of samples

Based on .csv file with chemical composition of samples, one can generate dataset of simulated LIBS measurements with different Te and Ne values.

Example of input_composition_df pd.DataFrame:

W H He name
50 25 25 A
30 60 10 B
40 40 20 C
SimulatedLIBS.create_dataset(input_composition_df,
                             size=100,
                             Te_min=1.0,
                             Te_max=2.0,
                             Ne_min=10**17,
                             Ne_max=10**18)

Example of output .csv file:

200.0 200.1 200.2 200.3 200.4 ... H W Te Ne
0 0 0 0 0 0 ... 2 50 1.43 1.08e+17
1 0 0 0 0 0 ... 0 0 1.06 1.08e+17
2 0 0.1 0.1 0.1 0.1 ... 0 68 1.82 1.18e+17
3 0 54.5 56.7 54.4 48.4 ... 0 3 1.25 1.06e+17
4 0 121.7 143.1 140.5 115.3 ... 0 84 1.08 9.23e+17

Animations

SimulatedLIBS can be helpful in creating LIBS animations mostly for educational purpose.

Resolution animation

Changes in resolution in range: 500-10000.

Electron temperature animation

Changes in electron temperature Te in range: 0.5-5 eV.

Electron density animation

Changes in electron density Ne in range: 0.7-1.3 e+17 [cm^-3].

References

  • M. Kastek, et al., Analysis of hydrogen isotopes retention in thermonuclear reactors with LIBS supported by machine learning. Spectrochimica Acta Part B Atomic Spectroscopy 199: 106576. DOI: 10.1016/j.sab.2022.106576.

Used in Research

  • Chen Z, Chen Z, Jiang W, Guo L, Zhang Y. Line intensity calculation of laser-induced breakdown spectroscopy during plasma expansion in nonlocal thermodynamic equilibrium. Opt Lett. 2023 Jun 15;48(12):3227-3230. DOI: 10.1364/OL.488250.

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

simlibs-2.0.3.tar.gz (7.9 MB view details)

Uploaded Source

Built Distribution

simLIBS-2.0.3-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file simlibs-2.0.3.tar.gz.

File metadata

  • Download URL: simlibs-2.0.3.tar.gz
  • Upload date:
  • Size: 7.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for simlibs-2.0.3.tar.gz
Algorithm Hash digest
SHA256 0e7443a3b615699d6ac3e0bd9848c73916573152a842c020a5c398b747e4dea7
MD5 ebb0e7c01f07c6832c2f55e99cd48cd5
BLAKE2b-256 0b7d54753c9f265df51bec6a1849653985661c3fbbaed6014bea5a4fc8278fad

See more details on using hashes here.

File details

Details for the file simLIBS-2.0.3-py3-none-any.whl.

File metadata

  • Download URL: simLIBS-2.0.3-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for simLIBS-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a82b0a59a6dede497e1d9c354f220b09339eef150f4a6a39f663b360c60262aa
MD5 0626f5a7c8468f1fad5c88af91f89b28
BLAKE2b-256 518844e29fac90535cd18b5d30137cd8130d3212b9b5b92fd9f21b1f3133274d

See more details on using hashes here.

Supported by

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