skinoptics.refractive_index

SkinOptics
Copyright (C) 2024 Victor Lima
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Victor Lima
victorporto@ifsc.usp.br
victor.lima@ufscar.br
Release Date:
October 2024
Last Modification:
March 2025
References:
[HQ73] Hale & Querry 1973.
Optical Constants of Water in the 200-nm to 200-μm Wavelength Region.
[S81] Segelstein’s M.S. Thesis 1981.
The complex refractive index of water.
[LLX00] Li, Lin & Xie 2000.
Refractive index of human whole blood with different types in the visible and near-infrared ranges.
[D*06] Ding, Lu, Wooden, Kragel & Hu 2006.
Refractive indices of human skin tissues at eight wavelengths and estimated dispersion relations
between 300 and 1600 nm.
[FM06] Friebel & Meinke 2006.
Model function to calculate the refractive index of native hemoglobin in the wavelength range of
250–1100 nm dependent on concentration.
[YLT18] Yanina, Lazareva & Tuchin 2018.
Refractive index of adipose tissue and lipid droplet measured in wide spectral and temperature ranges.
[M*21] Matiatou, Giannios, Koutsoumpos, Toutouzas, Zografos & Moutzouris 2021.
Data on the refractive index of freshly-excised human tissues in the visible and near-infrared
spectral range.
skinoptics.refractive_index.beta_oxy_Friebel(lambda0)
The specific refractive increment of OXYHEMOGLOBIN solutions as a function of wavelength.
Linear interpolation of experimental data from Friebel & Meinke 2006 [FM06].
wavelength range: [250 nm, 1100 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm] (must be in the range [250., 1100.])

Returns:

  • beta (float or np.ndarray) – specific refractive increment [dL/g]

skinoptics.refractive_index.n_AT_Matiatou(lambda0)
The refractive index of human ADIPOSE TISSUE as a function of wavelength.
Matiatou et al. 2021 [M*21]’s fit to their own experimental data.

\(n(\lambda) = 1.44933 + \frac{4908.37}{\lambda^2}\)

wavelength range: [450 nm, 1551 nm]
temperature: 25 ºC
body location: abdomen
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • n (float or np.ndarray) – refractive index [-]

skinoptics.refractive_index.n_AT_Yanina(lambda0)
The refractive index of human ADIPOSE TISSUE as a function of wavelength.
Yanina, Lazareva & Tuchin 2018 [YLT18]’s fit to their own experimental data.

\(n(\lambda) = \sqrt{1 + \frac{1.1236 \mbox{ } \lambda^2}{\lambda^2-10556.6963} + \frac{0.2725 \mbox{ } \lambda^2}{\lambda^2-1.8867\times 10^7}}\)

wavelength range: [480 nm, 1550 nm]
temperature: 23 ºC
body location: abdomen
volunteers info: 10 biopsies, 5 men, 40 – 50 years old, 70 – 80 kg
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • n (float or np.ndarray) – refractive index [-]

skinoptics.refractive_index.n_Cauchy(lambda0, A, B, C, D)

The Cauchy’s equation.

\(n(\lambda) = A + \frac{B}{\lambda^2} + \frac{C}{\lambda^4} + \frac{D}{\lambda^6}\)

Parameters:
  • lambda0 (float or np.ndarray) – wavelength [nm]

  • A (float) – coefficient \(A\) [-]

  • B (float) – coefficient \(B\) [nm^2]

  • C (float) – coefficient \(C\) [nm^4]

  • D (float) – coefficient \(D\) [nm^6]

Returns:

  • n (float or np.ndarray) – refractive index [-]

skinoptics.refractive_index.n_Conrady(lambda0, A, B, C)

The Conrady’s equation.

\(n(\lambda) = A + \frac{B}{\lambda} + \frac{C}{\lambda^{3.5}}\)

Parameters:
  • lambda0 (float or np.ndarray) – wavelength [nm]

  • A (float) – coefficient \(A\) [-]

  • B (float) – coefficient \(B\) [nm]

  • C (float) – coefficient \(C\) [nm^3.5]

Returns:

  • n (float or np.ndarray) – refractive index [-]

skinoptics.refractive_index.n_Cornu(lambda0, A, B, C)

The Cornu’s equation.

\(n(\lambda) = A + \frac{B}{(\lambda - C)}\)

Parameters:
  • lambda0 (float or np.ndarray) – wavelength [nm]

  • A (float) – coefficient \(A\) [-]

  • B (float) – coefficient \(B\) [nm]

  • C (float) – coefficient \(C\) [nm]

Returns:

  • n (float or np.ndarray) – refractive index [-]

