Home / Science / Earth sciences / Geophysics and seismology / Resistivity sounding (VES) inversionTool #883

VES inversion: Schlumberger and Wenner apparent resistivity, layered-earth forward model and damped least-squares inversion

Paste Schlumberger or Wenner sounding readings (AB/2, MN/2, ΔV and I, or apparent resistivity). Get apparent resistivities, a layered-earth model of 2 to 6 layers by damped least-squares inversion, the log-log sounding curve, a resistivity-depth plot, error factors and a CSV.

Keep it one tap away for everyday use.

Bookmark Resistivity sounding (VES) inversion?

Press Ctrl + D now. Your browser opens its own bookmark box, where you choose the name and folder.

  1. Readings
  2. Layers
  3. Curve fit
  4. Depths
Nothing is uploadedWorks offline once open

Sounding

Layered model

Inversion adjusts the logarithms of all resistivities and thicknesses by damped least squares until the model curve matches the readings. Use as few layers as the curve needs. The example sounding is made up.

Result

Download

What it does

A vertical electrical sounding (VES) measures how the resistivity of the ground changes with depth. Current goes in through two outer electrodes (A and B) and the voltage is read between two inner ones (M and N). As the outer electrodes move apart, the current reaches deeper, so a curve of apparent resistivity against spacing carries the layering of the ground: dry sand, clay, a water table, bedrock. This page:

  • Works out the geometric factor K and the apparent resistivity ρa = K ΔV/I for each reading. Schlumberger: K = π(AB/2² − MN/2²) ÷ MN. Wenner: K = 2πa.
  • Computes the forward model: the sounding curve that a stack of flat layers would give. It uses the layered-earth kernel (the Pekeris recurrence) and evaluates the Hankel transforms with linear filters that fibub computed itself. For Schlumberger readings it uses the real MN length, so the jumps where MN is moved are modelled too.
  • Inverts the readings: starting from a model, it adjusts the logarithms of every resistivity and thickness by damped least squares (Marquardt-Levenberg) until the model curve matches the readings as well as it can.
  • Reports each layer with an error factor (×/÷), the depth to each interface, the RMS misfit, and the longitudinal conductance S = Σ h/ρ, which is often better fixed than the layers themselves.
  • Draws the log-log sounding curve with the model, the resistivity-against-depth column, and lets you download the fit as CSV.

How to use it

  1. Choose the array, Schlumberger or Wenner, and whether your columns are field readings (spacings, ΔV in mV and I in mA) or already apparent resistivities.
  2. Paste or open the readings, one spacing per line. The help line shows the columns expected.
  3. Choose the number of layers. Start with few, and add one only if the fit gets clearly better.
  4. Optionally type a starting model (resistivities top down, then thicknesses). Tick Forward model only to see the curve of a model without inverting.
  5. Read the layers, check the misfit column for outliers, and download the CSV or a report.

Worked example

The example sounding was made from three made-up layers: 120 Ω·m for 3 m, 25 Ω·m for 12 m, on 400 Ω·m, read with MN/2 = 0.5 m up to AB/2 = 15 m and 5 m beyond, with 2 % noise added. The first reading, AB/2 = 1 m, MN/2 = 0.5 m, has K = 2.356 m and ΔV = 4992 mV at 100 mA, so ρa = 117.6 Ω·m. Inverting for three layers gives 118.6 Ω·m over 3.13 m, 22.6 Ω·m down to 13.6 m, on 379 Ω·m, with an RMS misfit of 1.76 %, the size of the noise. The error factors (×/÷ 1.08 for the middle layer’s resistivity, ×/÷ 1.10 for its thickness) show the conductive layer is less certain than its conductance S = 0.491 S.

Good to know

  • Equivalence: a thin conductive layer can be swapped for a thicker, less conductive one with the same h/ρ, and the curve barely changes. Likewise a thin resistive layer is fixed only by h·ρ. Treat single layers with care when their error factors are large.
  • Suppression: a layer much thinner than the one above it may not show at all.
  • The model assumes flat layers. Slopes, buried objects or nearby fences and pipes distort the curve, often as a jump between neighbouring readings.
  • A step where MN is moved is normal for Schlumberger soundings with finite MN; the model allows for it. If the step is large, check the readings.

FAQ

Which is better, Schlumberger or Wenner? Schlumberger needs fewer electrode moves and copes better with surface variations; Wenner gives stronger signals. Both work here.

How deep does a sounding see? Roughly a quarter to a third of AB/2, depending on the layers. The deepest layer here is always taken as infinitely thick.

Is my data sent anywhere? No. Everything is worked out on this page and nothing leaves your device.

Where the numbers come from

  • Geometric factors, the Pekeris recurrence for the layered-earth kernel and the Hankel-transform forms of the potential (Koefoed 1979, Geosounding Principles) are standard results, written by fibub from the equations.
  • The linear filter weights were computed by fibub by least squares against exact transform pairs; no published filter coefficients are used. They are checked against the exact image series for two layers and against direct numerical integration with SciPy's Bessel functions.
  • Inversion: damped least squares (Marquardt-Levenberg) on log resistivities and log thicknesses; checked against SciPy's least_squares on the same data.
  • The example sounding is made up by fibub.

Standard scientific values, such as constants, atomic weights and melting points, are facts found in every textbook; we name where ours were checked. If you are an author or publisher and want a value, a credit or a table changed or removed, tell us and we will act quickly.

Last updated 2026-11-09.

Related tools

Pump test analyser #126 Paste or open time–drawdown readings from a pumping test. Get transmissivity T and storativity S from a Theis curve fit and the Cooper-Jacob straight line (with a check that it applies), T from recovery data, and T and S from several observation wells. Log plots, PNG, PDF and Word downloads. Darcy flow calculator #128 Groundwater flow from Darcy's law: flux, discharge, seepage velocity and travel time. Find the hydraulic gradient and flow direction from three or more wells, convert K to intrinsic permeability, and estimate K from a sieve curve (d10, Cu, Cc and Hazen). GPR radargram viewer #513 Open ground-penetrating radar profiles in SEG-Y (rev 0 or 1, IBM or IEEE floats, integers, either byte order) or GSSI DZT format in your browser. Set time zero, dewow, remove the background, add linear, exponential or AGC gain, show depth from a wave speed, fit a hyperbola for the speed, view single traces and save the radargram as PNG. Gravity survey corrections #880 Paste a day of gravity meter readings with base station repeats. Get drift-corrected observed gravity, normal gravity from GRS80 or WGS84, free-air and Bouguer slab corrections at your density, ring terrain corrections, and free-air, simple and complete Bouguer anomalies as a table, a profile plot and a CSV. Seismic refraction interpreter #882 Paste first-arrival picks from a forward shot and, if you have one, a reverse shot. The page splits them into 2 or 3 layers, fits each line, and gives speeds, depths by the intercept-time and crossover methods, a dipping-layer solution from the two shots, reciprocal time check and a forward model to compare. Earthquake locator and magnitude calculator #878 Paste P and S arrival times from three or more seismic stations. Get each station's S−P distance, the epicentre and origin time by least squares (Geiger's method, on a flat map or the globe), optional depth, error estimates, a map with distance circles, local magnitude ML from amplitudes, and Mw from seismic moment or fault size.