Stream Reaeration Coefficient: Calculation Methods in QUAL2K

Reaeration is the primary source of dissolved oxygen in rivers, and a critical term in the dissolved oxygen balance. It describes the rate at which atmospheric oxygen transfers across the water surface into the stream, as originally characterized by O'Connor and Dobbins (1958). The reaeration coefficient kak_a (day⁻¹) governs the first-order rate of oxygen exchange:

Reaeration flux=ka(DOsatDO)\text{Reaeration flux} = k_a \cdot (DO_{sat} - DO)

where DOsatDO_{sat} is the dissolved oxygen saturation concentration and DODO is the current DO in the stream.

O'Connor-Dobbins Formula (Default)

QUAL2K uses the O'Connor-Dobbins formula as the default reaeration model. This is the most widely used empirical formula for natural streams:

ka=3.93U0.5H1.5k_a = 3.93 \cdot \frac{U^{0.5}}{H^{1.5}}

Where:

  • UU — stream velocity (m/s)
  • HH — stream depth (m)
  • kak_a — reaeration coefficient at 20°C (day⁻¹)

Alternative Reaeration Formulas

Empirical reaeration formulas

FormulaEquationBest For
O'Connor-Dobbins (1958)ka = 3.93 · U⁰·⁵ / H¹·⁵Deep, slow rivers (H > 0.6 m)
Churchill et al. (1962)ka = 5.026 · U⁰·⁹⁶⁹ / H¹·⁶⁷³Large rivers with dams
Owens-Gibbs (1964)ka = 5.32 · U⁰·⁶⁷ / H¹·⁸⁵Shallow streams (H < 0.6 m)
Tsivoglou-Neal (1976)ka = 31,183 · U · SStreams with known slope S
User-specifiedka = valueCustom / laboratory-measured rates

Temperature Correction

All reaeration rates are corrected for temperature using the Arrhenius equation:

ka(T)=ka(20)θ(T20)k_a(T) = k_a(20) \cdot \theta^{(T - 20)}

where θ=1.024\theta = 1.024 for reaeration (Elmore and West, 1961). At 15°C, the correction factor is 1.02450.8881.024^{-5} \approx 0.888, reducing kak_a by about 11%.

Dissolved Oxygen Saturation

The DO saturation concentration decreases with temperature and altitude. QUAL2K uses the APHA formula (Standard Methods, 23rd Edition):

ln(DOsat)=139.3441+1.5757×105TK6.6423×107TK2+1.2438×1010TK38.6219×1011TK4\ln(DO_{sat}) = -139.3441 + \frac{1.5757 \times 10^5}{T_K} - \frac{6.6423 \times 10^7}{T_K^2} + \frac{1.2438 \times 10^{10}}{T_K^3} - \frac{8.6219 \times 10^{11}}{T_K^4}

where TK=T+273.15T_K = T + 273.15 is the absolute temperature in Kelvin. An altitude correction factor is applied:

DOsat,elev=DOsat(10.0001148elevation)DO_{sat,elev} = DO_{sat} \cdot \left(1 - 0.0001148 \cdot elevation \right)

Physical Mechanism

Python Implementation

pythonhydraulics.py — Reaeration calculation
# Reaeration ka (1/d) - O'Connor-Dobbins
if h > 0:
    ka = 3.93 * (u ** 0.5) / (h ** 1.5)
else:
    ka = 0
pythonkinetics.py — DO saturation with altitude correction
def calculate_dosat(temp, elev):
    """Calculate DO saturation (mg/L) using APHA formula."""
    tk = temp + 273.15
    ln_dos = (-139.34411 + 1.575701e5/tk
              - 6.642308e7/tk**2
              + 1.243800e10/tk**3
              - 8.621949e11/tk**4)
    dos = math.exp(ln_dos)
    # Altitude correction
    dos *= (1 - 0.0001148 * elev)
    return max(dos, 0.0)