User API

IO

oospectro.io.load_spectrum(spectrum_path, lambda_min=100, lambda_max=1000, delimiter=', ')[source]

Load a spectrum file.

Parameters:
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.

delimiter : string, optional

Delimiter between columns in the datafile.

Returns:
values : arrays

(lamdbas, intensities)

Thickness

class oospectro.thickness.OptimizeResult[source]

Bases: dict

Represents the optimization result.

Notes

This class has been copied from scipy.optimize

clear() → None. Remove all items from D.
copy() → a shallow copy of D
fromkeys(iterable, value=None, /)

Create a new dictionary with keys from iterable and values set to value.

get(key, default=None, /)

Return the value for key if key is in the dictionary, else default.

items() → a set-like object providing a view on D's items
keys() → a set-like object providing a view on D's keys
pop(k[, d]) → v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised

popitem() → (k, v), remove and return some (key, value) pair as a

2-tuple; but raise KeyError if D is empty.

setdefault(key, default=None, /)

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

update([E, ]**F) → None. Update D from dict/iterable E and F.

If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]

values() → an object providing a view on D's values
oospectro.thickness.thickness_from_fft(lambdas, intensities, refractive_index=1.0, num_half_space=None, debug=False)[source]

Determine the tickness by Fast Fourier Transform.

Parameters:
lambdas : array

Wavelength values in nm.

intensities : array

Intensity values.

refractive_index : scalar, optional

Value of the refractive index of the medium.

num_half_space : scalar, optional

Number of points to compute FFT’s half space. If None, default corresponds to 10*len(lambdas).

debug : boolean, optional

Show plot of the transformed signal and the peak detection.

Returns:
results : Instance of OptimizeResult class.

The attribute thickness gives the thickness value in nm.

oospectro.thickness.thickness_from_minmax(lambdas, intensities, refractive_index=1.0, min_peak_prominence=0.01, min_peak_distance=10, method='linreg', debug=False)[source]

Return the thickness from a min-max detection.

Parameters:
lambdas : array

Wavelength values in nm.

intensities : array

Intensity values.

refractive_index : scalar, optional

Value of the refractive index of the medium.

min_peak_prominence : scalar, optional

Required prominence of peaks.

min_peak_distance : scalar, optional

Minimum distance between peaks.

method : string, optional

Either ‘linreg’ for linear regression or ‘ransac’ for Randon Sampling Consensus.

debug : boolean, optional

Show plots of peak detection and lin regression.

Returns:
results : Instance of OptimizeResult class.

The attribute thickness gives the thickness value in nm.

Notes

For more details about min_peak_prominence and min_peak_distance, see the documentation of scipy.signal.find_peaks. This function is used to find extrema.