from numpy import *
from scipy import interpolate
import matplotlib.pyplot as plt
f = genfromtxt("oled-flux.dat", delimiter=",")
total_power = sum(f[:,1:6],axis=1)
glass_power = f[:,7]
waveguide_power = sum(f[:,8:11],axis=1)
glass = glass_power/total_power
waveguide = waveguide_power/total_power
aluminum = 1-glass-waveguide
lambdas_linear = linspace(0.4,0.8,100)
lambdas = 1/f[:,0]
g_linear = interpolate.interp1d(lambdas,glass,kind='cubic')
w_linear = interpolate.interp1d(lambdas,waveguide,kind='cubic')
a_linear = interpolate.interp1d(lambdas,aluminum,kind='cubic')
glass_linear = g_linear(lambdas_linear)
waveguide_linear = w_linear(lambdas_linear)
aluminum_linear = a_linear(lambdas_linear)
plt.plot(lambdas_linear,glass_linear,'b-',label='glass');
plt.plot(lambdas_linear,waveguide_linear,'r-',label='organic + ITO');
plt.plot(lambdas_linear,aluminum_linear,'g-',label='aluminum');
plt.xlabel("wavelength (um)"); plt.ylabel("fraction of total power");
plt.axis([0.4, 0.8, 0, 1]);
plt.xticks([t for t in arange(0.4,0.9,0.1)]);
plt.legend(loc='upper right');
plt.show()
print("glass: %0.6f (mean), %0.6f (std. dev.)" % (mean(glass_linear),std(glass_linear)))
print("waveguide: %0.6f (mean), %0.6f (std. dev.)" % (mean(waveguide_linear),std(waveguide_linear)))
print("aluminum: %0.6f (mean), %0.6f (std. dev.)" % (mean(aluminum_linear),std(aluminum_linear)))