A light source is a surface or object emitting light by a transformation of energy. [1]
An important difference exists between a light source and an illuminant. The former is an actual physical light and can be use to illuminate a surface while the later is usually mathematically defined, reproducible and may not be physically created.
At present no artificial source is recommended to realise CIE standard illuminant D65 or any other illuminant D of different correlated colour temperature. It is hoped that new developments in light sources and filters will eventually offer sufficient basis for a CIE recommendation. [2]
Colour provides the following light sources spectral distributions:
In [1]:
from pprint import pprint
import colour
pprint(sorted(colour.LIGHT_SOURCES_SDS.keys()))
The RIT light sources have been extracted from the PointerData.xls spreadsheet. [3]
Unfortunately references for the data are not indicated thus the light source names cannot be accurately verified.
The RIT light sources have the following range and increments:
In [2]:
from colour.colorimetry.datasets.light_sources.sds import LIGHT_SOURCES_RIT_SDS
for key, value in sorted(LIGHT_SOURCES_RIT_SDS.items()):
print('{0}: {1}'.format(key, value.shape))
In [3]:
from colour.plotting import *
In [4]:
colour_style();
In [5]:
from colour.utilities import batch
# Plotting the *RIT* light sources.
for light_sources in batch(list(LIGHT_SOURCES_RIT_SDS.values()), 4):
plot_multi_sds(light_sources);
The NIST light sources have been extracted from the NIST CQS simulation 7.4.xls spreadsheet. [4]
They have been divided into 3 categories:
The NIST light sources have the following range and increments:
In [6]:
from colour.colorimetry.datasets.light_sources.sds import (
LIGHT_SOURCES_NIST_TRADITIONAL_SDS,
LIGHT_SOURCES_NIST_LED_SDS,
LIGHT_SOURCES_NIST_PHILIPS_SDS)
for name, categorie in (('Traditional', LIGHT_SOURCES_NIST_TRADITIONAL_SDS),
('LED', LIGHT_SOURCES_NIST_LED_SDS),
('Philips', LIGHT_SOURCES_NIST_PHILIPS_SDS)):
print('"{0}" Light Sources:'.format(name))
for key, value in sorted(categorie.items()):
print('\t{0}: {1}'.format(key, value.shape))
print('\n')
In [7]:
# Plotting the *NIST* *Traditional* light sources.
traditional_light_sources = [v for k, v in sorted(LIGHT_SOURCES_NIST_TRADITIONAL_SDS.items())]
for light_sources in batch(traditional_light_sources, 4):
plot_multi_sds(light_sources);
In [8]:
# Plotting the *NIST* *LED* light sources.
LED_light_sources = [v for k, v in sorted(
LIGHT_SOURCES_NIST_LED_SDS.items())]
for light_sources in batch(LED_light_sources, 4):
plot_multi_sds(light_sources);
In [9]:
# Plotting the *NIST* *Philips* light sources.
philips_light_sources = [v for k, v in sorted(LIGHT_SOURCES_NIST_PHILIPS_SDS.items())]
for light_sources in batch(philips_light_sources, 4):
plot_multi_sds(light_sources);
For convenience purpose the chromaticity coordinates of the provided light sources are given for the CIE 1931 2° Standard Observer and CIE 1964 10° Standard Observer:
In [10]:
sorted(colour.LIGHT_SOURCES['CIE 1931 2 Degree Standard Observer'].items())
Out[10]:
Note:
'cie_2_1931'
is defined as a convenient alias for'CIE 1931 2 Degree Standard Observer'
:
In [11]:
sorted(colour.LIGHT_SOURCES['cie_2_1931'])
Out[11]:
In [12]:
sorted(colour.LIGHT_SOURCES['CIE 1964 10 Degree Standard Observer'].items())
Out[12]:
Note:
'cie_10_1964'
is defined as a convenient alias for'CIE 1964 10 Degree Standard Observer'
:
In [13]:
sorted(colour.ILLUMINANTS['cie_10_1964'])
Out[13]: