Atmospheric rivers through the lens of the vapor kinetic energy

A visual guide to a new framework for tracking and understanding atmospheric rivers

Integrated vapor transport

  • Bold contour: AR detected from IVT

IVTE tendency

  • Bold contour: AR detected from IVTE
  • Light contours: IVTE
—

Loading data…

An atmospheric river making landfall on the US West Coast, 3–5 January 2023 (MERRA-2, 3-hourly means). Left: integrated vapor transport (IVT), with the AR detected from IVT outlined. Right: the same AR detected from vapor transport energy (IVTE) or the kinetic energy of vapor (IKEV); light contours show the metric itself. Shading shows either the metric (“Value”) or the selected term of its budget, where red builds the AR up and blue erodes it. Budgets follow Zhang et al. (2026); vapor sources/sinks and turbulence come from MERRA-2’s physics tendencies. “Turbulence” is shorthand for all subgrid momentum forcing, which in MERRA-2 comprises turbulence, gravity-wave drag and convection.

TL;DR: Integrated vapor transport (IVT) is the standard tool for detecting atmospheric rivers, but it has no clean budget equation. Vapor kinetic energy detects the same atmospheric rivers and comes with a simple budget equation, allowing us to study their evolution. We show that atmospheric rivers grow by converting potential to kinetic energy, decay through condensation and turbulence, and move by convergence of vapor kinetic energy flux.

What is an atmospheric river?

Atmospheric rivers (ARs) are long, narrow filaments of intense water vapor transport in the mid-latitudes. They are thousands of kilometers long, a few hundred kilometers wide, and drift eastward with the extratropical cyclones that accompany them [3]. On average, an AR carries more water than the Amazon River, and ARs together account for most poleward vapor transport in the mid-latitudes [4][5]. At landfall they supply much of the precipitation along the coasts they hit, and cause many of the worst floods and wind events there [6].

An AR needs two ingredients: abundant water vapor and strong winds. The standard AR diagnostic that captures both is the integrated vapor transport (IVT):

IVT≡(−1g∫psptqu dp)2+(−1g∫psptqv dp)2\mathrm{IVT} \equiv \sqrt{\left(-\frac{1}{g}\int_{p_s}^{p_t} qu\,\mathrm{d}p\right)^{2} + \left(-\frac{1}{g}\int_{p_s}^{p_t} qv\,\mathrm{d}p\right)^{2}}

where qq is specific humidity, (u,v)(u, v) is the horizontal wind, psp_s is surface pressure, and ptp_t (usually 200 hPa) is a level above which vapor is negligible. IVT is the magnitude of the column-integrated vapor flux quq\mathbf{u}. Its units are kg m−1 s−1\mathrm{kg\,m^{-1}\,s^{-1}} and represents the mass of water vapor crossing a 1 m line per second, summed over the column. ARs typically exceed about 250 kg m−1 s−1250\ \mathrm{kg\,m^{-1}\,s^{-1}}.

Most AR detection algorithms rely on thresholds of IVT [7]. They differ in detail but agree on five regions of frequent ARs: the North Pacific, southeast Pacific, North Atlantic, South Atlantic and southern Indian Ocean [8].

Limitations of IVT

IVT is good at detecting ARs but poor at explaining them. Process studies have instead constructed budgets of column water vapor (AKA total precipitable water, up to a factor of density ρ\rho). This can track where an AR’s moisture comes from (mainly convergence) and where it goes (mainly precipitation), but it leaves out the wind entirely, implicitly treating wind evolution as secondary. Given how closely ARs are tied to extratropical cyclones and low-level jets, and how much of their damage comes from wind, we consider this limitation in developing a new metric for ARs.

From momentum to energy

One can think of the vapor flux quq\mathbf{u} as a moisture-weighted momentum. In classical mechanics, when momentum is unwieldy, we can turn to energy. Denoting the kinetic energy per unit mass K≡(u2+v2)/2K \equiv (u^2+v^2)/2, two “vapor-weighted kinetic energies” are natural:

kinetic energy of vapor:KEV≡qKvapor transport energy:VTE≡q2K=12 ∣qu∣2\begin{aligned} \text{kinetic energy of vapor:}\qquad \mathrm{KEV} &\equiv qK \\[4pt] \text{vapor transport energy:}\qquad \mathrm{VTE} &\equiv q^2K = \tfrac12\,|q\mathbf{u}|^2 \end{aligned}

KEV is the kinetic energy carried by the vapor. VTE is half the squared norm of the vapor flux quq\mathbf{u}, playing a similar role as KK for u\mathbf{u}. Both have units of J kg−1\mathrm{J\,kg^{-1}}. Because qq, uu and vv enter VTE with equal powers, as in IVT, VTE is weighted more toward moisture and KEV more toward wind.

A note on names: [1] introduced q2Kq^2K as vapor kinetic energy (VKE). [2] renamed it vapor transport energy (VTE) to distinguish it from KEV, and “VKE” now refers to the framework.

The column integrals, in J m−2\mathrm{J\,m^{-2}}, are

IKEV≡−1g∫psptqK dp,IVTE≡−1g∫psptq2K dp.\begin{aligned} \mathrm{IKEV} &\equiv -\frac{1}{g}\int_{p_s}^{p_t} qK\,dp, & \mathrm{IVTE} &\equiv -\frac{1}{g}\int_{p_s}^{p_t} q^2K\,dp. \end{aligned}

Swap either one into an IVT-based detection algorithm, retune the threshold to match the global AR frequency, and the detected ARs are nearly identical. With IVTE, AR frequency changes by only 2–4 days per year, less than the ~10 days per year separating two standard IVT algorithms [1]. IKEV detects slightly fewer ARs at low latitudes and more at high southern latitudes, where the jet is strong [2].

The budget equations

The KEV and VTE budgets follow from the moisture and momentum equations by the product rule (derivation below). In flux form [2]:

∂ KEV∂t=−∇p ⁣⋅ ⁣(u KEV)⏟horizontal flux  − ∂(ω KEV)∂p⏟vertical flux  − q u⋅∇pΦ⏟PE → KE  +  K S⏟vapor sources/sinks  +  q u⋅F⏟turbulence\tc{tend}{\frac{\partial\,\mathrm{KEV}}{\partial t}} = \term{hflux}{\underbrace{-\nabla_p\!\cdot\!\left(\mathbf{u}\,\mathrm{KEV}\right)}_{\text{horizontal flux}}} \;\term{vflux}{\underbrace{-\,\frac{\partial\left(\omega\,\mathrm{KEV}\right)}{\partial p}}_{\text{vertical flux}}} \;\term{pe}{\underbrace{-\,q\,\mathbf{u}\cdot\nabla_p\Phi}_{\text{PE}\,\to\,\text{KE}}} \;\term{cond}{\underbrace{+\;K\,S}_{\text{vapor sources/sinks}}} \;\term{fric}{\underbrace{+\;q\,\mathbf{u}\cdot\mathbf{F}}_{\text{turbulence}}}∂ VTE∂t=−∇p ⁣⋅ ⁣(u VTE)  − ∂(ω VTE)∂p  − q2 u⋅∇pΦ  +  2qK S  +  q2 u⋅F\tc{tend}{\frac{\partial\,\mathrm{VTE}}{\partial t}} = \term{hflux}{-\nabla_p\!\cdot\!\left(\mathbf{u}\,\mathrm{VTE}\right)} \;\term{vflux}{-\,\frac{\partial\left(\omega\,\mathrm{VTE}\right)}{\partial p}} \;\term{pe}{-\,q^2\,\mathbf{u}\cdot\nabla_p\Phi} \;\term{cond}{+\;2qK\,S} \;\term{fric}{+\;q^2\,\mathbf{u}\cdot\mathbf{F}}

Here ω\omega is pressure velocity, Φ\Phi is geopotential, SS is the net vapor source, and F\mathbf{F} is the parameterized subgrid momentum forcing. We call it “turbulence” for short because that is the dominant term, but it includes all subgrid momentum forcing; in MERRA-2, that is turbulence, gravity-wave drag and convection. The two equations differ only in their moisture weighting.

