Light Sources

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()))


['3-LED-1 (457/540/605)',
 '3-LED-2 (473/545/616)',
 '3-LED-2 Yellow',
 '3-LED-3 (465/546/614)',
 '3-LED-4 (455/547/623)',
 '4-LED No Yellow',
 '4-LED Yellow',
 '4-LED-1 (461/526/576/624)',
 '4-LED-2 (447/512/573/627)',
 '60 A/W (Soft White)',
 'C100S54 (HPS)',
 'C100S54C (HPS)',
 'Cool White FL',
 'Daylight FL',
 'F32T8/TL830 (Triphosphor)',
 'F32T8/TL835 (Triphosphor)',
 'F32T8/TL841 (Triphosphor)',
 'F32T8/TL850 (Triphosphor)',
 'F32T8/TL865 /PLUS (Triphosphor)',
 'F34/CW/RS/EW (Cool White FL)',
 'F34T12/LW/RS /EW',
 'F34T12WW/RS /EW (Warm White FL)',
 'F40/C50 (Broadband FL)',
 'F40/C75 (Broadband FL)',
 'F40/CWX (Broadband FL)',
 'F40/DX (Broadband FL)',
 'F40/DXTP (Delux FL)',
 'F40/N (Natural FL)',
 'H38HT-100 (Mercury)',
 'H38JA-100/DX (Mercury DX)',
 'HPS',
 'Incandescent',
 'Kinoton 75P',
 'LPS',
 'Luxeon WW 2880',
 'MHC100/U/MP /3K',
 'MHC100/U/MP /4K',
 'Mercury',
 'Metal Halide',
 'Natural',
 'Neodimium Incandescent',
 'PHOS-1',
 'PHOS-2',
 'PHOS-3',
 'PHOS-4',
 'Philips TL-84',
 'Phosphor LED YAG',
 'SA',
 'SC',
 'SDW-T 100W/LV (Super HPS)',
 'Super HPS',
 'T8 Luxline Plus White',
 'T8 Polylux 3000',
 'T8 Polylux 4000',
 'Thorn Kolor-rite',
 'Triphosphor FL']

RIT Light Sources

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))


Natural: (380.0, 780.0, 5.0)
Philips TL-84: (380.0, 780.0, 5.0)
SA: (380.0, 780.0, 5.0)
SC: (380.0, 780.0, 5.0)
T8 Luxline Plus White: (380.0, 780.0, 5.0)
T8 Polylux 3000: (380.0, 780.0, 5.0)
T8 Polylux 4000: (380.0, 780.0, 5.0)
Thorn Kolor-rite: (380.0, 780.0, 5.0)

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);


NIST 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:

  • Traditional light sources from NIST.
  • LED light sources from NIST.
  • Philips light sources from NIST.

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')


"Traditional" Light Sources:
	Cool White FL: (380.0, 780.0, 5.0)
	Daylight FL: (380.0, 780.0, 5.0)
	HPS: (380.0, 780.0, 5.0)
	Incandescent: (380.0, 780.0, 5.0)
	LPS: (380.0, 780.0, 5.0)
	Mercury: (380.0, 780.0, 5.0)
	Metal Halide: (380.0, 780.0, 5.0)
	Neodimium Incandescent: (380.0, 780.0, 5.0)
	Super HPS: (380.0, 780.0, 5.0)
	Triphosphor FL: (380.0, 780.0, 5.0)


"LED" Light Sources:
	3-LED-1 (457/540/605): (380.0, 780.0, 5.0)
	3-LED-2 (473/545/616): (380.0, 780.0, 5.0)
	3-LED-2 Yellow: (380.0, 780.0, 5.0)
	3-LED-3 (465/546/614): (380.0, 780.0, 5.0)
	3-LED-4 (455/547/623): (380.0, 780.0, 5.0)
	4-LED No Yellow: (380.0, 780.0, 5.0)
	4-LED Yellow: (380.0, 780.0, 5.0)
	4-LED-1 (461/526/576/624): (380.0, 780.0, 5.0)
	4-LED-2 (447/512/573/627): (380.0, 780.0, 5.0)
	Luxeon WW 2880: (380.0, 780.0, 5.0)
	PHOS-1: (380.0, 780.0, 5.0)
	PHOS-2: (380.0, 780.0, 5.0)
	PHOS-3: (380.0, 780.0, 5.0)
	PHOS-4: (380.0, 780.0, 5.0)
	Phosphor LED YAG: (380.0, 780.0, 5.0)


