Skip to content

WMMHR-2025

World Magnetic Model High Resolution (2025 edition). Computes Earth's magnetic field using spherical harmonic coefficients to degree 133, providing high spatial resolution including crustal field contributions. Valid from approximately 2025 to 2030.

Note

For usage guidance and examples, see Magnetic Field Models in the Learn section.

Geodetic ENZ Output

wmmhr_geodetic_enz builtin

wmmhr_geodetic_enz(epc: Epoch, x_geod: ndarray, angle_format: AngleFormat, nmax: int = None) -> ndarray

Compute WMMHR-2025 magnetic field in the geodetic ENZ frame.

The geodetic ENZ frame has zenith perpendicular to the WGS84 ellipsoid surface.

Parameters:

Name Type Description Default
epc Epoch

Epoch of computation

required
x_geod ndarray

Geodetic position [longitude, latitude, altitude_m]. Angle units controlled by angle_format. Altitude always in meters.

required
angle_format AngleFormat

Whether longitude/latitude are in degrees or radians

required
nmax int

Maximum spherical harmonic degree (1-133). Default: 133 (full resolution).

None

Returns:

Type Description
ndarray

numpy.ndarray: Magnetic field [B_east, B_north, B_zenith] in nT

Example
1
2
3
4
5
6
7
import brahe as bh
import numpy as np

epc = bh.Epoch.from_date(2025, 1, 1, bh.TimeSystem.UTC)
x_geod = np.array([0.0, 80.0, 0.0])
b = bh.wmmhr_geodetic_enz(epc, x_geod, bh.AngleFormat.DEGREES)
print(f"B_east={b[0]:.1f}, B_north={b[1]:.1f}, B_zenith={b[2]:.1f} nT")

Geocentric ENZ Output

wmmhr_geocentric_enz builtin

wmmhr_geocentric_enz(epc: Epoch, x_geod: ndarray, angle_format: AngleFormat, nmax: int = None) -> ndarray

Compute WMMHR-2025 magnetic field in the geocentric ENZ frame.

The geocentric ENZ frame has zenith along the geocentric radial direction.

Parameters:

Name Type Description Default
epc Epoch

Epoch of computation

required
x_geod ndarray

Geodetic position [longitude, latitude, altitude_m]. Angle units controlled by angle_format. Altitude always in meters.

required
angle_format AngleFormat

Whether longitude/latitude are in degrees or radians

required
nmax int

Maximum spherical harmonic degree (1-133). Default: 133 (full resolution).

None

Returns:

Type Description
ndarray

numpy.ndarray: Magnetic field [B_east, B_north, B_zenith] in nT

Example
1
2
3
4
5
6
import brahe as bh
import numpy as np

epc = bh.Epoch.from_date(2025, 1, 1, bh.TimeSystem.UTC)
x_geod = np.array([0.0, 80.0, 0.0])
b = bh.wmmhr_geocentric_enz(epc, x_geod, bh.AngleFormat.DEGREES)

ECEF Output

wmmhr_ecef builtin

wmmhr_ecef(epc: Epoch, x_geod: ndarray, angle_format: AngleFormat, nmax: int = None) -> ndarray

Compute WMMHR-2025 magnetic field in the ECEF frame.

Parameters:

Name Type Description Default
epc Epoch

Epoch of computation

required
x_geod ndarray

Geodetic position [longitude, latitude, altitude_m]. Angle units controlled by angle_format. Altitude always in meters.

required
angle_format AngleFormat

Whether longitude/latitude are in degrees or radians

required
nmax int

Maximum spherical harmonic degree (1-133). Default: 133 (full resolution).

None

Returns:

Type Description
ndarray

numpy.ndarray: Magnetic field [B_x, B_y, B_z] in ECEF frame, in nT

Example
1
2
3
4
5
6
import brahe as bh
import numpy as np

epc = bh.Epoch.from_date(2025, 1, 1, bh.TimeSystem.UTC)
x_geod = np.array([0.0, 80.0, 0.0])
b = bh.wmmhr_ecef(epc, x_geod, bh.AngleFormat.DEGREES)

See Also