In satellite images it is often difficult to see thin clouds, e.g. cirrus clouds. To detect cirrus clouds a common procedure is to look at the radiance difference between two channels (around 10 µm and 12 µm). Calculate the radiance at 10 µm and at 12 µm for ice clouds in the optical thickness range from 0.1 to 10 and plot the results (radiances and difference). Explain how the cloud detection could work.
Start with the input file uvspec.inp from exercise 13.
–> How cloud detection could work:
For small taus the difference between the irradiances of the two different wavelengths is a strictly monotonic decreasing function of tau. Assuming that in the atmosphere nothing else happens at the same time what influences this difference, one can just read of if there is a thin cloud of small tau by the value of the difference. Assuming only that in the atmosphere nothing else happens at the same time what could influence this difference as strongly as change in thin clouds does, cloud detection could work by checking the time evolution of this difference. If there is happening a lot it means that thin clouds are appearing or disappearing. (?)
Loop over wavelengths and taus:
#!/bin/csh
set template=/athome/hube_is/libRadtran_exercises/Lecture_exercises/20_Cirrus_cloud_Detection/uvspec_template.inp
set outdir=/athome/hube_is/libRadtran_exercises/Lecture_exercises/20_Cirrus_cloud_Detection
foreach wavelength ( 10000 12000 ) #for-Schleife
echo ... wavelength = $wavelength
gawk '{gsub("VARIABLEwavelength","'$wavelength'"); print}' $template >
/athome/hube_is/libRadtran_exercises/Lecture_exercises/20_Cirrus_cloud_Detection/uvspec_wavelength$wavelength.inp
# mit der Vorlage 'template' werden die Inputfiles uvspec_wavelength$wavelength.inp erzeugt,
wobei das Wort VARIABLEwavelength durch die Variable wavelength ersetzt wird
end
foreach wavelength ( 10000 12000 )
set template=/athome/hube_is/libRadtran_exercises/Lecture_exercises/20_Cirrus_cloud_Detection/uvspec_wavelength$wavelength.inp
set outdir=/athome/hube_is/libRadtran_exercises/Lecture_exercises/20_Cirrus_cloud_Detection
foreach tau ( 0.1 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10)
echo ... tau = $tau
gawk '{gsub("VARIABLEtau","'$tau'"); print}' $template >
/athome/hube_is/libRadtran_exercises/Lecture_exercises/20_Cirrus_cloud_Detection/uvspec_wavelength$wavelength""_tau$tau.inp
uvspec
< /athome/hube_is/libRadtran_exercises/Lecture_exercises/20_Cirrus_cloud_Detection/uvspec_wavelength$wavelength""_tau$tau.inp
>/athome/hube_is/libRadtran_exercises/Lecture_exercises/20_Cirrus_cloud_Detection/uvspec_wavelength$wavelength""_tau$tau.out
end
end
exit 0
uvspec input file (used by the loop):
# specify libRadtran data path
data_files_path /athome/hube_is/libRadtran-1.5-beta/data
# Location of atmospheric profile file.
atmosphere_file us-standard
mol_abs_param lowtran
albedo 0 # Surface albedo
rte_solver disort2 # Radiative transfer equation solver
wavelength VARIABLEwavelength # Wavelength range [nm]
ic_file 1D /athome/hube_is/libRadtran_exercises/Lecture_exercises/20_Cirrus_cloud_Detection/ic_cirrus.dat
ic_modify tau set VARIABLEtau
#ic_properties baum #QUESTION: is it better to use Baum than the default setting Fu?
#(for some reason Baum didn't work with my uvspec)
#ic_properties_interpolate
source thermal # Emission from Earth surface is source of radiation
zout toa # output for top of atmosphere
#umu 1
#phi 0