"Philips" Light Sources:
	60 A/W (Soft White): (380.0, 780.0, 5.0)
	C100S54 (HPS): (380.0, 780.0, 5.0)
	C100S54C (HPS): (380.0, 780.0, 5.0)
	F32T8/TL830 (Triphosphor): (380.0, 780.0, 5.0)
	F32T8/TL835 (Triphosphor): (380.0, 780.0, 5.0)
	F32T8/TL841 (Triphosphor): (380.0, 780.0, 5.0)
	F32T8/TL850 (Triphosphor): (380.0, 780.0, 5.0)
	F32T8/TL865 /PLUS (Triphosphor): (380.0, 780.0, 5.0)
	F34/CW/RS/EW (Cool White FL): (380.0, 780.0, 5.0)
	F34T12/LW/RS /EW: (380.0, 780.0, 5.0)
	F34T12WW/RS /EW (Warm White FL): (380.0, 780.0, 5.0)
	F40/C50 (Broadband FL): (380.0, 780.0, 5.0)
	F40/C75 (Broadband FL): (380.0, 780.0, 5.0)
	F40/CWX (Broadband FL): (380.0, 780.0, 5.0)
	F40/DX (Broadband FL): (380.0, 780.0, 5.0)
	F40/DXTP (Delux FL): (380.0, 780.0, 5.0)
	F40/N (Natural FL): (380.0, 780.0, 5.0)
	H38HT-100 (Mercury): (380.0, 780.0, 5.0)
	H38JA-100/DX (Mercury DX): (380.0, 780.0, 5.0)
	MHC100/U/MP /3K: (380.0, 780.0, 5.0)
	MHC100/U/MP /4K: (380.0, 780.0, 5.0)
	SDW-T 100W/LV (Super HPS): (380.0, 780.0, 5.0)



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);


