Python-based tools for paleomagnetic research
Latest commit ea2d1af Sep 25, 2018
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Update Aug 20, 2018
SPD don’t use nd.array != None syntax Dec 2, 2017
bin add bin/tdt_magic_anaconda and bin/livdb_magic_anaconda, #402 Jul 30, 2018
binder try removing a few more packages binder doesn’t like Aug 23, 2018
data_files rename py_irm folders to irm_unmix. remove some unneeded png files Sep 20, 2018
dialogs fixes for sufar4, #428 Sep 7, 2018
help_files resolved #96 as suggested using abriviations and changing context hel… Dec 20, 2016
locator add dummy module for finding location of PmagPy directory Oct 6, 2016
pmag_env add IS_WIN environment variable and fix for Windows comma… Jun 7, 2018
pmagpy add missing comma to programs_list (sigh) Sep 21, 2018
pmagpy_tests fix tests with index name change Sep 18, 2018
programs make more similar to other PmagPy programs Sep 19, 2018
setup_scripts pull out instructions for linux installed that have been moved to coo… Aug 14, 2018 Add uninstaller for Mac OSX Mar 4, 2016
.gitignore lowercase some data files, make sure renamed things are renamed every… Aug 24, 2018
.travis.yml keep troubleshooting broken travis-ci tests Jul 20, 2018 clarify release instructions in Jun 28, 2018 make it so that data_model can be found: online & off, using pmagpy-c… Mar 24, 2016
PmagPy-cli.ipynb increment version # Sep 21, 2018
PmagPy.ipynb modified: PmagPy.ipynb Sep 25, 2018 Update Sep 5, 2018 skip the html part of the README for pip Jun 1, 2018 for add note about using bash instead of other shells Jul 23, 2018
example_pypirc update information about making pip releases Sep 12, 2017
license.txt re-added the license to the main directory of PmagPy, somehow it got … Apr 29, 2017
magic_gui.spec add hidden import in magic GUI, too Jan 19, 2018 add README with instructions for creating pip releases May 3, 2017
pmag_gui.spec Add in some ‘hidden imports’ to prevent pyinstaller from getting real… Jan 19, 2018
pmagpy_dependencies.txt add depencies: lmfit Sep 5, 2018
pmagpy_env_osx.txt add better explanations to pmagpy_dependencies/pmagpy_env_osx Aug 7, 2018 add missing comma to programs_list (sigh) Sep 21, 2018 Added run_all_tests shell script which runs all tests in the reposito… Apr 20, 2017 rename new_builder to contribution_builder, #405 Aug 3, 2018 update to create PmagPy-data directory with data_f… Aug 27, 2018

PmagPy: tools for paleomagnetic data analysis

Latest Release latest release
License license

What is it

PmagPy is a comprehensive set of tools for analyzing paleomagnetic data. It facilitates interpretation of demagnetization data, Thellier-type experimental data and data from other types of rock magnetic experiments. PmagPy can be used to create a wide variety of useful plots and conduct statistical tests. It is designed to work with the MagIC database (, allowing manipulation of downloaded data sets as well as preparation of new contributions for uploading to the MagIC database. Functions within PmagPy can be imported and used in Jupyter notebooks enabling fully documented and nicely illustrated data analysis.

Main features

PmagPy is comprised of:

  • GUI programs for getting data into MagIC database format (pmag_gui), analyzing demagnetization data (demag_gui) and analyzing paleointensity data (thellier_gui). These GUIs are available as part of the python package pmagpy-cli. Alternatively, these GUIs are availible for download as executable programs outside of this repository.
  • Command line programs for all sorts of paleomagnetic data analysis and wrangling (contained within the programs folder of the repository and pip installed as pmagpy-cli).
  • The pmagpy function module for paleomagnetic data analysis (pmagpy.pmag) and plotting (pmagpy.pmagplotlib) as well as a function module that further enables paleomagnetic data analysis within interactive computing environments such as the Jupyter notebook (pmagpy.ipmag). The functions within these modules are at the heart of the GUI and command line programs. With pmagpy installed (described below), these modules are can be imported (e.g. from pmagpy import ipmag).
  • Example data files that are used in the examples provided in the PmagPy cookbook

Use of all these features is described in the Cookbook and the underlying science behind the data and code can be explored in the book Essentials of Paleomagnetism: Third Web Edition. Example Jupyter notebooks using PmagPy can be found in this repository

How to get it

There are several different ways to install PmagPy. Complete documentation for PmagPy installation and use is available in the PmagPy cookbook.

You can try a preview of PmagPy here:


Please be patient, the preview will take a few minutes to launch.

Stand alone applications

If you do not need the full PmagPy functionality, and you only want to use Pmag GUI, MagIC GUI, Thellier GUI, and Demag GUI, there a standalone download for which Python does not need to be installed. Once downloaded, the GUIs should run when you double click on their icon, but they will take time to start up (anywhere from 5 to 30 seconds) please be patient.

OSX Standalone download

You’ll find the latest stable release here: Mac PmagPy Executable Application

Windows Standalone download

You’ll find the latest stable release here: Windows PmagPy Executable Application

Linux Standalone download

This binary has only been tested on a Ubuntu 14.04 (Trusty) distribution and might experience problems on other distributions. You’ll find the latest stable release here: Linux PmagPy Executable Application

Full PmagPy install

To get the full use of PmagPy functionality, you will first have to have a Python installation with some standard scientific modules. You can follow instructions to do so here. Once you have Python installed:

  • Find and open your command line (for help finding your command prompt, see the documentation)
  • Update pip: type on the command line: pip install --upgrade pip
  • Install or update pmagpy: use the command: pip install --upgrade pmagpy
  • Install or update pmagpy-cli, use the command: pip install --upgrade pmagpy-cli
  • To uninstall, use the commands: pip uninstall pmagpy and pip uninstall pmagpy-cli
  • If you run into trouble, use pip to uninstall both pmagpy and pmagpy-cli, then try again to install first pmagpy and then pmagpy-cli

If you want access to the master branch rather than the latest release, see the developer install instructions.

Background and support

The code base for the PmagPy project has been built up over many years by Lisa Tauxe (Distinguished Professor of Geophysics at the Scripps Institution of Oceanography) supported by grants from the National Science Foundation. Substantial contributions to the project have been made by Nick Swanson-Hysell (Assistant Professor at UC Berkeley), Ron Shaar (Senior Lecturer at the Hebrew University of Jerusalem), Lori Jonestrask and Kevin Gaastra as well as others.


If you want to get involved with the project - whether that means reporting a bug, requesting a feature, or adding significant code - please check out the project's Contribution guidelines.

More information

This code and the PmagPy cookbook ( are companions to the the book Essentials of Paleomagnetism: Third Web Edition ( written by Lisa Tauxe with contributions from Subir K. Banerjee, Robert F. Butler and Rob van der Voo. The printed version of the book came out in January, 2010 from University of California Press (


This code can be freely used, modified, and shared. It is licensed under a 3-clause BSD license. See license.txt for details.