Lifetime models due to chorus waves
The chorus provides lifetime models due to interaction with chorus waves.
- Models:
Gu et al., (2012) - Parameterized polynomial model
Wang et al., (2024) - Lookup table model
|
Calculates electron lifetime due to chorus waves following Gu et al. [2012] model, including correction [Gu et al., 2012]. |
|
Calculates electron lifetime due to chorus waves following Wang et al. [2024] model. |
Functions
- rbamlib.models.tau.chorus.G2012(mlt, L, en, kp)
Calculates electron lifetime due to chorus waves following Gu et al. [2012] model, including correction [Gu et al., 2012].
- Parameters:
mlt (float or ndarray) – Magnetic local time in hours. Dayside is assumed for \(6 \le \mathrm{MLT} < 18\), nightside otherwise.
L (float or ndarray) – L-shell (McIlwain L), dimensionless. Valid: \(3 \le L \le 10\).
en (float or ndarray) – Kinetic energy (MeV). Energy range: 1 keV–2 MeV
kp (float or ndarray) – Kp index (dimensionless). Scaling is applied for \(Kp \in [0,6]\).
- Returns:
Electron lifetime in seconds. Returns
NaNif outside a parameterized bin (e.g., nightside energies above 0.1 MeV).- Return type:
float or ndarray
Notes
Parameterization. Lifetimes are expressed as polynomials in \(L\) and energy with coefficients \(a_1,\ldots,a_{10}\) (Table S1), and equations from the Gu et al. (2012)
Dayside: 1–10 keV (Eq. 1), 10–100 keV (Eq. 2), 0.1–0.4 MeV (Eq. 3), 0.4–2.0 MeV (Eq. 4).
Nightside: 1–10 keV (Eq. 5), 10–100 keV (Eq. 6, corrected).
Kp scaling and MLT coverage. The final lifetime includes Kp‑dependent wave‑amplitude scaling and a factor of 4 to account for 25% MLT coverage (drift‑averaged presence of chorus):
\[\begin{split}\tau(kp) = 4 \cdot \tau \cdot \left( \frac{B_w}{B_w(kp)} \right)^2 = \begin{cases} 4\,\tau \left[2*10^\sqrt{0.73 + 0.91 kp}/{57.6}\right]^{-2}, & Kp \le 2+ \\ 4\,\tau \left[2*10^\sqrt{2.50 + 0.18 kp}/{57.6}\right]^{-2}, & 2+ < Kp \le 6 \end{cases}\end{split}\]
- rbamlib.models.tau.chorus.W2024(L, en, kp, mlt, method='albert', data_file=None, data_folder=None, auto_download=False)
Calculates electron lifetime due to chorus waves following Wang et al. [2024] model.
This model uses nearest neighbor lookup from a precomputed lifetime database as a function of L-shell, energy, Kp, and MLT.
- Parameters:
L (float or ndarray) – L-shell (McIlwain L), dimensionless. Valid range: 3 ≤ L ≤ 7.
en (float or ndarray) – Kinetic energy (MeV). Valid range: 0.001 ≤ en ≤ 2.0.
kp (float or ndarray) –
- Kp index (dimensionless). Valid range: 1 ≤ Kp ≤ 6.
Warning: Model is valid only for Kp ≤ 6. Use caution for Kp > 6.
mlt (float or ndarray) – Magnetic local time in hours (0-24).
method (str, optional) –
- Lifetime calculation method:
albert (default): Albert & Shprits (2009)
lc: Loss cone method (Shprits et al., 2006)
data_file (str, optional) –
- Path to data file (absolute, relative, or filename).
Default: life_time_all_Kp_MLT_calculated_from_matrix.mat
data_folder (str, optional) – Folder to search for data file. Default: current working directory.
auto_download (bool, default=False) – If True, automatically download the data file from GFZ Data Services if data file not found.
- Returns:
Electron lifetime in seconds.
- Return type:
float or ndarray
Notes
Data File Requirements:
This model requires:
life_time_all_Kp_MLT_calculated_from_matrix.mat(~35 MB)- Download from:
Direct (auto_download): https://nextcloud.gfz.de/public.php/dav/files/yQaKw8CnK7cd5B5/life_time_all_Kp_MLT_calculated_from_matrix_mat.zip
Original DOI: https://doi.org/10.5880/GFZ.2.7.2022.002
Note
The original paper references data files at DOI 10.5880/GFZ.2.7.2022.002, but the
auto_downloadfeature uses an updated version of the dataset hosted on GFZ Nextcloud with filenamelife_time_all_Kp_MLT_calculated_from_matrix.mat.- File search order:
If
data_fileprovided → try openingIf not found → search in
data_folder(default: current directory)If
auto_download=True→ download and extract to data_folder
Examples
>>> from rbamlib.models.tau.chorus import W2024 >>> tau = W2024(L=5.0, en=1.0, kp=3.0, mlt=12.0, auto_download=True) >>> print(f"Lifetime: {tau:.2e} seconds")
>>> # Using manually downloaded file >>> tau = W2024(L=5.0, en=1.0, kp=3.0, mlt=12.0, data_file='path/to/file.mat')
>>> # Array inputs >>> import numpy as np >>> L = np.array([4.0, 5.0, 6.0]) >>> tau = W2024(L, en=1.0, kp=3.0, mlt=12.0)