BertTutorial Tomography
BertTutorial Tomography
BertTutorial Tomography
Thomas G
unther & Carsten R
ucker
August 30, 2011
version 1.0
In this tutorial we like to show the users of the BERT inversion how to work
with our software. Some small but instructive examples, all real field cases, are
presented to show how the different options in the configuration file can be used to
yield case-specific inversion results.
The examples start from 2d inversion of surface measurements with and without
topography. We show how to include structural information and how buried electrodes are handled. 3d inversion is done on a flat surface and topography. For the
latter two main techniques are presented.
Also, measurements on closed objects, such as trees, humans, soil columns and
model tanks are shown. Finally we show how to handle time-lapse resistivity measurements. The user is invited to follow by processing the data in the examples
directory.
Contents
1. Introduction
1.1. BERT, DCFEMLib, GIMLi - Nomen est omen . . . . . . . . . . . . . . . . . .
1.2. Options and commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Visualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. 2D surface measurements
2.1. A flat surface example . . . .
2.2. Regularisation and data fit .
2.3. Mesh quality and refinement
2.4. Incorporation of topography .
2.5. Structural constraints . . . .
2.6. A sophisticated example: The
3
3
4
5
.
.
.
.
.
.
6
6
7
7
8
9
10
3. 3D surface measurements
3.1. Flat surface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. 3D Topography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
13
13
4. Closed geometries
4.1. 2d example - tree tomography . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. 3d closed geometry - model tanks . . . . . . . . . . . . . . . . . . . . . . . . . .
15
15
17
5. Buried electrodes
5.1. 2D cross-hole data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2. 3D-Crosshole measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3. Topography and buried electrodes . . . . . . . . . . . . . . . . . . . . . . . . .
19
19
19
20
6. Time-lapse ERT
6.1. Crosshole timelapse measurements . . . . . . . . . . . . . . . . . . . . . . . . .
6.2. Soil column measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
21
21
22
23
24
25
27
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
lake case
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1. Introduction
1.1. BERT, DCFEMLib, GIMLi - Nomen est omen
Direct current electrical measurements are used in a wide range of applications such as medical
imaging, geophysical surface or subsurface measurements or the investigation of trees and soil
probes. This inverse problem is known under the terms ERT (electrical resistivity tomography),
ERI (... imaging), EIT (... impedance tomography) or DC resistivity inversion. The aim of
our software is to present a unique solution for all these cases.
Main advantage is the possibility to work on arbitrary geometries. Therefore we decided to
consequently use unstructured finite element meshes for forward calculation as well as for the
parameter identification. By the use of triangles (2d) and tetrahedrons (3d) we can follow
any geometry of the subsurface, probe or any structural information we have about the object
to be investigated. Due to this generality we decided to call it BERT - Boundless Electrical
Resistivity Tomography.
BERT is a part of the software library DCFEMLib - Direct Current Finite Element Method
Library. It is currently newly developed and will be called GIMLi - Generalized Inversion and
Modelling Library. The latter is a much more general approach for arbitrary tomographic
methods, as the functionality is growing BERT will more and more migrate to GIMLi1 .
DCFEMLib is licensed under the GPL (GNU public license). Our aim is to give back to
the academic community without letting people earning money by just clicking a button.
Additionally to the library itself it comprises executables for ERT modelling and inversion, tools
for generating mesh input (the so-called poly-tools) and tools applying the mesh generator.
The theory and technology of BERT is described in our GJI paper (G
unther et al., 2006)
and bases on the finite element modelling techniques described by R
ucker et al. (2006). It
is represented by a triple-grid scheme: Most inversion algorithm use a dual-grid scheme, i.e.
the forward calculation is calculated on a finer mesh. We add another one in order to use a
secondary field approach and thus have a very fast forward calculation. Figure 1 shows the
three grids: On a coarse and resolution-dependent grid the parameters are defined. On a
globally refined and prolonged mesh the forward calculation is done. And a very fine primary
mesh is used to calculate the primary potentials (for a homogeneous subsurface), but only once
directly after the mesh creation.
sub-problem is used to update the resistivity model, a forward calculation is carried out and
checked against the data. The latter is done until the data are fitted well or the process
stagnates.
Topography
Electrodes
Parameter mesh
Primary mesh
Secondary mesh
Data
Configuration factor
Primary potential
Apparent resistivity
Inversion
Constraints
Sensitivity
Forward operator
Inverse subproblem
Check
Solution
commands for the individual tasks, namely invertNew2d, invertNew2dTopo, invertNew3d, invertNew3dTopo, invertNew2dCirc and invertNew3dCyl for the cases 2d/3d with or without
topography and for circle/cylinder geometry. For example,
$ invertNew2d datafile.dat > inv.cfg
creates a new configuration file inv.cfg with the lines DATAFILE=datafile.dat, DIMENSION=2
and TOPOGRAPHY=0, but also adds a lot of possible options for this case with an explanation,
most of them inactive/commented. The user can now (or later) change the options and run
single steps or the whole of inversion by
$ invert cfgfile commands
where cfgfile is the configuration file and commands can consist of the following:
all makes all, that is probably the first step in most (at least small) cases
meshs just makes the meshes, so that these can be optimized (suggested for bigger problems)
nomeshs do everything else but the meshes (after a successful mesh generation)
primPot interpolate calculates primary potentials and interpolates it to the secondary mesh
calcSensM actual inversion including sensitivity calculation (first inversion)
calc inversion with changed inversion options
newPara after creating a new parameter model (keeps primary mesh and potential)
save saves all important results (model&response for each iteration, log file, cfg file, meshes)
in a directory called result<date> <time>
clean cleans the directory from temporary results
mrproper deletes all stuff except input and result directories (releases disk memory fully)
show creates a vtk file (can be used in the main directory or in a result directory)
1.3. Visualization
BERT creates a lot of files that can be used for post-processing, see appendix. You can visualize
in-place or save the state first using invert inv.cfg save. A result-directory is created out of the
model file data and time and the files are moved in. Later you can change into the directory
to do the visualization. There are several ways for doing it:
1. The command invSummary creates a pdf with all essential information and figures. This
requires DCMatLab installed and is a easy method but only feasible for 2D.
2. You can use DCMatLab directly using
>> Mesh=loadmesh(mesh/meshParaDomain.bms); %loads mesh into struct
>> res=load(model_iter.final); %loads ascii resistivity vector
>> tripatchmod(Mesh,res); % help tripatchmod for options
present. Typical entries are, e.g., SENSMATMAXMEM=3000 (available memory in MB), LINSOLVER=2
(for LDL instead of CHOLMOD or taucs), or favourite mesh options
3. There is a graphical tool called bert2dpost for doing it automatically, where you can
specify some options.
4. For 3D but also 2D you can call invertinv.cfg show which will create a file showmodel.vtk
and opens ParaView with it. After show you can specify a different model file.
Paraview5 is a highly sophisticated and free tool for 3d (and 2d) visualisation. It handles
both complete inversion results (obtained by invert cfgfile show), mesh inputs (*.poly, to be
converted by polyConvert -V -S to vtk or stl) and meshes (to be converted by meshconvert, if
not already done). In order to have a quick look at 3d meshes when finding optimal parameters,
we also suggest MEDIT6 , a free and fast 3d viewer.
The usual proceeding is (i) create meshes and look whether they are suitable, (ii) run a full
inversion with all, (iii) look at the results (show, ParaView), (iv) refine options and do a calc,
save good results using save. The first step is usually omitted for small projects. We now
start to prepare and run inversions using the exemplary files in dcfemlib/examples/inversion,
starting from easy-going to complicated ones.
2. 2D surface measurements
2.1. A flat surface example
The example in dcfemlib/examples/inversion/2dflat/gallery was friendly provided by the University of Mining and Technology, Freiberg (F. Donner). It is a very small profile over a
known mining gallery that is used for draining water out of the mines. It represents a perfect
two-dimensional anomaly since it strikes perpendicular to the profile and is a 2x2m cavity.
On a profile using 21 electrodes with 2m spacing, dipole-dipole measurements have been applied, the data quality was very good. The input in the data file gallery.dat is already the
apparent resistivity. Standard deviations have been measured and 1% were added.
We create a configuration file using
$ invertNew2d gallery.dat > inv.cfg
just holding the data file and the dimension. Figure 3 shows the result of invert inv.cfg all
with default options that converged with a chi-squared value of 0.99 (data fitted within error
bounds). It clearly shows the cavity at about 20 m and another anomaly whose origin is not
completely clear from 2d measurements. See section 3.1 for inversion of a 3d data set.
0
10
15
20
25
30
x/m
40
z/m
4
6
[email protected]
Ohmm
100
126
158
200
251
316
398
5
6
10
15
20
25
30
x/m
40
z/m
z/m
10
15
20
25
30
x/m
40
Ohmm
100
126
158
200
251
Ohmm
79.4
316
100
126
158
200
251
316
398
501
Therefore DCxdInvRes ask for an error percentage to be added to the measured if those are too small.
Usually the points are linearly interpolated, SPLINEBOUNDARY=1 forces a spline interpolation,
which is useful for round geometries or smooth topography.
The coarse-ness towards the boundary is controlled by the mesh quality PARA2DQUALITY, which
denotes a minimum angle. The higher the quality is, the more accurate are the results but
with an increasing number of cells and thus run-time. In triangle8 (Shewchuk, 1996) version
1.6, our favoured 2d mesh generator, the range goes from 25-30 (bad quality) to 34-35 (good
quality). Default value is 33.8, a trade-off between accuracy and run-time. Another way of
avoiding a too coarse mesh is the maximum cell size by setting PARAMAXCELLSIZE (in m2 ).
0
10
15
20
25
30
x/m
40
z/m
z/m
10
15
20
25
30
x/m
40
10
15
20
25
30
x/m
40
10
15
20
25
30
x/m
40
10
15
20
25
30
x/m
40
z/m
z/m
8
0
10
15
20
25
30
x/m
40
z/m
z/m
Figure 5: Meshes with different parameters: default values dx=0.2 & q=33.8 (top left), dx=0.2
& q=33 (top right), dx=0.2 & q=34.5 (center left), dx=0.2 equidist & q=33.8 (center
right), dx=0.3 equidist & q=33.8 (bottom left), dx=0.5 equidist & q=33.8 (bottom
right)
In Figure 5 the resulting parameter meshes for different settings are displayed. A lower quality
is only recommended in case of topography. A too large quality value produces nicer triangles
but can lead to heterogeneous mesh density even for equidistant electrodes. The EQUIDISTANT
switch produces a nice near-surface triangulation that can yield too much parameters. The
latter can be avoided by a larger PARADX value. Finally the user has to find the optimum
settings for his case (and taste).
see http://www.cs.cmu.edu/~quake/triangle.research.html
M. Furche and is one of several profiles over a slag dump. A Wenner array with a = 2 m
spacing was applied yielding 222 data points. The topography was measured at 8 points by
levelling and appended to the original file before converting it with DC2dInvRes. We initialize
the inversion with standard options using the command:
$ invertNew2dTopo slagdump.ohm > inv.cfg
Note that this produces additional lines in the file for the primary mesh. Similar to the parameter mesh, the PRIMDX value specifies the (absolute, not relative!) refinement at the electrodes
and PRIM2DQUALITY defines the mesh growth. Additionally, we decide by PRIMP2MESH whether
the primary potentials shall be computed by quadratic shape functions. As stated by R
ucker
et al. (2006) those are more efficient. The necessary refinement for a P2 mesh is about a/10
and a/100 for a P1 mesh.
Figure 6 shows the topographic effect and the resistivity image. The upper pseudo-section
shows the apparent resistivities using flat-earth geometry factors. The middle one is the pure
geometric effect, t = Gf lat utopo ( = 1S/m), and the lower image is based on the geometric
factors out of the primary potential. Several anomalies can be explained solely by topographical
undulations. The resistivity distribution shows a conductive interior and a resistive hard pan.
0
we2
we4
we6
we8
we10
we12
10
30
40
50
x/m
70
0
10
20
30
40
50
x/m
70
120
Raw Data in m
0
we2
we4
we6
we8
we10
we12
7.94
10
10
20
z/m
13
30
16
40
20
50
25
x/m
32
110
70
105
100
Topography effect
0.71
0
we2
we4
we6
we8
we10
we12
20
95
0.79
10
20
0.89
30
40
50
1.12
x/m
1.26
90
70
Corrected Data in m
Ohmm
7.94
10
13
16
20
25
32
6.31
7.94
10
12.6
15.8
20
25.1
31.6
39.8
50
100
150
200
250
300
350
400
x/m
500
z/m
z/m
100
100
150
Ohmm
50
100
150
200
250
300
350
400
x/m
500
150
Ohmm
63.1
100
158
251
398
631
1000
63.1
100
158
251
398
631
1000
1580
Figure 7: Resistivity distribution without (left) and with (right) structural information.
Obviously the additional information leads to a much clearer image of the subsurface. At most
positions there is a sharp resistivity contrast at the boundary. However at some positions there
is either a difference to velocity or the refraction result is ambiguous.
10
5. Finally we add a region marker somewhere in the lake with marker 1 (not inverted) by
appending the line 2 50 -1 1 0.0 (number x y marker maxtrisize) and increasing the
number of regions from 2 to 3.
0
5
10
15
1
2
20
z/m
30
20
40
60
x/m
100
#
#
#
#
#
11
10
20
30
40
50
60
70
x/m
90
z/m
10
15
Ohmm
25.1
10
31.6
39.8
20
50.1
30
63.1
79.4
40
100
50
126
158
60
200
251
70
x/m
90
z/m
10
15
Figure 9: Inversion result of the water case: resistivity (top) and phase (bottom). Note that
the water is not part of the inversion mesh and thus not plotted.
3. 3D surface measurements
3D surface measurements can be carried out in several variants:
1. Layout of an electrode grid. However, due to the limited electrode number grids are
restricted to small areas.
2. Parallel (and perpendicular) profiles along the coordinate axes.
3. Profiles in arbitrary directions due to accessibility limits.
4. Non-profile layout, e.g. large-scale dipole-dipole experiments.
In any case, the electrode positions and measurements must be defined according to the unified
data format. The data for the first two types can be easily organized by hand. For number 3
(and 2) we suggest to prepare 2d files and to write a pro-file containing of lines with the 2d file
name and x-y pairs of points where the line is going. This file can be read into DC3dInvRes
G
unther (2008) and used to write the 3d file. In case of topography it is best to do the tape
correction on the 2d files before using DC2dInvRes and Export Ohm.
The most flexible element in 3d is the tetrahedron. The tetrahedralization is done by a mesh
generator. Out choice is Tetgen (Si, 2008), a free and versatile quality mesh generator. The
quality measure is different from 2d and describes a radius-to-edge ratio, note that small values
point to higher quality. Appropriate values for (primary field) forward calculation are 1.12 to
1.2, for the inverse (and thus secondary) mesh values of 1.2-1.5 are appropriate, the keys are
called PRIM3DQUALITY and PARA3DQUALITY.
12
Figure 10: Inversion result of the 3d gallery data set using a smoothed iso-surface of 650m
and a Plane Clip, the red spheres are the used electrodes.
Figure 10 shows a Paraview visualisation that has been created by the following steps: i) Cell
Data To Point Data, ii) Clip by Scalar 650 (m), iii) Extract Surface, iv) Smooth Surface, v)
Another Clip based on Cell2Point with Plane, vi) representation of the input as Outline and
Cube Axes. The color bar is logarithmic with a manual range of 100-1000m. The electrodes
have been included as point vtk file and displayed by Glyph as Spheres of radius 0.05. After
some exercise the reader will be able to create nice images, plots and calculate results such as
extensions or volumes of geological bodies.
3.2. 3D Topography
The definition of a 3d topography is much more complicated than in 2d, where every shape
can be described by a simple polygon. The input PLC consists of faces instead of edges, the
10
13
resulting poly file has a similar but different format11 . Generally the proceeding is the following:
i) create a flat surface mesh, ii) interpolate heights from topographic information, iii) make
a small (inversion mesh) and a large (forward mesh) box around it, iv) make refinement, if
necessary, and v) create the mesh using tetgen.
For specifying topography, there are two different ways:
the electrodes in the data file have an elevation and all other points are interpolated
there is a digital elevation model (DEM) or at least a list of measured topo points (in a
3-column file containing x,y and z)
Whereas the first case is sufficient for smooth topography and/or dense electrode coverage,
the latter is more general. The topographic points are Delaunay triangulated. For every point
of the meshes, also the electrodes, the elevation is linearly interpolated. Therefore electrodes
with measured elevations should be included in the topo file as well to make sure their z values
are correct. We specify this topographical list by the line TOPOPOINTS=filename.
In dcfemlib/examples/inversion/examples/acucar there is a project measured by the Federal
Institute of Geology and Natural Resources (BGR) Hannover (M. Furche12 ). The site is an
old slag dump that comprises a topography reminding on the sugar hat in Rio. Two resistivity
profiles have been measured crossing the top of the isolated hill. Another profile was realised
around the hill in a more or less constant elevation. Although this is not a dense sampling as
an electrode grid it should be sufficient to obtain a rough image.
Additionally to the electrodes, some topographical points have been measured and put into
the file points.xyz. So we create a new project using
$ invertNew3dTopo acucar.ohm > inv.cfg
and add the line TOPOPOINTS=points.xyz to the model. If we now call invert inv.cfg meshs
we see the mesh does not show the hill, since the topography overrides the electrode elevation.
Therefore we have to add the electrode definition (lines 3-230) to the topography file and see
then the hill (Figure 11 left). However due to the point density the electrode line appears as
a sharp edge that is not really the truth but sufficient in this case.
In other cases we might have a digital elevation model. In order to show this on the same
example, we created one by cubic interpolation of the available points on a regular grid of 2m
spacing. In order to avoid interpolation errors between the electrodes we created a polygon
file poly.xyz for the three profiles13 and introduce it by TOPOPOLY=poly.xyz. Figure 11 shows
the surface mesh of both variants. The sharp edges are now disappeared.
Finally the inversion result is visualised in Figure 12. It shows a conductive interior of the slag
dump and different sediments at the surface, e.g. a resistive top. Of course the data coverage
is low between the profiles and at the model boundaries. Therefore the model becomes more
or less interpolated by the smoothness constraints.
11
See http://tetgen.berlios.de
Now at Leibniz institute of Applied Geosciences
13
Several polygons are separated by a blank line.
12
14
Figure 11: Surface mesh for the point-wise topographic information (left) and the digital elevation model (right), the electrodes are shown as red points.
4. Closed geometries
Closed geometries are actually easier than open ones since we do not need a mesh prolongation
and two different regions. However since the whole boundary is of Neumann type, we must
ensure two additional conditions that are not necessary in the open case:
The current cannot vanish in infinity, therefore we must use dipole sources, e.g. by a
reference current node.
Since only derivatives are present in the boundary value problem, we must make the
forward solution unique, e.g. by adding a reference potential node, whose potential is
forced to zero.
15
needed, they can be introduced by fake electrodes. For tree (or human) geometry a dedicated
GUI named TreeBERT (before DC2dTree) was created making it easy to process the data
visually.
Tree tomography
EIT on trees has been successfully established to investigate decay of trees. The example in
dcfemlib/examples/circle/tree was measured and friendly provided by Niels Hoffmann, HAWK
Gottingen. It represents a lime tree, measured by 24 steel electrodes that are plugged into the
bark. Dipole-dipole measurements have been applied using a Geotom equipment.
The configuration file reads as follows
DATAFILE=hollow_limetree.ohm
DIMENSION=2
TOPOGRAPHY=1
# activates the primary mesh
CYLINDER=1
# defines a closed geometry
SURFACESMOOTH=1
# makes a nicer surface
EQUIDISTBOUNDARY=1 # equidistant refinement
PARADX=0.2
# 5 segments between the electrodes
PARA2DQUALITY=34.8 # very good quality, almost the upper limit
SPLINEBOUNDARY=1
# round geometry
PRIMDX_R=0.001
# refinement of primary mesh in radial direction
LAMBDA=10
# regularisation strength
BLOCKYMODEL=1
# enhance contrasts by robust (L1) methods
For this case an equidistant refinement, the use of splines and a high quality ensures a nice
mesh with a round boundary. The primary refinement is done in radial direction. Additionally
we used the robust modelling in order to obtain a clearer contrast of the high resistivity.
0.2
0.1
x/m
0.2
0.2
0.1
x/m
0.2
0.2
0.2
z/m
0.1
0.05
0.05
0.1
0.15
0.2
0.25
126
158
200
251
316
398
Figure 13: Tree cut (left), inversion result (center) and overlay.
After the measurements the tree was cut and revealed a cavity inside caused by decay. Figure 13
shows a photograph, the inversion result and an overlay of both. Clearly the cavity is marked
by high resistivity that is in almost perfect accordance with the photo.
16
14
Since the electrodes cannot be show a significant extension compared to the column size, we put the points
not onto the surface but moved it 1cm inside.
17
Figure 14: PLC (left), parameter mesh (center) and inversion result (right) of the soil column
experiment.
18
5. Buried electrodes
5.1. 2D cross-hole data
Of course cross-hole measurements can also be inverted using BERT. The height of each electrode must be set to the elevation minus depth. However, since we cannot distinguish whether
it is topography or a buried electrode we must create the geometry by hand. Note, that for this
reason we introduced the tokens h (height) and d (depth below surface) to the data format,
but this is only recognized by GIMLi.
The example in dcfemlib/examples/inversion/2dxh was produced by O. Kuras of the British
Geological Survey (BGS) in the ALERT project (Kuras et al. (2009)). It represents about
1300 data obtained by cross-hole measurement between 5 very shallow (0-1.6m) boreholes. In
order to create an inversion mesh we would create a small box with marker 2 (inversion) inside
of a big box that is used for forward calculation (marker 1) by 8 points and 8 edges.
This is more rigorously implemented by the script polyFlatWorld which automatically calculates
the size of the model and the boundary around the electrodes from the parameters BOUNDARY,
PARABOUNDARY and PARADEPTH. To pass the variables we use the Unix command source and
introduce PARAGEOMETRY="source polyFlatPara 2dxh.ohm into the cfg file. Additionally
we set SPACECONFIG=2 for subsurface sources and a pretty good quality for the parameter
mesh PARA2DQUALITY=34.5. As before, we can use PARADX to refine the model at the electrodes. In this case we introduce a node between each of the 0.1m separated electrodes using
PARADX=0.05. Note that, different from 2d surface measurements, it is treated by polyFlatWorld as an absolute value. We use a relatively large regularization parameter LAMBDA=300 for
suppressing oscillations at the electrodes. Figure 15 shows the obtained resistivity distribution
at the very beginning of a tracer experiment. See section 6.1 for time-lapse inversion.
0
2.5
3.5
4.5
x/m
5.5
z/m
1.5
10
12.6
15.8
20
25.1
31.6
39.8
50.1
63.1
79.4
100
19
SPACECONFIG=2
# for mirror sources at z=0
PARABOUNDARY=15
# to get a bit more space around the electrodes
PARAGEOMETRY="source polyFlatWorld $DATAFILE"
By using ZPOWER=0.3 we can enhance the predominantly layered structures. The inversion
converges then with defaults down to about 2 = 1. Figure 16 shows the final result.
6. Time-lapse ERT
We are often interested in ongoing physical processes and use ERT for monitoring experiments.
There are many different time-lapse inversion approaches. Here we use a very simple one that
solves the linear subsystem for the resistivity ratio of two data sets after the inversion. An
arbitrary number of subsequent data sets can be processed by writing their file names in a
text file and pass it by TIMESTEPS=filename. Up to now, the data files must contain identical
configurations in the same order.
20
2.5
3.5
4.5
x/m
5.5
z/m
z/m
1.5
1.5
10
0
12.6
2
15.8
20
2.5
25.1
3
31.6
3.5
39.8
4
50.1
4.5
63.1
79.4
x/m
100
10
5.5
z/m
z/m
1.5
1.5
10
12.6
15.8
20
25.1
31.6
39.8
50.1
63.1
79.4
100
10
12.6
2
12.6
2.5
15.8
20
2.5
15.8
3.5
25.1
3
20
31.6
3.5
25.1
31.6
39.8
4
39.8
4.5
50.1
4.5
50.1
x/m
63.1
5.5
79.4
x/m
63.1
100
5.5
79.4
100
Figure 17: Inversion results 3 hours (upper left), 7 hours (upper right), 12 hours (lower left)
and 16.5 hours (lower right) after tracer injection.
21
Figure 18: Relative resistivity difference (in %) for the repeated measurements at about 2, 4,
6, 10 and 16 hours after irrigation.
Acknowledgements
We like to thank all the guys that provided the very instructive data: Folker Donner (formerly
University of Mining and Technology, Freiberg), Markus Furche and Ulla Noell (BGR Hannover), Thomas Schicht (K-UTec GmbH Sondershausen), Niels Hoffmann (formerly HAWK
Gottingen), Oliver Kuras (British Geological Survey), Joseph Doetsch and Ilaria Coscia (ETH
Zurich). Furthermore we acknowledge all the users and testers of BERT that made the software
what it is now, a powerful expert tool.
22
References
G
unther, T. (2002-2007). DC2dInvRes - Direct Current 2d Inversion and Resolution. resistivity.net productions, http://dc2dinvres.resistivity.net.
G
unther, T. (2003-2008). DC3dInvRes - Direct Current 3d Inversion and Resolution. resistivity.net productions, http://dc3dinvres.resistivity.net.
G
unther, T. and R
ucker, C. (2006). A general approach for introducing structural information
- from constraints to joint inversion. In Ext. Abstract, EAGE Near Surface Geophysics
Workshop. 3.-6.9.06, Helsinki(Finland).
G
unther, T., R
ucker, C., and Spitzer, K. (2006). 3-d modeling and inversion of dc resistivity
data incorporating topography - part II: Inversion. Geophys. J. Int., 166(2):506517.
Kuras, O., Pritchard, J., Meldrum, P. I., Chambers, J. E., Wilkinson, P. B., Ogilvy, R. D.,
and Wealthall, G. P. (2009). Monitoring hydraulic processes with automated time-lapse
electrical resistivity tomography (ALERT). Compte Rendus Geosciences - Special issue on
Hydrogeophysics, 341(10-11):868885.
R
ucker, C., G
unther, T., and Spitzer, K. (2006). 3-d modeling and inversion of dc resistivity
data incorporating topography - part I: Modeling. Geophys. J. Int., 166(2):495505.
Shewchuk, J. R. (1996). Triangle: Engineering a 2D Quality Mesh Generator and Delaunay
Triangulator. In Lin, M. C. and Manocha, D., editors, Applied Computational Geometry:
Towards Geometric Engineering, volume 1148 of Lecture Notes in Computer Science, pages
203222. Springer-Verlag. From the First ACM Workshop on Applied Computational Geometry.
Si, H. (2002-2008). TetGen - a quality-constrained tetrahedral mesh generator. Weierstrass
institute, Berlin, http://tetgen.berlios.de.
Although it should work from version 1.2.5 on, we recommend to use pathnames without blank for both
installation and working files.
23
Note that file names are in different from Windows, i.e. /c instead of c:, slash instead of
backslash and names are case-sensitive. Under Windows Vista and 7, please use the original
(English) names as /c/Users instead of the translated ones visible in the explorer. If you
prepared your data and configuration file in a directory, you should go there with the shell by
i.e.
$ cd /c/data/profile1/trial and run the inversion using invert inv.cfg all and so on.
24
#
#
#
#
#
#
#
#
25
CYLINDER=0
ELECTRODENODES=1
SPACECONFIG=0
UNDERWATER=0
#
#
#
#
# Data settings
INPUTOHM=0
# input data is in Ohm
OVERRIDEERROR=0
# overrides given errors with INPUTERRLEVEL/INPUTERRVOLTAGE
INPUTERRLEVEL=3
# sets input error level (in percent) if no error given
INPUTERRVOLTAGE=100e-6 # sets input voltage error (V) if no error given
FILTERVALS=0
# defines filter values (experimental)
# Inversion settings
RHOSTART=0
# resistivity of start model (0 = median of the data)
NOPROLONGATION=0 # disables resistivity prolongation into non-inversion regions
MAXITER=20
# maximum number of iteration steps
SINGVALUE=-1
# potential value at electrodes, for sensitivity (internal)
LAMBDA=20
# regularization parameter
LAMBDAOPT=0
# optimze lambda by using l-curve (0 or 1)
LAMBDADECREASE=1 # decrease lambda with each iteration
CONSTRAINT=1
# order 0, 1, 2 (experimental)
ZPOWER=0
# weight for vertical gradients
BLOCKYMODEL=0
# iteratively reweighted model (L1)
ROBUSTDATA=0
# iteratively reweighted data (L1)
LOWERBOUND=0.0
# lower resistivity bound (logarithmic barrier)
UPPERBOUND=0.0
# upper resistivity bound (0.0 = deactivated)
SENSMATUPDATE=0
# update sensitivity matrix with each iteration step
SENSMATDROPTOL=0 # only for very large problems (internal)
SENSMATMAXMEM=800 # only for very large problems (internal)
# Mesh settings
PARAMAXCELLSIZE=0 # maximum cell size volume (m3) or area (m2) for para mesh
PRIMMAXCELLSIZE=0 # maximum cell size volume (m3) or area (m2) for prim mesh
PARADEPTH=0
# maximum depth of parameter domain in meter (0 = automatic)
PARABOUNDARY=5
# boundary around electrodes in parameter domain (percent)
SPLINEBOUNDARY=0 # use splines for additional surface points
EQUIDISTBOUNDARY=0# equidistant refined space between electrodes
BOUNDARY=500
# size of boundary area around parameter domain
MESHGEN=tetgen
# 3d mesh generator
TETGENTOLERANCE=1e-12
# tetgen tolerance limit for face checks
TETGENPRESERVEBOUNDARY=0 # prevents tetgen from splitting boundary facets
PARADX=0.0
# refinement for para mesh (values>0.5 is forced to 0.5)
PRIMDX=0.1
# ref. for prim mesh towards mesh center(2d: electrode)
PRIMDX_R=0.0
# ref. for prim mesh towards electr. center (overrides PRIMDX)
PARA2DQUALITY=33.0# parameter grid (from 20 (bad) to 33.4 (good))
PRIM2DQUALITY=33.4# primary grid (from 20 (bad) to 33.4 (good))
PARA3DQUALITY=1.5 # parameter grid (from 1.1 (good) to 2 (bad))
26
27
bertNew* etc. The changes are documented in the migration guide that can be retrieved from
the authors as well as the current (beta) version.
28