Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/PRBEM/IRBEM/llms.txt

Use this file to discover all available pages before exploring further.

IRBEM computes magnetic coordinates and traces field lines by combining an internal field model (representing Earth’s main field) with an optional external field model (representing magnetospheric current systems). The kext integer parameter passed to most IRBEM routines selects the external model, while options[4] selects the internal model.

External Field Models (kext)

The table below lists all 14 external models supported by IRBEM. Models that require driving parameters source those values from the maginput array — see the maginput reference for the full parameter list.
kextModel NameNotes / Valid Range
0No external fieldInternal field only
1Mead & Fairfield [1975]Uses Kp (0–9); valid for r_GEO ≤ 17 Re
2Tsyganenko short [1987]Uses Kp (0–9); valid for r_GEO ≤ 30 Re
3Tsyganenko long [1987]Uses Kp (0–9); valid for r_GEO ≤ 70 Re
4Tsyganenko [1989c]Uses Kp (0–9); valid for r_GEO ≤ 70 Re
5Olson & Pfitzer quiet [1977]Valid for r_GEO ≤ 15 Re
6Olson & Pfitzer dynamic [1988]Uses dens (5–50 cm⁻³), velo (300–500 km/s), Dst (−100 to 20 nT); valid for r_GEO ≤ 60 Re
7Tsyganenko [1996]Uses Dst (−100 to 20 nT), Pdyn (0.5–10 nPa), |By| ≤ 10 nT, |Bz| ≤ 10 nT; valid for r_GEO ≤ 40 Re
8Ostapenko & Maltsev [1997]Uses Dst, Pdyn, Bz, Kp
9Tsyganenko [2001]Uses Dst (−50 to 20 nT), Pdyn (0.5–5 nPa), |By| ≤ 5 nT, |Bz| ≤ 5 nT, G1 (0–10), G2 (0–10); valid for x_GSM ≥ −15 Re
10Tsyganenko [2001] stormUses Dst, Pdyn, By, Bz, G2, G3; no upper/lower limit on inputs; valid for x_GSM ≥ −15 Re
11Tsyganenko [2004] stormUses Dst, Pdyn, By, Bz, W1–W6; no upper/lower limit on inputs; valid for x_GSM ≥ −15 Re
12Alexeev [2000] / ParaboloidUses dens, velo, Dst, BzIMF, AL
13Tsyganenko [2007]
14Mead-TsyganenkoUses Kp; ONERA model where T89 is best-fitted by a Mead model

Python String Aliases

In the Python MagFields class, kext can be specified as either an integer or a string alias from the extModels list. The aliases map to kext values in order:
kextString alias
0'None'
1'MF75'
2'TS87'
3'TL87'
4'T89'
5'OPQ77'
6'OPD88'
7'T96'
8'OM97'
9'T01'
10'T01S'
11'T04'
12'A00'
13'T07'
14'MT'
from IRBEM import MagFields

# Select the Olson-Pfitzer Quiet model by string alias
model = MagFields(kext='OPQ77')

# Equivalent using the integer key
model = MagFields(kext=5)

Internal Field Models (options[4])

The fifth element of the options array selects the internal (main) field model applied beneath every external model:
options[4]Model
0IGRF (default)
1Eccentric tilted dipole
2Jensen & Cain 1960
3GSFC 12/66 updated to 1970
4User-defined myOwnMagField routine
5Centered dipole
When options[4] = 4, IRBEM calls a user-supplied Fortran routine myOwnMagField(xGEO, Bxint). The inputs are xGEO, a 3-element double array of geocentric geographic (GEO) cartesian coordinates in Re, and the output is Bxint, a 3-element double array of magnetic field components (Bx, By, Bz) in GEO cartesian coordinates in nT.

The TS07d Model

The Tsyganenko [2007] model (kext=13, alias 'T07') requires additional coefficient files that are not bundled with the base IRBEM distribution. Before using this model you must run the setup script included in the repository root:
bash setup_ts07d_files.sh
Attempting to use kext=13 without first running setup_ts07d_files.sh will produce incorrect or undefined results. Follow the instructions in README.install for details.
For most near-Earth spacecraft applications that do not require storm-time accuracy, kext=5 (Olson-Pfitzer Quiet, alias 'OPQ77') is a good default choice. It covers orbits out to 15 Re without requiring any solar wind driving parameters.

Build docs developers (and LLMs) love