This commit is contained in:
François Boulogne 2025-06-20 13:35:19 +02:00
parent 12922f0f79
commit a9df27b7c7
13 changed files with 43 additions and 40 deletions

View file

@ -2,8 +2,8 @@ import numpy as np
def load_spectrum(spectrum_path,
lambda_min=0,
lambda_max=np.inf,
wavelength_min=0,
wavelength_max=np.inf,
delimiter=','):
"""
Load a spectrum file.
@ -15,10 +15,10 @@ def load_spectrum(spectrum_path,
----------
spectrum_path : string
File path.
lambda_min : scalar, optional
Cut the data at this minimum wavelength in nm.
lambda_max : scalar, optional
Cut the data at this maximum wavelength in nm.
wavelength_min : scalar, optional
Cut the data at this minimum wavelength (included).
wavelength_max : scalar, optional
Cut the data at this maximum wavelength (included).
delimiter : string, optional
Delimiter between columns in the datafile.
@ -30,5 +30,5 @@ def load_spectrum(spectrum_path,
data = np.loadtxt(spectrum_path, delimiter=delimiter)
lambdas, intensities = np.column_stack(data)
mask = (lambdas > lambda_min) & (lambdas < lambda_max)
mask = (lambdas >= wavelength_min) & (lambdas <= wavelength_max)
return lambdas[mask], intensities[mask]

View file

@ -288,14 +288,14 @@ def thickness_from_scheludko(wavelengths,
wavelengths_masked = wavelengths[mask]
r_index_masked = r_index[mask]
intensities_masked = intensities[mask]
intensities_I_min_masked = intensities_void[mask]
intensities_void_masked = intensities_void[mask]
interference_order = 0
thickness_values = _thicknesses_scheludko_at_order(wavelengths_masked,
intensities_masked,
interference_order,
r_index_masked,
Imin=intensities_I_min_masked)
intensities_void=intensities_void_masked)
elif interference_order > 0:
h_values = _thicknesses_scheludko_at_order(wavelengths_masked,
@ -312,8 +312,8 @@ def thickness_from_scheludko(wavelengths,
# Delta
if interference_order == 0:
num = intensities_masked - np.min(intensities_I_min_masked)
denom = np.max(intensities_masked) - np.min(intensities_I_min_masked)
num = intensities_masked - np.min(intensities_void_masked)
denom = np.max(intensities_masked) - np.min(intensities_void_masked)
else:
num = intensities_masked - np.min(intensities_masked)
denom = np.max(intensities_masked) - np.min(intensities_masked)
@ -340,7 +340,8 @@ def thickness_from_scheludko(wavelengths,
plt.figure()
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
label = rf'$\mathrm{{Scheludko}}\ (h = {np.mean(thickness_values):.1f} \pm {np.std(thickness_values):.1f}\ \mathrm{{nm}})$'
@ -348,7 +349,9 @@ def thickness_from_scheludko(wavelengths,
'go-', markersize=2, label=label)
# Fit
label = rf'$\mathrm{{Fit}}\ (h = {fitted_h:.1f}\pm {std_err:.1f} \ \mathrm{{nm}})$'
plt.plot(wavelengths_masked, Delta_values, 'ro-', markersize=2, label=label)
plt.plot(wavelengths_masked, Delta_values,
'ro-', markersize=2,
label=label)
plt.legend()
plt.ylabel(r'$\Delta$')