← Back to project catalogue
GP-GE-02GU6S9GeologyReady

SimPEG magnetotelluric inversion study

A completed one-dimensional magnetotelluric inversion study examining conductivity recovery, regularisation, noise, frequency coverage, starting models, outliers, sensitivity, and non-uniqueness.

SimPEG magnetotelluric inversion study project visual
GP-GE-02GU6S9 · Geology
  • Python 3.12
  • SimPEG 0.25.2
  • NumPy
  • SciPy
  • Pandas
  • Matplotlib

Software compatibility

SimPEG 0.25.2 and Python 3.12 only

The source, retained results, figures, tests, and documentation use SimPEG 0.25.2 with the pinned Python 3.12 environment. Other versions, dimensional assumptions, or field datasets require a new verification run.

Project definition

Problem statement

Magnetotelluric measurements contain frequency-dependent information about subsurface electrical conductivity, but inversion is affected by noise, regularisation, starting assumptions, limited depth sensitivity, outliers, and non-uniqueness.

The geology problem is to recover a layered conductivity structure from controlled synthetic responses while showing which features are supported by the data and which depend on modelling assumptions.

Project objectives

  • Build a documented one-dimensional layered-earth magnetotelluric reference model.
  • Generate reproducible apparent-resistivity and phase observations across thirty-three frequencies.
  • Compare regularisation strengths, noise levels, starting models, frequency coverage, and outlier handling.
  • Measure response fit, model error, depth sensitivity, uncertainty, and conductance equivalence.
  • Retain complete data, results, figures, tests, references, and editable documentation.

Project structure

Project components

01

Layered-earth model

Defines the reference resistivity structure, twenty-four inversion layers, frequency range, error model, and deterministic seeds.

02

Forward response

Calculates complex one-dimensional magnetotelluric impedance, apparent resistivity, phase, and controlled synthetic observations.

03

SimPEG inversion

Runs regularised inversions for the complete experiment matrix and retains every recovered model and response.

04

Resolution analysis

Measures depth sensitivity, uncertainty envelopes, starting-model effects, frequency support, outlier response, and conductance equivalence.

05

Evidence builder

Produces exact CSV and JSON results, fourteen figure pairs, automated tests, references, and editable documentation.

Methodology

Project workflow

  1. 01
    Define the experiment

    A validated configuration declares the layered model, frequencies, errors, regularisation cases, uncertainty runs, and random seeds.

  2. 02
    Generate observations

    The forward solver produces synthetic apparent resistivity and phase data with declared noise.

  3. 03
    Run inversions

    SimPEG recovers logarithmic conductivity models under controlled regularisation, starting, frequency, and outlier conditions.

  4. 04
    Measure evidence

    The analysis compares normalized misfit, logarithmic model error, sensitivity, uncertainty, and response equivalence.

  5. 05
    Compare and verify

    All retained cases are plotted, tested, audited, reproduced locally and in Docker, and checked against repository contracts.

Demonstration scenario

The baseline inversion reaches a normalized misfit of 0.8580 and a log10 model RMSE of 0.2072 across thirty-three frequencies and twenty-four layers. The wider experiment shows how fit quality, recovered structure, sensitivity, and non-uniqueness change under controlled assumptions.

Engineering

Tools and method

Tools
The project uses Python 3.12, SimPEG 0.25.2, NumPy, SciPy, Pandas, Matplotlib for subject analysis, simulation, and results.
Electromagnetic model
A one-dimensional recursive impedance formulation represents horizontal isotropic layers and provides independent forward checks.
Inverse model
SimPEG solves for logarithmic conductivity across twenty-four layers using data misfit and smoothness regularisation.
Experiment control
Python executes the complete 75-case matrix with deterministic configurations and retained outputs.
Evidence layer
NumPy, SciPy, Pandas, CSV, JSON, PNG, and SVG retain observations, models, responses, metrics, and figures.
Verification
Forty automated tests, branch coverage, dependency audit, Docker execution, document audits, and repository validation verify the delivery.

Testing

Evaluation

Evaluation measures

  • Normalized magnetotelluric data misfit for every inversion case
  • Log10 resistivity model RMSE against the known synthetic structure
  • Sensitivity and resolution change with depth
  • Recovered-model stability under noise, starting models, and frequency limits
  • Outlier response with standard and robust treatment
  • Conductance-equivalent models and uncertainty envelopes
  • Automated tests, dependency audit, document checks, and container execution

Project boundaries

  • The study uses synthetic one-dimensional magnetotelluric data for horizontal isotropic layers.
  • It does not process raw field time series, estimate impedance tensors, correct static shift, or interpret strike and dimensionality.
  • A good response fit does not establish a unique conductivity-depth model, particularly beneath weakly resolved depths.
  • Field interpretation requires acquisition quality control, distortion analysis, geological constraints, two-dimensional or three-dimensional modelling where appropriate, and qualified geophysicists.

Included

  1. 01Complete Python and SimPEG source code
  2. 02Seventy-five completed study cases, including seventy-one inversions
  3. 03Thirty-three-frequency synthetic magnetotelluric dataset and retained case results
  4. 04Regularisation, noise, starting-model, frequency, outlier, uncertainty, and equivalence experiments
  5. 05Fourteen project figures in PNG and SVG
  6. 06Three public-domain field images with provenance
  7. 07Forty-eight annotated references
  8. 08Forty automated tests with 98.60 percent branch-aware coverage
  9. 09Complete project files, calculations, results, and analysis material in a private GitHub repository
  10. 1090-page project documentation in PDF and editable Word formats
  11. 119-page setup and usage guide in PDF and editable Word formats

Project record

No information is collected on this page.

Permanent project ID
GP-GE-02GU6S9
Catalogued
21 Aug 2026
Completed
28 Aug 2026
Verified
28 Aug 2026
Demonstration
Included in repository

Handover

After purchase

  1. 01
    Payment is confirmed

    The project is marked unavailable and cannot be purchased again.

  2. 02
    Repository access is granted

    The buyer's submitted GitHub account receives access to the private repository.

  3. 03
    The purchase record is delivered

    The certification sheet is prepared from the reviewed buyer details and sent privately by email.