技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
pygimli【数据与研究】Multi-method geophysical modelling and inversion framework. Use when the agent needs to: (1) Perform electrical resistivity tomography (ERT) inversion, (2) Run seismic refraction tomography (SRT), (3) Model induced polarization (IP) data, (4) Simulate ground penetrating radar (GPR), (5) Create finite element meshes for geophysical problems, (6) Perfo…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
import pygimli as pg
from pygimli.physics import ert, srt
# Load ERT data
data = ert.load("survey.ohm")
# Invert
mgr = ert.ERTManager(data)
model = mgr.invert(lam=20, verbose=True)
# View result
mgr.showResult()
| Class | Purpose |
|---|---|
pg.Mesh | Finite element meshes |
pg.DataContainer | Survey data and geometry |
pg.Inversion | Base inversion framework |
ert.ERTManager | ERT processing and inversion |
srt.SRTManager | Seismic refraction inversion |
import pygimli as pg
from pygimli.physics import ert
data = ert.load("survey.ohm")
print(f"Measurements: {data.size()}")
ert.showData(data) # Pseudosection
from pygimli.physics import ert
mgr = ert.ERTManager(data)
model = mgr.invert(
lam=20, # Regularization
verbose=True
)
mgr.showResult()
resistivity = mgr.model
from pygimli.physics import srt
data = srt.load("traveltimes.sgt")
mgr = srt.SRTManager(data)
model = mgr.invert(lam=30, zWeight=0.3)
mgr.showResult()
import pygimli as pg
from pygimli.physics import ert
data = ert.load("survey.ohm")
mesh = pg.meshtools.createParaMesh(
data.sensors(),
quality=34.0,
paraMaxCellSize=5,
boundary=2
)
pg.show(mesh)
# Save mesh and model
mgr.mesh.save("result_mesh.bms")
pg.save(model, "resistivity_model.vector")
# Export to VTK for ParaView
mgr.mesh.exportVTK("result", mgr.model)
| Code | Array |
|---|---|
wa | Wenner-alpha |
wb | Wenner-beta |
dd | Dipole-dipole |
pd | Pole-dipole |
pp | Pole-pole |
slm | Schlumberger |
gr | Gradient |
| Format | Extension | Description |
|---|---|---|
| BERT/pyGIMLi | .ohm | Unified data format |
| Syscal | .txt | IRIS export |
| Res2DInv | .dat | 2D inversion format |
| ABEM | .ohm | ABEM Terrameter |
| SRT | .sgt | Seismic traveltimes |
| Scenario | Recommendation |
|---|---|
| Standard ERT inversion with common arrays | pyGIMLi - simplest API, built-in array types |
| Seismic refraction tomography (SRT) | pyGIMLi - integrated SRT manager |
| Multi-method inversion (DC, magnetics, gravity, EM) | SimPEG - broader method coverage |
| Commercial ERT processing with reporting | Res2DInv - industry standard, GUI-based |
| Custom forward operators or research flexibility | SimPEG - more modular design |
| FEM-based geophysical modelling | pyGIMLi - native FEM mesh support |
Choose pyGIMLi when: You need near-surface geophysical inversion (ERT, SRT, IP) with
minimal code. Its manager classes (ERTManager, SRTManager) handle the full workflow
from data loading to inversion to visualization in a few lines.
Avoid pyGIMLi when: You need methods beyond near-surface (use SimPEG), or you require a commercial-grade reporting pipeline.
ert.load("survey.ohm")data.size(), plot pseudosectionERTManager with datamgr.invert(lam=20) (start with higher lambda)mgr.showResult()mgr.mesh.exportVTK()