Skip to main content

Python tool for computing the Curie depth from magnetic data

Project description


PyPI version

Magnetic data is one of the most common geophysics datasets available on the surface of the Earth. Curie depth is the depth at which rocks lose their magnetism. The most prevalent magnetic mineral is magnetite, which has a Curie point of 580C, thus the Curie depth is often interpreted as the 580C isotherm.

Current methods to derive Curie depth first compute the (fast) Fourier transform over a square window of a magnetic anomaly that has been reduced to the pole. The depth and thickness of magnetic sources is estimated from the slope of the radial power spectrum. PyCurious implements two common approaches:

Both of these methods to compute Curie depth are covered in the form of Jupyter notebooks. Copy these into your working directory by running:

import pycurious
Features Progress
Bayesian uncertainty analysis :heavy_check_mark:
Conversion between coordinate reference systems :heavy_check_mark:
Importing and exporting GeoTiffs :heavy_check_mark:
Parallelisation using OpenMP implementation in Python :heavy_check_mark:
Parallelisation using OpenMPI 10%


PyCurious consists of 2 classes:

  1. CurieGrid: base class that computes radial power spectrum, centroids for processing, decomposition of subgrids.
  2. CurieOptimise: optimisation module for fitting the synthetic power spectrum (inherits CurieGrid).

Also included is a mapping module for gridding scattered data points, and converting between coordinate reference systems (CRS).

Below is a simple workflow to calculate the radial power spectrum:

import pycurious

# initialise CurieOptimise object with 2D magnetic anomaly
grid = pycurious.CurieOptimise(mag_anomaly, xmin, xmax, ymin, ymax)

# extract a square window of the magnetic anomaly
subgrid = grid.subgrid(window_size, x, y)

# compute the radial power spectrum
k, Phi, sigma_Phi = grid.radial_spectrum(subgrid)


  • Python 2.7+ and 3.6+
  • Numpy 1.9+
  • Scipy 0.14+
  • Cython

Optional dependencies for mapping module:


To install with setuptools:

python install --user

This will compile all C source code and install them to the user directory (omit the --user flag to install to the system directory). Remember to delete the build folder if you are upgrading this package.

Alternatively, install using pip:

pip install pycurious --user


PyCurious and all of its dependencies are available for deployment with Docker:

docker pull brmather/pycurious

Project details

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
pycurious-0.2.tar.gz (1.3 MB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page