Multiscatter: A fast, approximate multiple scattering algorithm
News
 January 2015: The license has been changed to
the Apache
License, Version 2.0, a permissive freesoftware
license. Unlike the previous license (GNU LGPL), Apache 2.0 allows
anyone to release derivative works under different terms (with a
few restrictions).
Overview
Lidar and radar are powerful tools for cloud remote sensing,
especially when used in synergy, but both can be affected by multiple
scattering which makes the returns more difficult to interpret. Lidar
is affected by multiple scattering in any optically thick medium,
particularly liquid clouds. Millimetrewave radar is typically only
affected when observing deep convective clouds from space. One
approach to deal with this problem is to use a variational retrieval
algorithm with a forward model that can represent multiple scattering
while being both accurate and fast. This code is such a forward model,
and consists of two algorithms, the backscatters from which are
summed:
 PVC method (lidar only): the Photon VarianceCovariance
method for quasismallangle multiple scattering shares several
assumptions with the Eloranta (1998) formulation, but by the way it
treats the outgoing and returning photon distributions is able to
simulate high orders of scattering several orders of magnitude
faster. Note that quasismallangle scattering only occurs for phase
functions with strong forward scattering lobes, so typically for lidar
but not radar. For further details see Hogan (2006, 2008) below.
 TDTS method (lidar and radar): the TimeDependent TwoStream method for
wideangle multiple scattering copes with the more difficult situation
of pulse stretching by integrating a pair of coupled PDEs forward in
time. It is described with benchmark calculations by Hogan and
Battaglia (2008) below.
Papers
 Original PVC method (lidar only)
Hogan, R. J., 2006: Fast,
approximate calculation of multiply scattered lidar returns,
Applied Optics, 45, 59845992: PDF file
 Faster PVC method (lidar only) with anisotropic phase functions near 180
degrees
Hogan, R. J., 2008: Fast lidar and radar
multiplescattering models: Part 1: Smallangle scattering using
the photon variancecovariance method. J. Atmos. Sci.,
65, 36213635: PDF file
 TDTS method (lidar and radar)
Hogan, R. J., and A. Battaglia, 2008: Fast
lidar and radar multiplescattering models: Part 2: Wideangle
scattering using the timedependent twostream
approximation. J. Atmos. Sci., 65, 36363651: PDF file
 Example of the use of the PVC method in a retrieval
algorithm
Delanoe, J., and R. J. Hogan, 2008: A variational scheme
for retrieving ice cloud properties from combined radar, lidar and
infrared radiometer.
J. Geophys. Res., 113, D07204, doi:10.1029/2007JD009000: PDF
file
 Example of the use of the TDTS method in a retrieval
algorithm
Pounder, N. L., R. J. Hogan, T. Varnai, A. Battaglia
and R. F. Cahalan, 2011: A variational method to retrieve the
extinction profile in liquid clouds using multiple fieldofview
lidar. J. Appl. Meteorol. Climatology, in press: PDF
Presentations
Latest version of source code
Older versions of source code
If you use the code and have any comments, queries, requests or
bugfixes then please
contact Robin Hogan. I'm
also interested to know of any uses of the code  then I can also keep
you updated on changes, bugfixes etc..
Matlab interface
The following are for use with version 1.1.2, although the later
version 1.2.10 includes updated versions of these matlab scripts and
functions that are compatible with the new syntax of the ascii
interface.
 multiscatter.m  a matlab function
that has calls the multiscatter executable (you will need to edit the
function to point it at the location of the executable). It has been
tested on linux. Type "multiscatter" with no options at the matlab
prompt to see usage information. Be sure to use the
"noforwardlobe" option for radar cases.
 test_icesat_ms.m  an example of
the use of multiscatter.m to calculate the multiple scattering for
idealized clouds with different effective radius observed by the
ICESat lidar. You will need the multiscatter_platt.m function, which
estimates the backscattering using a much simpler method, for
comparison. It should produce this
figure.
See also
 Ed Eloranta's
model
 A pretty animation of the actinic flux as a pulse of light enters
a cloud (calculated using the TDTS model):