Horizontal flux convergence

Horizontal winds carry VKE through the AR. Convergence downstream and divergence upstream move the AR. In some regions, net convergence also adds to its growth.

Vertical flux convergence

Redistributes VKE vertically, but nearly vanishes in the column integral, since ω≈0\omega \approx 0 at the surface and q≈0q \approx 0 at ptp_t.

Conversion of potential to kinetic energy

Flow down the geopotential gradient accelerates. Geostrophic flow runs along Φ\Phi contours and does no work, so only the ageostrophic (cross-contour) flow converts PE to KE. This is the process that drives low-level jets, and it is absent from the water vapor budget.

Vapor sources & sinks

Condensation removes vapor, and with it the kinetic energy that vapor carried (KS<0KS<0). Surface evaporation adds vapor and acts as a source.

Turbulence

The term includes all subgrid momentum forcing, which in MERRA-2 comprises turbulence, gravity-wave drag and convection. The main component is turbulent drag, concentrated in the boundary layer, which slows the wind and removes VKE.

Integrating over the column

With ⟨ ⋅ ⟩≡−1g∫pspt( ⋅ ) dp\langle\,\cdot\,\rangle \equiv -\frac{1}{g}\int_{p_s}^{p_t}(\,\cdot\,)\,dp, the column budget is, to a very good approximation,

∂ IKEV∂t≈−⟨∇p ⁣⋅ ⁣(u KEV)⟩  − ⟨q u⋅∇pΦ⟩  + ⟨KS⟩  + ⟨q u⋅F⟩\tc{tend}{\frac{\partial\,\mathrm{IKEV}}{\partial t}} \approx \tc{hflux}{-\big\langle\nabla_p\!\cdot\!(\mathbf{u}\,\mathrm{KEV})\big\rangle} \;\tc{pe}{-\,\big\langle q\,\mathbf{u}\cdot\nabla_p\Phi\big\rangle} \;\tc{cond}{+\,\big\langle K S\big\rangle} \;\tc{fric}{+\,\big\langle q\,\mathbf{u}\cdot\mathbf{F}\big\rangle}

and likewise for IVTE.

Derivation of the budget equations

Let K≡∣u∣2/2K \equiv |\mathbf{u}|^2/2 be the kinetic energy per unit mass, and define KEV≡qK\mathrm{KEV} \equiv qK and VTE≡q2K=∣qu∣2/2\mathrm{VTE} \equiv q^2K = |q\mathbf{u}|^2/2. With the material derivative DDt≡∂∂t+u⋅∇p+ω∂∂p\frac{D}{Dt} \equiv \frac{\partial}{\partial t} + \mathbf{u}\cdot\nabla_p + \omega\frac{\partial}{\partial p}, the moisture and horizontal momentum equations of the hydrostatic primitive equations are

DqDt=S,DuDt=−(f+utan⁡ϑa)k×u−∇pΦ+F,\frac{Dq}{Dt} = S, \qquad \frac{D\mathbf{u}}{Dt} = -\left(f + \frac{u\tan\vartheta}{a}\right)\mathbf{k}\times\mathbf{u} - \nabla_p\Phi + \mathbf{F},

where f=2Ωsin⁡ϑf = 2\Omega\sin\vartheta is the Coriolis parameter, ϑ\vartheta is latitude, and aa is Earth’s radius.

Kinetic energy. Dotting the momentum equation with u\mathbf{u} removes the Coriolis and curvature terms, since u⋅(k×u)=0\mathbf{u}\cdot(\mathbf{k}\times\mathbf{u}) = 0:

DKDt=− u⋅∇pΦ+u⋅F.\frac{DK}{Dt} = -\,\mathbf{u}\cdot\nabla_p\Phi + \mathbf{u}\cdot\mathbf{F}.

Product rule. Combining with the moisture equation,

