Metadata-Version: 2.4
Name: optifik
Version: 0.4.4
Summary: Compute film thickness from interferometry
Author-email: François Boulogne <francois.boulogne@cnrs.fr>, Victor Ziapkoff <victor.ziapkoff@universite-paris-saclay.fr>
License-Expression: GPL-3.0
Project-URL: Documentation, https://sciunto.github.io/optifik/
Project-URL: Repository, https://github.com/sciunto-org/optifik
Project-URL: Issues, https://github.com/sciunto-org/optifik/issues
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.10.0
Requires-Dist: scipy>=1.1.0
Requires-Dist: matplotlib>=1.3.1
Requires-Dist: scikit-learn>=1.5
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pyyaml; extra == "dev"
Requires-Dist: bumpver; extra == "dev"
Provides-Extra: docs
Requires-Dist: sphinx>=7.0; extra == "docs"
Requires-Dist: sphinx-rtd-theme>=2.0; extra == "docs"
Requires-Dist: numpydoc>=1.6; extra == "docs"
Requires-Dist: myst-parser>=2.0; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints>=2.0; extra == "docs"
Requires-Dist: sphinx-copybutton>=0.5; extra == "docs"
Requires-Dist: sphinx-design>=0.5; extra == "docs"
Requires-Dist: nbsphinx; extra == "docs"
Requires-Dist: jupyter; extra == "docs"
Requires-Dist: ipykernel; extra == "docs"
Requires-Dist: sphinx-book-theme; extra == "docs"
Dynamic: license-file

# Optifik

Python library to compute a thickness from an interferometric spectrum.

This library replaces [oospectro](https://github.com/sciunto-org/oospectro/).

## Documentation

<https://sciunto-org.github.io/optifik/>

## Publication

We published the methodology in [EPJE Tips and Tricks (open access CC BY)](https://doi.org/10.1140/epje/s10189-025-00545-9).

To cite this paper:
```bibtex
@Article{Ziapkoff2026,
  author       = {V. Ziapkoff, F. Boulogne, A. Salonen, E. Rio},
  date         = {2026},
  journaltitle = {The European Physical Journal E},
  title        = {White light interferometry analysis for measuring thin film thickness down to a few nanometers},
  doi          = {10.1140/epje/s10189-025-00545-9},
  issn         = {1292-895X},
  number       = {1},
  pages        = {4},
  volume       = {49},
  abstract     = {We present a practical white-light interferometric method, supported by an open-source Python library optifik for automated spectrum-to-thickness deduction, enabling foam film measurements down to a few nanometers. We describe three typical spectral scenarii encountered in this method: spectra exhibiting numerous interference fringes, spectra with a moderate number of peaks, and spectra with only a few identifiable features, providing illustrative examples for each case. We also discuss the main limitations of the technique, including spectral range constraints, the necessity of knowing the refractive index, and the influence of spectral resolution and signal quality. Finally, we demonstrate the application of the method in a time-resolved study of a TTAB (tetradecyltrimethylammonium bromide) foam film undergoing elongation and thinning. This method can be adapted to measure any thin non-opaque layer.},
  refid        = {Ziapkoff2026},
}
```


## Installation

The use of pip must be limited to virtualenv


* From PyPI
```
pip install optifik
```

* From tarball
```
pip install /path/to/optifik-0.1.0.tar.gz
```

* From the source code
```
pip install .
```


## For contributors

* Install an editable version
```
pip install -e .
```

* Install dev tools
```
pip install -e ".[dev]"
```

* Run the test suite
```
pytest
```

* Install doc tools
```
pip install -e ".[docs]"
```

* Build the doc
```
sphinx-build -b html docs docs/_build/html
```

## Licence

The source code is released under the GNU General Public License v3.0.
See LICENSE for details.