skinoptics.refractive_index.n_DE_Ding(lambda0, model='Cauchy')
The refractive index of human DERMIS as a function of wavelength.
Ding et al. 2006 [D*06]’s fits to their own experimental data.
Complementary data publicly available at <bmlaser.physics.ecu.edu/literature/lit.htm>.
wavelength range: [325 nm, 1557 nm]
temperature: 22 ºC
body location: abdomen and arm
volunteers info: 12 female patients (10 caucasians and 2 african americans),
phototypes I-III and V, 27-63 years old
Parameters:
  • lambda0 (float or np.ndarray) – wavelength [nm]

  • model – the user can choose one of the following… ‘Cauchy’, ‘Cornu’ or ‘Conrady’ (default to ‘Cauchy’)

Returns:

  • n (float or np.ndarray) – refractive index [-]

skinoptics.refractive_index.n_EP_Ding(lambda0, model='Cauchy')
The refractive index of human EPIDERMIS as a function of wavelength.
Ding et al. 2006 [D*06]’s fits to their own experimental data.
Complementary data publicly available at <bmlaser.physics.ecu.edu/literature/lit.htm>.
wavelength range: [325 nm, 1557 nm]
temperature: 22 ºC
body location: abdomen and arm
volunteers info: 12 female patients (10 caucasians and 2 african americans),
phototypes I-III and V, 27-63 years old
Parameters:
  • lambda0 (float or np.ndarray) – wavelength [nm]

  • model – the user can choose one of the following… ‘Cauchy’, ‘Cornu’ or ‘Conrady’ (default to ‘Cauchy’)

Returns:

  • n (float or np.ndarray) – refractive index [-]

skinoptics.refractive_index.n_HY_Matiatou(lambda0)
The refractive index of human HYPODERMIS as a function of wavelength.
Matiatou et al. 2021 [M*21]’s fit to their own experimental data.

\(n(\lambda) = 1.44909 + \frac{5099.42}{\lambda^2}\)

wavelength range: [450 nm, 1551 nm]
temperature: 25 ºC
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • n (float or np.ndarray) – refractive index [-]

skinoptics.refractive_index.n_Sellmeier(lambda0, A1, B1, A2, B2)

The Sellmeier’s equation.

\(n(\lambda) = \sqrt{1 + \frac{A_1 \mbox{ } \lambda^2}{\lambda^2 - B_1} + \frac{A_2\mbox{ } \lambda^2}{\lambda^2 - B_2}}\)

Parameters:
  • lambda0 (float or np.ndarray) – wavelength [nm]

  • A1 (float) – coefficient \(A_1\) [-]

  • B1 (float) – coefficient \(B_1\) [nm^2]

  • A2 (float) – coefficient \(A_2\) [-]

  • B2 (float) – coefficient \(B_2\) [nm^2]

Returns:

  • n (float or np.ndarray) – refractive index [-]

skinoptics.refractive_index.n_blo_Li(lambda0)
The refractive index of human BLOOD as a function of wavelength.
Li, Lin & Xie 2000 [LLX00]’s fit to their own experimental data.

\(n(\lambda) = 1.357 + \frac{6.9 \times 10^3}{\lambda^2} + \frac{7.6 \times 10^8}{\lambda^4}\)

wavelength range: [370 nm, 850 nm]
temperature: 27 - 28 ºC
blood types: A, B and O
volunteers info: 9 healthy volunteers, chinese, male and female
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • n (float or np.ndarray) – refractive index [-]

skinoptics.refractive_index.n_oxy_Friebel(lambda0, Cmass_oxy, n_wat_model='Segelstein')
The refractive index of OXYHEMOGLOBIN solutions as a function of wavelength and
oxyhemoglobin concentration.
Calculated from the specific refractive increment skinoptics.refractive_index.beta_oxy_Friebel()
and the refractive index of water.

\(n_{oxy}(\lambda, C_{oxy}) = n_{wat}(\lambda) \mbox{ } [\beta (\lambda) \mbox{ } C_{oxy} + 1]\)

wavelength range: [250 nm, 1100 nm]
concentration range: [0 g/dL, 28.7 g/dL]
Parameters:
  • lambda0 (float or np.ndarray) – wavelength [nm] (must be in the range [250., 1100.])

  • Cmass_oxy (float) – oxyhemoglobin mass concentration [g/dL]

  • n_wat_model (str) – the user can choose one of the following… ‘Hale’ or ‘Segelstein’ (default to ‘Segelstein’)

Returns:

  • n (float or array-like) – refractive index [-]

skinoptics.refractive_index.n_wat_Hale(lambda0)
The refractive index of WATER as a function of wavelength.
Linear interpolation of data from Hale & Querry 1973 [HQ73].
wavelength range: [200 nm, 200 μm]
temperature: 25 ºC
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • n (float or np.ndarray) – refractive index [-]

skinoptics.refractive_index.n_wat_Segelstein(lambda0)
The refractive index of WATER as a function of wavelength.
Linear interpolation of data from D. J. Segelstein’s M.S. Thesis 1981 [S81] collected
by S. Prahl and publicly available at <https://omlc.org/spectra/water/abs/index.html>.
wavelength range: [10 nm, 10 m]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • n (float or np.ndarray) – refractive index [-]