| name | simpeg |
| description | Simulation and Parameter Estimation in Geophysics. Framework for geophysical
forward modeling and inversion. Use when Claude needs to: (1) Run geophysical
inversions (DC resistivity, magnetics, gravity, EM), (2) Create forward models
for potential fields or electromagnetic methods, (3) Build survey geometries
and receiver configurations, (4) Design mesh discretizations for simulations,
(5) Apply regularization and optimization to inverse problems, (6) Model
subsurface physical properties from geophysical data.
|
| version | 1.0.0 |
| author | Geoscience Skills |
| license | MIT |
| tags | ["Geophysical Inversion","DC Resistivity","Magnetics","Gravity","EM","Forward Modelling"] |
| dependencies | ["simpeg>=0.20.0","discretize","numpy"] |
| complements | ["pygimli","verde","pyvista"] |
| workflow_role | modelling |
SimPEG - Geophysical Simulation & Inversion
Quick Reference
from discretize import TensorMesh
from simpeg.electromagnetics.static import resistivity as dc
from simpeg import maps, data_misfit, regularization, optimization
from simpeg import inverse_problem, inversion, directives
import numpy as np
hx, hz = np.ones(100) * 10, np.ones(50) * 5
mesh = TensorMesh([hx, hz], origin='CN')
simulation = dc.Simulation2DNodal(mesh, survey=survey, sigmaMap=maps.ExpMap(mesh))
dpred = simulation.dpred(model)
dmis = data_misfit.L2DataMisfit(data=data, simulation=simulation)
reg = regularization.WeightedLeastSquares(mesh)
opt = optimization.InexactGaussNewton(maxIter=20)
inv_prob = inverse_problem.BaseInvProblem(dmis, reg, opt)
inv = inversion.BaseInversion(inv_prob, directiveList=[...])
mrec = inv.run(m0)
Key Classes
| Class | Purpose |
|---|
TensorMesh, TreeMesh | Discretization (regular grid, adaptive octree) |
Survey | Data acquisition geometry |
Simulation | Forward modeling engine |
Data | Observed/predicted data container |
InvProblem | Combines misfit, regularization, optimization |
Essential Operations
Create Mesh
from discretize import TensorMesh
hx, hz = np.ones(100) * , np.ones() *
mesh = TensorMesh([hx, hz], origin=)
mesh = TensorMesh([np.ones()*, np.ones()*, np.ones()*], origin=)