D KEVDt=KDqDt+qDKDt=KS−q u⋅∇pΦ+q u⋅F,D VTEDt=2qKDqDt+q2DKDt=2qKS−q2 u⋅∇pΦ+q2 u⋅F.\begin{aligned} \frac{D\,\mathrm{KEV}}{Dt} &= K\frac{Dq}{Dt} + q\frac{DK}{Dt} = K S - q\,\mathbf{u}\cdot\nabla_p\Phi + q\,\mathbf{u}\cdot\mathbf{F}, \\[4pt] \frac{D\,\mathrm{VTE}}{Dt} &= 2qK\frac{Dq}{Dt} + q^2\frac{DK}{Dt} = 2qK S - q^2\,\mathbf{u}\cdot\nabla_p\Phi + q^2\,\mathbf{u}\cdot\mathbf{F}. \end{aligned}

Equivalently, the VTE budget follows from dotting the vapor-transport equation D(qu)/Dt=q Du/Dt+uSD(q\mathbf{u})/Dt = q\,D\mathbf{u}/Dt + \mathbf{u}S with quq\mathbf{u}.

Flux form. By continuity, ∇p⋅u+∂ω/∂p=0\nabla_p\cdot\mathbf{u} + \partial\omega/\partial p = 0, so for any XX,

∂X∂t=−∇p⋅(uX)−∂(ωX)∂p+DXDt.\frac{\partial X}{\partial t} = -\nabla_p\cdot(\mathbf{u}X) - \frac{\partial(\omega X)}{\partial p} + \frac{DX}{Dt}.

Column integral. Define ⟨X⟩≡1g∫ptpsX dp\langle X\rangle \equiv \frac{1}{g}\int_{p_t}^{p_s} X\,dp. Because the surface pressure psp_s varies in space and time, integrating each flux-form term gives

⟨∂X∂t⟩=∂⟨X⟩∂t−Xsg∂ps∂t,⟨∇p⋅(uX)⟩=∇⋅⟨uX⟩−Xsg us⋅∇ps,⟨∂(ωX)∂p⟩=1g[(ωX)s−(ωX)t].\begin{aligned} \left\langle\frac{\partial X}{\partial t}\right\rangle &= \frac{\partial\langle X\rangle}{\partial t} - \frac{X_s}{g}\frac{\partial p_s}{\partial t}, \\[4pt] \big\langle\nabla_p\cdot(\mathbf{u}X)\big\rangle &= \nabla\cdot\langle\mathbf{u}X\rangle - \frac{X_s}{g}\,\mathbf{u}_s\cdot\nabla p_s, \\[4pt] \left\langle\frac{\partial(\omega X)}{\partial p}\right\rangle &= \frac{1}{g}\Big[(\omega X)_s - (\omega X)_t\Big]. \end{aligned}

The surface terms combine to Xsg(∂ps∂t+us⋅∇ps−ωs)\frac{X_s}{g}\left(\frac{\partial p_s}{\partial t} + \mathbf{u}_s\cdot\nabla p_s - \omega_s\right), which vanishes by the kinematic boundary condition ωs=Dps/Dt\omega_s = Dp_s/Dt. The top term is negligible because q(pt)≈0q(p_t) \approx 0. The column budgets are therefore

∂ IKEV∂t=−∇⋅⟨u KEV⟩+⟨KS⟩−⟨q u⋅∇pΦ⟩+⟨q u⋅F⟩,∂ IVTE∂t=−∇⋅⟨u VTE⟩+⟨2qKS⟩−⟨q2 u⋅∇pΦ⟩+⟨q2 u⋅F⟩.\begin{aligned} \frac{\partial\,\mathrm{IKEV}}{\partial t} &= -\nabla\cdot\langle\mathbf{u}\,\mathrm{KEV}\rangle + \langle K S\rangle - \langle q\,\mathbf{u}\cdot\nabla_p\Phi\rangle + \langle q\,\mathbf{u}\cdot\mathbf{F}\rangle, \\[4pt] \frac{\partial\,\mathrm{IVTE}}{\partial t} &= -\nabla\cdot\langle\mathbf{u}\,\mathrm{VTE}\rangle + \langle 2qK S\rangle - \langle q^2\,\mathbf{u}\cdot\nabla_p\Phi\rangle + \langle q^2\,\mathbf{u}\cdot\mathbf{F}\rangle. \end{aligned}

