prop/lib/microwaveprop/propagation
Graham McIntire 864a91fc5c Phase 2 tasks 2.1-2.4: BL turbulence feature computations
Inversion detection module (Propagation.Inversion):
- find_inversion_top/1 walks the native profile to locate the first
  temperature inversion (surface-based or elevated)
- bulk_richardson/3 computes the Richardson number across the
  inversion layer (Ri < 0.25 = turbulent, > 1 = laminar/good)
- shear_magnitude/3 computes the wind shear vector magnitude
- potential_temperature/2 for θ = T*(P0/P)^0.286

Theta-e module (Weather.ThetaE):
- Bolton (1980) equivalent potential temperature
- dewpoint_from_spfh/2 via Magnus-Tetens inversion
- theta_e_jump/3 for the thermodynamic decoupling metric

mix hrrr_native_derive_fields populates inversion_top_m,
bulk_richardson, theta_e_jump_k, and shear_at_top_ms on existing
hrrr_native_profiles rows.

First real data: 2022-08-20 12Z TX profile shows inversion at
186 m, Ri = 0.16 (turbulent), θ_e jump = 0.33 K — consistent with
marginal propagation conditions at that hour.
2026-04-10 08:21:23 -05:00
..
band_config.ex Add 902-5760 MHz bands, centralize band options 2026-04-07 16:39:25 -05:00
freshness_monitor.ex Prevent duplicate PropagationGridWorker jobs via Oban unique constraint 2026-03-31 17:16:40 -05:00
grid.ex Increase grid to 0.125 degrees with smooth canvas overlay 2026-03-31 08:52:07 -05:00
grid_score.ex Add CONUS grid definition and propagation score schema 2026-03-30 16:50:06 -05:00
inversion.ex Phase 2 tasks 2.1-2.4: BL turbulence feature computations 2026-04-10 08:21:23 -05:00
scorer.ex Path-integrated HRRR scoring across pos1/mid/pos2 2026-04-07 12:04:16 -05:00