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