Skip to content

波动频散与空间分布

_BaseEW

Bases: Flag

基本赤道波动类型的标识,用于组合不同方向的波动类型。

EASTWARD class-attribute instance-attribute

EASTWARD = auto()

Eastward wave

IG class-attribute instance-attribute

IG = auto()

Inertio-Gravity wave

KELVIN class-attribute instance-attribute

KELVIN = auto()

Kelvin wave

MRG class-attribute instance-attribute

MRG = auto()

Mixed Rossby-Gravity wave

ROSSBY class-attribute instance-attribute

ROSSBY = auto()

Equatorial Rossby wave

WESTWARD class-attribute instance-attribute

WESTWARD = auto()

Westward wave

EquatorialWave

Bases: Enum

不同类型的赤道波动的枚举类,用于波动类型的标识与选择。 包含全称与缩写两种表示方式。

The enumeration class for different types of equatorial waves, used for wave type identification and selection. It includes both full names and abbreviations.

EASTWARD_INERTIO_GRAVITY_WAVE class-attribute instance-attribute

EASTWARD_INERTIO_GRAVITY_WAVE = _BaseEW.IG | _BaseEW.EASTWARD

Eastward Inertio-Gravity Wave, n > 0

EASTWARD_MIXED_ROSSBY_GRAVITY_WAVE class-attribute instance-attribute

EASTWARD_MIXED_ROSSBY_GRAVITY_WAVE = _BaseEW.MRG | _BaseEW.EASTWARD

Eastward Mixed Rossby-Gravity Wave, n = 0

EIGW class-attribute instance-attribute

Eastward Inertio-Gravity Wave, n > 0

EMRGW class-attribute instance-attribute

Eastward Mixed Rossby-Gravity Wave, n = 0

EQUATORIAL_ROSSBY_WAVE class-attribute instance-attribute

EQUATORIAL_ROSSBY_WAVE = _BaseEW.ROSSBY | _BaseEW.WESTWARD

Equatorial Rossby Wave, n > 0

ERW class-attribute instance-attribute

Equatorial Rossby Wave, n > 0

IGW class-attribute instance-attribute

Inertio-Gravity Wave (both eastward and westward), n > 0

INERTIO_GRAVITY_WAVE class-attribute instance-attribute

INERTIO_GRAVITY_WAVE = _BaseEW.IG

Inertio-Gravity Wave (both eastward and westward), n > 0

KELVIN_WAVE class-attribute instance-attribute

KELVIN_WAVE = _BaseEW.KELVIN | _BaseEW.EASTWARD

Kelvin Wave

KW class-attribute instance-attribute

Kelvin Wave

MIXED_ROSSBY_GRAVITY_WAVE class-attribute instance-attribute

MIXED_ROSSBY_GRAVITY_WAVE = _BaseEW.MRG

Mixed Rossby-Gravity Wave (both eastward and westward), n = 0

MRGW class-attribute instance-attribute

Mixed Rossby-Gravity Wave (both eastward and westward), n = 0

WESTWARD_INERTIO_GRAVITY_WAVE class-attribute instance-attribute

WESTWARD_INERTIO_GRAVITY_WAVE = _BaseEW.IG | _BaseEW.WESTWARD

Westward Inertio-Gravity Wave, n > 0

WESTWARD_MIXED_ROSSBY_GRAVITY_WAVE class-attribute instance-attribute

WESTWARD_MIXED_ROSSBY_GRAVITY_WAVE = _BaseEW.MRG | _BaseEW.WESTWARD

Westward Mixed Rossby-Gravity Wave, n = 0

WIGW class-attribute instance-attribute

Westward Inertio-Gravity Wave, n > 0

WMRGW class-attribute instance-attribute

Westward Mixed Rossby-Gravity Wave, n = 0

angular_frequency_dimensionless

angular_frequency_dimensionless(
    wave: EquatorialWave,
    wavenumber: np.ndarray,
    n: int = 1,
    keep_direction: bool = True,
) -> np.ndarray

计算无量纲化(Matsuno, 1966)下赤道波动的角频率(ω),可用于绘制频散曲线或计算。 使用现代流行标准,以波数的正负表示波动相速度的方向,角频率 ω >= 0。

Parameters:

  • wave (EquatorialWave) –

    赤道波动类型

  • wavenumber (np.ndarray) –

    无量纲经向波数 (k)

  • n (int, default: 1 ) –

    埃尔米特多项式的阶数 n, 若为 MRG 波或 Kelvin 波,此参数无效,默认为 1。

  • keep_direction (bool, default: True ) –

    是否只保留波动的传播方向的值,未指定方向的波动此参数无效。默认为 True。 例如如果为 True,则对于东传波,传入的负波数对应的频率将被设为 NaN;

Returns:

  • np.ndarray

    该波动无量纲下的角频率 ω

angular_frequency

