ILTpy
ILTpy is a python library for performing regularized inversion of one-dimensional or multi-dimensional data without non-negativity constraint. Primary applications include magnetic resonance (NMR, EPR), and electrochemical impedance spectroscopy (distribution of relaxation times; DRT).
Description
ILTpy 1.0.0

Introduction
ILTpy (/ɪltˈpaɪ/) is a python library for performing regularized inversion of one-dimensional or multi-dimensional data without non-negativity constraint. Contributions to respective distributions with both positive and negative sign are determined. Primary applications include magnetic resonance (NMR, EPR), and electrochemical impedance spectroscopy (distribution of relaxation times; DRT). Algorithmic details and parametrization are described in : J. Granwehr, P.J. Roberts, J. Chem. Theory Comput. 8, 34733482 (2012)
Documentation
Visit ILTpy's documentation.
Demo
Try ILTpy in your web browser or jump to quick start.
Installation
Prerequisites
- To install and use ILTpy, Python must be installed on your device and be available on system PATH.
- ILTpy is compatible with Python 3.9, 3.10, 3.11, 3.12 and 3.13.
- ILTpy can be installed using python's package manager, pip.
- A python virtual environment is recommended.
Installing from PyPi
- Run the following command in a terminal:
python -m pip install ilt-py-lib
Installing from FZJ's app server
- Run the following command in a terminal:
python -m pip install --index-url https://apps.fz-juelich.de/iltpy/packages --extra-index-url https://pypi.org/simple ilt-py-lib
Installing from source
- Clone this repository.
- Navigate to the local directory where ILTpy was downloaded/extracted. The ILTpy directory should contain a
setup.pyfile along with other folders. - While inside the ILTpy directory, run the following command in a terminal (or command prompt) :
python -m pip install .
Dependencies
- python >=3.9,<3.14
- scipy>=1.13.1,<=1.16.0
- numpy>1.25.1,<=2.3.1
- joblib>=1.4.2,<=1.5.1
- tqdm
More information on using ILTpy can be found here.
⚡ Quick-start
A workflow using ILTpy and synthetic exponential decay data wth noise is shown below.
First, we generate some synthetic data for analysis :
# --- Simulate synthetic data ---
import numpy as np
def kww(t, taus, betas, amps):
"""Kohlrausch–Williams–Watts function"""
return sum(a * np.exp(-(t / tau) ** b) for tau, b, a in zip(taus, betas, amps))
# Time vector (input sampling points)
t_syn = np.linspace(0, 1024,1024)
# Simulate data with two components at 10 and 100 with different amplitudes
data_syn = kww(t_syn, taus=[10,100], betas=[1, 1], amps=[1, 0.5])
# Add noise to the simulated data
noise_level = 0.01
data_syn = data_syn + np.random.randn(t_syn.size)*noise_level
# scale data so that noise variance is 1 before analysis using ILTpy
data_syn = data_syn/noise_level
ILTpy Workflow
# --- ILTpy workflow ---
# assuming data_syn and t_syn are numpy arrays with the data and the sampling vector.
# Import ILTpy
import iltpy as ilt
# Load the data into iltpy using iltload
synILT = ilt.iltload(data=data_syn, t=t_syn)
# Specify parameters and initialize inversion
tau = np.logspace(-1, 4, 100) # output sampling points
synILT.init(tau=tau, kernel=ilt.Exponential())
# Perform inversion
synILT.invert()
Starting iterations ...
100%|██████████| 100/100 [00:00<00:00, 423.44it/s]
Done.
## Reporting
# Save the results
synILT.report(filepath='syn_data_ILT.txt')
# Plot the results
from iltpy.output.plotting import iltplot
iltplot(synILT)

