Metadata-Version: 2.4
Name: optifik
Version: 0.4.5
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

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

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

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


## For contributors

* Clone the repository and install in editable mode
```
git clone https://github.com/sciunto-org/optifik.git
cd optifik
uv sync
```

* Install doc tools
```
uv sync --extra docs
```

* Run the test suite
```
uv run pytest
```

* Build the doc
```
uv run 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.
