Multiscatter: A fast, approximate multiple scattering algorithm


  • January 2015: The license has been changed to the Apache License, Version 2.0, a permissive free-software license. Unlike the previous license (GNU LGPL), Apache 2.0 allows anyone to release derivative works under different terms (with a few restrictions).


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. Millimetre-wave 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 Variance-Covariance method for quasi-small-angle 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 quasi-small-angle 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 Time-Dependent Two-Stream method for wide-angle 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.


  • Original PVC method (lidar only)
    Hogan, R. J., 2006: Fast, approximate calculation of multiply scattered lidar returns, Applied Optics, 45, 5984-5992: PDF file
  • Faster PVC method (lidar only) with anisotropic phase functions near 180 degrees
    Hogan, R. J., 2008: Fast lidar and radar multiple-scattering models: Part 1: Small-angle scattering using the photon variance-covariance method. J. Atmos. Sci., 65, 3621-3635: PDF file
  • TDTS method (lidar and radar)
    Hogan, R. J., and A. Battaglia, 2008: Fast lidar and radar multiple-scattering models: Part 2: Wide-angle scattering using the time-dependent two-stream approximation. J. Atmos. Sci., 65, 3636-3651: 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 field-of-view lidar. J. Appl. Meteorol. Climatology, in press: PDF


Latest version of source code

Older versions of source code

If you use the code and have any comments, queries, requests or bug-fixes 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, bug-fixes 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 "-no-forward-lobe" 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):

Return to Clouds Group | Department of Meteorology | University of ReadingThis page is maintained by Robin Hogan