Team
- Dr. Davis Thomas Daniel (Lead developer)
- Christian Bartsch
- Franz Philipp Bereck
- Dr. Simone Köcher
- Dr. Christoph Scheurer
- Prof. Dr. Josef Granwehr (Project lead)
License
Copyright (c) 2025 Davis Thomas Daniel, Josef Granwehr and other contributors.
ILTpy is licensed under the GNU Lesser General Public License v3.0.
See the LICENSE file for details.
Citation
If you use ILTpy in your work, please cite it (using the appropriate version):
@software{iltpy,
author = {Davis Thomas Daniel and Christian Bartsch and Franz Philipp Bereck and Simone Köcher and Christoph Scheurer and Josef Granwehr},
title = {ILTpy},
year = {2025},
version = {1.0.0},
url = {https://apps.fz-juelich.de/iltpy/},
doi = {10.1021/ct3001393}
}
Participating organisations
Reference papers
Mentions
- 1.Author(s): Angela F. Harper, Tabea Huss, Simone S. Köcher, Christoph ScheurerPublished in Faraday Discussions by Royal Society of Chemistry (RSC) in 2025, page: 411-42810.1039/d4fd00074a
- 2.Author(s): Y. Kharbanda, S. Mailhiot, O. Mankinen, M. Urbańczyk, V.-V. TelkkiPublished in Journal of Dairy Science by American Dairy Science Association in 2023, page: 1586-159510.3168/jds.2022-22458
- 3.Author(s): P. Philipp M. Schleker, Cristina Grosu, Marc Paulus, Peter Jakes, Robert Schlögl, Rüdiger-A. Eichel, Christoph Scheurer, Josef GranwehrPublished in Communications Chemistry by Springer Science and Business Media LLC in 202310.1038/s42004-023-00913-6
- 4.Author(s): Davis Thomas Daniel, Conrad Szczuka, Peter Jakes, Rüdiger-A. Eichel, Josef GranwehrPublished in Physical Chemistry Chemical Physics by Royal Society of Chemistry (RSC) in 2023, page: 12767-1277610.1039/d3cp00378g
- 5.Author(s): Davis Thomas Daniel, Steffen Oevermann, Souvik Mitra, Katharina Rudolf, Andreas Heuer, Rüdiger-A. Eichel, Martin Winter, Diddo Diddens, Gunther Brunklaus, Josef GranwehrPublished in Scientific Reports by Springer Science and Business Media LLC in 202310.1038/s41598-023-37308-5
- 6.Author(s): P. Philipp M. Schleker, Rüdiger-A. Eichel, Josef GranwehrPublished in Applied Magnetic Resonance by Springer Science and Business Media LLC in 2023, page: 1463-148010.1007/s00723-023-01609-9
- 7.Author(s): Chiara Panosetti, Simon B. Anniés, Cristina Grosu, Stefan Seidlmayer, Christoph ScheurerPublished in The Journal of Physical Chemistry A by American Chemical Society (ACS) in 2021, page: 691-69910.1021/acs.jpca.0c09388
- 8.Author(s): Ville-Veikko Telkki, Mateusz Urbańczyk, Vladimir ZhivonitkoPublished in Progress in Nuclear Magnetic Resonance Spectroscopy by Elsevier BV in 2021, page: 101-12010.1016/j.pnmrs.2021.07.001
- 9.Author(s): Steffen Merz, Jie Wang, Petrik Galvosas, Josef GranwehrPublished in Molecules by MDPI AG in 2021, page: 669010.3390/molecules26216690
- 10.Author(s): Marc Christoffer Paulus, Anja Paulus, Rüdiger-Albert Eichel, Josef GranwehrPublished in Zeitschrift für Physikalische Chemie by Walter de Gruyter GmbH in 2021, page: 899-92210.1515/zpch-2021-3136
- 11.Author(s): Robert Schulte Holthausen, Peter J. McDonaldPublished in Cement and Concrete Research by Elsevier BV in 2020, page: 10609510.1016/j.cemconres.2020.106095
- 12.Author(s): Yang Gao, Bernhard BlümichPublished in Journal of Magnetic Resonance by Elsevier BV in 2020, page: 10674010.1016/j.jmr.2020.106740
- 13.Author(s): M.C. Paulus, A. Paulus, P.P.M. Schleker, P. Jakes, R.-A. Eichel, P. Heitjans, J. GranwehrPublished in Journal of Magnetic Resonance by Elsevier BV in 2019, page: 57-6610.1016/j.jmr.2019.04.006
- 14.Author(s): Robert Schulte Holthausen, Michael RaupachPublished in Cement and Concrete Research by Elsevier BV in 2019, page: 279-29310.1016/j.cemconres.2019.03.027
- 15.Author(s): Steffen Merz, Peter Jakes, Svitlana Taranenko, Rüdiger-A. Eichel, Josef GranwehrPublished in Physical Chemistry Chemical Physics by Royal Society of Chemistry (RSC) in 2019, page: 17018-1702810.1039/c9cp02651g
- 16.Author(s): Ville‐Veikko TelkkiPublished in Magnetic Resonance in Chemistry by Wiley in 2018, page: 619-63210.1002/mrc.4722
- 17.Author(s): Guannan Zhang, Susanna Ahola, Mathilde H. Lerche, Ville-Veikko Telkki, Christian HiltyPublished in Analytical Chemistry by American Chemical Society (ACS) in 2018, page: 11131-1113710.1021/acs.analchem.8b03096
- 18.Author(s): Till Überrück, Oliver Neudert, Klaus-Dieter Kreuer, Bernhard Blümich, Josef Granwehr, Siegfried Stapf, Songi HanPublished in Physical Chemistry Chemical Physics by Royal Society of Chemistry (RSC) in 2018, page: 26660-2667410.1039/c8cp04607g
- 19.Author(s): Steffen A. Kayser, Achim Mester, Andreas Mertens, Peter Jakes, Rüdiger-A. Eichel, Josef GranwehrPublished in Physical Chemistry Chemical Physics by Royal Society of Chemistry (RSC) in 2018, page: 13765-1377610.1039/c8cp01067f
- 20.Author(s): Otto Mankinen, Julia Hollenbach, Susanna Ahola, Jörg Matysik, Ville-Veikko TelkkiPublished in Microporous and Mesoporous Materials by Elsevier BV in 2018, page: 75-7810.1016/j.micromeso.2017.10.024
- 21.Author(s): M.C. Paulus, M.F. Graf, P.P.R.M.L. Harks, A. Paulus, P.P.M. Schleker, P.H.L. Notten, R.-A. Eichel, J. GranwehrPublished in Journal of Magnetic Resonance by Elsevier BV in 2018, page: 133-14210.1016/j.jmr.2018.07.008
- 22.Author(s): Andreas Mertens, Josef GranwehrPublished in Journal of Energy Storage by Elsevier BV in 2017, page: 401-40810.1016/j.est.2017.07.029
- 23.Author(s): Andreas Mertens, Shicheng Yu, Nino Schön, Deniz C. Gunduz, Hermann Tempel, Roland Schierholz, Florian Hausen, Hans Kungl, Josef Granwehr, Rüdiger-A. EichelPublished in Solid State Ionics by Elsevier BV in 2017, page: 180-18610.1016/j.ssi.2017.07.023
- 24.Author(s): Magnus F. Graf, Hermann Tempel, Simone S. Köcher, Roland Schierholz, Christoph Scheurer, Hans Kungl, Rüdiger-A. Eichel, Josef GranwehrPublished in RSC Advances by Royal Society of Chemistry (RSC) in 2017, page: 25276-2528410.1039/c7ra01622k
- 25.Author(s): David P. Cistola, Michelle D. RobinsonPublished in TrAC Trends in Analytical Chemistry by Elsevier BV in 2016, page: 53-6410.1016/j.trac.2016.04.020
- 26.Author(s): V Bortolotti, R J S Brown, P Fantazzini, G Landi, F ZamaPublished in Inverse Problems by IOP Publishing in 2016, page: 01500310.1088/1361-6420/33/1/015003
- 27.Author(s): Susanna Ahola, Vladimir V Zhivonitko, Otto Mankinen, Guannan Zhang, Anu M. Kantola, Hsueh-Ying Chen, Christian Hilty, Igor V. Koptyug, Ville-Veikko TelkkiPublished in Nature Communications by Springer Science and Business Media LLC in 201510.1038/ncomms9363
- 28.Author(s): Paul D Teal, Craig EcclesPublished in Inverse Problems by IOP Publishing in 2015, page: 04501010.1088/0266-5611/31/4/045010
- 29.Author(s): Susanna Ahola, Ville‐Veikko TelkkiPublished in ChemPhysChem by Wiley in 2014, page: 1687-169210.1002/cphc.201301117
- 30.Author(s): Paul D. TealPublished in Diffusion Fundamentals by Leipzig University Library in 201410.62721/diffusion-fundamentals.22.837
- 31.Author(s): Diana Bernin, Daniel TopgaardPublished in Current Opinion in Colloid & Interface Science by Elsevier BV in 2013, page: 166-17210.1016/j.cocis.2013.03.007
- 1.Author(s): Angela F Harper, Tabea Huss, Simone S Köcher, Christoph ScheurerPublished by American Chemical Society (ACS) in 202410.26434/chemrxiv-2024-k4fbw
- 2.Author(s): P. Philipp M. Schleker, Rüdiger-A. Eichel, Josef GranwehrPublished by American Chemical Society (ACS) in 202310.26434/chemrxiv-2023-0cdr1
- 3.Author(s): Davis Thomas Daniel, Steffen Oevermann, Souvik Mitra, Katharina Rudolf, Andreas Heuer, Rüdiger-A. Eichel, Martin Winter, Diddo Diddens, Gunther Brunklaus, Josef GranwehrPublished by American Chemical Society (ACS) in 202310.26434/chemrxiv-2023-jnq5d
- 4.Author(s): Sudad H Al-Obaidi, Kamensky IPPublished by Center for Open Science in 202210.31219/osf.io/5hrqk
- 5.Author(s): Marc C. Paulus, Anja Paulus, Rüdiger-A. Eichel, Josef GranwehrPublished by American Chemical Society (ACS) in 202110.26434/chemrxiv-2021-3hj92
- 6.Author(s): Marc C. Paulus, Anja Paulus, Rüdiger-A. Eichel, Josef GranwehrPublished by American Chemical Society (ACS) in 202110.33774/chemrxiv-2021-3hj92