International Geomagnetic Reference Field IGRF12 and IGRF11 -- in Python and Matlab
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
igrf12
src
tests
.appveyor.yml
.gitattributes
.gitignore
.travis.yml
LICENSE
MANIFEST.in
README.md
RunIGRF.py
igrf12.m
pyproject.toml
setup.cfg
setup.py

README.md

Build Status Coverage Status Build status Python versions (PyPI) PyPi Download stats

IGRF 2012 in Python

International Geomagnetic Reference Field IGRF12 and IGRF11...in simple, object-oriented Python ≥ 3.6 or Matlab.

image

image

Install

A Fortran compiler is required, such as gfortran:

To get the IGRF12 development version, git clone and then:

python -m pip install -e .

Otherwise, for the latest release from PyPi:

python -m pip install igrf12

Optionally, test the install with:

pytest

Windows

If you get ImportError on Windows for the Fortran module, try from the iri2016 directory:

del *.pyd
python setup.py build_ext --inplace --compiler=mingw32

Example

To make the plots in this readme:

igrf12

using as a Python module at geodetic coordinates 65N, 148W:

import igrf12

mag = igrf12.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

The IGRF model may be specified with the igrf12.igrf(model=) option:

  • 11: IGRF11
  • 12: IGRF12

Matlab

Matlab can seamlessly call Python modules, as in igrf12.m. Instead of the $1000 Aerospace Toolbox, use this free IGRF12 for Matlab.

Reference

If you only want the plain Fortran program, you can do:

cd bin

cmake ../src
cmake --build .

./testigrf

References