International Geomagnetic Reference Field: IGRF13 in object-oriented Python or Matlab.
Install
A Fortran compiler is required, such as gfortran:
- Linux:
apt install gfortran - Mac:
brew install gcc - gfortran for Windows (MinGW)
To get the IGRF Python development version, git clone and then:
python -m pip install -e .Otherwise, for the latest release from PyPI:
python -m pip install igrf
The first time you install IGRF, do once from Python:
Optionally, test the install with:
Example
To make the plots in this readme:
using as a Python module at geodetic coordinates 65N, 148W:
import igrf mag = igrf.igrf('2010-07-12', glat=65, glon=-148, alt_km=100)
returns an xarray.Dataset:
<xarray.Dataset>
Dimensions: (alt_km: 1)
Coordinates:
* alt_km (alt_km) int64 100
Data variables:
north (alt_km) float64 1.122e+04
east (alt_km) float64 4.148e+03
down (alt_km) float64 5.302e+04
total (alt_km) float64 5.436e+04
incl (alt_km) float64 77.29
decl (alt_km) float64 20.29
Matlab
Matlab can seamlessly call Python modules, as used in igrf.m. Instead of the $1000 Aerospace Toolbox, use this free IGRF for Matlab like:
igrf.igrf(datetime(2020,1,3,5,4,22), 20, 60, 0)
You may find it helpful to run "setup.m" first to setup the library paths.

