This commit is contained in:
François Boulogne 2025-06-25 12:16:11 +02:00
commit 82eff06057
141 changed files with 10910 additions and 0 deletions

294
docs/_build/html/api_reference.html vendored Normal file
View file

@ -0,0 +1,294 @@
<!DOCTYPE html>
<html lang="en" data-content_root="./">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>API Reference &#8212; optifik documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=5ecbeea2" />
<link rel="stylesheet" type="text/css" href="_static/basic.css?v=b08954a9" />
<link rel="stylesheet" type="text/css" href="_static/alabaster.css?v=27fed22d" />
<script src="_static/documentation_options.js?v=5929fcd5"></script>
<script src="_static/doctools.js?v=9bcbadda"></script>
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Examples" href="examples.html" />
<link rel="prev" title="Installation" href="installation.html" />
<link rel="stylesheet" href="_static/custom.css" type="text/css" />
</head><body>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="api-reference">
<h1>API Reference<a class="headerlink" href="#api-reference" title="Link to this heading"></a></h1>
<p>Below is the complete reference for Optifiks public API.</p>
<section id="module-optifik.io">
<span id="io"></span><h2>io<a class="headerlink" href="#module-optifik.io" title="Link to this heading"></a></h2>
<dl class="py function">
<dt class="sig sig-object py" id="optifik.io.load_spectrum">
<span class="sig-prename descclassname"><span class="pre">optifik.io.</span></span><span class="sig-name descname"><span class="pre">load_spectrum</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">spectrum_path</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wavelength_min</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wavelength_max</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">inf</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">delimiter</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">','</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/optifik/io.html#load_spectrum"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#optifik.io.load_spectrum" title="Link to this definition"></a></dt>
<dd><p>Load a spectrum file.</p>
<p>TODO : describe expected format</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><dl class="simple">
<dt><strong>spectrum_path</strong><span class="classifier">string</span></dt><dd><p>File path.</p>
</dd>
<dt><strong>wavelength_min</strong><span class="classifier">scalar, optional</span></dt><dd><p>Cut the data at this minimum wavelength (included).</p>
</dd>
<dt><strong>wavelength_max</strong><span class="classifier">scalar, optional</span></dt><dd><p>Cut the data at this maximum wavelength (included).</p>
</dd>
<dt><strong>delimiter</strong><span class="classifier">string, optional</span></dt><dd><p>Delimiter between columns in the datafile.</p>
</dd>
</dl>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><dl class="simple">
<dt><strong>values</strong><span class="classifier">arrays</span></dt><dd><p>(lamdbas, intensities)</p>
</dd>
</dl>
</dd>
</dl>
</dd></dl>
</section>
<section id="module-optifik.fft">
<span id="fft"></span><h2>fft<a class="headerlink" href="#module-optifik.fft" title="Link to this heading"></a></h2>
<dl class="py function">
<dt class="sig sig-object py" id="optifik.fft.thickness_from_fft">
<span class="sig-prename descclassname"><span class="pre">optifik.fft.</span></span><span class="sig-name descname"><span class="pre">thickness_from_fft</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wavelengths</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">intensities</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">refractive_index</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">num_half_space</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">plot</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/optifik/fft.html#thickness_from_fft"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#optifik.fft.thickness_from_fft" title="Link to this definition"></a></dt>
<dd><p>Determine the tickness by Fast Fourier Transform.</p>
<dl class="field-list">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><dl class="simple">
<dt><strong>wavelengths</strong><span class="classifier">array</span></dt><dd><p>Wavelength values in nm.</p>
</dd>
<dt><strong>intensities</strong><span class="classifier">array</span></dt><dd><p>Intensity values.</p>
</dd>
<dt><strong>refractive_index</strong><span class="classifier">scalar, optional</span></dt><dd><p>Value of the refractive index of the medium.</p>
</dd>
<dt><strong>num_half_space</strong><span class="classifier">scalar, optional</span></dt><dd><p>Number of points to compute FFTs half space.
If <cite>None</cite>, default corresponds to <cite>10*len(wavelengths)</cite>.</p>
</dd>
<dt><strong>plot</strong><span class="classifier">boolean, optional</span></dt><dd><p>Show plot of the transformed signal and the peak detection.</p>
</dd>
</dl>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><dl>
<dt><strong>results</strong><span class="classifier">Instance of <cite>OptimizeResult</cite> class.</span></dt><dd><p>The attribute <cite>thickness</cite> gives the thickness value in nm.</p>
</dd>
</dl>
</dd>
</dl>
</dd></dl>
</section>
<section id="module-optifik.minmax">
<span id="minmax"></span><h2>minmax<a class="headerlink" href="#module-optifik.minmax" title="Link to this heading"></a></h2>
<dl class="py function">
<dt class="sig sig-object py" id="optifik.minmax.thickness_from_minmax">
<span class="sig-prename descclassname"><span class="pre">optifik.minmax.</span></span><span class="sig-name descname"><span class="pre">thickness_from_minmax</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wavelengths</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">intensities</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">refractive_index</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">min_peak_prominence</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">min_peak_distance</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">method</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'linreg'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">plot</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/optifik/minmax.html#thickness_from_minmax"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#optifik.minmax.thickness_from_minmax" title="Link to this definition"></a></dt>
<dd><p>Return the thickness from a min-max detection.</p>
<dl class="field-list">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><dl class="simple">
<dt><strong>wavelengths</strong><span class="classifier">array</span></dt><dd><p>Wavelength values in nm.</p>
</dd>
<dt><strong>intensities</strong><span class="classifier">array</span></dt><dd><p>Intensity values.</p>
</dd>
<dt><strong>refractive_index</strong><span class="classifier">scalar, optional</span></dt><dd><p>Value of the refractive index of the medium.</p>
</dd>
<dt><strong>min_peak_prominence</strong><span class="classifier">scalar, optional</span></dt><dd><p>Required prominence of peaks.</p>
</dd>
<dt><strong>min_peak_distance</strong><span class="classifier">scalar, optional</span></dt><dd><p>Minimum distance between peaks.</p>
</dd>
<dt><strong>method</strong><span class="classifier">string, optional</span></dt><dd><p>Either linreg for linear regression or ransac
for Randon Sampling Consensus.</p>
</dd>
<dt><strong>plot</strong><span class="classifier">boolean, optional</span></dt><dd><p>Show plots of peak detection and lin regression.</p>
</dd>
</dl>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><dl>
<dt><strong>results</strong><span class="classifier">Instance of <cite>OptimizeResult</cite> class.</span></dt><dd><p>The attribute <cite>thickness</cite> gives the thickness value in nm.</p>
</dd>
</dl>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>For more details about <cite>min_peak_prominence</cite> and <cite>min_peak_distance</cite>,
see the documentation of <cite>scipy.signal.find_peaks</cite>. This function
is used to find extrema.</p>
</dd></dl>
</section>
<section id="module-optifik.scheludko">
<span id="scheludko"></span><h2>scheludko<a class="headerlink" href="#module-optifik.scheludko" title="Link to this heading"></a></h2>
<dl class="py function">
<dt class="sig sig-object py" id="optifik.scheludko.get_default_start_stop_wavelengths">
<span class="sig-prename descclassname"><span class="pre">optifik.scheludko.</span></span><span class="sig-name descname"><span class="pre">get_default_start_stop_wavelengths</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wavelengths</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">intensities</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">refractive_index</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">min_peak_prominence</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">plot</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/optifik/scheludko.html#get_default_start_stop_wavelengths"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#optifik.scheludko.get_default_start_stop_wavelengths" title="Link to this definition"></a></dt>
<dd><p>Returns the start and stop wavelength values of the last monotonic branch.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><dl class="simple">
<dt><strong>wavelengths</strong><span class="classifier">array</span></dt><dd><p>Wavelength values in nm.</p>
</dd>
<dt><strong>intensities</strong><span class="classifier">array</span></dt><dd><p>Intensity values.</p>
</dd>
<dt><strong>refractive_index</strong><span class="classifier">scalar, optional</span></dt><dd><p>Value of the refractive index of the medium.</p>
</dd>
<dt><strong>min_peak_prominence</strong><span class="classifier">scalar</span></dt><dd><p>Required prominence of peaks.</p>
</dd>
<dt><strong>plot</strong><span class="classifier">bool, optional</span></dt><dd><p>Display a curve, useful for checking or debuging. The default is None.</p>
</dd>
</dl>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><dl class="simple">
<dt><strong>wavelength_start</strong><span class="classifier">scalar</span></dt><dd></dd>
<dt><strong>wavelength_stop</strong><span class="classifier">scalar</span></dt><dd></dd>
</dl>
</dd>
<dt class="field-odd">Raises<span class="colon">:</span></dt>
<dd class="field-odd"><dl class="simple">
<dt>RuntimeError</dt><dd><p>if at least one maximum and one minimum are not detected.</p>
</dd>
</dl>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt class="sig sig-object py" id="optifik.scheludko.thickness_from_scheludko">
<span class="sig-prename descclassname"><span class="pre">optifik.scheludko.</span></span><span class="sig-name descname"><span class="pre">thickness_from_scheludko</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">wavelengths</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">intensities</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">refractive_index</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wavelength_start</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wavelength_stop</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">interference_order</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">intensities_void</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">plot</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/optifik/scheludko.html#thickness_from_scheludko"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#optifik.scheludko.thickness_from_scheludko" title="Link to this definition"></a></dt>
<dd><p>Compute the film thickness based on Scheludko method.</p>
<dl class="field-list">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><dl class="simple">
<dt><strong>wavelengths</strong><span class="classifier">array</span></dt><dd><p>Wavelength values in nm.</p>
</dd>
<dt><strong>intensities</strong><span class="classifier">array</span></dt><dd><p>Intensity values.</p>
</dd>
<dt><strong>refractive_index</strong><span class="classifier">scalar, optional</span></dt><dd><p>Value of the refractive index of the medium.</p>
</dd>
<dt><strong>wavelength_start</strong><span class="classifier">scalar, optional</span></dt><dd><p>Starting value of a monotonic branch.
Mandatory if interference_order != 0.</p>
</dd>
<dt><strong>wavelength_stop</strong><span class="classifier">scalar, optional</span></dt><dd><p>Stoping value of a monotonic branch.
Mandatory if interference_order != 0.</p>
</dd>
<dt><strong>interference_order</strong><span class="classifier">scalar, optional</span></dt><dd><p>Interference order, zero or positive integer.
If set to None, the value is guessed.</p>
</dd>
<dt><strong>intensities_void</strong><span class="classifier">array, optional</span></dt><dd><p>Intensity in absence of a film.
Mandatory if interference_order == 0.</p>
</dd>
<dt><strong>plot</strong><span class="classifier">bool, optional</span></dt><dd><p>Display a curve, useful for checking or debuging. The default is None.</p>
</dd>
</dl>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><dl>
<dt><strong>results</strong><span class="classifier">Instance of <cite>OptimizeResult</cite> class.</span></dt><dd><p>The attribute <cite>thickness</cite> gives the thickness value in nm.</p>
</dd>
</dl>
</dd>
</dl>
</dd></dl>
</section>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<h1 class="logo"><a href="index.html">optifik</a></h1>
<search id="searchbox" style="display: none" role="search">
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" placeholder="Search"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script><h3>Navigation</h3>
<p class="caption" role="heading"><span class="caption-text">Documentation</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">API Reference</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#module-optifik.io">io</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-optifik.fft">fft</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-optifik.minmax">minmax</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-optifik.scheludko">scheludko</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a></li>
</ul>
<div class="relations">
<h3>Related Topics</h3>
<ul>
<li><a href="index.html">Documentation overview</a><ul>
<li>Previous: <a href="installation.html" title="previous chapter">Installation</a></li>
<li>Next: <a href="examples.html" title="next chapter">Examples</a></li>
</ul></li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="footer">
&#169;2025, F. Boulogne et al..
|
Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.2.3</a>
&amp; <a href="https://alabaster.readthedocs.io">Alabaster 1.0.0</a>
|
<a href="_sources/api_reference.rst.txt"
rel="nofollow">Page source</a>
</div>
</body>
</html>