Python to Plot Blackbody Intensity and Wavelength

#CoLab:Homework_3.ipynb - Colaboratory (google.com)

import numpy as np

import matplotlib.pyplot as plt
T = np.array([30010003000600010000])

# Physical constants in SI units: Planck's constant (J.s),
# the speed of light (m.s-1), Boltzmann's constant (J.K-1)
h, c, kB = 6.62606957e-342997924581.3806488e-23
# Sun temperature, K
T1 = 300
T2=1000
T3= 3000
T4= 6000
T5=10000

lambda_min =  1   # nm
lambda_max = 10000   # nm
n = 3000
wv = np.linspace(lambda_min, lambda_max, n)

# Python code to demonstrate the working of
# log(a,Base)
 
# Planck curve as a function of wavelength in nm
B1 = 2 * h * c**2 / (wv*1.e-9)**5 / (np.exp(h * c / wv/1.e-9 / kB / T1) - 1)
B2 = 2 * h * c**2 / (wv*1.e-9)**5 / (np.exp(h * c / wv/1.e-9 / kB / T2) - 1)
B3 = 2 * h * c**2 / (wv*1.e-9)**5 / (np.exp(h * c / wv/1.e-9 / kB / T3) - 1)
B4 = 2 * h * c**2 / (wv*1.e-9)**5 / (np.exp(h * c / wv/1.e-9 / kB / T4) - 1)
B5 = 2 * h * c**2 / (wv*1.e-9)**5 / (np.exp(h * c / wv/1.e-9 / kB / T5) - 1)



fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(wv, B1, 'k', lw=2, label='T=300 K')
ax.plot(wv, B2, 'b', lw=2, label='T=1000 K')
ax.plot(wv, B3, 'c', lw=2, label='T=3000 K')
ax.plot(wv, B4, 'm', lw=2, label='T=6000 K')
ax.plot(wv, B5, 'r', lw=2, label='T=10000 K')


ax.set_xlabel(r'$\lambda\;/\mathrm{nm}$')
ax.set_ylabel(r'$B(\lambda)\;/\mathrm{W\,sr^{−1}\,m^{−3}}$')


ax.set_xscale('log')
ax.set_yscale('log')



plt.legend(loc="lower right")


plt.show()







Comments