Chromaticity Coordinates

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]:
[('3-LED-1 (457/540/605)', array([ 0.41705769,  0.39626246])),
 ('3-LED-2 (473/545/616)', array([ 0.41706048,  0.39626812])),
 ('3-LED-2 Yellow', array([ 0.43656308,  0.44364962])),
 ('3-LED-3 (465/546/614)', array([ 0.3804605,  0.376772 ])),
 ('3-LED-4 (455/547/623)', array([ 0.41706794,  0.39627628])),
 ('4-LED No Yellow', array([ 0.41706059,  0.39626815])),
 ('4-LED Yellow', array([ 0.41706964,  0.39627677])),
 ('4-LED-1 (461/526/576/624)', array([ 0.41706762,  0.39627506])),
 ('4-LED-2 (447/512/573/627)', array([ 0.41707157,  0.39627875])),
 ('60 A/W (Soft White)', array([ 0.45073022,  0.40804613])),
 ('C100S54 (HPS)', array([ 0.52923152,  0.41137016])),
 ('C100S54C (HPS)', array([ 0.50238041,  0.4158773 ])),
 ('Cool White FL', array([ 0.36925632,  0.37254988])),
 ('Daylight FL', array([ 0.31266299,  0.33198569])),
 ('F32T8/TL830 (Triphosphor)', array([ 0.44325076,  0.4095237 ])),
 ('F32T8/TL835 (Triphosphor)', array([ 0.40715027,  0.39317274])),
 ('F32T8/TL841 (Triphosphor)', array([ 0.38537669,  0.39037076])),
 ('F32T8/TL850 (Triphosphor)', array([ 0.34376891,  0.35844744])),
 ('F32T8/TL865 /PLUS (Triphosphor)', array([ 0.31636888,  0.34532079])),
 ('F34/CW/RS/EW (Cool White FL)', array([ 0.37725093,  0.39308766])),
 ('F34T12/LW/RS /EW', array([ 0.37886364,  0.39496063])),
 ('F34T12WW/RS /EW (Warm White FL)', array([ 0.43846697,  0.40863544])),
 ('F40/C50 (Broadband FL)', array([ 0.34583657,  0.36172445])),
 ('F40/C75 (Broadband FL)', array([ 0.29996666,  0.31658217])),
 ('F40/CWX (Broadband FL)', array([ 0.37503705,  0.36054395])),
 ('F40/DX (Broadband FL)', array([ 0.31192231,  0.3428021 ])),
 ('F40/DXTP (Delux FL)', array([ 0.31306654,  0.34222571])),
 ('F40/N (Natural FL)', array([ 0.3768787 ,  0.35415346])),
 ('H38HT-100 (Mercury)', array([ 0.31120059,  0.38294425])),
 ('H38JA-100/DX (Mercury DX)', array([ 0.38979163,  0.37339469])),
 ('HPS', array([ 0.5216777 ,  0.41797118])),
 ('Incandescent', array([ 0.45073022,  0.40804613])),
 ('Kinoton 75P', array([ 0.31525241,  0.33287079])),
 ('LPS', array([ 0.57515131,  0.42423223])),
 ('Luxeon WW 2880', array([ 0.45908853,  0.43291648])),
 ('MHC100/U/MP /3K', array([ 0.42858177,  0.38816892])),
 ('MHC100/U/MP /4K', array([ 0.37314525,  0.37136699])),
 ('Mercury', array([ 0.39201846,  0.38377707])),
 ('Metal Halide', array([ 0.37254456,  0.38560393])),
 ('Natural', array([ 0.38158573,  0.35922414])),
 ('Neodimium Incandescent', array([ 0.4473987,  0.3950086])),
 ('PHOS-1', array([ 0.43644317,  0.40461603])),
 ('PHOS-2', array([ 0.45270446,  0.43758454])),
 ('PHOS-3', array([ 0.43689987,  0.40403737])),
 ('PHOS-4', array([ 0.43693602,  0.40411356])),
 ('Philips TL-84', array([ 0.3784136 ,  0.37929025])),
 ('Phosphor LED YAG', array([ 0.30776182,  0.32526894])),
 ('SA', array([ 0.44757303,  0.40743814])),
 ('SC', array([ 0.31005673,  0.3161457 ])),
 ('SDW-T 100W/LV (Super HPS)', array([ 0.47233916,  0.40710633])),
 ('Super HPS', array([ 0.47006166,  0.40611658])),
 ('T8 Luxline Plus White', array([ 0.4104922 ,  0.38893253])),
 ('T8 Polylux 3000', array([ 0.43170608,  0.41387774])),
 ('T8 Polylux 4000', array([ 0.37921947,  0.38446909])),
 ('Thorn Kolor-rite', array([ 0.38191912,  0.37430926])),
 ('Triphosphor FL', array([ 0.41316327,  0.39642205]))]

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]:
['3-LED-1 (457/540/605)',
 '3-LED-2 (473/545/616)',
 '3-LED-2 Yellow',
 '3-LED-3 (465/546/614)',
 '3-LED-4 (455/547/623)',
 '4-LED No Yellow',
 '4-LED Yellow',
 '4-LED-1 (461/526/576/624)',
 '4-LED-2 (447/512/573/627)',
 '60 A/W (Soft White)',
 'C100S54 (HPS)',
 'C100S54C (HPS)',
 'Cool White FL',
 'Daylight FL',
 'F32T8/TL830 (Triphosphor)',
 'F32T8/TL835 (Triphosphor)',
 'F32T8/TL841 (Triphosphor)',
 'F32T8/TL850 (Triphosphor)',
 'F32T8/TL865 /PLUS (Triphosphor)',
 'F34/CW/RS/EW (Cool White FL)',
 'F34T12/LW/RS /EW',
 'F34T12WW/RS /EW (Warm White FL)',
 'F40/C50 (Broadband FL)',
 'F40/C75 (Broadband FL)',
 'F40/CWX (Broadband FL)',
 'F40/DX (Broadband FL)',
 'F40/DXTP (Delux FL)',
 'F40/N (Natural FL)',
 'H38HT-100 (Mercury)',
 'H38JA-100/DX (Mercury DX)',
 'HPS',
 'Incandescent',
 'Kinoton 75P',
 'LPS',
 'Luxeon WW 2880',
 'MHC100/U/MP /3K',
 'MHC100/U/MP /4K',
 'Mercury',
 'Metal Halide',
 'Natural',
 'Neodimium Incandescent',
 'PHOS-1',
 'PHOS-2',
 'PHOS-3',
 'PHOS-4',
 'Philips TL-84',
 'Phosphor LED YAG',
 'SA',
 'SC',
 'SDW-T 100W/LV (Super HPS)',
 'Super HPS',
 'T8 Luxline Plus White',
 'T8 Polylux 3000',
 'T8 Polylux 4000',
 'Thorn Kolor-rite',
 'Triphosphor FL']