angular_frequency(
    wave: EquatorialWave,
    wavenumber: Quantity | np.ndarray | float,
    n: int = 1,
    equivalent_depth: Quantity | float = 25,
    g: Quantity = EARTH_GRAVITY,
    beta: Quantity = ROSSBY_PARAMETER_ON_EQUATOR,
) -> Quantity

计算有量纲的赤道波动角频率(ω),返回的角频率单位为 rad/day。 使用现代流行标准,以波数的正负表示波动相速度的方向,角频率 ω >= 0。

>>> import numpy as np
>>> import mositen_ew as mew
>>>
>>> # 定义带单位波数
>>> k = np.linspace(-20, 20, 200) * mew.unit('zonal_wavenumber')
>>> omega = mew.angular_frequency(mew.EquatorialWave.KELVIN_WAVE, k)
>>> freq = omega/(2*np.pi) # from rad/day to 1/day

Parameters:

  • wave (EquatorialWave) –

    赤道波动类型

  • wavenumber (Quantity | np.ndarray | float) –

    带单位的波数,推荐使用单位 'zonal_wavenumber',如果输入不带单位,则认为是 '1/m'。

  • n (int, default: 1 ) –

    埃尔米特多项式的阶数 n, 若为 MRG 波或 Kelvin 波,此参数无效,默认为 1。

  • equivalent_depth (Quantity | float, default: 25 ) –

    等效深度,默认为 25

  • g (Quantity, default: EARTH_GRAVITY ) –

    重力加速度, 默认为地表重力加速度 EARTH_GRAVITY

  • beta (Quantity, default: ROSSBY_PARAMETER_ON_EQUATOR ) –

    赤道上的 β 参数, 默认为 ROSSBY_PARAMETER_ON_EQUATOR

Returns:

  • Quantity

    该波动有量纲下的角频率 ω,单位为 rad/day

wave_distribution_dimensionless

wave_distribution_dimensionless(
    wave: EquatorialWave,
    x: np.ndarray,
    y: np.ndarray,
    t: float,
    wavenumber: np.ndarray | float,
    n: int = 1,
) -> tuple[np.ndarray, np.ndarray, np.ndarray]

计算无量纲化下赤道波动的变量场分布,返回 x, y 网格上的 (u, v, φ) 分布。

Parameters:

  • wave (EquatorialWave) –

    赤道波动类型

  • x (np.ndarray) –

    无量纲经向坐标

  • y (np.ndarray) –

    无量纲纬向坐标

  • t (float) –

    无量纲时间

  • wavenumber (np.ndarray | float) –

    无量纲经向波数

  • n (int, default: 1 ) –

    埃尔米特多项式的阶数 n, 若为 MRG 波或 Kelvin 波,此参数无效,默认为 1。

Returns:

  • tuple[np.ndarray, np.ndarray, np.ndarray]

    返回扰动场的 (u, v, φ) 分布

wave_distribution

wave_distribution(
    wave: EquatorialWave,
    x: Quantity | np.ndarray,
    y: Quantity | np.ndarray,
    t: Quantity | float,
    wavenumber: Quantity | float,
    n: int = 1,
    equivalent_depth: Quantity | float = 25,
    g: Quantity = EARTH_GRAVITY,
    beta: Quantity = ROSSBY_PARAMETER_ON_EQUATOR,
) -> tuple[Quantity, Quantity, Quantity]

计算有量纲下赤道波动的变量场分布,返回 x, y 网格上的 (u, v, φ) 分布。 x, y 坐标数组,需要都是一维或都是二维数组。

Parameters:

  • wave (EquatorialWave) –

    赤道波动类型

  • x (Quantity | np.ndarray) –

    带单位的经向坐标数组,如果输入不带单位,则认为是 'm'。

  • y (Quantity | np.ndarray) –

    带单位的纬向坐标数组,如果输入不带单位,则认为是 'm'。

  • t (Quantity | float) –

    带单位的时间,推荐使用单位 's',如果输入不带单位,则认为是 's'。

  • wavenumber (Quantity | float) –

    带单位的波数,推荐使用单位 'zonal_wavenumber',如果输入不带单位,则认为是 '1/m'。

  • n (int, default: 1 ) –

    埃尔米特多项式的阶数 n, 若为 MRG 波或 Kelvin 波,此参数无效,默认为 1。

  • equivalent_depth (Quantity | float, default: 25 ) –

    等效深度,默认为 25,单位为 'm'。

  • g (Quantity, default: EARTH_GRAVITY ) –

    重力加速度, 默认为地表重力加速度 EARTH_GRAVITY

  • beta (Quantity, default: ROSSBY_PARAMETER_ON_EQUATOR ) –

    赤道上的 β 参数, 默认为 ROSSBY_PARAMETER_ON_EQUATOR

Returns:

  • tuple[np.ndarray, np.ndarray, np.ndarray]

    返回扰动场的 (u, v, φ) 分布