Particle size distributions#
A radar observable is an integral over the number concentration of
scatterers per unit volume per unit diameter, \(N(D)\). rustmatrix.psd
provides the standard analytical forms plus a generic binned
distribution, all compatible with PSDIntegrator’s cached
tabulation.
Exponential (Marshall–Palmer)#
[Marshall and Palmer, 1948] observed that stratiform rain drop-size distributions are well approximated by
with \(N_0 \approx 8000\) mm⁻¹ m⁻³ and \(\Lambda\) set by the rain rate.
The two-parameter exponential is the simplest non-trivial PSD and is
wired up as psd.ExponentialPSD(N0=..., Lambda=...).
Use it when you want a tractable stress test — it has no free shape parameter, so convergence and band dependence are easy to isolate. The radar-band sweep tutorial uses it for exactly that reason.
Gamma (Ulbrich)#
Real rain spectra show a roll-off at small diameters that the exponential cannot capture. [Ulbrich, 1983] proposed
adding a shape parameter \(\mu\) — positive for convective rain,
negative for drizzle-dominated distributions. Implemented as
psd.UnnormalizedGammaPSD(N0, mu, Lambda).
The three Ulbrich parameters are strongly correlated across rain
events, so rustmatrix also provides the normalised form below
which disentangles concentration from shape.
Normalised gamma (Testud / Bringi–Chandrasekar)#
The normalised-gamma PSD [Bringi and Chandrasekar, 2001, Testud et al., 2001] is parameterised by quantities that are roughly independent across rain events:
\(D_0\) — median volume diameter (mm),
\(N_w\) — normalised intercept, constant for a Marshall–Palmer distribution,
\(\mu\) — dimensionless shape parameter.
where \(f(\mu)\) is a normalisation that keeps \(N_w\) fixed across
\(\mu\). This is the form used in the
gamma-PSD rain tutorial and
throughout the operational-radar literature. Constructed as
psd.GammaPSD(D0=..., Nw=..., mu=...).
Binned / empirical#
For disdrometer observations, reanalysis output, or any case where
you have \(N\) in arbitrary diameter bins, use
psd.BinnedPSD(bin_edges, N) — it interpolates linearly within bins
and evaluates to zero outside. The standard PSDIntegrator machinery
works unchanged.
Numerical integration#
psd.PSDIntegrator:
On
init_scatter_table(s), evaluates \(\mathbf{S}(D)\) and \(\mathbf{Z}(D)\) atnum_pointsdiameters between \(D_\min\) and \(D_\max\). This is the parallel Rust kernel — the only expensive step.For each PSD assigned to
s.psd, integrates the cached tables against \(N(D)\) by trapezoidal rule.Any number of different PSD shapes can be evaluated from the same cached table — swap
s.psd = psd.GammaPSD(...)and re-read the observables at a cost near zero.
Tips:
D_max: set a few times the expected largest drop. Too small truncates the tail and under-estimates \(Z_h\) at C-band and below; too large wastes quadrature points on near-zero contributions.num_points: 64 is almost always enough for rain; oriented ice at the Mie-resonance bands may want 128.geometries: pass both back-scatter and forward-scatter in the same tuple so the table is built once for all observables you need.
Further reading#
[Bringi and Chandrasekar, 2001], chapter 7 — the canonical treatment of PSD retrieval from polarimetric radar.
[Testud et al., 2001] — the original normalised-gamma paper.
The gamma-PSD tutorial — shows \(Z_h, Z_{dr}, K_{dp}, A_i\) as functions of rain rate over an ensemble of \(D_0, N_w, \mu\).
V. N. Bringi and V. Chandrasekar. Polarimetric Doppler Weather Radar: Principles and Applications. Cambridge University Press, 2001.
J. S. Marshall and W. McK. Palmer. The distribution of raindrops with size. Journal of Meteorology, 5(4):165–166, 1948. doi:10.1175/1520-0469(1948)005<0165:TDORWS>2.0.CO;2.
J. Testud, S. Oury, R. A. Black, P. Amayenc, and X. Dou. The concept of “normalized” distribution to describe raindrop spectra: a tool for cloud physics and cloud remote sensing. Journal of Applied Meteorology, 40(6):1118–1140, 2001. doi:10.1175/1520-0450(2001)040<1118:TCONDT>2.0.CO;2.
C. W. Ulbrich. Natural variations in the analytical form of the raindrop size distribution. Journal of Climate and Applied Meteorology, 22(10):1764–1775, 1983. doi:10.1175/1520-0450(1983)022<1764:NVITAF>2.0.CO;2.