phasorpy 0.7__cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.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.
phasorpy/color.py ADDED
@@ -0,0 +1,589 @@
1
+ """Color palettes and color manipulation utilities."""
2
+
3
+ from __future__ import annotations
4
+
5
+ __all__ = ['float2int', 'wavelength2rgb', 'CATEGORICAL', 'SRGB_SPECTRUM']
6
+
7
+ from typing import TYPE_CHECKING
8
+
9
+ if TYPE_CHECKING:
10
+ from ._typing import Any, ArrayLike, DTypeLike, NDArray
11
+
12
+ import numpy
13
+
14
+
15
+ def wavelength2rgb(
16
+ wavelength: ArrayLike,
17
+ /,
18
+ dtype: DTypeLike | None = None,
19
+ ) -> tuple[float, float, float] | NDArray[Any]:
20
+ """Return approximate sRGB color components of visible wavelength(s).
21
+
22
+ Wavelengths are clipped to the range [360, 750] nm, rounded, and used to
23
+ index the :py:attr:`SRGB_SPECTRUM` palette.
24
+
25
+ Parameters
26
+ ----------
27
+ wavelength : array_like
28
+ Scalar or array of wavelengths in nm.
29
+ dtype : dtype_like, optional
30
+ Data-type of return value. The default is ``float32``.
31
+
32
+ Returns
33
+ -------
34
+ ndarray or tuple of float
35
+ Approximate sRGB color components of visible wavelength(s).
36
+ If input is scalar, return tuple of three floats.
37
+ If input is array, return ndarray with shape (..., 3).
38
+ Floating-point values are in range [0.0, 1.0].
39
+ Integer values are scaled to the dtype's maximum value.
40
+
41
+ Examples
42
+ --------
43
+ >>> wavelength2rgb(517.2, 'uint8')
44
+ (0, 191, 0)
45
+ >>> wavelength2rgb([517, 566], 'uint8')
46
+ array([[ 0, 191, 0],
47
+ [133, 190, 0]], dtype=uint8)
48
+
49
+ """
50
+ astuple = isinstance(wavelength, (float, int))
51
+ indices = numpy.asarray(wavelength)
52
+ indices = numpy.clip(indices, 360, 750)
53
+ indices -= 360
54
+ if indices.dtype.kind not in {'u', 'i'}:
55
+ indices = numpy.round(indices).astype(numpy.uint32)
56
+ rgb = SRGB_SPECTRUM.take(indices, axis=0)
57
+ if dtype is not None:
58
+ dtype = numpy.dtype(dtype)
59
+ if dtype.kind in {'u', 'i'}:
60
+ rgb = float2int(rgb)
61
+ else:
62
+ rgb = rgb.astype(dtype)
63
+ if astuple:
64
+ return tuple(rgb.tolist()[:3])
65
+ return rgb
66
+
67
+
68
+ def float2int(
69
+ rgb: ArrayLike,
70
+ /,
71
+ dtype: DTypeLike = numpy.uint8,
72
+ ) -> NDArray[Any]:
73
+ """Return normalized color components as integers.
74
+
75
+ Parameters
76
+ ----------
77
+ rgb : array_like
78
+ Scalar or array of normalized floating-point color components.
79
+ dtype : dtype_like, optional
80
+ Data type of return value. The default is ``uint8``.
81
+
82
+ Returns
83
+ -------
84
+ ndarray
85
+ Color components as integers scaled to dtype's range.
86
+
87
+ Examples
88
+ --------
89
+ >>> float2int([0.0, 0.5, 1.0])
90
+ array([ 0, 128, 255], dtype=uint8)
91
+
92
+ """
93
+ dtype = numpy.dtype(dtype)
94
+ if dtype.kind not in {'u', 'i'}:
95
+ raise ValueError('not an integer dtype')
96
+ arr: NDArray[Any] = numpy.asarray(rgb)
97
+ if not arr.dtype.kind == 'f':
98
+ raise ValueError('not a floating-point array')
99
+ iinfo = numpy.iinfo(dtype)
100
+ arr = numpy.round(arr * iinfo.max)
101
+ numpy.clip(arr, iinfo.min, iinfo.max, out=arr)
102
+ return arr.astype(dtype)
103
+
104
+
105
+ # fmt: off
106
+ CATEGORICAL: NDArray[numpy.float32] = numpy.array([
107
+ [0.825397, 0.095238, 0.126984],
108
+ [0.095239, 0.412698, 1.0],
109
+ [0.000001, 0.539682, 0.0],
110
+ [0.952381, 0.428571, 1.0],
111
+ [0.444444, 0.0, 0.476191],
112
+ [0.666667, 0.984127, 0.0],
113
+ [0.0, 0.746032, 0.761905],
114
+ [1.0, 0.634921, 0.206349],
115
+ [0.365079, 0.238095, 0.015873],
116
+ [0.031746, 0.0, 0.539683],
117
+ [0.0, 0.365079, 0.365079],
118
+ [0.603175, 0.492064, 0.507937],
119
+ [0.634921, 0.68254, 1.0],
120
+ [0.587302, 0.714286, 0.460317],
121
+ [0.619048, 0.15873, 1.0],
122
+ [0.301587, 0.0, 0.079365],
123
+ [1.0, 0.68254, 0.746032],
124
+ [0.809524, 0.0, 0.571429],
125
+ [0.000001, 1.0, 0.714286],
126
+ [0.0, 0.174603, 0.0],
127
+ [0.619048, 0.460317, 0.0],
128
+ [0.238095, 0.206349, 0.253968],
129
+ [0.952381, 0.920635, 0.571429],
130
+ [0.396825, 0.380952, 0.539683],
131
+ [0.539683, 0.238095, 0.301587],
132
+ [0.349206, 0.015873, 0.730159],
133
+ [0.333333, 0.539683, 0.444444],
134
+ [0.698413, 0.746032, 0.761905],
135
+ [1.0, 0.365079, 0.507936],
136
+ [0.111113, 0.777778, 0.0],
137
+ [0.571429, 0.968254, 1.0],
138
+ [0.174603, 0.52381, 0.650794],
139
+ [0.222222, 0.365079, 0.15873],
140
+ [0.920635, 0.809524, 1.0],
141
+ [1.0, 0.365079, 0.0],
142
+ [0.650794, 0.380952, 0.666667],
143
+ [0.52381, 0.0, 0.0],
144
+ [0.206349, 0.0, 0.349206],
145
+ [0.0, 0.31746, 0.555556],
146
+ [0.619048, 0.285714, 0.063492],
147
+ [0.809524, 0.746032, 0.0],
148
+ [0.0, 0.15873, 0.15873],
149
+ [0.000001, 0.698413, 1.0],
150
+ [0.793651, 0.650794, 0.52381],
151
+ [0.746032, 0.603175, 0.761905],
152
+ [0.174603, 0.126984, 0.047619],
153
+ [0.460317, 0.396825, 0.269841],
154
+ [0.507937, 0.47619, 0.873016],
155
+ [0.0, 0.761905, 0.539682],
156
+ [0.730159, 0.904762, 0.761905],
157
+ [0.52381, 0.555556, 0.650794],
158
+ [0.793651, 0.444444, 0.349206],
159
+ [0.507937, 0.603175, 0.0],
160
+ [0.174603, 0.0, 1.0],
161
+ [0.825397, 0.015873, 0.968254],
162
+ [1.0, 0.84127, 0.746032],
163
+ [0.571429, 0.809524, 0.968254],
164
+ [0.730159, 0.365079, 0.492063],
165
+ [1.0, 0.253968, 0.761905],
166
+ [0.746032, 0.523809, 1.0],
167
+ [0.571429, 0.555556, 0.396825],
168
+ [0.650794, 0.015874, 0.666667],
169
+ [0.523809, 0.888889, 0.460317],
170
+ [0.285714, 0.0, 0.238095],
171
+ ], dtype=numpy.float32)
172
+ """Categorical sRGB color palette inspired by C. Glasbey.
173
+
174
+ Contains 64 maximally distinct colors for visualization.
175
+
176
+ Generated using the `glasbey <https://glasbey.readthedocs.io>`_ package::
177
+
178
+ import glasbey; numpy.array(glasbey.create_palette(64, as_hex=False))
179
+
180
+ """
181
+ # numpy.set_printoptions(6, suppress=True, threshold=512)
182
+ # fmt: on
183
+
184
+ # fmt: off
185
+ SRGB_SPECTRUM: NDArray[numpy.float32] = numpy.array([
186
+ [0.000637, 0.0, 0.003852],
187
+ [0.000715, 0.0, 0.004328],
188
+ [0.000802, 0.0, 0.004863],
189
+ [0.000899, 0.0, 0.005466],
190
+ [0.001009, 0.0, 0.006144],
191
+ [0.001131, 0.0, 0.006903],
192
+ [0.001269, 0.0, 0.007758],
193
+ [0.001425, 0.0, 0.008725],
194
+ [0.0016, 0.0, 0.009811],
195
+ [0.001794, 0.0, 0.011023],
196
+ [0.00201, 0.0, 0.012369],
197
+ [0.002247, 0.0, 0.013842],
198
+ [0.00251, 0.0, 0.015481],
199
+ [0.002811, 0.0, 0.017364],
200
+ [0.003162, 0.0, 0.019563],
201
+ [0.003575, 0.0, 0.022156],
202
+ [0.004067, 0.0, 0.025266],
203
+ [0.004636, 0.0, 0.028861],
204
+ [0.005257, 0.0, 0.032785],
205
+ [0.005906, 0.0, 0.036882],
206
+ [0.006558, 0.0, 0.040984],
207
+ [0.007197, 0.0, 0.044803],
208
+ [0.007867, 0.0, 0.04859],
209
+ [0.00863, 0.0, 0.052687],
210
+ [0.009552, 0.0, 0.057365],
211
+ [0.010697, 0.0, 0.062824],
212
+ [0.012123, 0.0, 0.069172],
213
+ [0.013823, 0.0, 0.076199],
214
+ [0.015764, 0.0, 0.083636],
215
+ [0.017911, 0.0, 0.091277],
216
+ [0.020232, 0.0, 0.098967],
217
+ [0.022687, 0.0, 0.106577],
218
+ [0.025366, 0.0, 0.114362],
219
+ [0.028425, 0.0, 0.122688],
220
+ [0.032022, 0.0, 0.131827],
221
+ [0.036313, 0.0, 0.141965],
222
+ [0.04149, 0.0, 0.153349],
223
+ [0.047101, 0.0, 0.165553],
224
+ [0.052759, 0.0, 0.177868],
225
+ [0.058222, 0.0, 0.189771],
226
+ [0.063308, 0.0, 0.200873],
227
+ [0.067943, 0.0, 0.211017],
228
+ [0.07248, 0.0, 0.220985],
229
+ [0.077342, 0.0, 0.231705],
230
+ [0.082871, 0.0, 0.243915],
231
+ [0.089323, 0.0, 0.258172],
232
+ [0.096763, 0.0, 0.274629],
233
+ [0.104948, 0.0, 0.292759],
234
+ [0.113649, 0.0, 0.312047],
235
+ [0.122685, 0.0, 0.332089],
236
+ [0.131916, 0.0, 0.352572],
237
+ [0.141263, 0.0, 0.373353],
238
+ [0.150829, 0.0, 0.394689],
239
+ [0.160741, 0.0, 0.416865],
240
+ [0.171093, 0.0, 0.440085],
241
+ [0.181952, 0.0, 0.464491],
242
+ [0.193196, 0.0, 0.4898],
243
+ [0.20469, 0.0, 0.515787],
244
+ [0.216461, 0.0, 0.542603],
245
+ [0.228524, 0.0, 0.570357],
246
+ [0.240891, 0.0, 0.599121],
247
+ [0.253574, 0.0, 0.628923],
248
+ [0.266254, 0.0, 0.659006],
249
+ [0.278515, 0.0, 0.688434],
250
+ [0.290023, 0.0, 0.716465],
251
+ [0.300501, 0.0, 0.742501],
252
+ [0.309873, 0.0, 0.766385],
253
+ [0.318252, 0.0, 0.788388],
254
+ [0.325666, 0.0, 0.808609],
255
+ [0.332132, 0.0, 0.827124],
256
+ [0.337655, 0.0, 0.843989],
257
+ [0.34221, 0.0, 0.859194],
258
+ [0.345826, 0.0, 0.872791],
259
+ [0.348574, 0.0, 0.884896],
260
+ [0.350514, 0.0, 0.895609],
261
+ [0.351698, 0.0, 0.905015],
262
+ [0.35214, 0.0, 0.913161],
263
+ [0.351844, 0.0, 0.920111],
264
+ [0.350835, 0.0, 0.925957],
265
+ [0.349134, 0.0, 0.930785],
266
+ [0.346758, 0.0, 0.934672],
267
+ [0.343711, 0.0, 0.937667],
268
+ [0.339997, 0.0, 0.939848],
269
+ [0.335622, 0.0, 0.941331],
270
+ [0.330587, 0.0, 0.94223],
271
+ [0.324891, 0.0, 0.942656],
272
+ [0.318511, 0.0, 0.942657],
273
+ [0.311425, 0.0, 0.942271],
274
+ [0.303629, 0.0, 0.941593],
275
+ [0.29511, 0.0, 0.940715],
276
+ [0.285853, 0.0, 0.939732],
277
+ [0.275831, 0.0, 0.938721],
278
+ [0.264929, 0.0, 0.937617],
279
+ [0.252956, 0.0, 0.936302],
280
+ [0.239668, 0.0, 0.934652],
281
+ [0.224736, 0.0, 0.932547],
282
+ [0.207739, 0.0, 0.929913],
283
+ [0.188181, 0.0, 0.926748],
284
+ [0.16528, 0.0, 0.923032],
285
+ [0.137584, 0.0, 0.918741],
286
+ [0.101829, 0.0, 0.913852],
287
+ [0.046511, 0.0, 0.908403],
288
+ [0.0, 0.0, 0.902301],
289
+ [0.0, 0.0, 0.895323],
290
+ [0.0, 0.0, 0.88723],
291
+ [0.0, 0.0, 0.877767],
292
+ [0.0, 0.0, 0.866713],
293
+ [0.0, 0.0, 0.854242],
294
+ [0.0, 0.014235, 0.840692],
295
+ [0.0, 0.086469, 0.826424],
296
+ [0.0, 0.128801, 0.811832],
297
+ [0.0, 0.16077, 0.797136],
298
+ [0.0, 0.187393, 0.782253],
299
+ [0.0, 0.210643, 0.767146],
300
+ [0.0, 0.231538, 0.751774],
301
+ [0.0, 0.250685, 0.736089],
302
+ [0.0, 0.268464, 0.720127],
303
+ [0.0, 0.285094, 0.703973],
304
+ [0.0, 0.300717, 0.687653],
305
+ [0.0, 0.315437, 0.671194],
306
+ [0.0, 0.329335, 0.654629],
307
+ [0.0, 0.342496, 0.637981],
308
+ [0.0, 0.355056, 0.621294],
309
+ [0.0, 0.367136, 0.604641],
310
+ [0.0, 0.378836, 0.588105],
311
+ [0.0, 0.390243, 0.571782],
312
+ [0.0, 0.401404, 0.555762],
313
+ [0.0, 0.412371, 0.540046],
314
+ [0.0, 0.423219, 0.524612],
315
+ [0.0, 0.434017, 0.509429],
316
+ [0.0, 0.444821, 0.494462],
317
+ [0.0, 0.455682, 0.47971],
318
+ [0.0, 0.466602, 0.465195],
319
+ [0.0, 0.477569, 0.450907],
320
+ [0.0, 0.48857, 0.436835],
321
+ [0.0, 0.499595, 0.422966],
322
+ [0.0, 0.510616, 0.409277],
323
+ [0.0, 0.52168, 0.395743],
324
+ [0.0, 0.532886, 0.382342],
325
+ [0.0, 0.544321, 0.369046],
326
+ [0.0, 0.556066, 0.355823],
327
+ [0.0, 0.568157, 0.342666],
328
+ [0.0, 0.580484, 0.329491],
329
+ [0.0, 0.592906, 0.316117],
330
+ [0.0, 0.605293, 0.302332],
331
+ [0.0, 0.617534, 0.287868],
332
+ [0.0, 0.629559, 0.272478],
333
+ [0.0, 0.641397, 0.256047],
334
+ [0.0, 0.653081, 0.238435],
335
+ [0.0, 0.664643, 0.219442],
336
+ [0.0, 0.676109, 0.198778],
337
+ [0.0, 0.687475, 0.17586],
338
+ [0.0, 0.698664, 0.149763],
339
+ [0.0, 0.709604, 0.118887],
340
+ [0.0, 0.720225, 0.07922],
341
+ [0.0, 0.730466, 0.016354],
342
+ [0.0, 0.740314, 0.0],
343
+ [0.0, 0.749744, 0.0],
344
+ [0.0, 0.758674, 0.0],
345
+ [0.0, 0.767026, 0.0],
346
+ [0.0, 0.774726, 0.0],
347
+ [0.0, 0.781724, 0.0],
348
+ [0.0, 0.788079, 0.0],
349
+ [0.0, 0.793878, 0.0],
350
+ [0.0, 0.799205, 0.0],
351
+ [0.0, 0.804139, 0.0],
352
+ [0.0, 0.808714, 0.0],
353
+ [0.0, 0.812915, 0.0],
354
+ [0.0, 0.816742, 0.0],
355
+ [0.0, 0.820196, 0.0],
356
+ [0.0, 0.823277, 0.0],
357
+ [0.0, 0.82599, 0.0],
358
+ [0.0, 0.828356, 0.0],
359
+ [0.0, 0.830391, 0.0],
360
+ [0.0, 0.832112, 0.0],
361
+ [0.0, 0.833534, 0.0],
362
+ [0.0, 0.83467, 0.0],
363
+ [0.0, 0.835521, 0.0],
364
+ [0.0, 0.836088, 0.0],
365
+ [0.0, 0.836369, 0.0],
366
+ [0.0, 0.836364, 0.0],
367
+ [0.0, 0.836076, 0.0],
368
+ [0.0, 0.835512, 0.0],
369
+ [0.0, 0.834675, 0.0],
370
+ [0.0, 0.833569, 0.0],
371
+ [0.0, 0.832197, 0.0],
372
+ [0.0, 0.830559, 0.0],
373
+ [0.0, 0.828659, 0.0],
374
+ [0.0, 0.82651, 0.0],
375
+ [0.0, 0.824121, 0.0],
376
+ [0.0, 0.821506, 0.0],
377
+ [0.0, 0.818651, 0.0],
378
+ [0.0, 0.815559, 0.0],
379
+ [0.0, 0.812229, 0.0],
380
+ [0.0, 0.808655, 0.0],
381
+ [0.0, 0.804833, 0.0],
382
+ [0.0, 0.800754, 0.0],
383
+ [0.117805, 0.79641, 0.0],
384
+ [0.209152, 0.791793, 0.0],
385
+ [0.270534, 0.786894, 0.0],
386
+ [0.319691, 0.781701, 0.0],
387
+ [0.361821, 0.776197, 0.0],
388
+ [0.399231, 0.770399, 0.0],
389
+ [0.433215, 0.764307, 0.0],
390
+ [0.464567, 0.757925, 0.0],
391
+ [0.493817, 0.751251, 0.0],
392
+ [0.52133, 0.744288, 0.0],
393
+ [0.547363, 0.737029, 0.0],
394
+ [0.572108, 0.729468, 0.0],
395
+ [0.595715, 0.721599, 0.0],
396
+ [0.618302, 0.713415, 0.0],
397
+ [0.639961, 0.704908, 0.0],
398
+ [0.660766, 0.69608, 0.0],
399
+ [0.680781, 0.686929, 0.0],
400
+ [0.700054, 0.677456, 0.0],
401
+ [0.718629, 0.667662, 0.0],
402
+ [0.736543, 0.657544, 0.0],
403
+ [0.753817, 0.647097, 0.0],
404
+ [0.770461, 0.636315, 0.0],
405
+ [0.786485, 0.625189, 0.0],
406
+ [0.801895, 0.613711, 0.0],
407
+ [0.816702, 0.60187, 0.0],
408
+ [0.830921, 0.589667, 0.0],
409
+ [0.844563, 0.577104, 0.0],
410
+ [0.857636, 0.564184, 0.0],
411
+ [0.870146, 0.550908, 0.0],
412
+ [0.882092, 0.537277, 0.0],
413
+ [0.893477, 0.523283, 0.0],
414
+ [0.904318, 0.508919, 0.0],
415
+ [0.914626, 0.494177, 0.0],
416
+ [0.924413, 0.479048, 0.0],
417
+ [0.9337, 0.463509, 0.0],
418
+ [0.942459, 0.447555, 0.0],
419
+ [0.950635, 0.431203, 0.0],
420
+ [0.958169, 0.414472, 0.0],
421
+ [0.965008, 0.397387, 0.0],
422
+ [0.971112, 0.379967, 0.0],
423
+ [0.976523, 0.362161, 0.0],
424
+ [0.981305, 0.343869, 0.0],
425
+ [0.985522, 0.32497, 0.0],
426
+ [0.989232, 0.305304, 0.0],
427
+ [0.992472, 0.284689, 0.0],
428
+ [0.995205, 0.262981, 0.0],
429
+ [0.997376, 0.239996, 0.0],
430
+ [0.998932, 0.215465, 0.0],
431
+ [0.999817, 0.188965, 0.0],
432
+ [1.0, 0.159702, 0.0],
433
+ [0.99952, 0.125912, 0.0],
434
+ [0.998423, 0.083139, 0.0],
435
+ [0.996755, 0.014479, 0.0],
436
+ [0.99456, 0.0, 0.0],
437
+ [0.991856, 0.0, 0.0],
438
+ [0.988629, 0.0, 0.0],
439
+ [0.984875, 0.0, 0.0],
440
+ [0.980588, 0.0, 0.0],
441
+ [0.97576, 0.0, 0.0],
442
+ [0.970407, 0.0, 0.0],
443
+ [0.964527, 0.0, 0.0],
444
+ [0.95809, 0.0, 0.0],
445
+ [0.951063, 0.0, 0.0],
446
+ [0.94341, 0.0, 0.0],
447
+ [0.935112, 0.0, 0.0],
448
+ [0.926214, 0.0, 0.0],
449
+ [0.916774, 0.0, 0.0],
450
+ [0.906853, 0.0, 0.0],
451
+ [0.896515, 0.0, 0.0],
452
+ [0.885776, 0.0, 0.0],
453
+ [0.874671, 0.0, 0.0],
454
+ [0.863295, 0.0, 0.0],
455
+ [0.851747, 0.0, 0.0],
456
+ [0.840136, 0.0, 0.0],
457
+ [0.828552, 0.0, 0.0],
458
+ [0.816975, 0.0, 0.0],
459
+ [0.805353, 0.0, 0.0],
460
+ [0.793632, 0.0, 0.0],
461
+ [0.781751, 0.0, 0.0],
462
+ [0.769698, 0.0, 0.0],
463
+ [0.757501, 0.0, 0.0],
464
+ [0.745159, 0.0, 0.0],
465
+ [0.732668, 0.0, 0.0],
466
+ [0.720026, 0.0, 0.0],
467
+ [0.707228, 0.0, 0.0],
468
+ [0.694283, 0.0, 0.0],
469
+ [0.681211, 0.0, 0.0],
470
+ [0.668035, 0.0, 0.0],
471
+ [0.654777, 0.0, 0.0],
472
+ [0.641448, 0.0, 0.0],
473
+ [0.628062, 0.0, 0.0],
474
+ [0.614654, 0.0, 0.0],
475
+ [0.601267, 0.0, 0.0],
476
+ [0.587945, 0.0, 0.0],
477
+ [0.574731, 0.0, 0.0],
478
+ [0.561623, 0.0, 0.0],
479
+ [0.548602, 0.0, 0.0],
480
+ [0.53565, 0.0, 0.0],
481
+ [0.522744, 0.0, 0.0],
482
+ [0.509883, 0.0, 0.0],
483
+ [0.497083, 0.0, 0.0],
484
+ [0.484347, 0.0, 0.0],
485
+ [0.471676, 0.0, 0.0],
486
+ [0.459075, 0.0, 0.0],
487
+ [0.446545, 0.0, 0.0],
488
+ [0.434099, 0.0, 0.0],
489
+ [0.421754, 0.0, 0.0],
490
+ [0.409528, 0.0, 0.0],
491
+ [0.397442, 0.0, 0.0],
492
+ [0.385505, 0.0, 0.0],
493
+ [0.373738, 0.0, 0.0],
494
+ [0.362192, 0.0, 0.0],
495
+ [0.350926, 0.0, 0.0],
496
+ [0.340006, 0.0, 0.0],
497
+ [0.329485, 0.0, 0.0],
498
+ [0.319357, 0.0, 0.0],
499
+ [0.309606, 0.0, 0.0],
500
+ [0.300207, 0.0, 0.0],
501
+ [0.291134, 0.0, 0.0],
502
+ [0.282402, 0.0, 0.0],
503
+ [0.273993, 0.0, 0.0],
504
+ [0.265809, 0.0, 0.0],
505
+ [0.257734, 0.0, 0.0],
506
+ [0.249634, 0.0, 0.0],
507
+ [0.241395, 0.0, 0.0],
508
+ [0.233045, 0.0, 0.0],
509
+ [0.224664, 0.0, 0.0],
510
+ [0.216342, 0.0, 0.0],
511
+ [0.208187, 0.0, 0.0],
512
+ [0.200246, 0.0, 0.0],
513
+ [0.192494, 0.0, 0.0],
514
+ [0.184944, 0.0, 0.0],
515
+ [0.177614, 0.0, 0.0],
516
+ [0.170521, 0.0, 0.0],
517
+ [0.163694, 0.0, 0.0],
518
+ [0.157146, 0.0, 0.0],
519
+ [0.150876, 0.0, 0.0],
520
+ [0.144878, 0.0, 0.0],
521
+ [0.139142, 0.0, 0.0],
522
+ [0.133678, 0.0, 0.0],
523
+ [0.128482, 0.0, 0.0],
524
+ [0.123512, 0.0, 0.0],
525
+ [0.118716, 0.0, 0.0],
526
+ [0.114033, 0.0, 0.0],
527
+ [0.10942, 0.0, 0.0],
528
+ [0.104882, 0.0, 0.0],
529
+ [0.100436, 0.0, 0.0],
530
+ [0.096101, 0.0, 0.0],
531
+ [0.0919, 0.0, 0.0],
532
+ [0.087833, 0.0, 0.0],
533
+ [0.083882, 0.0, 0.0],
534
+ [0.080041, 0.0, 0.0],
535
+ [0.076302, 0.0, 0.0],
536
+ [0.072655, 0.0, 0.0],
537
+ [0.06909, 0.0, 0.0],
538
+ [0.065607, 0.0, 0.0],
539
+ [0.062208, 0.0, 0.0],
540
+ [0.058892, 0.0, 0.0],
541
+ [0.055659, 0.0, 0.0],
542
+ [0.052505, 0.0, 0.0],
543
+ [0.049427, 0.0, 0.0],
544
+ [0.046429, 0.0, 0.0],
545
+ [0.043516, 0.0, 0.0],
546
+ [0.04069, 0.0, 0.0],
547
+ [0.037958, 0.0, 0.0],
548
+ [0.035413, 0.0, 0.0],
549
+ [0.033043, 0.0, 0.0],
550
+ [0.030831, 0.0, 0.0],
551
+ [0.028762, 0.0, 0.0],
552
+ [0.026822, 0.0, 0.0],
553
+ [0.025004, 0.0, 0.0],
554
+ [0.023301, 0.0, 0.0],
555
+ [0.021706, 0.0, 0.0],
556
+ [0.020211, 0.0, 0.0],
557
+ [0.018809, 0.0, 0.0],
558
+ [0.017493, 0.0, 0.0],
559
+ [0.01626, 0.0, 0.0],
560
+ [0.015109, 0.0, 0.0],
561
+ [0.014035, 0.0, 0.0],
562
+ [0.013036, 0.0, 0.0],
563
+ [0.012105, 0.0, 0.0],
564
+ [0.011239, 0.0, 0.0],
565
+ [0.010434, 0.0, 0.0],
566
+ [0.009686, 0.0, 0.0],
567
+ [0.00899, 0.0, 0.0],
568
+ [0.008344, 0.0, 0.0],
569
+ [0.007746, 0.0, 0.0],
570
+ [0.007192, 0.0, 0.0],
571
+ [0.006681, 0.0, 0.0],
572
+ [0.00621, 0.0, 0.0],
573
+ [0.005776, 0.0, 0.0],
574
+ [0.005375, 0.0, 0.0],
575
+ [0.005006, 0.0, 0.0],
576
+ [0.004664, 0.0, 0.0],
577
+ ], dtype=numpy.float32)
578
+ """sRGB color components for wavelengths of visible light (360-750 nm).
579
+
580
+ Array of shape (391, 3) containing normalized sRGB color components
581
+ for wavelengths from 360 to 750 nm in 1 nm increments.
582
+ Based on the CIE 1931 2° Standard Observer.
583
+
584
+ Generated using the `colour <https://colour.readthedocs.io>`_ package::
585
+
586
+ import colour; colour.plotting.plot_visible_spectrum()
587
+
588
+ """
589
+ # fmt: on