In [12]:
sorted(colour.LIGHT_SOURCES['CIE 1964 10 Degree Standard Observer'].items())


Out[12]:
[('3-LED-1 (457/540/605)', array([ 0.42509999,  0.38945135])),
 ('3-LED-2 (473/545/616)', array([ 0.42222212,  0.4012985 ])),
 ('3-LED-2 Yellow', array([ 0.44622222,  0.44164646])),
 ('3-LED-3 (465/546/614)', array([ 0.38747047,  0.37640472])),
 ('3-LED-4 (455/547/623)', array([ 0.42286546,  0.38877224])),
 ('4-LED No Yellow', array([ 0.41980753,  0.39946529])),
 ('4-LED Yellow', array([ 0.4227206 ,  0.39028466])),
 ('4-LED-1 (461/526/576/624)', array([ 0.42389978,  0.39417089])),
 ('4-LED-2 (447/512/573/627)', array([ 0.42157104,  0.39408974])),
 ('60 A/W (Soft White)', array([ 0.4543656 ,  0.40657368])),
 ('C100S54 (HPS)', array([ 0.53855461,  0.40257583])),
 ('C100S54C (HPS)', array([ 0.50966306,  0.40906451])),
 ('Cool White FL', array([ 0.37671505,  0.3645768 ])),
 ('Daylight FL', array([ 0.31739588,  0.33078082])),
 ('F32T8/TL830 (Triphosphor)', array([ 0.44879522,  0.40357464])),
 ('F32T8/TL835 (Triphosphor)', array([ 0.41208253,  0.38800107])),
 ('F32T8/TL841 (Triphosphor)', array([ 0.39090862,  0.38529056])),
 ('F32T8/TL850 (Triphosphor)', array([ 0.34788243,  0.35584574])),
 ('F32T8/TL865 /PLUS (Triphosphor)', array([ 0.3206982 ,  0.34387144])),
 ('F34/CW/RS/EW (Cool White FL)', array([ 0.38651485,  0.38284333])),
 ('F34T12/LW/RS /EW', array([ 0.38962891,  0.38207472])),
 ('F34T12WW/RS /EW (Warm White FL)', array([ 0.44839538,  0.39566664])),
 ('F40/C50 (Broadband FL)', array([ 0.34988083,  0.36066132])),
 ('F40/C75 (Broadband FL)', array([ 0.30198853,  0.31847903])),
 ('F40/CWX (Broadband FL)', array([ 0.37850231,  0.35637189])),
 ('F40/DX (Broadband FL)', array([ 0.31678304,  0.34174927])),
 ('F40/DXTP (Delux FL)', array([ 0.31877475,  0.33979883])),
 ('F40/N (Natural FL)', array([ 0.37883316,  0.3507244 ])),
 ('H38HT-100 (Mercury)', array([ 0.32626063,  0.3600011 ])),
 ('H38JA-100/DX (Mercury DX)', array([ 0.3970586 ,  0.35653243])),
 ('HPS', array([ 0.5317645 ,  0.40875272])),
 ('Incandescent', array([ 0.4543656 ,  0.40657368])),
 ('Kinoton 75P', array([ 0.31708664,  0.33622243])),
 ('LPS', array([ 0.58996005,  0.41003995])),
 ('Luxeon WW 2880', array([ 0.4666393 ,  0.43081742])),
 ('MHC100/U/MP /3K', array([ 0.43142299,  0.38064221])),
 ('MHC100/U/MP /4K', array([ 0.37570711,  0.36615647])),
 ('Mercury', array([ 0.40126641,  0.36473254])),
 ('Metal Halide', array([ 0.37878617,  0.37749693])),
 ('Natural', array([ 0.38487099,  0.35386922])),
 ('Neodimium Incandescent', array([ 0.44751672,  0.39673415])),
 ('PHOS-1', array([ 0.44012   ,  0.40313578])),
 ('PHOS-2', array([ 0.4614874 ,  0.43615029])),
 ('PHOS-3', array([ 0.44089266,  0.40866226])),
 ('PHOS-4', array([ 0.44176044,  0.40726748])),
 ('Philips TL-84', array([ 0.383592  ,  0.37392274])),
 ('Phosphor LED YAG', array([ 0.31280783,  0.33418094])),
 ('SA', array([ 0.4511768 ,  0.40593605])),
 ('SC', array([ 0.31038864,  0.31905065])),
 ('SDW-T 100W/LV (Super HPS)', array([ 0.47646191,  0.40228801])),
 ('Super HPS', array([ 0.47385957,  0.40138183])),
 ('T8 Luxline Plus White', array([ 0.41694698,  0.38099143])),
 ('T8 Polylux 3000', array([ 0.43903893,  0.40455433])),
 ('T8 Polylux 4000', array([ 0.38511516,  0.37780093])),
 ('Thorn Kolor-rite', array([ 0.38553393,  0.37084049])),
 ('Triphosphor FL', array([ 0.41859196,  0.38894771]))]

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]:
['A',
 'B',
 'C',
 'D50',
 'D55',
 'D60',
 'D65',
 'D75',
 'E',
 'FL1',
 'FL10',
 'FL11',
 'FL12',
 'FL2',
 'FL3',
 'FL3.1',
 'FL3.10',
 'FL3.11',
 'FL3.12',
 'FL3.13',
 'FL3.14',
 'FL3.15',
 'FL3.2',
 'FL3.3',
 'FL3.4',
 'FL3.5',
 'FL3.6',
 'FL3.7',
 'FL3.8',
 'FL3.9',
 'FL4',
 'FL5',
 'FL6',
 'FL7',
 'FL8',
 'FL9',
 'HP1',
 'HP2',
 'HP3',
 'HP4',
 'HP5']

Bibliography

  1. ^ CIE. (n.d.). 17-982 primary light source. Retrieved October 02, 2014, from http://eilv.cie.co.at/term/982
  2. ^ CIE TC 1-48. (2004). CIE 015:2004 Colorimetry, 3rd Edition. CIE 015:2004 Colorimetry, 3rd Edition (pp. 1–82). ISBN:978-3-901-90633-6
  3. ^ Pointer, M. R. (1980). Pointer’s Gamut Data. Retrieved from http://www.cis.rit.edu/research/mcsl2/online/PointerData.xls
  4. ^ Ohno, Y., & Davis, W. (2008). NIST CQS simulation 7.4. Retrieved from http://cie2.nist.gov/TC1-69/NIST%20CQS%20simulation%207.4.xls

Dataset

  1. RIT Light Sources: Pointer, M. R. (1980). Pointer’s Gamut Data. Retrieved from http://www.cis.rit.edu/research/mcsl2/online/PointerData.xls
  2. NIST Light Sources: Ohno, Y., & Davis, W. (2008). NIST CQS simulation 7.4. Retrieved from http://cie2.nist.gov/TC1-69/NIST%20CQS%20simulation%207.4.xls