Skip to content

space-physics/igrf

Repository files navigation

IGRF 13 in Python

DOI Actions Status

Python versions (PyPI) PyPi Download stats

International Geomagnetic Reference Field: IGRF13 in object-oriented Python or Matlab.

image

image

Install

A Fortran compiler is required, such as gfortran:

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:

import igrf

igrf.build()

Optionally, test the install with:

pytest

Example

To make the plots in this readme:

igrf

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.

References