From c8868c3e63f3ab8130be8d2845cc7200d30eee88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Boulogne?= Date: Fri, 20 Jun 2025 09:23:40 +0200 Subject: [PATCH] upd --- check.py | 8 +- optifik/io.py | 3 + optifik/minmax.py | 2 +- optifik/scheludko.py | 48 +++-- optifik/utils.py | 1 + .../order0/h=f-temps-660nm_0.txt | 165 ------------------ .../order0/h_moy_et_std=f-temps-0.txt | 165 ------------------ tests/spectraVictor2/order0/known_value.txt | 164 ----------------- tests/spectraVictor2/order0/known_value.yaml | 154 ---------------- tests/spectraVictor2/order1/known_value.txt | 66 ------- tests/spectraVictor2/order1/known_value.yaml | 64 ------- tests/spectraVictor2/order5/known_value.txt | 7 - tests/spectraVictor2/order5/known_value.yaml | 4 +- tests/test_SV2o0.py | 26 ++- tests/test_SV2o1.py | 3 +- 15 files changed, 63 insertions(+), 817 deletions(-) delete mode 100644 tests/spectraVictor2/order0/h=f-temps-660nm_0.txt delete mode 100644 tests/spectraVictor2/order0/h_moy_et_std=f-temps-0.txt delete mode 100644 tests/spectraVictor2/order0/known_value.txt delete mode 100644 tests/spectraVictor2/order1/known_value.txt delete mode 100644 tests/spectraVictor2/order5/known_value.txt diff --git a/check.py b/check.py index 87211b4..f55e107 100644 --- a/check.py +++ b/check.py @@ -72,7 +72,7 @@ def play_order1(): 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) plot_spectrum(lambdas, intensities, title='Raw') @@ -112,7 +112,7 @@ def play_order0(): 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) plot_spectrum(lambdas, intensities, title='Raw') @@ -120,6 +120,7 @@ def play_order0(): lambdas, intensities = io.load_spectrum(spectrum_file, lambda_min=450) plot_spectrum(lambdas, intensities, title='Raw, cropped') + smoothed_intensities = smooth_intensities(intensities) plot_spectrum(lambdas, smoothed_intensities, title='Smoothed') @@ -217,4 +218,5 @@ if __name__ == '__main__': #check_basic() #check_SV1() #play() - play_order0() + play_order1() + diff --git a/optifik/io.py b/optifik/io.py index bcbb35c..017f0e3 100644 --- a/optifik/io.py +++ b/optifik/io.py @@ -8,6 +8,9 @@ def load_spectrum(spectrum_path, """ Load a spectrum file. + + TODO : describe expected format + Parameters ---------- spectrum_path : string diff --git a/optifik/minmax.py b/optifik/minmax.py index fa1edf1..39eff61 100644 --- a/optifik/minmax.py +++ b/optifik/minmax.py @@ -131,7 +131,7 @@ def thickness_from_minmax(wavelengths, fig, ax = plt.subplots() 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, intercept + k_values * slope, label='Fit') diff --git a/optifik/scheludko.py b/optifik/scheludko.py index 9095cfe..d6df6c4 100644 --- a/optifik/scheludko.py +++ b/optifik/scheludko.py @@ -8,13 +8,13 @@ from .utils import OptimizeResult, setup_matplotlib from .analysis import finds_peak -def thickness_scheludko_at_order(wavelengths, +def _thicknesses_scheludko_at_order(wavelengths, intensities, interference_order, refractive_index, Imin=None): """ - Compute the film thickness for a given interference order. + Compute thicknesses vs wavelength for a given interference order. Parameters ---------- @@ -56,7 +56,7 @@ def thickness_scheludko_at_order(wavelengths, return prefactor * (term1 + term2) -def Delta(wavelengths, thickness, interference_order, refractive_index): +def _Delta(wavelengths, thickness, interference_order, refractive_index): """ Compute the Delta values. @@ -103,7 +103,7 @@ def Delta(wavelengths, thickness, interference_order, refractive_index): 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. @@ -123,7 +123,7 @@ def Delta_fit(xdata, thickness, interference_order): """ 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: setup_matplotlib() + # A bit extreme... max_tested_order = 12 r_index = refractive_index + # idx_min idx max peaks_min, peaks_max = finds_peak(wavelengths, intensities, min_peak_prominence=min_peak_prominence, plot=plot) @@ -181,12 +183,18 @@ def thickness_from_scheludko(wavelengths, lambda_start = min(lambda_min, lambda_max) lambda_stop = max(lambda_min, lambda_max) + + # Guess the order... + # mask input data mask = (wavelengths >= lambda_start) & (wavelengths <= lambda_stop) wavelengths_masked = wavelengths[mask] r_index_masked = r_index[mask] intensities_masked = intensities[mask] + + + min_difference = np.inf best_m = None best_h_values = None @@ -197,7 +205,7 @@ def thickness_from_scheludko(wavelengths, plt.xlabel(r'$\lambda$ ($ \mathrm{nm} $)') 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, m, r_index_masked) @@ -216,30 +224,32 @@ def thickness_from_scheludko(wavelengths, print(f"Optimized: m={best_m}") + # Compute the thickness for the selected order + # Delta num = 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)) - # DeltaVrai = (intensities_raw_masked -np.min(intensities_raw_masked))/(np.max(intensities_raw_masked) -np.min(intensities_raw_masked)) + # Delta_from_data = (intensities_masked -np.min(intensities_masked))/(np.max(intensities_masked) -np.min(intensities_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), best_m, 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] std_err = np.sqrt(pcov[0][0]) 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.plot(wavelengths_masked, DeltaVrai, + plt.plot(wavelengths_masked, Delta_from_data, 'bo-', markersize=2, label=r'$\mathrm{{Smoothed}}\ \mathrm{{Data}}$') # Scheludko @@ -294,7 +304,7 @@ def thickness_for_order0(wavelengths, # We assume to be at order zero. best_m = 0 - best_h_values = thickness_scheludko_at_order(wavelengths_masked, + best_h_values = _thicknesses_scheludko_at_order(wavelengths_masked, intensities_masked, best_m, r_index_masked, @@ -311,21 +321,21 @@ def thickness_for_order0(wavelengths, # Delta num = 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)) 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] std_err = np.sqrt(pcov[0][0]) 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.plot(wavelengths_masked, DeltaVrai, + plt.plot(wavelengths_masked, Delta_from_data, 'bo-', markersize=2, label=r'$\mathrm{{Smoothed}}\ \mathrm{{Data}}$') # Scheludko diff --git a/optifik/utils.py b/optifik/utils.py index 20e0423..e78e73f 100644 --- a/optifik/utils.py +++ b/optifik/utils.py @@ -33,6 +33,7 @@ def is_latex_installed(): import shutil return shutil.which("latex") is not None or shutil.which("pdflatex") is not None + def setup_matplotlib(): """ Configure matplotlib with LaTeX text rendering and custom font sizes. diff --git a/tests/spectraVictor2/order0/h=f-temps-660nm_0.txt b/tests/spectraVictor2/order0/h=f-temps-660nm_0.txt deleted file mode 100644 index 9b7c42d..0000000 --- a/tests/spectraVictor2/order0/h=f-temps-660nm_0.txt +++ /dev/null @@ -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 diff --git a/tests/spectraVictor2/order0/h_moy_et_std=f-temps-0.txt b/tests/spectraVictor2/order0/h_moy_et_std=f-temps-0.txt deleted file mode 100644 index 533f893..0000000 --- a/tests/spectraVictor2/order0/h_moy_et_std=f-temps-0.txt +++ /dev/null @@ -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 diff --git a/tests/spectraVictor2/order0/known_value.txt b/tests/spectraVictor2/order0/known_value.txt deleted file mode 100644 index 22d47ff..0000000 --- a/tests/spectraVictor2/order0/known_value.txt +++ /dev/null @@ -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 diff --git a/tests/spectraVictor2/order0/known_value.yaml b/tests/spectraVictor2/order0/known_value.yaml index 47b267a..85bed4f 100644 --- a/tests/spectraVictor2/order0/known_value.yaml +++ b/tests/spectraVictor2/order0/known_value.yaml @@ -7,158 +7,4 @@ 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 diff --git a/tests/spectraVictor2/order1/known_value.txt b/tests/spectraVictor2/order1/known_value.txt deleted file mode 100644 index c113c24..0000000 --- a/tests/spectraVictor2/order1/known_value.txt +++ /dev/null @@ -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 diff --git a/tests/spectraVictor2/order1/known_value.yaml b/tests/spectraVictor2/order1/known_value.yaml index 34172e4..64f61c8 100644 --- a/tests/spectraVictor2/order1/known_value.yaml +++ b/tests/spectraVictor2/order1/known_value.yaml @@ -1,66 +1,2 @@ T09503.xy: 248.14965413533835 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 diff --git a/tests/spectraVictor2/order5/known_value.txt b/tests/spectraVictor2/order5/known_value.txt deleted file mode 100644 index 07fb698..0000000 --- a/tests/spectraVictor2/order5/known_value.txt +++ /dev/null @@ -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 diff --git a/tests/spectraVictor2/order5/known_value.yaml b/tests/spectraVictor2/order5/known_value.yaml index 5596d85..543e1cd 100644 --- a/tests/spectraVictor2/order5/known_value.yaml +++ b/tests/spectraVictor2/order5/known_value.yaml @@ -2,6 +2,6 @@ T5543.xy: 744.4489624060151 T5612.xy: 717.9160763949778 T5677.xy: 701.481313603109 T5747.xy: 682.6197534309899 -#T5817.xy: 662.8052850714089 -#T5879.xy: 655.1166828174141 +T5817.xy: 662.8052850714089 +T5879.xy: 655.1166828174141 T5951.xy: 620.3741353383458 diff --git a/tests/test_SV2o0.py b/tests/test_SV2o0.py index a977b19..f3b4217 100644 --- a/tests/test_SV2o0.py +++ b/tests/test_SV2o0.py @@ -10,19 +10,19 @@ from optifik.analysis import smooth_intensities import yaml -def load(): +def load(filename): 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: thickness_dict = yaml.safe_load(yaml_file) data = [(os.path.join(FOLDER, fn), val) for fn, val in thickness_dict.items()] return data -@pytest.mark.skip('...') -@pytest.mark.parametrize("spectrum_path, expected", load()) -def test_SV2o0(spectrum_path, expected): +#@pytest.mark.skip('...') +@pytest.mark.parametrize("spectrum_path, expected", load('known_value.yaml')) +def test_SV2o0_small_tol(spectrum_path, expected): lambdas, raw_intensities = load_spectrum(spectrum_path, lambda_min=450) smoothed_intensities = smooth_intensities(raw_intensities) @@ -37,3 +37,19 @@ def test_SV2o0(spectrum_path, expected): 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) + diff --git a/tests/test_SV2o1.py b/tests/test_SV2o1.py index 843df27..c099e44 100644 --- a/tests/test_SV2o1.py +++ b/tests/test_SV2o1.py @@ -20,10 +20,9 @@ def load(): return data -@pytest.mark.skip('...') +#@pytest.mark.skip('...') @pytest.mark.parametrize("spectrum_path, expected", load()) def test_SV2o1(spectrum_path, expected): - pass lambdas, raw_intensities = load_spectrum(spectrum_path, lambda_min=450) smoothed_intensities = smooth_intensities(raw_intensities)