User Tools


teaching:radiative_transfer:thermal

TOA radiance at 10 μm as function of cloud height

Calculate the radiance at the top of the atmosphere at a wavelength of 10 μm assuming that the atmosphere includes a cloud layer. How does the radiance depend on cloud altitude?

Hints:

  • Use the libRadtran input file and the plotting script from exercise 6 to start.
  • Look at exercise 8 to see how a cloud layer is defined in libRadtran.
13.inp
data_files_path /local/libRadtran-1.5-beta/data
atmosphere_file us-standard
mol_abs_param lowtran
source solar kurudz_1.0nm.dat
albedo 0.0
sza 30.0
rte_solver disort2
wavelength 10000
wc_file 1D /usr/users/westermayer/Desktop/RadiativeTransfer/cloud1.dat 
zout toa
umu 0.9
phi 0 20 40 60 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360
cloud1.dat
# height LWC	Reff
# km	g/m^3	µm
3.0	0	0
2.0	0.1	10.0
1.0	0.1	10.0
cloud6.dat
# height LWC	Reff
# km	g/m^3	µm
8.0	0	0
7.0	0.1	10.0
6.0	0.1	10.0
5.0	0	0
4.0	0	0
3.0	0	0
2.0	0	0
1.0	0	0

clouddata13.dat

loop.sh
#!/bin/bash
 
# this shell script calculates radiances for clouds at differnt heights. zmin is the bottom 
# of the cloud, zmax the top.
 
rm radiance.dat
 
for zmin in `seq 1 8`; do
 
    # zmax should be 1 km higher than zmin -> cloud layer thickness is 1 km
    let zmax=zmin+1
    echo "zmin: "$zmin" zmax: "$zmax
 
    # Make template for wc_file where the altitudes are replaced using sed
    sed 's/ZMIN/'$zmin'/' wc.tmplt | sed 's/ZMAX/'$zmax'/' > wc.dat
 
    # execute uvspec
    uvspec < uvspec.inp > dummy
 
    # write result (zmin, zmax, radiance) into file
    gawk '{print '$zmin', '$zmax', $2}' dummy >> radiance.dat
 
done    
uvspec.inp
                         # specify libRadtran data path
data_files_path  /local/emde/libRadtran/data
 
                         # Location of atmospheric profile file. 
atmosphere_file          us-standard
 
correlated_k             lowtran
 
albedo 0                 # Surface albedo
 
rte_solver disort2       # Radiative transfer equation solver
 
wavelength 10000         # Wavelength range [nm] 
 
wc_file wc.dat
 
source thermal            # Emission from Earth surface is source of radiation
 
zout toa                  # surface or toa
 
umu 1
phi 0 
 
output per_nm            # output unit
 
output_user lambda uu
wc.tmplt
ZMAX 0 0 
ZMIN 0.1 10
plot_rad.py
from pylab import *
 
# Planck function to calculate radiance for given wavelength and temperature. 
# Note the difference (factor pi) to task 1 where irradiances were calculated.
def planck(lam, T):
 
    c= 2.99792458e8 # speed of light
    k= 1.380662e-23 # Boltzmann constant
    h= 6.626180e-34 # Planck constant
 
    return 2*h*c*c/(lam**5 * (exp(h*c/(lam*k*T))-1.))
 
 
# simulated radiance
bt=loadtxt('radiance.dat')
# atmospheric profile
atm=loadtxt('/local/emde/libRadtran/data/atmmod/afglus.dat')
 
plot(bt[:,2], bt[:,1], 'o', label='simulated radiance')
plot(planck(10e-6,atm[:,2])*1e-9, atm[:,0], label='B( T(z) )')
ylim(0,10)
xlim(0,0.015)
ylabel('cloud top height [km]')
xlabel('radiance [W/(m^2 nm sr)]')
legend()
 
savefig('cloudheight.png')

teaching/radiative_transfer/thermal.txt · Last modified: 2018/05/04 08:40 (external edit)