User Tools


teaching:radiative_transfer:cloud_detection

Cirrus cloud detection

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 
teaching/radiative_transfer/cloud_detection.txt · Last modified: 2018/05/04 08:40 (external edit)