skinoptics 0.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. skinoptics/__init__.py +47 -0
  2. skinoptics/absorption_coefficient.py +893 -0
  3. skinoptics/anisotropy_factor.py +955 -0
  4. skinoptics/colors.py +1403 -0
  5. skinoptics/dataframes.py +98 -0
  6. skinoptics/datasets/colors/Lab_Alaluf2002.txt +11 -0
  7. skinoptics/datasets/colors/Lab_Xiao2017.txt +25 -0
  8. skinoptics/datasets/colors/cmfs.txt +472 -0
  9. skinoptics/datasets/colors/rspds_A_D50_D65.txt +532 -0
  10. skinoptics/datasets/colors/rspds_D55_D75.txt +98 -0
  11. skinoptics/datasets/optical_properties/DE_Salomatina.txt +279 -0
  12. skinoptics/datasets/optical_properties/DE_Shimojo.txt +10 -0
  13. skinoptics/datasets/optical_properties/EP_Salomatina.txt +279 -0
  14. skinoptics/datasets/optical_properties/EP_Shimojo.txt +10 -0
  15. skinoptics/datasets/optical_properties/HY_Salomatina.txt +278 -0
  16. skinoptics/datasets/optical_properties/HY_Shimojo.txt +10 -0
  17. skinoptics/datasets/optical_properties/SCC_Salomatina.txt +279 -0
  18. skinoptics/datasets/optical_properties/beta_oxy_Friebel.txt +85 -0
  19. skinoptics/datasets/optical_properties/ext_and_molarext_eum_Sarna.txt +32 -0
  20. skinoptics/datasets/optical_properties/ext_and_molarext_oxy_and_deo_Prahl.txt +377 -0
  21. skinoptics/datasets/optical_properties/ext_and_molarext_phe_Sarna.txt +50 -0
  22. skinoptics/datasets/optical_properties/iBCC_Salomatina.txt +279 -0
  23. skinoptics/datasets/optical_properties/molarext_bil_Li.txt +1843 -0
  24. skinoptics/datasets/optical_properties/mua_fat_vanVeen.txt +671 -0
  25. skinoptics/datasets/optical_properties/mua_wat_Hale.txt +232 -0
  26. skinoptics/datasets/optical_properties/mua_wat_Segelstein.txt +1262 -0
  27. skinoptics/datasets/optical_properties/nBCC_Salomatina.txt +279 -0
  28. skinoptics/datasets/optical_properties/n_AT_Matiatou.txt +6 -0
  29. skinoptics/datasets/optical_properties/n_HY_Matiatou.txt +6 -0
  30. skinoptics/datasets/optical_properties/n_and_k_DE_Ding.txt +9 -0
  31. skinoptics/datasets/optical_properties/n_and_k_EP_Ding.txt +9 -0
  32. skinoptics/datasets/optical_properties/n_and_k_wat_Hale.txt +170 -0
  33. skinoptics/datasets/optical_properties/n_and_k_wat_Segelstein.txt +1262 -0
  34. skinoptics/datasets/optical_properties/oxy_and_deo_Bosschaart.txt +456 -0
  35. skinoptics/datasets/spectra/Xiao2016/skindatabaseSpectra/readmeSpectra.docx +0 -0
  36. skinoptics/datasets/spectra/Xiao2016/skindatabaseSpectra/skin spectra data.xlsx +0 -0
  37. skinoptics/refractive_index.py +414 -0
  38. skinoptics/scattering_coefficient.py +403 -0
  39. skinoptics/utils.py +420 -0
  40. skinoptics-0.0.1.dist-info/METADATA +31 -0
  41. skinoptics-0.0.1.dist-info/RECORD +44 -0
  42. skinoptics-0.0.1.dist-info/WHEEL +5 -0
  43. skinoptics-0.0.1.dist-info/licenses/LICENSE.txt +674 -0
  44. skinoptics-0.0.1.dist-info/top_level.txt +1 -0
