Run a weather radar: send pulses, read echo strength (dBZ) and wind (Doppler), see why range and speed are ambiguous, spot rotation in a storm and forecast where it will be in 10 to 30 minutes.
Two radar pictures 5 minutes apart give a motion vector; the latest picture is shifted along it and compared with the simulated truth at the lead time. Needs 5+ minutes of simulated scans.
The science
Range. A pulse that returns after the delay td comes from r = c td/2; a pulse of length τ fills a gate Δr = cτ/2 (1 µs = 150 m). The next pulse leaves after 1/PRF, so echoes from beyond rmax = c/(2 PRF) arrive after the next pulse and are drawn at r − rmax (range folding).
Reflectivity. For drops much smaller than the wavelength (Rayleigh) the received power is Pr ∝ |K|² Z / r² with Z = ∫N(D) D⁶ dD (mm⁶ m⁻³) and the logarithmic scale dBZ = 10 log10 Z (+3 dB doubles Z, +10 dB is ten times). Marshall-Palmer drops N(D) = N₀ e^(−ΛD), N₀ = 8000 m⁻³ mm⁻¹, Λ = 4.1 R−0.21 give Z = 720 N₀/Λ⁷, close to the empirical Z = 200 R^1.6 used to turn echoes into rain rate R (mm/h) and, integrated over time, accumulation.
Doppler. The phase change between pulses gives the radial velocity vr = (λ/4π) Δφ/Δt; only the component along the beam is seen. It is ambiguous beyond the Nyquist velocity vN = λ PRF/4, so vmeas = ((v + vN) mod 2vN) − vN. Hence the dilemma rmax vN = cλ/8: a long range or a large unambiguous speed, not both. A rotating storm shows adjacent toward and away velocities (a couplet); the shear is Δv/Δr.
Beam. With effective Earth radius 4/3 RE the beam centre height is h = √(r² + R'² + 2 r R' sin θ) − R', R' = 4/3 · 6371 km, and its width is r θ3dB; far echoes are sampled higher and are smeared, and a beam above the storm top sees nothing.
Attenuation and noise. Two-way loss A = 2∫k dr with k = ak R (dB/km, strongest at X-band); the minimum detectable signal rises as Zmin(r) = Zmin,100 + 20 log10(r/100 km) and gates close to it carry Gaussian noise of about 4 dB.
Nowcast. The shift (u, v) that maximises the cross-correlation of two pictures is the motion vector; extrapolation is Z(x, t+Δ) = Z(x − uΔ, t). Skill is the critical success index CSI = hits/(hits + misses + false alarms) at 30 dBZ and the RMSE in dBZ. Extrapolation cannot predict growth or decay: cells in the model are born and die on a 10 / 20 / 15 minute cycle, so skill drops with lead time.
Simplifications. Gaussian rain cells with trailing sub-cores instead of full microphysics, one elevation angle, no polarimetry, no beam blockage, stylised ground clutter from the terrain, radar constant and noise floor are model values, wind is uniform steering plus a Rankine vortex. Educational, not an operational forecast. Weather only. Models built with Blender, scene by Three.js.