This commit is contained in:
François Boulogne 2025-06-20 09:23:40 +02:00
parent 9e77fc8f03
commit c8868c3e63
15 changed files with 63 additions and 817 deletions

View file

@ -72,7 +72,7 @@ def play_order1():
spectrum_file = os.path.join(DATA_FOLDER, FILE_NAME) spectrum_file = os.path.join(DATA_FOLDER, FILE_NAME)
spectrum_file = 'tests/spectraVictor2/order1/T10219.xy' #TEST# spectrum_file = 'tests/spectraVictor2/order5/T5817.xy' #TEST#
lambdas, intensities = io.load_spectrum(spectrum_file) lambdas, intensities = io.load_spectrum(spectrum_file)
plot_spectrum(lambdas, intensities, title='Raw') plot_spectrum(lambdas, intensities, title='Raw')
@ -112,7 +112,7 @@ def play_order0():
spectrum_file = os.path.join(DATA_FOLDER, FILE_NAME) spectrum_file = os.path.join(DATA_FOLDER, FILE_NAME)
spectrum_file = 'tests/spectraVictor2/order0/T14787.xy' #TEST# spectrum_file = 'tests/spectraVictor2/order0/T16053.xy' #TEST#
lambdas, intensities = io.load_spectrum(spectrum_file) lambdas, intensities = io.load_spectrum(spectrum_file)
plot_spectrum(lambdas, intensities, title='Raw') plot_spectrum(lambdas, intensities, title='Raw')
@ -120,6 +120,7 @@ def play_order0():
lambdas, intensities = io.load_spectrum(spectrum_file, lambda_min=450) lambdas, intensities = io.load_spectrum(spectrum_file, lambda_min=450)
plot_spectrum(lambdas, intensities, title='Raw, cropped') plot_spectrum(lambdas, intensities, title='Raw, cropped')
smoothed_intensities = smooth_intensities(intensities) smoothed_intensities = smooth_intensities(intensities)
plot_spectrum(lambdas, smoothed_intensities, title='Smoothed') plot_spectrum(lambdas, smoothed_intensities, title='Smoothed')
@ -217,4 +218,5 @@ if __name__ == '__main__':
#check_basic() #check_basic()
#check_SV1() #check_SV1()
#play() #play()
play_order0() play_order1()

View file

