Skip to content

1D inversion ​

A 1D inversion looks for the layered earth under one station that explains its data. It is fast and a good first look at new data: how deep the data see, and roughly what resistivities to expect. MTGeophysics.jl inverts every site of a data file on its own, with either Gauss–Newton (GN) or very fast simulated annealing (VFSA).

What you need ​

Only two files:

  • the data file (the same ModEM file that 2D and 3D use)

  • a small control file

Each site gets its own layering from its skin depths (see 1D and 2D meshes), and starts from a uniform earth at its median apparent resistivity.

Run the example ​

bash
julia --project=. helpers/benchmarks_1D.jl        # writes examples/data/1D-I
julia --project=. examples/run_inv1D.jl GN        # or VFSA
julia --project=. examples/run_inv1D.jl data.dat InvCtrl.GN   # your own files

The control file ​

text
Algorithm                         : GN
Mode                              : XYYX
Exit search when rms is less than : 1
Maximum number of iterations      : 20
Initial damping factor lambda     : 1
  • Algorithm is GN or VFSA.

  • Mode chooses which impedance is fitted: XY, YX, both (XYYX) or the determinant (DET).

  • lambda sets how smooth the GN model is. Larger values give smoother models.

A VFSA control file replaces the lambda line with the search bounds and the number of chains:

text
Log10 resistivity bounds          : 0 4
Number of chains                  : 10

From Julia ​

julia
using MTGeophysics

run = Invert1D("data.dat", "InvCtrl.GN")
PlotInversion1D(run; true_model_path = "model.true")

What you get ​

The run writes a run_YYYYmmdd_HHMMSS/ folder next to the data. Each site has its own folder with the start and final models, the predicted data, the convergence history and plots/. Next to them are data.pred for all sites together and a Summary.txt.

VFSA in 1D

VFSA lets every layer move freely, without smoothing. Several quite different layered models can fit the same data equally well, so the chains may disagree. The run reports the mean of the chains' best models as model.rho, and the 5–95 % range shows how well each depth is resolved. The mean usually fits the data worse than the individual chains do; Summary.txt gives both.