tmp_optifik/check.py
François Boulogne 30a9eef102 init
2025-05-21 13:32:32 +02:00

100 lines
2.7 KiB
Python

# -*- coding: utf-8 -*-
"""
Created on Tue Apr 15 13:34:02 2025
@author: ziapkoff
"""
import os
import matplotlib.pyplot as plt
from optifik.analysis import *
from optifik.auto import auto
plt.rc('text', usetex=True)
plt.rcParams.update({
'axes.labelsize': 26,
'xtick.labelsize': 32,
'ytick.labelsize': 32,
'legend.fontsize': 23,
})
def check_basic():
##### Chemin du dossier contenant le spectre #####
DATA_FOLDER = os.path.abspath(os.path.join(os.path.curdir, 'tests', 'basic'))
#SAVE_FOLDER = DATA_FOLDER
# FILE_NAME = '003582.xy' #FFT Exemple -> FFT 3524.51
# FILE_NAME = '000004310.xy' #OOspectro Exemple -> minmax 1338.35
# FILE_NAME = '000005253.xy'#Scheludko 4 pics Exemple -> scheludko ²
# FILE_NAME = '000006544.xy'#Scheludko 2 pics Exemple -> ombre ## Diviser prominence FFT par 2
# FILE_NAME = '000018918.xy' #Scheludko 1 pic max Exemple -> ombre ## Diviser prominence FFT par 2
FILE_NAME = '000004310.xy' #TEST#
auto(DATA_FOLDER, FILE_NAME, plot=False)
def check_SV1():
DATA_FOLDER = os.path.join('tests', 'spectraVictor1')
import yaml
yaml_file = os.path.join(DATA_FOLDER, 'known_value.yaml')
with open(yaml_file, "r") as yaml_file:
thickness_dict = yaml.safe_load(yaml_file)
for fn, val in thickness_dict.items():
#auto(DATA_FOLDER, fn)
spectre_file = os.path.join(DATA_FOLDER, fn)
##### Affichage du spectre brut et récupération des Intesités brutes#####
raw_intensities = plot_xy(spectre_file)
##### Affichage du spectre lissé #####
smoothed_intensities, intensities, lambdas = Data_Smoothed(spectre_file)
##### Indice Optique en fonction de Lambda #####
indice = 1.324188 + 3102.060378 / (lambdas**2)
prominence = 0.02
##### Find Peak #####
total_extrema, smoothed_intensities, raw_intensities, lambdas, peaks_min, peaks_max = finds_peak(spectre_file,
min_peak_prominence=prominence)
thickness_minmax = thickness_from_minmax(lambdas,
smoothed_intensities,
refractive_index=indice,
min_peak_prominence=prominence)
thickness = thickness_minmax.thickness
print(f'thickness: {thickness:.2f} nm')
print(f'expected: {val}')
print('#-' * 10)
if __name__ == '__main__':
check_basic()
#check_SV1()