History¶
History of Advective-Flux Research¶
This page traces the evolution of scientific understanding that led to the modules packaged here. It is not an exhaustive literature review; rather, it highlights the pivotal ideas, field campaigns, and methodological innovations that shaped today’s best practices for diagnosing and correcting energy-balance closure gaps in eddy-covariance (EC) measurement of evapotranspiration.
1. 1950 s – 1980 s | Early recognition of imbalance¶
Bowen-ratio studies on irrigated grass (Sweden, Nebraska) first reported that λE + H systematically fell short of Rₙ − G by 10–30 %.
Explanations focused on instrument drift and heat storage in soil and canopy, but the role of advection was largely untested—few towers measured horizontal gradients.
2. 1990 s | Rise of eddy-covariance networks¶
Widespread deployment of open-path IRGAs (LI-7500, OP-2) revealed that closure errors persisted even with high-frequency turbulence resolved.
Foken & Oncley (1995) introduced stationarity and quality-control tests that became standard QC flags in FLUXNET, yet did not fully explain the gap.
The first ogive (cumulative cospectral) analyses showed that missing energy resided in frequencies lower than the typical 30-min averaging window, hinting at large-eddy transport.
3. 2000 – 2005 | Field campaigns isolate advection¶
EBEX-2000 (California, cotton) deployed multi-tower transects across an irrigated–dry interface. Horizontal heat advection by the mean flow closed roughly half the energy deficit and introduced cases where λE > Rₙ − G.
ADVEX (Europe, conifer forests) quantified both horizontal and vertical advection terms. Results were site-specific: one site achieved near-closure after advective corrections; others remained imbalanced, underscoring the complexity of canopy storage and terrain.
4. 2006 – 2015 | Agricultural mosaics & low-frequency eddies¶
BEAREX08 and BEFLUX (US Great Plains) demonstrated that warm, dry air advected over irrigated cotton can enhance ET by up to 25 %.
Spectral work (Prueger et al. 2012) confirmed that low-frequency (≫ 30 min) motions carry a non-negligible fraction of sensible and latent heat.
New soft-rotation and planar-fit algorithms improved H and λE estimates but left the advective component unmeasured.
5. 2016 – Present | Integrated sensing, LES, and machine learning¶
Wang et al. 2024 combined multi-tower EC, Doppler lidar, and UAV imagery over irrigated alfalfa. Explicitly adding horizontal & vertical advective fluxes raised closure from 0.89 to 0.97.
Large-eddy simulations (LES) now reproduce heterogeneous irrigation patterns, allowing virtual towers that quantify dispersive and advective transport.
Machine-learning residual models (e.g. random forests) use meteorology, footprint heterogeneity, and wind fields to predict closure gaps in near-real-time.
6. How this history shaped the package¶
The modules in advection encode three decades of insight:
advection.advect_detectimplements empirical rules distilled from EBEX, BEAREX, and Wang 2024 to flag periods prone to horizontal / vertical advection using only tower data plus optional upwind references.advection.advectiontranslates those flags into flux corrections that reconcile λE + H with Rₙ − G, following the energy-balance bookkeeping formalized by Foken & Oncley and expanded by recent campaign protocols.
Key references¶
Foken, T. & Oncley, S. (1995) Bulletin of the AMS — stationarity tests
Wilson, K. et al. (2002) Agric. For. Meteorol. — closure statistics
Prueger, J. et al. (2012) Agric. For. Meteorol. — BEAREX low-freq. eddies
Moderow, U. et al. (2021) Biogeosciences — ADVEX advective budgets
Dhungel, S. et al. (2022) Water Resources Research — wind–closure link
Wang, T. et al. (2024) J. Hydrometeorology — multi-tower advection & closure
0.2.0 (2026-06-21)¶
Physics-correctness overhaul aligning the library with the CLAUDE.md contract
(Wang et al. 2024; Moderow et al. 2021; Lee 1998; Twine et al. 2000; WPL 1980).
Several changes are behavior-breaking relative to 0.1.0.
Variance Bowen ratio is now signed (Wang 2024 Eq. 8).
compute_bowen_ratio_variancereturnssign(corr(T', q')) * |beta|when a correlation, covariance, or fluctuation series is supplied — a negative beta is the oasis fingerprint. With no sign source it returns the unsigned magnitude and warns (backward compatible).Horizontal advection is gradient-based, not a flux difference (Wang 2024 Eqs. 5a/5b; Moderow Term IV).
HA_T = rho*Cp*u*(dT/dx)*(zm-h)andHA_Q = rho*lambda*u*(dq/dx)*(zm-h)are computed from an upwind reference; a newHA_Qmoisture-advection term is returned. Breaking:compute_advection_fluxesnow raises without an upwind tower /tower_distanceinstead of silently returningH_adv = 0.Vertical advection uses the planar-fit mean vertical velocity (Lee 1998; Wang 2024 Eq. 6):
VAT = rho*Cp*w_bar*(T_zm - <T>). Breaking:VAT/V_advis now this measured term and isNonewhen no vertical inputs are given; if engaged withoutw_baror the column-mean<T>the function raises rather than back-filling the residual.Removed residual-as-advection behavior (hard rule). The closure imbalance
(H + LE) - (Rn - G)is returned only as the diagnosticresidual(adv_inkept as a deprecated alias); it is never relabelled as an advective flux.Real correction with a conditional-inclusion gate (Wang 2024).
apply_advection_correctionfolds the measured advective terms onto the turbulent side only whereRn > 75 W/m^2and(H + LE) < (Rn - G)— the gate that lifted closure from 0.89 to 0.97 in the alfalfa study. Gated-out steps are left exactly uncorrected;NaNadvective terms contribute 0.New ``advection.closure`` module. Twine et al. (2000) Bowen-ratio and residual-LE closure forcing plus EBR / residual / closure-slope diagnostics, kept deliberately separate from advection accounting. Bowen-ratio closure warns when ``LE > (Rn - G)`` (the oasis case where forcing closure is physically wrong).
Singularity guards.
correct_sonic_heat_flux(small-negative-beta band) andlatent_heat_flux_bowen(beta -> -1) now returnnanwith a warning instead of an unphysically large flux.Robustness & vectorization. Detection (
detect_horizontal_advection,detect_vertical_advection) is fully vectorized with documented, keyword thresholds, a wind-sector fetch gate, andnp.isnanmasking of gaps (the oldis Nonetest silently letNaNthrough).WPL pre-step. Added the convenience helper
wpl_latent_heat_fluxand documented throughout that open-pathLEis assumed already WPL density-corrected (a mandatory, separate pre-step this library does not apply).Docs. Added a README “Physics & assumptions” section with a worked oasis example, a closure API reference page, and corrected equation citations in the
latent_heat_flux_*/compute_sensible_heat_fluxdocstrings.
0.1.0 (2025-04-23)¶
First release on PyPI.