Skip to content

Cie Chromaticity Coordinates Xyz Homework

The CIE 1931 chromaticity diagram is the locus of chromaticity coordinates for each visible wavelength . The chromaticity coordinates of the color space primaries are the vertices of the triangular region that determines the gamut of colors that can be represented in the color space.
For each wavelength , the chromaticity coordinates on the boundary of the color space triangular region are found as the intersection of the dominant wavelength line with the gamut boundary. (This scheme ignores that lines of constant hue are not straight.)
The gamut boundary chromaticity coordinates are converted to XYZ tristimulus values normalized to the Judd–Vos modified CIE 2-degree photopic luminosity curve, , as follows: .
The normalized XYZ tristimulus values are converted to RGB values using the color space XYZ RGB transformation matrix, the resulting RGB values are scaled so that the maximum value is 1, and finally RGB values are scaled by the color space transfer function (gamma adjustment).

For accurate appearance in a color-managed environment, the color space profile must be assigned to the resulting spectrum, for example, in Adobe Photoshop using Edit / Assign Profile. It does not appear to be possible to assign color space profiles within Mathematica.


[1] Adobe System Incorporated, "Adobe RGB (1968) Color Image Encoding," Version 2005-05.

[2] A. T. Young, "Rendering Spectra." (Sep 22, 2011)

[3] A. T. Young, "What Color Is It?" (Sep 22, 2011)

[4] C. Poynton, "A Guided Tour of Color Space." (Jul 14, 2015)

[5] R. W. G. Hunt, Measuring Colour, 3rd ed., Kingston-upon-Thames, England: Fountain Press, 1998.

Short version: When a color described in XYZ or xyY coordinates has a luminance Y=1, what are the physical units of that? Does that mean 1 candela, or 1 lumen? Is there any way to translate between this conceptual space and physical brightness?

Long version: I want to simulate how the sky looks in different directions, at different times of day, and (eventually) under different cloudiness and air pollution conditions. I've learned enough to figure out how to translate a given spectrum into a chrominance, for example xyz coordinates. But almost everything I've read on color theory in graphical display is focused on relative color, so the luminance is always 1. Non-programming color theory describes the units of luminance, so that I can translate from a spectrum in watts/square meter/steradian to candela or lumens, but nothing that describes the units of luminance in programming. What are the units of luminance in XYZ coordinates? I understand that the actual brightness of a patch would depend on monitor settings, but I'm really not finding any hints as to how to proceed.

Below is an example of what I'm coming across. The base color, at relative luminance of 1, was calculated from first principles. All the other colors are generated by increasing or decreasing the luminance. Most of them are plausible colors for mid-day sky. For the parameters I've chosen, I believe the total intensity in the visible range is 6.5 W/m2/sr = 4434 cd/m2, which seems to be in the right ballpark according to Wiki: Orders of Magnitude. Which color would I choose to represent that patch of sky?