Local Wave Activity

Finite-amplitude local wave activity as a Rossby wave amplitude diagnostic (Huang and Nakamura 2016; Ghinassi et al. 2018). The implementation provided here fills a few gaps for primitive equations LWA on isentropes left by the (otherwise) much more comprehensive falwa Python package for the QG formalism by C. S. Y. Huang. See also P. Ghinassi’s original implementation of primitive equations LWA.

Xarray Interface

rwguide.xarray.waveactivity.local_wave_activity(da_av, da_sg, da_pv_bg=None, *, vectorize=True, names=None)

Finite-amplitude local wave activity (FALWA or just LWA).

LWA is computed with a boxcounting quadrature as:

            a     ⎧Δϕ
A(λ,ϕ) =  ──────  ⎪   (q(λ,ϕ+ϕ') − Q(λ,ϕ)) σ cos(ϕ+ϕ') dϕ'
          cos(ϕ)  ⎭0

Note how the background state PV Q(λ,ϕ) is allowed to depend on longitude, to allow for both hemispherically and localized zonalized PV as background states.

Note

The current implementation does not produce negative LWA when encountering ground-intersecting isentropes. The (Lagrangian) information about the location of the surface is also for the Eulerian parts of the integral, so that negative values cannot arise and LWA is strictly nonnegative. See footnote 3 of Nakamura and Solomon (2011). This should not affect the value of LWA as a Rossby wave amplitude diagnostic for the extratropical upper troposphere, as considered by Ghinassi et al. (2018).

Barotropic local wave activity can be computed with this function by setting isentropic density to 1 everywhere (use xarray.ones_like() to generate da_sg). However, be aware of the requirement to input PV in PVU, so scaling with a factor 1e6 might be required for some inputs/outputs.

Added in version 1.2.

Parameters:
  • da_av (xarray.DataArray) – Absolute vorticity in 1 / s.

  • da_sg (xarray.DataArray) – Isentropic density in kg / K / m².

  • da_pv_bg (xarray.DataArray, optional) – Background-state potential vorticity in PVU. If no background is specified, a hemispherically zonalized background state is computed from the input, resulting in local wave activity as defined by Ghinassi et al. (2018).

  • vectorize (boolean, optional) – Use vectorization of xarray.apply_ufunc().

  • names (dict, optional) – Variable name override.

Returns:

Local wave activity in m / s.

Return type:

xarray.DataArray

Numpy Interface

rwguide.waveactivity.local_wave_activity(lat, av, sg, pv_bg)