My goal is to estimate the color of a hypothetical (but realistic) surface through simulation of the spectrum of the light reflected on the surface.

In the simulation, a light with known spectrum is reflected on an ideal white surface coated with a layer of a given pigment.

The thickness of the layer and the concentration of the pigment are represented by a single variable C (larger value -> thicker layer and/or more concentrated pigment).

I'm starting with the data of the extraterrestial solar spectrum and the spectral molar attenuation coefficient of the clorophyll alpha that I got on this site. In all cases I used wavelengths from 300 to 800 nm with 1 nm intervals (I ignored the non-interger wavelengths)

I'm using Osram's Color Calculator for the job. It correctly found that the solar spectrum I have is a white light near 6000K.

The molar attenuation coefficient (considering a homogenous, uniform pigment layer) is related to the absorbance by the expression

A = εcℓ

Where ε is the molar attenuation coefficient of the material, c is the molar concentration and ℓ is the length of the path made by light through the material.

Once ℓ depends on the thickness and c is the pigment concentration, both are represented by my variable C, so I rewrote this as:

A = εC .

Using the definition of the absorbance:

A = log10(I0/I);

where I0 is the radiant flux recieved by the material and I is radiant flux transmitted by it, we can do:

εC = log10(I0/I)

10^εC = I0/I

I*10^εC = I0

I = I0/(10^εC)

Doing that for each wavelength, using the values of I0 from the solar spectrum and the values of ε from the clorophyll data, I can get the reflected spectrum according to the C I choose.

Using a small C (0.4), as expected, the surface is almost white, just like a paper with very diluted ink:


The problem is that when I increased my C, the color started to shift towards a cian-blue color, far from the green I expected:




Changing the base of the exponential and/or multiplying the factors by constants didn't change the resulting color: It's always blue.

The data I got seems to check, I've looked in other places and that's how the clorophyll alpha absorbance should look like.

Any ideas on where I got wrong?


Ps.: Is also looks blue simulating with Equal Energy white light and other white spectra I tested.

  • $\begingroup$ Looking at the absorbance curve, there's no way what you got is correct. The solar spectrum peaks at 500 nm, the absorbance is almost zero at 500 nm, and yet 500 nm is very small in your graph. Are you plotting the absorbed light on accident? $\endgroup$ – HiddenBabel Jun 14 '18 at 5:27
  • $\begingroup$ That's the extraterrestial solar spectrum, it isn't wrong. You can see that with a small C the simulated reflected spectrum is almost white, as the program calculates. And when increasing C the reflected spectrum gets more colored. I'm pretty sure I didn't anything wrong on the calculations. And the result is almost the same here if I use Equal Energy white light or other white light spectra I found, always turns blue. My question is if my method is correct and if the data is correct too $\endgroup$ – user2934303 Jun 14 '18 at 5:38
  • $\begingroup$ I've just found that I was using the wrong data file: The actual file with the molar extinction was another. Now, using the correct one, if I plot the absorption graph itself, I get an graphic absolutely identical to the ones in every article about clorophyll alpha, perfect. But the calculated color is still not green, it's now a cian, much more closer to green than it was before, but isn't similar to the color of a plant. $\endgroup$ – user2934303 Jun 14 '18 at 7:56
  • $\begingroup$ Good! From googling, I learned there's two types of chlorophyll, and one is bluer than the other apparently. $\endgroup$ – HiddenBabel Jun 14 '18 at 14:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.