Polarization by surface reflection has been included into MYSTIC so that arbitrary reflectance matrices can be handled. A program by Mishchenko (~/literature/mishchenko1997.pdf) (freely availabe at http://www.giss.nasa.gov/staff/mmishchenko/brf/) has been integrated to compute the reflectance matrix for rough water surfaces. This program is based on the Fresnel equations, on Cox and Munk (1954) to describe the wind-speed dependent slope of the waves, and on Tsang et al. (1985) to account for shadowing effects.
mc_polarisation # enable polarisation mc_escape # enable local estimate, should always be switched on for radiances bpdf_tsang_u10 # enable BPDF and specify wind speed mc_surface_reflectalways # reflect all photons that reach the surface
libsrc_f/ocean.shadow.f : Code by Mishchenko
libsrc_c/ocean.c (bpdf_tsang) : Wrapper function for Mishchenko's code
libsrc_c/mystic.c (reflection_polarized, reflect): Function is called here each time when a photon hits the surface. BPDF must be used in combination with mc_reflectalways.
As a first test, we checked whether MYSTIC calculates the Fresnel equations correctly. For this we computed the polarized reflected radiance in the principle plane for the specular reflection, where the incident angle is equal to the reflected angle. This also gives us the Brewster angle where the polarization parallel to the reference plane is 0.
With MYSTIC we get the Frenel formula with an additional factor contributed by the waves (see formula of reflectance matrix). Deviding by the wave contribution to the reflection (which of course depends on the wind speed) we get the Fresnel equations. At shallow angles the shadowing function reduces again the reflectance matrix.
Calculations in the principle plane have been performed for various wind speed and compared to the Cox and Munk BRDF as implemented in libRadtran. One result for a wind speed of 2 m/s is shown below, more wind speeds are shown here. The major difference is that Cox and Munk apparently includes some additional constant reflection term outside the reflection peak which might be the parameterization of the white wave caps that are not included in Mishchenko's function.
Tests for a BPDF below a scattering atmosphere (Rayleigh, cloud) are in the directory
/home/users/emde/libRadtran_tests/mystic_polarisation/surface_20100511
The results look reasonable after a bug fix in May 2010 (in ESA release the BPDF does not work correctly because of numerical problems which occur for multiple reflections with the surface, when photons hit the surface with small incident angle).