@ -8,6 +8,9 @@ def load_spectrum(spectrum_path,
""" """
Load a spectrum file. Load a spectrum file.
TODO : describe expected format
Parameters Parameters
---------- ----------
spectrum_path : string spectrum_path : string

View file

@ -131,7 +131,7 @@ def thickness_from_minmax(wavelengths,
fig, ax = plt.subplots() fig, ax = plt.subplots()
ax.set_xlabel('extremum n°') ax.set_xlabel('extremum n°')
ax.set_ylabel('1 / $\lambda$') ax.set_ylabel('$n$($\lambda$) / $\lambda$')
ax.plot(k_values, n_over_lambda, 's', label='Extrema') ax.plot(k_values, n_over_lambda, 's', label='Extrema')
ax.plot(k_values, intercept + k_values * slope, label='Fit') ax.plot(k_values, intercept + k_values * slope, label='Fit')

View file

@ -8,13 +8,13 @@ from .utils import OptimizeResult, setup_matplotlib
from .analysis import finds_peak from .analysis import finds_peak
def thickness_scheludko_at_order(wavelengths, def _thicknesses_scheludko_at_order(wavelengths,
intensities, intensities,
interference_order, interference_order,
refractive_index, refractive_index,
Imin=None): Imin=None):
""" """
Compute the film thickness for a given interference order. Compute thicknesses vs wavelength for a given interference order.
Parameters Parameters
---------- ----------
@ -56,7 +56,7 @@ def thickness_scheludko_at_order(wavelengths,
return prefactor * (term1 + term2) return prefactor * (term1 + term2)
def Delta(wavelengths, thickness, interference_order, refractive_index): def _Delta(wavelengths, thickness, interference_order, refractive_index):
""" """
Compute the Delta values. Compute the Delta values.
@ -103,7 +103,7 @@ def Delta(wavelengths, thickness, interference_order, refractive_index):
return (A * (1 + alpha)) / (1 + A * alpha) return (A * (1 + alpha)) / (1 + A * alpha)
def Delta_fit(xdata, thickness, interference_order): def _Delta_fit(xdata, thickness, interference_order):
""" """
Wrapper on Delta() for curve_fit. Wrapper on Delta() for curve_fit.
@ -123,7 +123,7 @@ def Delta_fit(xdata, thickness, interference_order):
""" """
lambdas, r_index = xdata lambdas, r_index = xdata
return Delta(lambdas, thickness, interference_order, r_index) return _Delta(lambdas, thickness, interference_order, r_index)
@ -156,9 +156,11 @@ def thickness_from_scheludko(wavelengths,
if plot: if plot:
setup_matplotlib() setup_matplotlib()
# A bit extreme...
max_tested_order = 12 max_tested_order = 12
r_index = refractive_index r_index = refractive_index
# idx_min idx max
peaks_min, peaks_max = finds_peak(wavelengths, intensities, peaks_min, peaks_max = finds_peak(wavelengths, intensities,
min_peak_prominence=min_peak_prominence, min_peak_prominence=min_peak_prominence,
plot=plot) plot=plot)
@ -181,12 +183,18 @@ def thickness_from_scheludko(wavelengths,
lambda_start = min(lambda_min, lambda_max) lambda_start = min(lambda_min, lambda_max)
lambda_stop = max(lambda_min, lambda_max) lambda_stop = max(lambda_min, lambda_max)
# Guess the order...
# mask input data # mask input data
mask = (wavelengths >= lambda_start) & (wavelengths <= lambda_stop) mask = (wavelengths >= lambda_start) & (wavelengths <= lambda_stop)
wavelengths_masked = wavelengths[mask] wavelengths_masked = wavelengths[mask]
r_index_masked = r_index[mask] r_index_masked = r_index[mask]
intensities_masked = intensities[mask] intensities_masked = intensities[mask]
min_difference = np.inf min_difference = np.inf
best_m = None best_m = None
best_h_values = None best_h_values = None
@ -197,7 +205,7 @@ def thickness_from_scheludko(wavelengths,
plt.xlabel(r'$\lambda$ ($ \mathrm{nm} $)') plt.xlabel(r'$\lambda$ ($ \mathrm{nm} $)')
for m in range(0, max_tested_order+1): for m in range(0, max_tested_order+1):
h_values = thickness_scheludko_at_order(wavelengths_masked, h_values = _thicknesses_scheludko_at_order(wavelengths_masked,
intensities_masked, intensities_masked,
m, r_index_masked) m, r_index_masked)
@ -216,30 +224,32 @@ def thickness_from_scheludko(wavelengths,
print(f"Optimized: m={best_m}") print(f"Optimized: m={best_m}")
# Compute the thickness for the selected order
# Delta # Delta
num = intensities_masked - np.min(intensities_masked) num = intensities_masked - np.min(intensities_masked)
denom = np.max(intensities_masked) - np.min(intensities_masked) denom = np.max(intensities_masked) - np.min(intensities_masked)
DeltaVrai = num / denom Delta_from_data = num / denom
# DeltaVrai = (intensities_masked -np.min(intensities_masked))/(np.max(intensities_masked) -np.min(intensities_masked)) # Delta_from_data = (intensities_masked -np.min(intensities_masked))/(np.max(intensities_masked) -np.min(intensities_masked))
# DeltaVrai = (intensities_raw_masked -np.min(intensities_raw_masked))/(np.max(intensities_raw_masked) -np.min(intensities_raw_masked)) # Delta_from_data = (intensities_raw_masked -np.min(intensities_raw_masked))/(np.max(intensities_raw_masked) -np.min(intensities_raw_masked))
DeltaScheludko = Delta(wavelengths_masked, DeltaScheludko = _Delta(wavelengths_masked,
np.mean(best_h_values), np.mean(best_h_values),
best_m, best_m,
r_index_masked) r_index_masked)
xdata = (wavelengths_masked, r_index_masked) xdata = (wavelengths_masked, r_index_masked)
popt, pcov = curve_fit(lambda x, h: Delta_fit(x, h, m), xdata, DeltaVrai, p0=[np.mean(best_h_values)]) popt, pcov = curve_fit(lambda x, h: _Delta_fit(x, h, m), xdata, Delta_from_data, p0=[np.mean(best_h_values)])
fitted_h = popt[0] fitted_h = popt[0]
std_err = np.sqrt(pcov[0][0]) std_err = np.sqrt(pcov[0][0])
if plot: if plot:
Delta_values = Delta(wavelengths_masked, fitted_h, best_m, r_index_masked) Delta_values = _Delta(wavelengths_masked, fitted_h, best_m, r_index_masked)
plt.figure() plt.figure()
plt.plot(wavelengths_masked, DeltaVrai, plt.plot(wavelengths_masked, Delta_from_data,
'bo-', markersize=2, label=r'$\mathrm{{Smoothed}}\ \mathrm{{Data}}$') 'bo-', markersize=2, label=r'$\mathrm{{Smoothed}}\ \mathrm{{Data}}$')
# Scheludko # Scheludko
@ -294,7 +304,7 @@ def thickness_for_order0(wavelengths,
# We assume to be at order zero. # We assume to be at order zero.
best_m = 0 best_m = 0
best_h_values = thickness_scheludko_at_order(wavelengths_masked, best_h_values = _thicknesses_scheludko_at_order(wavelengths_masked,
intensities_masked, intensities_masked,
best_m, best_m,
r_index_masked, r_index_masked,
@ -311,21 +321,21 @@ def thickness_for_order0(wavelengths,
# Delta # Delta
num = intensities_masked - np.min(intensities_I_min_masked) num = intensities_masked - np.min(intensities_I_min_masked)
denom = np.max(intensities_masked) - np.min(intensities_I_min_masked) denom = np.max(intensities_masked) - np.min(intensities_I_min_masked)
DeltaVrai = num / denom Delta_from_data = num / denom
DeltaScheludko = Delta(wavelengths_masked, np.mean(best_h_values), best_m, r_index_masked) DeltaScheludko = _Delta(wavelengths_masked, np.mean(best_h_values), best_m, r_index_masked)
#print(np.mean(best_h_values),np.std(best_h_values)) #print(np.mean(best_h_values),np.std(best_h_values))
xdata = (wavelengths_masked, r_index_masked) xdata = (wavelengths_masked, r_index_masked)
popt, pcov = curve_fit(lambda x, h: Delta_fit(x, h, best_m), xdata, DeltaVrai, p0=[np.mean(best_h_values)]) popt, pcov = curve_fit(lambda x, h: _Delta_fit(x, h, best_m), xdata, Delta_from_data, p0=[np.mean(best_h_values)])
fitted_h = popt[0] fitted_h = popt[0]
std_err = np.sqrt(pcov[0][0]) std_err = np.sqrt(pcov[0][0])
if plot: if plot:
Delta_values = Delta(wavelengths_masked, fitted_h, best_m, r_index_masked) Delta_values = _Delta(wavelengths_masked, fitted_h, best_m, r_index_masked)
plt.figure() plt.figure()
plt.plot(wavelengths_masked, DeltaVrai, plt.plot(wavelengths_masked, Delta_from_data,
'bo-', markersize=2, label=r'$\mathrm{{Smoothed}}\ \mathrm{{Data}}$') 'bo-', markersize=2, label=r'$\mathrm{{Smoothed}}\ \mathrm{{Data}}$')
# Scheludko # Scheludko

View file

@ -33,6 +33,7 @@ def is_latex_installed():
import shutil import shutil
return shutil.which("latex") is not None or shutil.which("pdflatex") is not None return shutil.which("latex") is not None or shutil.which("pdflatex") is not None
def setup_matplotlib(): def setup_matplotlib():
""" """
Configure matplotlib with LaTeX text rendering and custom font sizes. Configure matplotlib with LaTeX text rendering and custom font sizes.

View file

@ -1,165 +0,0 @@
t (s) h (nm) pour lambda specifique
14.143 123.95295558284394
14.211 115.26802909226424
14.283 115.70504212601391
14.354 116.09744924015496
14.432 115.5189035534501
14.503 113.26445263139607
14.573 113.32417457681417
14.642 113.39326934945271
14.714 112.32070148051518
14.787 108.97163127594759
14.857 109.64817699038785
14.927 107.22679420091224
14.993 107.32677769871788
15.063 106.35472238842755
15.136 105.39933227233728
15.206 104.03778591581003
15.277 102.33092796214031
15.35 100.8763921934027
15.418 100.49522871553593
15.492 99.08281468883276
15.562 97.3258169088354
15.633 95.90149574477304
15.706 95.4219114489226
15.777 93.9096812365406
15.838 93.38407856938173
15.91 91.74790491639014
15.981 91.22741714198933
16.053 90.45300835427635
16.127 88.5882756065361
16.203 87.67147079674957
16.267 87.09015257940483
16.335 85.72596923247862
16.406 84.17908589568572
16.481 83.45410256101752
16.545 82.12170648181431
16.617 81.21047762108086
16.678 80.31780246995505
16.739 79.15724700943923
16.812 78.44798662153762
16.871 77.4520761261443
16.933 76.66196112954584
17.008 75.373800563203
17.077 74.28223895630823
17.137 73.38655766446928
17.2 72.1896895417961
17.271 71.56217278784045
17.343 70.12160217440957
17.416 68.92969343342145
17.486 68.12049284214301
17.549 66.80303824279235
17.625 65.99608104409013
17.695 65.25251792159017
17.769 64.00266354954327
17.836 63.015781912851686
17.906 61.562998778797
17.969 60.8954006296276
18.04 59.61929259890727
18.111 58.78017522831741
18.177 57.867491523721604
18.244 56.628928486673345
18.315 55.58274202642659
18.388 54.76911277607284
18.458 53.23742605239474
18.531 52.457573607339896
18.605 51.130249935893495
18.674 50.18605538362272
18.748 48.82375634938857
18.818 47.898926722625646
18.889 47.24554206801689
18.96 45.92649719589015
19.033 45.31404852626354
19.103 44.04792240037513
19.175 43.512162472031946
19.246 42.39974893171179
19.307 41.40370710601314
19.368 40.190000003978724
19.442 39.7908194502919
19.504 38.86873798965855
19.577 38.256582406214875
19.646 36.732536890445104
19.72 36.302952043599674
19.795 35.33077538066582
19.861 33.82853466198359
19.922 33.6264129799091
19.984 32.56882980723177
20.056 31.716029588070004
20.128 30.9389509299541
20.201 29.801282167285436
20.27 28.843694109308284
20.343 28.022933381569352
20.417 27.12695804779101
20.489 26.697121450809053
20.558 25.801797115458406
20.628 24.80468338477568
20.7 24.08677644034063
20.771 23.216851687498718
20.833 22.403639545458578
20.907 21.450824944786188
20.978 20.698403220925407
21.05 20.180242579832115
21.12 19.073026686872062
21.193 18.067527932796555
21.266 17.788340332627318
21.335 16.73984202033769
21.409 16.15580200933398
21.477 15.392400576341881
21.541 14.662332974949772
21.61 14.114418248767004
21.673 13.670336677360423
21.746 12.643113927012816
21.818 12.517769120321669
21.887 11.197431215995442
21.948 11.459041839515868
22.02 11.521111661090618
22.092 10.38658595887989
22.157 10.383172535760965
22.228 10.061869216456225
22.299 9.278080287311097
22.371 8.83668184571166
22.447 8.352209963184631
22.512 8.955785625765454
22.573 7.90930609871769
22.648 3.4643319393515317
22.718 4.1507304003627565
22.788 3.2807740203778155
22.865 1.5726691486794457
22.932 3.0897989180398984
22.994 1.0558253042494077
23.064 1.4392233684991647
23.138 2.0496273589825957
23.208 0.3478652040929014
23.28 2.3547687674325593
23.361 2.8459896671389484
23.433 0.7120535181141793
23.496 1.5881943255362871
23.566 -0.8318854167488029
23.639 -0.19584335188209473
23.71 4.127075248698121
23.782 1.503825079280638
23.842 1.298701481981237
23.905 -1.9875197542258602
23.978 1.1092062721462115
24.052 1.7960423393624443
24.121 2.2015433421886708
24.194 -1.118879018385083
24.262 -1.6892400749730334
24.326 -1.7383043762838022
24.397 2.6087265909066253
24.467 -0.6892358011630055
24.53 2.4643805068983773
24.6 1.4116956879360614
24.675 3.1703609297698665
24.744 0.11053285060109477
24.817 2.316149667416408
24.894 0.5364199414541123
24.957 -2.152460736629538
25.024 -2.0971135573427073
25.092 2.091629797823038
25.152 2.4945719274003846
25.215 1.1069965768579215
25.286 2.1208495454024825
25.348 2.5511295565177003
25.418 -2.908469183861368
25.492 -1.9420736825064098

View file

@ -1,165 +0,0 @@
t [s] h [nm] std (nm)
14.143 106.11639778595912 30.545634732163943
14.211 105.26545279848125 28.52047456695036
14.283 104.26752623171188 26.363479538579295
14.354 103.79046627976656 24.742903945306793
14.432 103.34266505455395 23.489128514433645
14.503 103.12884600795759 22.132182398570716
14.573 103.06399963854429 20.9507704903489
14.642 102.35959208905595 20.03235533699279
14.714 102.5976297360478 19.101475938455117
14.787 101.83448536168487 17.925193731379117
14.857 101.7895097852865 17.137914759425595
14.927 101.17493302828665 15.742718827421363
14.993 100.80520208279451 15.257076653869667
15.063 100.54799593222108 14.209474209952296
15.136 99.86609132812438 13.175941550199818
15.206 99.6662837867646 12.35743273639029
15.277 98.49456106870832 11.25371148138226
15.35 98.0978952886305 10.303424283998332
15.418 97.33459693248665 9.404196253510465
15.492 96.67636557177185 8.70048111245147
15.562 95.82203069308336 7.589250440278183
15.633 95.13941569612058 6.962351529708
15.706 94.09369098855977 6.2248638386316015
15.777 93.56158824624366 5.5099919900226535
15.838 92.79207369603348 5.123476432171773
15.91 91.79782454588346 4.409797985066031
15.981 90.88875672273443 3.931621627279069
16.053 89.9639502223029 3.4313648674992816
16.127 88.72268525203262 3.0031157865631397
16.203 88.0676016210193 2.4490826702671527
16.267 86.9569817156192 2.2343429050895094
16.335 86.23011736082192 2.1359848524131855
16.406 84.84597896770313 2.0196549103183337
16.481 84.01650097259069 1.862020959344227
16.545 82.80856982185257 1.644995098540361
16.617 81.83296732418725 1.5162274861826561
16.678 80.6199685471055 1.5844509991973137
16.739 79.8817234019573 1.39789396828855
16.812 78.70763984576578 1.32209700937526
16.871 77.75802818756716 1.2734435711383558
16.933 76.83035166592714 1.2481819752030532
17.008 75.81092513715852 1.1671271653499498
17.077 74.75967362641244 1.0706956828269905
17.137 73.66131373805375 1.1210734291563405
17.2 72.84009781677588 1.0925290771264549
17.271 71.84198511747022 0.9978672550098565
17.343 70.77724471639185 0.962764233072028
17.416 69.58504854013584 0.9520807042220532
17.486 68.49117481584074 0.9310332412929812
17.549 67.37505682292482 0.8901311466900783
17.625 66.60712412684927 0.8147468911319982
17.695 65.39330432258598 0.8597575672237636
17.769 64.47185217277163 0.7894921754846663
17.836 63.219701948215146 0.764645794822967
17.906 62.26781063203917 0.7708835919401242
17.969 61.281906371709944 0.7778636814453863
18.04 60.103504061567826 0.7333165639182637
18.111 58.9964327706274 0.7418470801535355
18.177 58.16073146901566 0.7268974867622288
18.244 57.18854753332005 0.6927385308621755
18.315 56.20528814652521 0.6631025170813724
18.388 55.10052484061043 0.6725064491518644
18.458 53.49397601428968 0.6370416565260154
18.531 52.78420598250904 0.610138090332582
18.605 51.48802150104169 0.5951279202426865
18.674 50.66187266546967 0.5881226555154143
18.748 49.33575703984319 0.5594727305311288
18.818 48.44737395300477 0.5751258392886279
18.889 47.570823188865795 0.5406325233884514
18.96 46.484116826353734 0.5742585200114736
19.033 45.77435072061017 0.5415816908968057
19.103 44.5307243853119 0.511433249616128
19.175 43.78475307679595 0.5014171268967204
19.246 42.728776703777115 0.5023215153979327
19.307 41.972996459972904 0.5099987892788741
19.368 40.96172338688027 0.4568402153222491
19.442 40.23258565788984 0.4763027359623337
19.504 39.35868621745207 0.48225783048961685
19.577 38.369993427118 0.44391107776081457
19.646 37.513473877901916 0.46845383663028733
19.72 36.536001234048264 0.46516847176084564
19.795 35.52254408919478 0.443960246003758
19.861 34.506771499061884 0.45011081459632757
19.922 33.82463469827142 0.4233563946396004
19.984 33.07357444979178 0.4355646340772075
20.056 32.15558523060816 0.43626032058271247
20.128 31.23564251511888 0.49170687509478644
20.201 30.287726496717813 0.45416653540685137
20.27 29.385028497375963 0.4270738465850512
20.343 28.431616010999125 0.4347902736237744
20.417 27.683923070692693 0.42695095670686867
20.489 26.737488613516305 0.45278042582884837
20.558 25.85742230944388 0.41199512141706657
20.628 25.008872604690616 0.4501261274250471
20.7 24.236608953538102 0.4184832385606888
20.771 23.42279732888372 0.4150147100400077
20.833 22.726782964859765 0.43177187513625587
20.907 21.753276462220196 0.42783554702390364
20.978 21.047296716455232 0.4169289595801188
21.05 20.24238926782152 0.38561414831049734
21.12 19.471487316901708 0.4011081070842918
21.193 18.652977168387096 0.4727716229961961
21.266 17.91211326425452 0.4352024140125865
21.335 17.125315626657553 0.4865824816398401
21.409 16.398663935511888 0.41838345585997655
21.477 15.63153512338511 0.43976117072793025
21.541 15.056929244294878 0.43229264391539207
21.61 14.322876028673338 0.4677504312330715
21.673 13.67307215931059 0.4777463476108174
21.746 13.087637313510536 0.5540253049495246
21.818 12.467702172910847 0.5324604147572234
21.887 11.742984925741325 0.4981164749695251
21.948 11.33336508157063 0.5045917344431364
22.02 10.692640696170157 0.5523742781892421
22.092 10.221631772105418 0.6036096043948823
22.157 9.759927648666086 0.5846456011987878
22.228 9.330865008406427 0.5945639413602695
22.299 8.877658382063986 0.5673596614969241
22.371 8.62094988755906 0.5864616375634336
22.447 8.222058039204013 0.6992877261279412
22.512 8.006262644617506 0.6450523071425306
22.573 7.750234311623006 0.6895675289799758
22.648 -0.1860450140446746 2.724625146806257
22.718 0.16858320467414908 2.8018461911084964
22.788 0.013916368625691886 2.800859245316047
22.865 -0.22983579928956727 2.8261247197015957
22.932 0.42849447677842284 2.781439430681408
22.994 -0.15879127221641012 2.8764846354120444
23.064 -0.05702859929439703 2.758153058036167
23.138 -0.28238785940809474 2.8433627703646804
23.208 -0.04677045815109829 2.8046115604212516
23.28 0.10622397101177118 2.690762262226982
23.361 -0.056486531082082264 2.7479101000387596
23.433 -0.19195903874464348 2.742298991217573
23.496 0.3174455838862061 2.752649937827332
23.566 0.4212472316635139 2.6942004245074367
23.639 -0.08188211517206441 2.8131311684858034
23.71 -0.031362241346674105 2.7422768662100108
23.782 0.24374494581413836 2.8699880502943573
23.842 0.5137655470624791 2.5771752549995135
23.905 0.4100317888285217 2.7060700129595125
23.978 0.052999945481396665 2.7466211391007183
24.052 0.03100867442276235 2.775570693009334
24.121 0.06673756432307115 2.7309186678744735
24.194 0.283191715116624 2.681545876509415
24.262 0.1465420379315899 2.766319014136172
24.326 -0.4110775372145088 2.7667290245700302
24.397 -0.27723621268598997 2.757380202727223
24.467 -0.29292502435630685 2.7994956605691184
24.53 -0.11833538549119174 2.8792824223688513
24.6 0.21774734366005688 2.8091738958297636
24.675 0.29038335571491425 2.7810918779271523
24.744 0.1487598101960199 2.9307953336128394
24.817 -0.05724629688892814 2.603857441352638
24.894 0.1292582893341783 2.734745440453152
24.957 -0.26241550677117415 2.6634280696744392
25.024 0.15662032151375388 2.6972457093158755
25.092 0.12870229878053396 2.723716117346017
25.152 -0.05969663407195464 2.7795880368478114
25.215 0.08931436507089993 2.4286177688155863
25.286 0.0633955037982669 2.431709047615466
25.348 -0.16086340227080703 2.372686695136225
25.418 0.006043068485756687 2.3384316618396457
25.492 0.051876684414049454 2.4379916024319437

View file

@ -1,164 +0,0 @@
T14143.xy 123.95295558284394
T14211.xy 115.26802909226424
T14283.xy 115.70504212601391
T14354.xy 116.09744924015496
T14432.xy 115.5189035534501
T14503.xy 113.26445263139607
T14573.xy 113.32417457681417
T14642.xy 113.39326934945271
T14714.xy 112.32070148051518
T14787.xy 108.97163127594759
T14857.xy 109.64817699038785
T14927.xy 107.22679420091224
T14993.xy 107.32677769871788
T15063.xy 106.35472238842755
T15136.xy 105.39933227233728
T15206.xy 104.03778591581003
T15277.xy 102.33092796214031
T15350.xy 100.8763921934027
T15418.xy 100.49522871553593
T15492.xy 99.08281468883276
T15562.xy 97.3258169088354
T15633.xy 95.90149574477304
T15706.xy 95.4219114489226
T15777.xy 93.9096812365406
T15838.xy 93.38407856938173
T15910.xy 91.74790491639014
T15981.xy 91.22741714198933
T16053.xy 90.45300835427635
T16127.xy 88.5882756065361
T16203.xy 87.67147079674957
T16267.xy 87.09015257940483
T16335.xy 85.72596923247862
T16406.xy 84.17908589568572
T16481.xy 83.45410256101752
T16545.xy 82.12170648181431
T16617.xy 81.21047762108086
T16678.xy 80.31780246995505
T16739.xy 79.15724700943923
T16812.xy 78.44798662153762
T16871.xy 77.4520761261443
T16933.xy 76.66196112954584
T17008.xy 75.373800563203
T17077.xy 74.28223895630823
T17137.xy 73.38655766446928
T17200.xy 72.1896895417961
T17271.xy 71.56217278784045
T17343.xy 70.12160217440957
T17416.xy 68.92969343342145
T17486.xy 68.12049284214301
T17549.xy 66.80303824279235
T17625.xy 65.99608104409013
T17695.xy 65.25251792159017
T17769.xy 64.00266354954327
T17836.xy 63.015781912851686
T17906.xy 61.562998778797
T17969.xy 60.8954006296276
T18040.xy 59.61929259890727
T18111.xy 58.78017522831741
T18177.xy 57.867491523721604
T18244.xy 56.628928486673345
T18315.xy 55.58274202642659
T18388.xy 54.76911277607284
T18458.xy 53.23742605239474
T18531.xy 52.457573607339896
T18605.xy 51.130249935893495
T18674.xy 50.18605538362272
T18748.xy 48.82375634938857
T18818.xy 47.898926722625646
T18889.xy 47.24554206801689
T18960.xy 45.92649719589015
T19033.xy 45.31404852626354
T19103.xy 44.04792240037513
T19175.xy 43.512162472031946
T19246.xy 42.39974893171179
T19307.xy 41.40370710601314
T19368.xy 40.190000003978724
T19442.xy 39.7908194502919
T19504.xy 38.86873798965855
T19577.xy 38.256582406214875
T19646.xy 36.732536890445104
T19720.xy 36.302952043599674
T19795.xy 35.33077538066582
T19861.xy 33.82853466198359
T19922.xy 33.6264129799091
T19984.xy 32.56882980723177
T20056.xy 31.716029588070004
T20128.xy 30.9389509299541
T20201.xy 29.801282167285436
T20270.xy 28.843694109308284
T20343.xy 28.022933381569352
T20417.xy 27.12695804779101
T20489.xy 26.697121450809053
T20558.xy 25.801797115458406
T20628.xy 24.80468338477568
T20700.xy 24.08677644034063
T20771.xy 23.216851687498718
T20833.xy 22.403639545458578
T20907.xy 21.450824944786188
T20978.xy 20.698403220925407
T21050.xy 20.180242579832115
T21120.xy 19.073026686872062
T21193.xy 18.067527932796555
T21266.xy 17.788340332627318
T21335.xy 16.73984202033769
T21409.xy 16.15580200933398
T21477.xy 15.392400576341881
T21541.xy 14.662332974949772
T21610.xy 14.114418248767004
T21673.xy 13.670336677360423
T21746.xy 12.643113927012816
T21818.xy 12.517769120321669
T21887.xy 11.197431215995442
T21948.xy 11.459041839515868
T22020.xy 11.521111661090618
T22092.xy 10.38658595887989
T22157.xy 10.383172535760965
T22228.xy 10.061869216456225
T22299.xy 9.278080287311097
T22371.xy 8.83668184571166
T22447.xy 8.352209963184631
T22512.xy 8.955785625765454
T22573.xy 7.90930609871769
T22648.xy 3.4643319393515317
T22718.xy 4.1507304003627565
T22788.xy 3.2807740203778155
T22865.xy 1.5726691486794457
T22932.xy 3.0897989180398984
T22994.xy 1.0558253042494077
T23064.xy 1.4392233684991647
T23138.xy 2.0496273589825957
T23208.xy 0.3478652040929014
T23280.xy 2.3547687674325593
T23361.xy 2.8459896671389484
T23433.xy 0.7120535181141793
T23496.xy 1.5881943255362871
T23566.xy -0.8318854167488029
T23639.xy -0.19584335188209473
T23710.xy 4.127075248698121
T23782.xy 1.503825079280638
T23842.xy 1.298701481981237
T23905.xy -1.9875197542258602
T23978.xy 1.1092062721462115
T24052.xy 1.7960423393624443
T24121.xy 2.2015433421886708
T24194.xy -1.118879018385083
T24262.xy -1.6892400749730334
T24326.xy -1.7383043762838022
T24397.xy 2.6087265909066253
T24467.xy -0.6892358011630055
T24530.xy 2.4643805068983773
T24600.xy 1.4116956879360614
T24675.xy 3.1703609297698665
T24744.xy 0.11053285060109477
T24817.xy 2.316149667416408
T24894.xy 0.5364199414541123
T24957.xy -2.152460736629538
T25024.xy -2.0971135573427073
T25092.xy 2.091629797823038
T25152.xy 2.4945719274003846
T25215.xy 1.1069965768579215
T25286.xy 2.1208495454024825
T25348.xy 2.5511295565177003
T25418.xy -2.908469183861368
T25492.xy -1.9420736825064098

View file

@ -7,158 +7,4 @@ T14503.xy: 113.26445263139607
T14573.xy: 113.32417457681417 T14573.xy: 113.32417457681417
T14642.xy: 113.39326934945271 T14642.xy: 113.39326934945271
T14714.xy: 112.32070148051518 T14714.xy: 112.32070148051518
T14787.xy: 108.97163127594759
T14857.xy: 109.64817699038785 T14857.xy: 109.64817699038785
T14927.xy: 107.22679420091224
T14993.xy: 107.32677769871788
T15063.xy: 106.35472238842755
T15136.xy: 105.39933227233728
T15206.xy: 104.03778591581003
T15277.xy: 102.33092796214031
T15350.xy: 100.8763921934027
T15418.xy: 100.49522871553593
T15492.xy: 99.08281468883276
T15562.xy: 97.3258169088354
T15633.xy: 95.90149574477304
T15706.xy: 95.4219114489226
T15777.xy: 93.9096812365406
T15838.xy: 93.38407856938173
T15910.xy: 91.74790491639014
T15981.xy: 91.22741714198933
T16053.xy: 90.45300835427635
T16127.xy: 88.5882756065361
T16203.xy: 87.67147079674957
T16267.xy: 87.09015257940483
T16335.xy: 85.72596923247862
T16406.xy: 84.17908589568572
T16481.xy: 83.45410256101752
T16545.xy: 82.12170648181431
T16617.xy: 81.21047762108086
T16678.xy: 80.31780246995505
T16739.xy: 79.15724700943923
T16812.xy: 78.44798662153762
T16871.xy: 77.4520761261443
T16933.xy: 76.66196112954584
T17008.xy: 75.373800563203
T17077.xy: 74.28223895630823
T17137.xy: 73.38655766446928
T17200.xy: 72.1896895417961
T17271.xy: 71.56217278784045
T17343.xy: 70.12160217440957
T17416.xy: 68.92969343342145
T17486.xy: 68.12049284214301
T17549.xy: 66.80303824279235
T17625.xy: 65.99608104409013
T17695.xy: 65.25251792159017
T17769.xy: 64.00266354954327
T17836.xy: 63.015781912851686
T17906.xy: 61.562998778797
T17969.xy: 60.8954006296276
T18040.xy: 59.61929259890727
T18111.xy: 58.78017522831741
T18177.xy: 57.867491523721604
T18244.xy: 56.628928486673345
T18315.xy: 55.58274202642659
T18388.xy: 54.76911277607284
T18458.xy: 53.23742605239474
T18531.xy: 52.457573607339896
T18605.xy: 51.130249935893495
T18674.xy: 50.18605538362272
T18748.xy: 48.82375634938857
T18818.xy: 47.898926722625646
T18889.xy: 47.24554206801689
T18960.xy: 45.92649719589015
T19033.xy: 45.31404852626354
T19103.xy: 44.04792240037513
T19175.xy: 43.512162472031946
T19246.xy: 42.39974893171179
T19307.xy: 41.40370710601314
T19368.xy: 40.190000003978724
T19442.xy: 39.7908194502919
T19504.xy: 38.86873798965855
T19577.xy: 38.256582406214875
T19646.xy: 36.732536890445104
T19720.xy: 36.302952043599674
T19795.xy: 35.33077538066582
T19861.xy: 33.82853466198359
T19922.xy: 33.6264129799091
T19984.xy: 32.56882980723177
T20056.xy: 31.716029588070004
T20128.xy: 30.9389509299541
T20201.xy: 29.801282167285436
T20270.xy: 28.843694109308284
T20343.xy: 28.022933381569352
T20417.xy: 27.12695804779101
T20489.xy: 26.697121450809053
T20558.xy: 25.801797115458406
T20628.xy: 24.80468338477568
T20700.xy: 24.08677644034063
T20771.xy: 23.216851687498718
T20833.xy: 22.403639545458578
T20907.xy: 21.450824944786188
T20978.xy: 20.698403220925407
T21050.xy: 20.180242579832115
T21120.xy: 19.073026686872062
T21193.xy: 18.067527932796555
T21266.xy: 17.788340332627318
T21335.xy: 16.73984202033769
T21409.xy: 16.15580200933398
T21477.xy: 15.392400576341881
T21541.xy: 14.662332974949772
T21610.xy: 14.114418248767004
T21673.xy: 13.670336677360423
T21746.xy: 12.643113927012816
T21818.xy: 12.517769120321669
T21887.xy: 11.197431215995442
T21948.xy: 11.459041839515868
T22020.xy: 11.521111661090618
T22092.xy: 10.38658595887989
T22157.xy: 10.383172535760965
T22228.xy: 10.061869216456225
T22299.xy: 9.278080287311097
T22371.xy: 8.83668184571166
T22447.xy: 8.352209963184631
T22512.xy: 8.955785625765454
T22573.xy: 7.90930609871769
T22648.xy: 3.4643319393515317
T22718.xy: 4.1507304003627565
T22788.xy: 3.2807740203778155
T22865.xy: 1.5726691486794457
T22932.xy: 3.0897989180398984
T22994.xy: 1.0558253042494077
T23064.xy: 1.4392233684991647
T23138.xy: 2.0496273589825957
T23208.xy: 0.3478652040929014
T23280.xy: 2.3547687674325593
T23361.xy: 2.8459896671389484
T23433.xy: 0.7120535181141793
T23496.xy: 1.5881943255362871
T23566.xy: -0.8318854167488029
T23639.xy: -0.19584335188209473
T23710.xy: 4.127075248698121
T23782.xy: 1.503825079280638
T23842.xy: 1.298701481981237
T23905.xy: -1.9875197542258602
T23978.xy: 1.1092062721462115
T24052.xy: 1.7960423393624443
T24121.xy: 2.2015433421886708
T24194.xy: -1.118879018385083
T24262.xy: -1.6892400749730334
T24326.xy: -1.7383043762838022
T24397.xy: 2.6087265909066253
T24467.xy: -0.6892358011630055
T24530.xy: 2.4643805068983773
T24600.xy: 1.4116956879360614
T24675.xy: 3.1703609297698665
T24744.xy: 0.11053285060109477
T24817.xy: 2.316149667416408
T24894.xy: 0.5364199414541123
T24957.xy: -2.152460736629538
T25024.xy: -2.0971135573427073
T25092.xy: 2.091629797823038
T25152.xy: 2.4945719274003846
T25215.xy: 1.1069965768579215
T25286.xy: 2.1208495454024825
T25348.xy: 2.5511295565177003
T25418.xy: -2.908469183861368
T25492.xy: -1.9420736825064098

View file

@ -1,66 +0,0 @@
T09503.xz 248.14965413533835
T09574.xz 245.34121442533709
T09645.xz 245.46033847050612
T09718.xz 243.41903129124586
T09789.xz 241.21949876883892
T09861.xz 238.4571154091408
T09934.xz 236.11845951107506
T10006.xz 233.329724848239
T10078.xz 230.23128301432772
T10148.xz 227.2060868441092
T10219.xz 225.02036582651868
T10292.xz 222.3391859812666
T10365.xz 219.36439123675694
T10434.xz 216.8316887315054
T10508.xz 214.65439233174595
T10578.xz 212.6630194652351
T10652.xz 209.35291515985267
T10720.xz 207.53963211444182
T10792.xz 205.202151932784
T10865.xz 202.9202516375391
T10940.xz 200.48951783003758
T11012.xz 198.90498905791395
T11090.xz 196.25923365123484
T11160.xz 193.70937893792623
T11232.xz 191.97930409523318
T11294.xz 189.85169813518527
T11368.xz 187.60277990913383
T11438.xz 186.3322313281465
T11509.xz 184.2324022567865
T11581.xz 182.10502061232944
T11653.xz 180.0894053909909
T11724.xz 178.3073777205182
T11794.xz 176.2873336683524
T11869.xz 174.52572136333612
T11940.xz 172.6550661404221
T12014.xz 170.60551746889755
T12084.xz 169.20956775306206
T12154.xz 166.52192608722368
T12225.xz 165.7733825398034
T12296.xz 163.4955609022588
T12357.xz 162.00360928305108
T12420.xz 160.60197157017484
T12492.xz 159.09096945370646
T12563.xz 157.9826893495801
T12634.xz 155.80700194703243
T12705.xz 153.95358865552637
T12779.xz 153.0679760117474
T12851.xz 151.5209853112445
T12923.xz 149.24454346116275
T12993.xz 148.22548121802149
T13065.xz 147.15842152075152
T13138.xz 145.6549808317728
T13210.xz 143.81696112077432
T13281.xz 142.3835657314117
T13351.xz 141.46124817523673
T13426.xz 140.2439100090884
T13495.xz 138.15716499894242
T13566.xz 137.96533477180347
T13638.xz 134.74094291420806
T13710.xz 135.03189827660162
T13783.xz 130.63269740906642
T13855.xz 132.89681292564688
T13930.xz 133.08843881850441
T13997.xz 129.5682971991444
T14070.xz 131.84919488958164
T14143.xz 124.07482706766918

View file

@ -1,66 +1,2 @@
T09503.xy: 248.14965413533835 T09503.xy: 248.14965413533835
T09574.xy: 245.34121442533709 T09574.xy: 245.34121442533709
T09645.xy: 245.46033847050612
T09718.xy: 243.41903129124586
T09789.xy: 241.21949876883892
T09861.xy: 238.4571154091408
T09934.xy: 236.11845951107506
T10006.xy: 233.329724848239
T10078.xy: 230.23128301432772
T10148.xy: 227.2060868441092
T10219.xy: 225.02036582651868
T10292.xy: 222.3391859812666
T10365.xy: 219.36439123675694
T10434.xy: 216.8316887315054
T10508.xy: 214.65439233174595
T10578.xy: 212.6630194652351
T10652.xy: 209.35291515985267
T10720.xy: 207.53963211444182
T10792.xy: 205.202151932784
T10865.xy: 202.9202516375391
T10940.xy: 200.48951783003758
T11012.xy: 198.90498905791395
T11090.xy: 196.25923365123484
T11160.xy: 193.70937893792623
T11232.xy: 191.97930409523318
T11294.xy: 189.85169813518527
T11368.xy: 187.60277990913383
T11438.xy: 186.3322313281465
T11509.xy: 184.2324022567865
T11581.xy: 182.10502061232944
T11653.xy: 180.0894053909909
T11724.xy: 178.3073777205182
T11794.xy: 176.2873336683524
T11869.xy: 174.52572136333612
T11940.xy: 172.6550661404221
T12014.xy: 170.60551746889755
T12084.xy: 169.20956775306206
T12154.xy: 166.52192608722368
T12225.xy: 165.7733825398034
T12296.xy: 163.4955609022588
T12357.xy: 162.00360928305108
T12420.xy: 160.60197157017484
T12492.xy: 159.09096945370646
T12563.xy: 157.9826893495801
T12634.xy: 155.80700194703243
T12705.xy: 153.95358865552637
T12779.xy: 153.0679760117474
T12851.xy: 151.5209853112445
T12923.xy: 149.24454346116275
T12993.xy: 148.22548121802149
T13065.xy: 147.15842152075152
T13138.xy: 145.6549808317728
T13210.xy: 143.81696112077432
T13281.xy: 142.3835657314117
T13351.xy: 141.46124817523673
T13426.xy: 140.2439100090884
T13495.xy: 138.15716499894242
T13566.xy: 137.96533477180347
T13638.xy: 134.74094291420806
T13710.xy: 135.03189827660162
T13783.xy: 130.63269740906642
T13855.xy: 132.89681292564688
T13930.xy: 133.08843881850441
T13997.xy: 129.5682971991444
T14070.xy: 131.84919488958164
T14143.xy: 124.07482706766918

View file

@ -1,7 +0,0 @@
T5543.xz 744.4489624060151
T5612.xz 717.9160763949778
T5677.xz 701.481313603109
T5747.xz 682.6197534309899
T5817.xz 662.8052850714089
T5879.xz 655.1166828174141
T5951.xz 620.3741353383458

View file

@ -2,6 +2,6 @@ T5543.xy: 744.4489624060151
T5612.xy: 717.9160763949778 T5612.xy: 717.9160763949778
T5677.xy: 701.481313603109 T5677.xy: 701.481313603109
T5747.xy: 682.6197534309899 T5747.xy: 682.6197534309899
#T5817.xy: 662.8052850714089 T5817.xy: 662.8052850714089
#T5879.xy: 655.1166828174141 T5879.xy: 655.1166828174141
T5951.xy: 620.3741353383458 T5951.xy: 620.3741353383458

View file

@ -10,19 +10,19 @@ from optifik.analysis import smooth_intensities
import yaml import yaml
def load(): def load(filename):
FOLDER = os.path.join('tests', 'spectraVictor2', 'order0') FOLDER = os.path.join('tests', 'spectraVictor2', 'order0')
yaml_file = os.path.join(FOLDER, 'known_value.yaml') yaml_file = os.path.join(FOLDER, filename)
with open(yaml_file, "r") as yaml_file: with open(yaml_file, "r") as yaml_file:
thickness_dict = yaml.safe_load(yaml_file) thickness_dict = yaml.safe_load(yaml_file)
data = [(os.path.join(FOLDER, fn), val) for fn, val in thickness_dict.items()] data = [(os.path.join(FOLDER, fn), val) for fn, val in thickness_dict.items()]
return data return data
@pytest.mark.skip('...') #@pytest.mark.skip('...')
@pytest.mark.parametrize("spectrum_path, expected", load()) @pytest.mark.parametrize("spectrum_path, expected", load('known_value.yaml'))
def test_SV2o0(spectrum_path, expected): def test_SV2o0_small_tol(spectrum_path, expected):
lambdas, raw_intensities = load_spectrum(spectrum_path, lambda_min=450) lambdas, raw_intensities = load_spectrum(spectrum_path, lambda_min=450)
smoothed_intensities = smooth_intensities(raw_intensities) smoothed_intensities = smooth_intensities(raw_intensities)
@ -37,3 +37,19 @@ def test_SV2o0(spectrum_path, expected):
assert_allclose(result.thickness, expected, rtol=1e-1) assert_allclose(result.thickness, expected, rtol=1e-1)
@pytest.mark.parametrize("spectrum_path, expected", load('known_value_large_tol.yaml'))
def test_SV2o0_large_tol(spectrum_path, expected):
lambdas, raw_intensities = load_spectrum(spectrum_path, lambda_min=450)
smoothed_intensities = smooth_intensities(raw_intensities)
refractive_index = 1.324188 + 3102.060378 / (lambdas**2)
prominence = 0.020
result = thickness_for_order0(lambdas, smoothed_intensities,
refractive_index=refractive_index,
min_peak_prominence=prominence,
plot=False)
assert_allclose(result.thickness, expected, rtol=2.5e-1)

View file

@ -20,10 +20,9 @@ def load():
return data return data
@pytest.mark.skip('...') #@pytest.mark.skip('...')
@pytest.mark.parametrize("spectrum_path, expected", load()) @pytest.mark.parametrize("spectrum_path, expected", load())
def test_SV2o1(spectrum_path, expected): def test_SV2o1(spectrum_path, expected):
pass
lambdas, raw_intensities = load_spectrum(spectrum_path, lambda_min=450) lambdas, raw_intensities = load_spectrum(spectrum_path, lambda_min=450)
smoothed_intensities = smooth_intensities(raw_intensities) smoothed_intensities = smooth_intensities(raw_intensities)