Skip to main content

IRI2016 International Reference Ionosphere from Python

Project description

image Build Status image Build status PyPi version PyPi Download stats

IRI2016 ionosphere model from Python and Matlab


Python and Matlab interfaces to the International Reference Ionosphere (IRI) 2016 model.


Any Fortran compiler will do. IRI2016 has been tested with compilers including:

  • Gfortran 5, 6, 7, 8
  • Intel ifort
  • PGI pgf90

Install Gfortran by:

  • Linux: apt install gfortran
  • Mac: brew install gcc
  • Windows

and then from your Python ≥ 3.6 install (such as Miniconda):

pip install iri2016


git clone
cd iri2016

python -m pip install -e .[tests]


  • Height-profile: plot density and temperatures vs altitude image
  • Latitudinal profile: plot densities and height at the peak of F2, F2, and E regions vs geographic latitude image
  • GMT profile: plot densities and height at the peak of F2, F2, and E regions vs universal time image
  • Height vs GMT: plot Ne, Te, and Ti as a function of height and universal time image
  • Latitude vs Longitude: plot of foF2 a function of geographic latitude and longitude image


Many Python programs--including IRI2016--are readily accessible from Matlab. Here's what's you'll need:

  1. Setup Python ↔ Matlab interface.
  2. Install IRI2016 in Python as at the top of this Readme.
  3. From Matlab, verify everything is working by from the iri2016/ directory:
  4. Use iri2016.m function to access IRI2016 quantities. See RunIRI2016.m for simple example use / plots.

CAVEAT: due to old-fashioned Fortran 77 techniques, Matlab needs to be restarted to run more than one IRI2016 scenario. This is also true of the Fortran code itself, and Python. What we do in Python is call a Python script over and over, inputting distinct parameters. This can be done from Matlab like the BatchIRI2016.m script, enhanced to call an easier/faster Python script. Let us know.

Matlab IRI2016 plot

Direct compilation

These commands are not normally needed unless you want to work with the Fortran code more directly.

Fortran compile

cd bin
cmake ../fortran

cmake --build .

ctest -V

f2py compile

The function DFRIDR() inside igrf.for dynamically calls other functions. This is something f2py can't access directly, so we tell f2py not to hook into function DFRIDF() with the end statement skip: dfridr:

f2py -m iri2016 -c iriwebg.for irisub.for irifun.for iritec.for iridreg.for igrf.for  cira.for iriflip.for  skip: dfridr

f2py: IGRF only

f2py -m igrf -c irifun.for igrf.for skip: dfridr


Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for iri2016, version 1.5.2
Filename, size File type Python version Upload date Hashes
Filename, size iri2016-1.5.2.tar.gz (1.6 MB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page