====== 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).}}]