skinoptics/utils.py ADDED
@@ -0,0 +1,420 @@
1
+ '''
2
+ | SkinOptics
3
+ | Copyright (C) 2024-2025 Victor Lima
4
+
5
+ | This program is free software: you can redistribute it and/or modify
6
+ | it under the terms of the GNU General Public License as published by
7
+ | the Free Software Foundation, either version 3 of the License, or
8
+ | (at your option) any later version.
9
+
10
+ | This program is distributed in the hope that it will be useful,
11
+ | but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ | GNU General Public License for more details.
14
+
15
+ | You should have received a copy of the GNU General Public License
16
+ | along with this program. If not, see <https://www.gnu.org/licenses/>.
17
+
18
+ | Victor Lima
19
+ | victorporto\@ifsc.usp.br
20
+ | victor.lima\@ufscar.br
21
+ | victorportog.github.io
22
+
23
+ | Release date:
24
+ | October 2024
25
+ | Last modification:
26
+ | October 2024
27
+
28
+ | References:
29
+
30
+ | [WSS13] Wyman, Sloan & Shirley 2013.
31
+ | Simple Analytic Approximations to the CIE XYZ Color Matching Functions
32
+ | https://jcgt.org/published/0002/02/01/
33
+ '''
34
+
35
+ import numpy as np
36
+
37
+ def dict_from_arrays(array_keys, array_values):
38
+ r'''
39
+ Construct a dictionary from two arrays.
40
+
41
+ :param array_keys: array with the dictionary keys
42
+ :type array_keys: np.ndarray
43
+
44
+ :param array_values: array with the dictionary values
45
+ :type array_values: np.ndarray
46
+
47
+ :return: - **dict** (*dictionary*) – dictionary constructed with the two arrays
48
+ '''
49
+
50
+ return {array_keys[i]: array_values[i] for i in range(len(array_keys))}
51
+
52
+ def circle(r, xc, yc, theta_i = 0., theta_f = 360., n_points = 1000):
53
+ r'''
54
+ The points that compose a circle.
55
+
56
+ :math:`\left \{ \begin{matrix}
57
+ x = r \cos \theta + x_c\\
58
+ y = r \sin \theta + y_c
59
+ \end{matrix} \right.`
60
+
61
+ :param r: radius
62
+ :type r: float
63
+
64
+ :param xc: center x-coordinate
65
+ :type xc: float
66
+
67
+ :param yc: center y-coordinate
68
+ :type yc: float
69
+
70
+ :param theta_i: initial angle [degrees] (default to 0.)
71
+ :type theta_i: float
72
+
73
+ :param theta_f: final angle [degrees] (default to 360.)
74
+ :type theta_f: float
75
+
76
+ :param n_points: number of points (default to 1000)
77
+ :type n_points: int
78
+
79
+ :return: - **x** (*np.ndarray*) – x-coordinantes of a circle
80
+
81
+ - **y** (*np.ndarray*) – y-coordinantes of a circle
82
+ '''
83
+
84
+ theta = np.linspace(theta_i*np.pi/180., theta_f*np.pi/180., n_points)
85
+ x = r*np.cos(theta) + xc
86
+ y = r*np.sin(theta) + yc
87
+
88
+ return x, y
89
+
90
+ def linear(x, a, b):
91
+ r'''
92
+ The linear function.
93
+
94
+ :math:`f(x) = ax + b`
95
+
96
+ :param x: function variable
97
+ :type x: float or np.ndarray
98
+
99
+ :param a: slope
100
+ :type a: float
101
+
102
+ :param b: y-intercept
103
+ :type b: float
104
+
105
+ :return: - **f** (*float or np.ndarray*) – evaluated linear function
106
+ '''
107
+
108
+ return a*x + b
109
+
110
+ def quadratic(x, a, b, c):
111
+ r'''
112
+ The quadratic function.
113
+
114
+ :math:`f(x) = ax^2 + bx + c`
115
+
116
+ :param x: function variable
117
+ :type x: float or np.ndarray
118
+
119
+ :param a: function constant
120
+ :type a: float
121
+
122
+ :param b: function constant
123
+ :type b: float
124
+
125
+ :param c: function constant
126
+ :type c: float
127
+
128
+ :return: - **f** (*float or np.ndarray*) – evaluated quadratic function
129
+ '''
130
+
131
+ return a*np.power(x, 2, dtype = 'float64') + b*x + c
132
+
133
+ def cubic(x, a, b, c, d):
134
+ r'''
135
+ The cubic function.
136
+
137
+ :math:`f(x) = ax^3 + bx^2 + cx + d`
138
+
139
+ :param x: function variable
140
+ :type x: float or np.ndarray
141
+
142
+ :param a: function constant
143
+ :type a: float
144
+
145
+ :param b: function constant
146
+ :type b: float
147
+
148
+ :param c: function constant
149
+ :type c: float
150
+
151
+ :param d: function constant
152
+ :type d: float
153
+
154
+ :return: - **f** (*float or np.ndarray*) – evaluated cubic function
155
+ '''
156
+
157
+ return a*np.power(x, 3, dtype = 'float64') + b*np.power(x, 2, dtype = 'float64') + c*x + d
158
+
159
+ def exp_decay(x, a, b, c):
160
+ r'''
161
+ The exponential decay function.
162
+
163
+ :math:`f(x) = a \mbox{ exp}(-|b|x) + c`
164
+
165
+ :param x: function variable
166
+ :type x: float or np.ndarray
167
+
168
+ :param a: function constant
169
+ :type a: float
170
+
171
+ :param b: function constant
172
+ :type b: float
173
+
174
+ :param c: function constant
175
+ :type c: float
176
+
177
+ :return: - **f** (*float or np.ndarray*) – evaluated exponential decay function
178
+ '''
179
+
180
+ return a*np.exp(-np.abs(b)*x) + c
181
+
182
+ def biexp_decay(x, a, b, c, d, e):
183
+ r'''
184
+ The biexponential decay function.
185
+
186
+ :math:`f(x) = a\mbox{ exp}(-|b|x) + c \mbox{ exp}(-|d|x) + e`
187
+
188
+ :param x: function variable
189
+ :type x: float or np.ndarray
190
+
191
+ :param a: function constant
192
+ :type a: float
193
+
194
+ :param b: function constant
195
+ :type b: float
196
+
197
+ :param c: function constant
198
+ :type c: float
199
+
200
+ :param d: function constant
201
+ :type d: float
202
+
203
+ :param e: function constant
204
+ :type e: float
205
+
206
+ :return: - **f** (*float or np.ndarray*) – evaluated biexponential decay function
207
+ '''
208
+
209
+ return a*np.exp(-np.abs(b)*x) + c*np.exp(-np.abs(d)*x) + e
210
+
211
+ def exp_decay_inc_form(x, a, b, c):
212
+ r'''
213
+ The increasing form of the exponential decay function.
214
+
215
+ :math:`f(x) = a \mbox{ [}1 - \mbox{exp}(-|b|x)] + c`
216
+
217
+ :param x: function variable
218
+ :type x: float or np.ndarray
219
+
220
+ :param a: function constant
221
+ :type a: float
222
+
223
+ :param b: function constant
224
+ :type b: float
225
+
226
+ :param c: function constant
227
+ :type c: float
228
+
229
+ :return: - **f** (*float or np.ndarray*) – evaluated exponential decay (increasing form) function
230
+ '''
231
+
232
+ return a*(1 - np.exp(-np.abs(b)*x)) + c
233
+
234
+ def natural_log(x, a, b, c):
235
+ r'''
236
+ The natural logarithm function.
237
+
238
+ :math:`f(x) = a \mbox{ ln}(x + b) + c`
239
+
240
+ :param x: function variable
241
+ :type x: float or np.ndarray
242
+
243
+ :param a: function constant
244
+ :type a: float
245
+
246
+ :param b: function constant
247
+ :type b: float
248
+
249
+ :param c: function constant
250
+ :type c: float
251
+
252
+ :return: - **f** (*float or np.ndarray*) – evaluated natural logarithm function
253
+ '''
254
+
255
+ return a*np.log(x + b) + c
256
+
257
+ def gaussian(x, a, b, c):
258
+ r'''
259
+ The Gaussian function.
260
+
261
+ :math:`f(x) = a \mbox{ exp}\left[-\frac{1}{2}\frac{(x - b)^2}{c^2}\right]`
262
+
263
+ :param x: function variable
264
+ :type x: float or np.ndarray
265
+
266
+ :param a: function constant
267
+ :type a: float
268
+
269
+ :param b: function constant
270
+ :type b: float
271
+
272
+ :param c: function constant
273
+ :type c: float
274
+
275
+ :return: - **f** (*float or np.ndarray*) – evaluated Gaussian function
276
+ '''
277
+
278
+ return a*np.exp(-1./2.*(x - b)**2/c**2)
279
+
280
+ def heaviside(x):
281
+ r'''
282
+ The Heaviside step function.
283
+
284
+ :math:`H(x) =
285
+ \left \{ \begin{matrix}
286
+ 0, & \mbox{if } g < 0 \\
287
+ \frac{1}{2}, & \mbox{if } g = 0 \\
288
+ 1, & \mbox{if } g > 0 \\
289
+ \end{matrix} \right.`
290
+
291
+ :param x: function variable
292
+ :type x: float or np.ndarray
293
+
294
+ :return: - **H** (*float or np.ndarray*) – evaluated Heaviside step function
295
+ '''
296
+
297
+ if isinstance(x, np.ndarray) == True:
298
+ H = np.zeros(len(x))
299
+ for i in range(len(x)):
300
+ if x[i] < 0.:
301
+ H[i] = 0.
302
+ elif x[i] == 0.:
303
+ H[i] = 1./2.
304
+ else:
305
+ H[i] = 1.
306
+ elif isinstance(x, (int, float)) == True:
307
+ if x < 0.:
308
+ H = 0.
309
+ elif x == 0.:
310
+ H = 1./2.
311
+ else:
312
+ H = 1.
313
+ else:
314
+ msg = 'x must be int, float or np.ndarray.'
315
+ raise Exception(msg)
316
+
317
+ return H
318
+
319
+ def mod_gaussian_Wyman(x, a, b, c, d):
320
+ r'''
321
+ | The modified Gaussian function needed to calculate some analytical functions
322
+ | from Wyman, Sloan & Shirley 2013 [WSS13] (see function :meth:`skinoptics.colors.cmfs`).
323
+
324
+ :math:`f(x) = a \mbox{ exp}\left\{-d \mbox{ } \left[\mbox{ ln}\left(\frac{x - b}{c}\right)\right]^2\right\}`
325
+
326
+ :param x: function variable
327
+ :type x: float or np.ndarray
328
+
329
+ :param a: function constant
330
+ :type a: float
331
+
332
+ :param b: function constant
333
+ :type b: float
334
+
335
+ :param c: function constant
336
+ :type c: float
337
+
338
+ :param d: function constant
339
+ :type d: float
340
+
341
+ :return: - **f** (*float or np.ndarray*) – evaluated function
342
+ '''
343
+
344
+ return a*np.exp(-d*(np.log((x - b)/c))**2)
345
+
346
+ def selector_function_Wyman(x, y, z):
347
+ r'''
348
+ | The selector function needed to calculate some analytical functions
349
+ | from Wyman, Sloan & Shirley 2013 [WSS13] (see function :meth:`skinoptics.colors.cmfs`).
350
+
351
+ :math:`S(x,y,z) = y \mbox{ } (1 - H(x)) + z \mbox{ } H(x)`
352
+
353
+ in which :math:`H(x)` is the Heaviside step function :meth:`skinoptics.utils.heaviside`.
354
+
355
+ :param x: function variable
356
+ :type x: float or np.ndarray
357
+
358
+ :param y: function variable
359
+ :type y: float or np.ndarray
360
+
361
+ :param z: function variable
362
+ :type z: float or np.ndarray
363
+
364
+ :return: - **S** (*float or np.ndarray*) – evaluated selector function
365
+ '''
366
+
367
+ return y*(1 - heaviside(x)) + z*heaviside(x)
368
+
369
+ def piecewise_gaussian_Wyman(x, a, b, c, d):
370
+ r'''
371
+ | The piecewise Gaussian function needed to calculate some analytical functions
372
+ | from Wyman, Sloan & Shirley 2013 [WSS13] (see function :meth:`skinoptics.colors.cmfs`).
373
+
374
+ :math:`f(x) = a \mbox{ exp}\left\{-\frac{1}{2}[(x - b)\mbox{ }S(x - b \mbox{, }c \mbox{, }d)]^2\right\}`
375
+
376
+ :param x: function variable
377
+ :type x: float or np.ndarray
378
+
379
+ :param a: function constant
380
+ :type a: float
381
+
382
+ :param b: function constant
383
+ :type b: float
384
+
385
+ :param c: function constant
386
+ :type c: float
387
+
388
+ :param d: function constant
389
+ :type d: float
390
+
391
+ :return: - **f** (*float or np.ndarray*) – evaluated function
392
+ '''
393
+
394
+ return a*np.exp(-1./2.*((x - b)*selector_function_Wyman(x - b, c, d))**2)
395
+
396
+ def hyperbolic_cossine(x, a, b, c, d):
397
+ r'''
398
+ The hyperbolic cossine function (with four parameters).
399
+
400
+ :math:`f(x) = a \mbox{ cosh}\left[\frac{(x - b)}{c}\right] + d`
401
+
402
+ :param x: function variable
403
+ :type x: float or np.ndarray
404
+
405
+ :param a: function constant
406
+ :type a: float
407
+
408
+ :param b: function constant
409
+ :type b: float
410
+
411
+ :param c: function constant
412
+ :type c: float
413
+
414
+ :param d: function constant
415
+ :type d: float
416
+
417
+ :return: - **f** (*float or np.ndarray*) – evaluated hyperbolic cossine function
418
+ '''
419
+
420
+ return a*np.cosh((x - b)/c) + d
@@ -0,0 +1,31 @@
1
+ Metadata-Version: 2.4
2
+ Name: skinoptics
3
+ Version: 0.0.1
4
+ Summary: SkinOptics: a python package with tools for building human skin computational models for Monte Carlo simulations of light transport
5
+ Author-email: Victor Lima <victorporto@ifsc.usp.br>
6
+ Project-URL: Homepage, https://github.com/victorportog/skinoptics
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
9
+ Classifier: Operating System :: Microsoft :: Windows :: Windows 10
10
+ Requires-Python: >=3.8
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE.txt
13
+ Requires-Dist: numpy<2.0.0,>=1.26.4
14
+ Requires-Dist: scipy<2.0.0,>=1.13.0
15
+ Requires-Dist: pandas<3.0.0,>=2.2.2
16
+ Dynamic: license-file
17
+
18
+ SkinOptics
19
+ ==========
20
+
21
+ **SkinOptics** is an open source Python package with tools for building human skin computational
22
+ models for Monte Carlo simulations of light transport, as well as tools for analyzing simulation
23
+ outputs. It can also be used for teaching and exploring about Optical Properties and Colorimetry.
24
+
25
+ **SkinOptics** is under continuous development.
26
+
27
+ New features may be available in the future.
28
+
29
+ Please remember that **SkinOptics** is available without any warranty.
30
+
31
+ You can access **SkinOptics** documentation at https://skinoptics.readthedocs.io/.
@@ -0,0 +1,44 @@
1
+ skinoptics/__init__.py,sha256=ogqCEMFmoRaJINGAH1rYvCC9phRePtRtaY3HlS_7tQY,1575
2
+ skinoptics/absorption_coefficient.py,sha256=f5mKTqgEiXKk0MDhPyL6t3w3jPDriJqI3R65U8mZNy8,36292
3
+ skinoptics/anisotropy_factor.py,sha256=_Yxma1DJYy5nezwrgi0hay-6NXpbU2RYTKa4zFrjF9E,38594
4
+ skinoptics/colors.py,sha256=mUAQOyLiwM-PnLjDLNSz7Lt57iRBawXutsDxDwNMY4g,56759
5
+ skinoptics/dataframes.py,sha256=EMN1Cr0gJu0TM5fZJTP5qk8Dfu5VqvhnxUq5mcS2zQQ,6485
6
+ skinoptics/refractive_index.py,sha256=1zuSNIjy3KkbPH30YNbkPosASENTBtkxym8IML0Uy0A,14994
7
+ skinoptics/scattering_coefficient.py,sha256=3rsbwkqD2OeHfmu9z8bEGCBJ1RTjKzPV9fSu78gtrco,15244
8
+ skinoptics/utils.py,sha256=qjBM3B9mTIPsYZNvt4u32rd96mnn4bovOoZfA6Y7aNA,10899
9
+ skinoptics/datasets/colors/Lab_Alaluf2002.txt,sha256=PEmAPud84qe7U7V0kQliYvPwng3NuT-9qKLqabQWMYo,610
10
+ skinoptics/datasets/colors/Lab_Xiao2017.txt,sha256=fx7y84PN5OFSDH6Z4rUNML6U8QOnHDr7MTWoxvNFBRs,903
11
+ skinoptics/datasets/colors/cmfs.txt,sha256=q4Veg2SoCipCBRj2DL5pSzEH5RW4YORUmXxyVytB7KE,44381
12
+ skinoptics/datasets/colors/rspds_A_D50_D65.txt,sha256=eV5hU07TI1wJZpLy0F54VYd--_Bh-WJ7XCWhca27YyA,15978
13
+ skinoptics/datasets/colors/rspds_D55_D75.txt,sha256=UGljPp6-OiJewAEuSRptJ6Iof1IkioFndfBe6g_l8Xw,1974
14
+ skinoptics/datasets/optical_properties/DE_Salomatina.txt,sha256=pNGNevgAaj_h8PaWP1zqOEO0WEQG-a4k1rbDt5AdmXU,24624
15
+ skinoptics/datasets/optical_properties/DE_Shimojo.txt,sha256=g847CsdYbbOqqnoyPJs1XYVaiyEnPZWZHnEK-zzRfPo,281
16
+ skinoptics/datasets/optical_properties/EP_Salomatina.txt,sha256=87UjyYbKBP0k__g_N1j3NuBvZybnEJZ7bKDYSsfxJkM,22791
17
+ skinoptics/datasets/optical_properties/EP_Shimojo.txt,sha256=f78tGdUHiabV1tm6w904hVKAD4r9FuvcmICWX5vfvB0,281
18
+ skinoptics/datasets/optical_properties/HY_Salomatina.txt,sha256=QE3I1dO3rZlPxHwh_OI72Z83PGaFI2dTDGXNi0g5QVc,22761
19
+ skinoptics/datasets/optical_properties/HY_Shimojo.txt,sha256=5kzuMpS-TDdUNuRAGYu35u-UuycyjA-8mRd_GGa0yOw,281
20
+ skinoptics/datasets/optical_properties/SCC_Salomatina.txt,sha256=p9Qa11PFBlEbgcI6uz7SiP4DZdTOK6P_f9yRGpgquF4,22938
21
+ skinoptics/datasets/optical_properties/beta_oxy_Friebel.txt,sha256=94e4JCgKKxVOZtYGYBk-wupTOQOE_9tLuBsXw3HbS-k,1123
22
+ skinoptics/datasets/optical_properties/ext_and_molarext_eum_Sarna.txt,sha256=u9BCCx8Ic-r5JFXbD4wpFqliMR-642hfR1V1jxwcyVg,701
23
+ skinoptics/datasets/optical_properties/ext_and_molarext_oxy_and_deo_Prahl.txt,sha256=QecQ42RddkF0vTYCQeR_8eCB0t5tYWNG3XeR5fFKM3Q,6898
24
+ skinoptics/datasets/optical_properties/ext_and_molarext_phe_Sarna.txt,sha256=VpRwJxAtI_CaHnrRb-c5_hUGR5IZFXytFzDPjSII1F0,1077
25
+ skinoptics/datasets/optical_properties/iBCC_Salomatina.txt,sha256=pYSiuHf2YjIbWv-hGmq6skCI3D_WuTla2Zm08m79gGw,22843
26
+ skinoptics/datasets/optical_properties/molarext_bil_Li.txt,sha256=Gi3k8BNQROnhZ6AxzOeSAuszimsSjCFHeDzsdl1_HAM,21294
27
+ skinoptics/datasets/optical_properties/mua_fat_vanVeen.txt,sha256=U3pKXHEV6uv5A9-rg7dqKZPRK_XnkOwn4Ei83pptlUw,6810
28
+ skinoptics/datasets/optical_properties/mua_wat_Hale.txt,sha256=NYQtCwD97mtWzI3yKEDARzo72TVh98aPdcE08RSOFfg,3590
29
+ skinoptics/datasets/optical_properties/mua_wat_Segelstein.txt,sha256=ByJkeSTIahsyBjPRhMqC2GEBM9WJaAr-cGF4gINMLSQ,17805
30
+ skinoptics/datasets/optical_properties/nBCC_Salomatina.txt,sha256=8y6eicmlXPrltQ2bHKvhgspNE-V2ZnX3NBFUX-EfSEY,25090
31
+ skinoptics/datasets/optical_properties/n_AT_Matiatou.txt,sha256=L0pb8lvfl4kf8DExY-VwapGHvSPc0d9TaWlHyHb7n1w,109
32
+ skinoptics/datasets/optical_properties/n_HY_Matiatou.txt,sha256=Ta9L4TeH-KuQ6XnZUoNvi9I8tmiy0U5fYpAzlo0ieB8,109
33
+ skinoptics/datasets/optical_properties/n_and_k_DE_Ding.txt,sha256=oUetHghLih0Xt-yFY6JwFRWaS8mctUkHeYl6hEwdTBQ,350
34
+ skinoptics/datasets/optical_properties/n_and_k_EP_Ding.txt,sha256=fNJRTLxfGn0PwuNs0t8b-7Ap6i8MYeMMq2RN5vJrnx4,351
35
+ skinoptics/datasets/optical_properties/n_and_k_wat_Hale.txt,sha256=9Npq4eb94K5Nan7QnJazUnCl-6SBE33cTxddfjtWwb4,3045
36
+ skinoptics/datasets/optical_properties/n_and_k_wat_Segelstein.txt,sha256=EZIS5158tj2MIAdDQLZH6L3BqopaMO0i2erJTdCywXs,36593
37
+ skinoptics/datasets/optical_properties/oxy_and_deo_Bosschaart.txt,sha256=eF96Ao44TDUYRo6-8p0L7I9Q8h6wLNpEUyrcbo7FySA,24972
38
+ skinoptics/datasets/spectra/Xiao2016/skindatabaseSpectra/readmeSpectra.docx,sha256=ren4htGe154BIlBridkvBvbc8AYY1RRmp4CVICYwDvc,15147
39
+ skinoptics/datasets/spectra/Xiao2016/skindatabaseSpectra/skin spectra data.xlsx,sha256=z7shS1rZzqpaRGi_Ji0nYcSzIxEmADQOtaJ_Uwcotcc,1434709
40
+ skinoptics-0.0.1.dist-info/licenses/LICENSE.txt,sha256=IwGE9guuL-ryRPEKi6wFPI_zOhg7zDZbTYuHbSt_SAk,35823
41
+ skinoptics-0.0.1.dist-info/METADATA,sha256=od6-ADZjGDmPp9t-rjTzukaqn7_KjhNQQ9jhDYrWiCQ,1322
42
+ skinoptics-0.0.1.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
43
+ skinoptics-0.0.1.dist-info/top_level.txt,sha256=4NYJW3uliYlvbd-Zywg2MxJOGe4wYA7Oz_I5EZF4YEQ,11
44
+ skinoptics-0.0.1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (77.0.3)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+