Here's how I recommend you calculate the absorption coefficent (which in general varies with the wavelength) from the given data:
the transmittance when passing a distance d through a uniform (and non-scattering) medium is given by
t = exp(-a*d)
where a is the absorption coefficient (sometimes written as sigma subscript a), d is the distance travelled through the medium, and t is the transmittance.
Let's use units of metres here, so d = distance in meters, and a has units of m^-1.
When using the Schott data, I suggest you use the transmittance value at 25mm instead of the 10mm value, because it will give more precise results considering we only have 3 sig figs.
Lets take the example of the glass N-LAF33, (page 58 ) at 370nm.
The 25mm transmittance is 0.680.
Plugging that into the above equation (using d = 0.025m), rearranged as
a = -ln(t) / d
gives a = 15.426m^-1. You can check that it works for d = 10mm as well.
Note that ln() is the base-e logarithm, not the base 10 logarithm.
So we now have a value for the absorption coefficient at 370nm.
Now the question is how to pass this (wavelength varying) data to Indigo.
The best way would be able to pass in a table of (wavelength, absorption coefficient) pairs. Indigo can't currently accept data like this, but the code exists to handle such tables internally.
So what I'll do is to code in a new spectrum XML type that can handle tabulated data like this.




