In [1]:
import colour
print(sorted(colour.ILLUMINANTS_SDS.keys()))
As per CIE publication CIE S005/E-1998: [2]
CIE Standard Illuminant A is intended to represent typical, domestic, tungsten-filament lighting. Its spectral distribution is that of a Planckian radiator at a temperature of approximately 2856 K. CIE Standard Illuminant A should be used in all applications of colorimetry involving the use of incandescent lighting, unless there are specific reasons for using a different illuminant.
The CIE Standard Illuminant A has the following range and increments:
In [2]:
colour.ILLUMINANTS_SDS['A'].shape
Out[2]:
In [3]:
from colour.plotting import *
In [4]:
colour_style();
In [5]:
plot_single_illuminant_sd('A');
The CIE Illuminant B is a daylight simulator intended to represent direct noon sunlight with a correlated colour temperature of 4874 K.
The CIE Illuminant B has the following range and increments:
In [6]:
colour.ILLUMINANTS_SDS['B'].shape
Out[6]:
In [7]:
plot_single_illuminant_sd('B');
The CIE Illuminant C is also a daylight simulator but intended to represent average daylight with a correlated colour temperature of 6774 K.
The CIE Illuminant B and CIE Illuminant C are poor approximations of any common light source and deprecated in favor of CIE Illuminant D Series. Both are deficient in their spectral distribution in the ultraviolet region which is important for fluorescent materials.
As per CIE 015:2004 Colorimetry, 3rd Edition: [3]
Illuminant C does not have the status of a CIE standard but its spectral distribution, tristimulus values and chromaticity coordinates are given in Table T.1 and Table T.3, as many practical measurement instruments and computations still use this illuminant.
The CIE Illuminant C has the following range and increments:
In [8]:
colour.ILLUMINANTS_SDS['C'].shape
Out[8]:
In [9]:
plot_single_illuminant_sd('C');
CIE Standard Illuminant A, CIE Illuminant B, and CIE Illuminant C spectral distributions are shown here altogether:
In [10]:
plot_multi_illuminant_sds(['A', 'B', 'C']);
In [11]:
# Plotting *CIE Standard Illuminant A*, *CIE Illuminant B*, and * CIE Illuminant C* with their normalised colours.
plot_multi_illuminant_sds(['A', 'B', 'C'],
use_sds_colours=True,
normalise_sds_colours=True);
CIE Standard Illuminant A, CIE Illuminant B, and CIE Illuminant C chromaticity coordinates plotted against the Planckian Locus into the CIE 1931 Chromaticity Diagram:
In [12]:
plot_planckian_locus_in_chromaticity_diagram_CIE1931(['A', 'B', 'C']);
Notice how the isotemperature lines are not perpendicular to the Planckian Locus, the CIE 1960 UCS Chromaticity Diagram with perpendicular isotemperature lines is better suited for correlated colour temperature computations:
In [13]:
with colour.utilities.suppress_warnings(python_warnings=True):
plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS(['A', 'B', 'C']);
In [14]:
# Zooming into the *Planckian Locus*.
with colour.utilities.suppress_warnings(python_warnings=True):
plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS(
['A', 'B', 'C'], bounding_box=[0.15, 0.35, 0.25, 0.45]);
The CIE Illuminant D Series are intended to model natural daylight and should be used in all colorimetric computations requiring representative daylight. [2]
The CIE Standard Illuminant D65 defines the spectral distribution representing a phase of daylight with a correlated colour temperature of approximately 6 500 K (called also "nominal correlated colour temperature of the daylight illuminant"). [4]
Note: CIE Standard Illuminant A and CIE Standard Illuminant D65 are the only illuminants considered as standard in the CIE Colour System. [4]
Relative spectral distributions of the following CIE Illuminant D Series are available:
In [15]:
import re
sorted(filter(lambda x: re.match('D\d{2}', x),
colour.ILLUMINANTS_SDS.keys()))
Out[15]:
The spectral distribution $\lbrace S_D(\lambda)d\lambda\rbrace$ of a CIE Illuminant D Series is the result of the linear combination of a mean distribution $\lbrace S_0(\lambda)d\lambda\rbrace$ and two distributions $\lbrace S_1(\lambda)d\lambda\rbrace$ and $\lbrace S_2(\lambda)d\lambda\rbrace$ being the most important eigen vectors of the all daylight distributions: [5][6]
$$ \begin{equation} S_D(\lambda)=S_0(\lambda)+M_1S_1(\lambda)+M_2S_2(\lambda) \end{equation} $$where $$ \begin{equation} \begin{aligned} M_1&=\cfrac{-1.3515-1.7703x_d+5.9114y_d}{M}\\ M_2&=\cfrac{0.0300-31.4424x_d+30.0717y_d}{M}\\ M&=0.0241+0.2562x_d-0.7341y_d \end{aligned} \end{equation} $$
The CIE Illuminant D Series have the following range and increments:
In [16]:
for key, value in sorted(colour.ILLUMINANTS_SDS.items()):
if re.match('D\d{2}', key):
print('{0}: {1}'.format(key, value.shape))
In [17]:
# Plotting *CIE Illuminant D Series* S spectral distributions.
plot_multi_sds(sorted(colour.colorimetry.D_ILLUMINANTS_S_SDS.values(), key=lambda x: x.title),
title='CIE Illuminant D Series - S Distributions');
In [18]:
# Plotting *CIE Illuminant D Series* into the *Planckian Locus*.
plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS(
sorted(filter(lambda x: re.match('D\d{2}', x),
colour.ILLUMINANTS_SDS.keys())),
bounding_box=[0.15, 0.35, 0.25, 0.45]);
The CIE Illuminant E is a theoretical reference equal energy radiator. All the wavelengths of its spectral distribution are weighted equally with a spectral of 100.0. CIE Illuminant E is not a blackbody so it doesn't have a colour temperature, but it can be approximated by a CIE Illuminant D Series with a correlated colour temperature of 5455 K (CIE Illuminant D55 is the closest match).
The CIE Illuminant E has the following range and increments:
In [19]:
colour.ILLUMINANTS_SDS['E'].shape
Out[19]:
In [20]:
plot_planckian_locus_in_chromaticity_diagram_CIE1960UCS(
['D55', 'E'], bounding_box=[0.15, 0.35, 0.25, 0.45]);
In [21]:
plot_single_illuminant_sd('E');
The Illuminants F Series are not CIE Standard Illuminants, but they have been compiled by the CIE for use as representative fluorescent lighting distributions for practical purposes.
The first 12, FL1 to FL12, are in three different groups, Normal, Broad-Band, and Three-Band:
F2, F7 and F11 are intended for use in preference to the others when the choice within each group is not critical.
The subsequent 15, FL3.1 to FL3.15, are in five different groups: Halophosphate, DeLuxe, Three-Band, Multi-Band, and D65 Simulator:
The Illuminants F Series have the following range and increments:
In [22]:
for key, value in sorted(colour.ILLUMINANTS_SDS.items()):
if re.match('F\d{1,2}|FL3\.\d{1,2}', key):
print('{0}: {1}'.format(key, value.shape))
In [23]:
# Plotting the *Normal* group of fluorescent illuminants.
plot_multi_illuminant_sds(['FL1', 'FL2', 'FL3', 'FL4', 'FL5', 'FL6']);
In [24]:
# Plotting the *Broad-Band* group of fluorescent illuminants.
plot_multi_illuminant_sds(['FL7', 'FL8', 'FL9']);
In [25]:
# Plotting the *Three-Band* group of fluorescent illuminants.
plot_multi_illuminant_sds(['FL10', 'FL11', 'FL12']);
In [26]:
# Plotting the *Halophosphate* group of fluorescent illuminants.
plot_multi_illuminant_sds(['FL3.1', 'FL3.2', 'FL3.3']);
In [27]:
# Plotting the *DeLuxe* group of fluorescent illuminants.
plot_multi_illuminant_sds(['FL3.4', 'FL3.5', 'FL3.6']);
In [28]:
# Plotting the *Three-Band* group of fluorescent illuminants.
plot_multi_illuminant_sds(
['FL3.7', 'FL3.8', 'FL3.9', 'FL3.10', 'FL3.11']);
In [29]:
# Plotting the *Multi-Band* group of fluorescent illuminants.
plot_multi_illuminant_sds(['FL3.12', 'FL3.13', 'FL3.14']);
In [30]:
# Plotting *D65 Simulator* fluorescent illuminant against *CIE Standard Illuminant D65*.
plot_multi_illuminant_sds(['FL3.15', 'D65']);
The High pressure discharge lamps are artificial light sources generating light by sending an electrical discharge through an ionized gas.
The High pressure discharge lamps have the following range and increments:
In [31]:
for key, value in sorted(colour.ILLUMINANTS_SDS.items()):
if re.match('HP\d', key):
print('{0}: {1}'.format(key, value.shape))
In [32]:
# Plotting all *high pressure discharge* lamps.
plot_multi_illuminant_sds(
sorted(filter(lambda x: re.match('HP\d', x),
colour.ILLUMINANTS_SDS.keys())));
For convenience purpose the chromaticity coordinates of the provided illuminants are given for the CIE 1931 2° Standard Observer and CIE 1964 10° Standard Observer:
In [33]:
sorted(colour.ILLUMINANTS['CIE 1931 2 Degree Standard Observer'].items())
Out[33]:
Note:
'cie_2_1931'
is defined as a convenient alias for'CIE 1931 2 Degree Standard Observer'
:
In [34]:
sorted(colour.ILLUMINANTS['cie_2_1931'])
Out[34]:
In [35]:
sorted(colour.ILLUMINANTS['CIE 1964 10 Degree Standard Observer'].items())
Out[35]:
Note:
'cie_10_1964'
is defined as a convenient alias for'CIE 1964 10 Degree Standard Observer'
:
In [36]:
sorted(colour.ILLUMINANTS['cie_10_1964'])
Out[36]:
They are either coming from published sources or have been calculated using the colour.sd_to_XYZ
and colour.XYZ_to_xy
definitions:
In [37]:
cmfs=colour.STANDARD_OBSERVERS_CMFS.get('CIE 1931 2 Degree Standard Observer')
for illuminant, sd in sorted(colour.ILLUMINANTS_SDS.items()):
print(illuminant, colour.XYZ_to_xy(colour.sd_to_XYZ(sd, cmfs)))
For usage with Hunter L,a,b and Hunter Rd,a,b colour scales and practises, Colour defines the following illuminants tristimulus values and chromaticity coefficients for the CIE 1931 2° Standard Observer and CIE 1964 10° Standard Observer:
In [38]:
sorted(colour.HUNTERLAB_ILLUMINANTS['CIE 1931 2 Degree Standard Observer'].items())
Out[38]:
In [39]:
sorted(colour.HUNTERLAB_ILLUMINANTS['CIE 1964 10 Degree Standard Observer'].items())
Out[39]:
Note:
'cie_2_1931'
and'cie_10_1964'
aliases are also valid for the HunterLab dataset.