Skip to main content

MTpy-v2: A Python Toolbox for working with Magnetotelluric (MT) Data

PyPi version Latest conda|conda-forge version codecov License: MIT Documentation Status Binder

Version 2.1.4

Description

mtpy provides tools for working with magnetotelluric (MT) data. MTpy-v2 is an updated version of mtpy. Many things have changed under the hood and usage is different from mtpy v1. The main difference is that there is a central data type that can hold transfer functions and then read/write to your modeling program, plot, and analyze your data. No longer will you need a directory of EDI files and then read them in everytime you want to do something. You only need to build a project once and save it to an MTH5 file and you are ready to go. All metadata uses mt-metadata.

Installation

Using Pip

> pip install mtpy-v2

Using conda

> conda install -c conda-forge mtpy-v2

Pardiso Solver

mtpy-v2 now includes some tools to model and invert using simpeg. If you want to use the Pardiso solver you will need to install it separately. See the https://github.com/simpeg/pydiso for more information. Below is a snippet from their recommendations.

Installing from source

The wrapper is written in cython and links to the mkl libraries dynamically. Therefore, it needs to find the necessary header files associated with the MKL installation to compile. The meson build backend uses pkg-config to identify the locations of the mkl header files and library dynamic libraries. Most development installations of MKL should provide the necessary pkg-config files for this. For example, conda users can be install the necessary configuration information with mkl-devel package that is available on the default channel, conda-forge channel, the intel channel, or others, e.g.

conda install mkl-devel

If you have installed the configuration files to a non-standard location, you will need to set PKG_CONFIG_PATH to point to that location.

After the necessary MKL files are accessible, you should be able to install by running

pip install .

in the installation directory.

Functionality

  • Read/write transfer function files (EDI, EMTFXML, J-file, Z-file, AVG-file) using mt-metadata
  • Read/write MTH5 files for full surveys/project in a single file
  • Utility functions for GIS

Plotting

  • Single transfer function
    • apparent resistivity and phase
    • induction vectors
    • phase tensors
    • strike
    • depth of investigation
  • Survey of transfer functions
    • station map
    • phase tensor and induction vector map and pseudosection
    • apparent resistivity and phase maps and pseudosections
    • depth of investigation map

Processing

  • Read/write files for time series processing

Modeling

  • Read/Write files for modeling programs
    • ModEM
    • Occam 1D and 2D
    • Mare2DEM (?)
    • Pek 1D and 2D

What's been Updated in version 2

The main updates in mtpy-v2 are:

  • Remove dependence on EDI files, can be any type of transfer function file
    • Supports (or will support) to/from:
      • EDI (most common format)
      • ZMM (Egberts EMTF output)
      • JFILE (BIRRP output)
      • EMTFXML (Kelbert's format)
      • AVG (Zonge output)
  • Uses mt-metadata to read and write transfer function files where the transfer function data are stored in an xarray
  • The workflow is more centralized by introducing MTCollection and MTData objects which are the databases to hold a collection of transfer functions and manipulate them
    • Includes plotting methods, to/from data file types for modeling, rotations, interpolations, static shifts, etc.
    • Can store a collection as an MTH5 using mth5

Quick Example

Typically MT data are collected as surveys and each station produces a single transfer function. These are provided in various formats like EDI, EMTF XML, etc.

One benefit of mtpy-v2 is reading all these in only needs to be done once and places them in a single MTH5 file.

from pathlib import Path
from mtpy import MTCollection

transfer_function_path = Path("/home/survey_00/transfer_functions")

# write directly to an MTH5 file and close when finished loading TFs
with MTCollection() as mc:
    mc.open_collection(transfer_function_path.joinpath("tf_collection.h5"))
    mc.add_tf(
        mc.make_file_list(
            transfer_function_path,
            file_types=["edi", "xml", "j", "zmm", "zss", "avg"],
        )
    )
 

Now when you want to access your data again, you just need to open a single file.

mc = MTCollection()
mc.open_collection(r"/home/survey_00/transfer_functions/tf_collection.h5")

# plot station locations
station_locations = mc.plot_stations()

How to Cite

If you use this software in a scientific publication, we'd very much appreciate if you could cite the following papers:

  • Kirkby, A.L., Zhang, F., Peacock, J., Hassan, R., Duan, J., 2019. The MTPy software package for magnetotelluric data analysis and visualisation. Journal of Open Source Software, 4(37), 1358. https://doi.org/10.21105/joss.01358

  • Krieger, L., and Peacock, J., 2014. MTpy: A Python toolbox for magnetotellurics. Computers and Geosciences, 72, p167-175. https://doi.org/10.1016/j.cageo.2014.07.013

Contacts

| Jared Peacock | peacock.jared@gmail.com

| Alison Kirkby | alkirkby@gmail.com

System Requirements

  • Python 3.8+

License

MTpy is licensed under the MIT license

The license agreement is contained in the repository and should be kept together with the code.

Metadata

Release files for mtpy-v2 2.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mtpy-v2 2.1.4
File Size Uploaded
mtpy_v2-2.1.4.tar.gz 1.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for mtpy-v2 2.1.4
File Interpreter ABI Platform
mtpy_v2-2.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 2.0 MB

Release files / mtpy_v2-2.1.4.tar.gz

Download URL mtpy_v2-2.1.4.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
4a2996f1d76981a2eeb80a985f9fcdcb6cd80d29598e84d7ca8a16d16e32fe14
BLAKE2b-256 checksum
How to use checksums
6ceea7b7396ffcb4a2b8311e16e0a90a111f84c1c04a3323b0659e0d14b17dfb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.

Transparency log

Release files / mtpy_v2-2.1.4-py3-none-any.whl

Download URL mtpy_v2-2.1.4-py3-none-any.whl
Size 657.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
84886ff8fb6873694bb5693b7d815a9de2d1e2006e787b31f84f8e538f92aefa
BLAKE2b-256 checksum
How to use checksums
6ac2f8fbe0bb6c89eac0a12cd98ff3de912ece877a06d85858d1efae943ac194
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.1.4 This release

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.14

2 release files

2.0.12

2 release files

2.0.11

2 release files

2.0.9

2 release files

2.0.8

2 release files

2.0.7

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page