test_steady_state_FW96
Functions
Test for stationarity of turbulent fluxes using the Foken & Wichura (1996) method. |
- test_steady_state_FW96.test_steady_state_FW96(w_prime, c_prime)[source]
Test for stationarity of turbulent fluxes using the Foken & Wichura (1996) method.
This function implements the steady state test for vertical fluxes by comparing the covariance calculated over the entire averaging period to the mean of covariances calculated over shorter subintervals. The test is particularly important for eddy covariance measurements where stationarity is a key assumption.
- Parameters:
w_prime (
numpy.ndarray
) – High-frequency fluctuations of vertical wind velocity [m s⁻¹]c_prime (
numpy.ndarray
) – High-frequency fluctuations of scalar quantity (e.g., CO₂, H₂O, temperature) Units depend on scalar: [ppm], [ppb], [g m⁻³], or [K]
- Returns:
S_FW96 – Non-stationarity parameter, calculated as: S_FW96 = |(<w'c'>_5 - <w'c'>_1) / <w'c'>_1| where: - <w’c’>_5 is mean covariance from five 6-min subintervals - <w’c’>_1 is covariance over full 30-min interval
- Return type:
Notes
The stationarity test follows these steps: 1. Divide the 30-min period into 5 equal subintervals 2. Calculate covariance for each subinterval 3. Calculate covariance for the full period 4. Compare mean of subinterval covariances to full period
Quality classes based on S_FW96: - 0-30%: High quality data - 30-50%: Moderate quality, usable for general analysis - 50-100%: Low quality, not recommended for fundamental research - >100%: Data should be rejected
References
See also
test_steady_state_M98
Alternative steady state test by Mahrt (1998)
test_ITC
Test for developed turbulent conditions
xcov
Cross-covariance calculation used internally
Examples
>>> # Test stationarity of vertical CO2 flux >>> import numpy as np >>> # Generate sample data (30 min at 10 Hz) >>> w = np.random.normal(0, 0.3, 18000) >>> co2 = np.random.normal(400, 1, 18000) >>> # Add a trend to make it non-stationary >>> co2 += np.linspace(0, 2, 18000) >>> s = test_steady_state_FW96(w, co2) >>> print(f'Non-stationarity: {s*100:.1f}%')