====== Outgoing longwave radiation spectrum ======
//Task:// Compute the emitted irradiance spectrum at the Earth surface and at the top of the atmosphere from 3.5 µm to 100 μm. Plot the result together with the Planck function at the surface temperature.
# specify libRadtran data path
data_files_path /home/claudia/libRadtran/data
# Location of atmospheric profile file.
atmosphere_file us-standard
mol_abs_param lowtran
albedo 0.0 # Surface albedo
rte_solver disort2 # Radiative transfer equation solver
wavelength 3500 100000.0 # Wavelength range [nm]
# calulcation wavelengths
transmittance_wl_file trans_wl.dat
source thermal # Emission from Earth surface is source of radiation
zout toa # surface or toa
output per_nm # Output unit
The following file includes wavelengths for which the radiative transfer calculation is performed:
{{:lectures:radiative_transfer:trans_wl.dat|}}
from pylab import *
def planck(lam, T):
c= 2.99792458e8
k= 1.380662e-23
h= 6.626180e-34
return 2*pi*h*c*c/(lam**5 * (exp(h*c/(lam*k*T))-1.))
# irradiance from 300 to 500 nm
lw_spectrum_sur=loadtxt('thermal_sur.out')
lw_spectrum_toa=loadtxt('thermal_toa.out')
figure(1, figsize=(10,7))
plot(lw_spectrum_sur[:,0], lw_spectrum_sur[:,3], label='surface')
plot(lw_spectrum_toa[:,0], lw_spectrum_toa[:,3], label='TOA')
plot(lw_spectrum_toa[:,0], planck(lw_spectrum_toa[:,0]*1e-9, 288.2)*1e-9, label='Planck')
xlim(3500,60000)
title('LW spectrum')
xlabel('wavelength [nm]')
ylabel('irradiance [W/ (m^2 nm)]')
legend(loc=1)
savefig('olr.png')
[{{ :teaching:radiative_transfer:olr.png?500 |Upwelling irradiance at top of atmosphere (green). The upwelling irradinace at the surface corresponds exactly to the Planck function for 288.2 K (surface temperature).}}]