In MERRA-2, SS combines moist physics, turbulence (including surface evaporation) and chemistry, and F\mathbf{F} combines turbulence, gravity-wave drag and convection. Ong & Yang (2024) also track a small contribution from data-assimilation increments.

Code

We are developing an open-source Python package for these diagnostics, vke-budgets. It takes the winds, humidity, geopotential and surface pressure from a reanalysis and computes every term of the column-integrated KEV and VTE budgets on its grid. It currently reads MERRA-2, whose physics tendencies give the vapor sources/sinks and turbulence terms directly. Support for ERA5 is forthcoming.

For example, the KEV budget of one day of MERRA-2 over the northeast Pacific:

from vke_budgets import budget
from vke_budgets.sources import merra2

# The MERRA-2 files of 4 January 2023, kept in one directory per year
day = merra2.open_day("20230104", "/path/to/merra2")

# Every term of the KEV and VTE budgets, for the eight 3-hour windows of the day
result = budget.compute(day, n_workers=3)

# The KEV budget by group, over the northeast Pacific
kev_budget = budget.groups(result, "KEV").sel(lat=slice(15, 60), lon=slice(-170, -110))
kev_budget
Output
<xarray.Dataset> Size: 5MB
Dimensions:           (time: 8, lat: 91, lon: 97)
Coordinates:
  * time              (time) datetime64[ns] 64B 2023-01-04T01:30:00 ... 2023-...
  * lat               (lat) float64 728B 15.0 15.5 16.0 16.5 ... 59.0 59.5 60.0
  * lon               (lon) float64 776B -170.0 -169.4 -168.8 ... -110.6 -110.0
Data variables:
    tend              (time, lat, lon) float64 565kB -0.006231 ... -0.001284
    hflux             (time, lat, lon) float64 565kB -0.006156 ... -0.002197
    vflux             (time, lat, lon) float64 565kB 0.0003042 ... -1.697e-07
    pe_conversion     (time, lat, lon) float64 565kB 0.01476 ... 0.002542
    subgrid_momentum  (time, lat, lon) float64 565kB -0.01267 ... -5.155e-05
    net_vapor_source  (time, lat, lon) float64 565kB 0.002604 ... -2.397e-05
    analysis          (time, lat, lon) float64 565kB -0.001525 ... -0.001333
    boundary          (time, lat, lon) float64 565kB 0.0 0.0 ... 1.664e-05
    residual          (time, lat, lon) float64 565kB -0.003549 ... -0.0002359
Attributes:
    title:     Column KEV budget by group
    quantity:  KEV = q K
    budget:    tend = hflux + vflux + pe_conversion + subgrid_momentum + net_...
    column:    mass-weighted integral from 1000 to 200 hPa
    source:    MERRA-2

References

  1. Ong & Yang (2024). Vapor kinetic energy for the detection and understanding of atmospheric rivers. Nat. Commun.
  2. Zhang et al. (2026). Understanding the evolution of global atmospheric rivers with a vapor kinetic energy framework. Geophys. Res. Lett.
  3. Ralph et al. (2018). Defining “atmospheric river”: How the Glossary of Meteorology helped resolve a debate. Bull. Am. Meteorol. Soc.
  4. Ralph et al. (2017). Dropsonde observations of total integrated water vapor transport within North Pacific atmospheric rivers. J. Hydrometeorol.
  5. Zhu & Newell (1998). A proposed algorithm for moisture fluxes from atmospheric rivers. Mon. Weather Rev.
  6. Waliser & Guan (2017). Extreme winds and precipitation during landfall of atmospheric rivers. Nat. Geosci.
  7. Rutz et al. (2019). The Atmospheric River Tracking Method Intercomparison Project (ARTMIP): Quantifying uncertainties in atmospheric river climatology. J. Geophys. Res. Atmos.
  8. Lora et al. (2020). Consensus and disagreement in atmospheric river detection: ARTMIP global catalogues. Geophys. Res. Lett.