September 10, 2018 Lab 1: One-Dimensional Analysis of DC Resistivity Data
September 10, 2018 Lab 1: One-Dimensional Analysis of DC Resistivity Data
General Comments:
• Lab write-up is due by 5 PM on September 17, 2018 (one week from the lab day).
• Hand in at the drop-box (L2 east side), or directly to the TA in CCIS 3-152.
• Write up should include answers to all questions and contain all relevant figures/plots.
• All lab material (codes and data) can be downloaded from the class webpage at:
https://sites.ualberta.ca/~unsworth/UA-classes/424/labs424-2018.html
Goal
The goal of this lab will be to find a 1-D resistivity model of the Earth that fits the measured data, and to
interpret the resistivity model in terms of physical properties (porosity, groundwater salinity etc.). We will
analyse DC resistivity data collected with a Schlumberger array in 2009 at field school.
1. Introduction
1
Lab 1 - Geophysics 424, 2018
The DC resistivity technique measures the Earth's electrical resistivity by injecting an electric current into the
ground. The electrodes (A and B) are usually metal stakes that are hammered into the ground. Two additional
electrodes (M and N) are used to measure the voltage generated by the injected electric current. It is
recommended to review your Geophysics 325 notes on DC resistivity.
See : http://www.ualberta.ca/~unsworth/UA-classes/325/notes325.html
The electric currents flow in curved lines from A to B as shown in Figure 1. The depth of exploration is
proportional to the current electrode spacing, so the greater the spacing, the greater depth the electric currents
will flow in the Earth, and therefore the greater the depth of the investigation. We are able to calculate the
apparent resistivity, which represents the average resistivity of a layered Earth over a hemispherical volume
located between the electrodes and with a depth approximately equal to the electrode spacing.
The Schlumberger array is a standard electrode configuration where the current electrodes are moved out some
pre-determined distance every measurement while the potential electrodes remain in place. In practice, at some
point the current electrodes are at too great a distance and it becomes difficult to measure the potentials so the
potential electrodes are moved outwards as well.
A forward problem begins with an Earth model and makes a prediction about what data would
be measured if a geophysical survey was carried out at that location. This is useful in planning a
survey to see what parameters are needed to detect a target at a given depth. Forward problems
are always unique (i.e. there is only one solution).
An inverse problem takes geophysical data that was collected in a survey and computes a model
of the Earth properties (e.g. seismic velocity, electrical resistivity, magnetic susceptibility) in the
survey area. Inverse problems are important because they allow us to analyse field data, but have
the unfortunate consequence that they are non-unique. This means that more than one model can
be found that fits the same dataset, to the same statistical precision.
(See Geophysics 325 notes, section B3 for details and an example from gravity data,
http://www.ualberta.ca/~unsworth/UA-classes/325/B/325B3-2005.pdf)
In this lab we will solve the inverse problem in DC resistivity surveys using two approaches.
In the first we a use trial-and error approach to find a 1-D resistivity model that fits the
apparent resistivity data to within a given precision. This approach typically gives a single
model, and a false degree of confidence that this is the ONLY model that fits the data.
In the second, we use a Monte-Carlo approach; many models are generated at random and
evaluated statistically. This has the advantage that we can see the RANGE of models that fit the
data, to the same precision.
2
Lab 1 - Geophysics 424, 2018
QUESTIONS:
1.1 Explain (with words and figures) how the DC resistivity method works.
1.2 Explain the differences between a forward and inverse problem in geophysics. Give an
example of each type.
• Use the files in the folders ‘fwd’ and ‘data’ for this section. Make sure these folders are in your
MATLAB path.
• The MATLAB function ‘resfwd2012.m’ computes the apparent resistivity values that would be
measured with a Schlumberger array and a specified resistivity model.
• To run the function resfwd2012.m you must input both a resistivity model file and an apparent
resistivity data file. Data files are in the ‘data’ folder. Open the file ‘mod.txt’ in the ‘fwd’ folder for an
example model file. The number of rows corresponds to the number of layers. The first column contains
thicknesses [not depth] in metres, and the second column contains actual layer resistivities,
• resfwd2012.m accepts the data file and model file as inputs. For example, you can run it with the
command: resfwd2012(‘res04-2009.txt’,’mod.txt’). Alternatively, you can just use the command
resfwd2012 with the files defined as appresfile='res04-2009.txt' on line 25 and modelfile='mod.txt' on
line 26. For each different data file you will need to edit the name properly.
• The input model does not stop at the bottom of your final layer; instead the code assumes the model
goes on to infinite depth (an infinite halfspace). Therefore the last layer thickness is ignored by the
program and your deepest layer extends to an infinite depth.
(1) Run resfwd2012 to compute the apparent resistivity data predicted for the initial model. To run the
function, open MATLAB, add the folders in this lab to the MATLAB path, and follow the instructions
above.
(2) Look at the apparent resistivity data curve and guess an initial resistivity model. Decide how many layers
you should need to fit the data (look at the inflections points). You will need to edit your model file each
time, save it, and re-run the code.
3
Lab 1 - Geophysics 424, 2018
(3) Compare the measured and predicted apparent resistivity curves. The agreement between the curves can be
evaluated visually, as the predicted curve should be within one standard deviation of each data point.
Numerically this can be expressed as the r.m.s misfit (r.m.s.= root mean square):
2
1 𝜌𝑖𝐴𝑃𝑃 −𝜌𝑖𝐶𝐴𝐿𝐶
𝑟. 𝑚. 𝑠. 𝑚𝑖𝑠𝑓𝑖𝑡 = �𝑁 � � � (Equation 1)
𝑒𝑖
𝑖=1:𝑁
where 𝜌𝑖𝐴𝑃𝑃and 𝜌𝑖𝐶𝐴𝐿𝐶are the apparent and calculated resistivity, respectively;
N is the number of data points, and e is the amount of error in each data point.
For example, Figure 2 shows a measured apparent resistivity curve (points), and their associated error bars
(above and below each data point). If all of the predicted data (black line) passes through the error bars
(red), then the r.m.s misfit value would be below 1.0. The fit in Figure 2 is quite acceptable, with an RMS
misfit = 1.03. Notice, however, that a RMS misfit below 1 is not always better because it may mean the data
is being over-fit. Always visually inspect the data because you should never rely on one number to validate
your data fit!
(4) If the fit to the measured data is acceptable (ie. r.m.s. is less than 1.5), you can stop. If not, edit the
resistivity model to improve the fit and re-run the code. Generally it is best to fit for the shallowest layers
first (small AB/2 values), and then move deeper.
(5) You may need to change the scale of the plot in order to see the entire curves. To do this open ‘rafind2.m’
in the editor window, and change the window limits set by the variables ax1 and ax2 on lines 39 and 40,
this changes the apparent resistivity plot and the true resistivity plot respectively.
Apply this procedure to the following Schlumberger soundings collected at field school in 2009:
res04-2009.txt, res07-2009.txt, res08-2009.txt.
• Use models with up to 5 layers, although most of the data can be fit with 4 or less layers,
• The simplest model is probably the most realistic. This is expressed in the principle known as
Occam's Razor (see http://en.wikipedia.org/wiki/Occam's_razor)
• Fit each Schlumberger sounding within a root mean square r.m.s misfit < 1.5
• Save the model text file, for later comparison (could rename to resXX-2009-final.txt).
• Save the figure. In the MATLAB figure window, go to File, Save As, Save as type: .png
4
Lab 1 - Geophysics 424, 2018
QUESTIONS:
2.1 Discuss non-uniqueness and Occam's Law. How can we use this to choose between several
models?
2.2 Explain in words what is meant by root mean square (r.m.s.) misfit. What does it mean to
over-fit data? Is this a good or bad thing to do?
2.3 Consider a single data point on a plot of apparent resistivity as a function of electrode
spacing. Describe qualitatively where the model response curve is in relation to the data error
bars and the data points if the r.m.s. misfit is 2? When it is 0.2? Illustrate your answer with a
sketch.
2.4 Does a lower r.m.s misfit necessarily mean a better model? Explain.
2.5 Include figures for the 3 data sets, showing the model, model response, and fit to measured
data. These should have an acceptable fit, as defined above. Identify any outlying points with an
arrow.
2.6 Submit the model parameters (model thickness and resistivity) for the 3 data sets in individual
tables.
Figure 2 – Output from resfwd.m showing a 5 layer fit of a field school data sounding.
5
Lab 1 - Geophysics 424, 2018
Another approach to finding a resistivity model that fits an apparent resistivity curve is by generating many
models with randomly distributed thicknesses and resistivities. These models are automatically examined and
only those models with an r.m.s. misfit below a certain threshold are kept.
This is a simple form of the Monte Carlo method that is often used to solve complex equations (for more
details see http://en.wikipedia.org/wiki/Monte_Carlo_method).
The folder ‘Monte_Carlo’ contains a MATLAB function ‘resinv2012.m’ that does this type of inversion on
Schlumberger array data. This function generates random thicknesses and resistivities to make a model, and
then calculates the apparent resistivity that would be measured from the random model.
The function keeps any models which have an RMS misfit value less than mtol (the RMS tolerance level)
specified within the MATLAB script file, and generates the number of models specified by num_it . The final
resulting figures are printed, and the best fitting model is saved to a text file with the name
‘mod_SoundingName.txt’ (ie: mod_res01-2009.txt).
Start by trying to fit res04-2009.txt or res08-2009.txt. with this function, since you have already done the
forward model for this data. Within the function ‘resinv2012.m’, you should change the number of models
generated num_it (try about 5000 or more), the r.m.s tolerance level mtol (remember you want an r.m.s below
1.5), and the z_scale (this linear scale controls whether you want layer thicknesses on the order of 10m, 5m, 1m,
etc.).
You will need to do this for all of the data files in Profile 1 (7), Profile 2 (7), and res5beach.txt .
(1) To run the function, open Matlab, navigate to the proper current folder “Monte Carlo " where the code is
stored, type resinv2012 in the Matlab window.
(2) Select the number of layers in the model from the menu. Remember it is often better to use as few layers as
possible to fit the model, as in the forward model section.
(4) Save the final figures and include all information in your report.
Figure-1 has 3 windows, it will show the lowest r.m.s misfit achieved amongst many models. All of these
models meet your criteria (ie. r.m.s misfit tolerance level).
Figure-2 has 2 windows showing the lowest-r.m.s. model which fits the data, and shows the corresponding
resistivity model with depth.
6
Lab 1 - Geophysics 424, 2018
Figure-3 has 2 windows showing the first model found to fit the data, and shows the corresponding resistivity
model with depth.
Save these figures. The model file itself will be saved in the current folder (ie: as 'mod_res01-2009.txt').
QUESTIONS:
3.1 Discuss the trial-and error approach and the Monte-Carlo approach. Which one do you
prefer? Why? Do you think that one gives better results?
3.2 Discuss the parameters you changed in the Monte-Carlo code. What happened when you
increased or decreased the number of iterations (num_it), the r.m.s misfit tolerance level (mtol),
and the scaling factor (z_scale)?
3.3 Include model figures for the 15 data sets. These should have an acceptable fit, as defined
above. Identify any outlying points with an arrow.
3.4 Include model parameters (model thickness and resistivity) for the 15 data sets in individual
tables.
Figure 3 – Pseudo Section and Cross Section of resistivity data from profile 1.
7
Lab 1 - Geophysics 424, 2018
For this section you will use the MATLAB function ‘profile2012.m’ in the profile_sections folder to read in
both the measured apparent resistivity, and your resistivity models generated in the previous sections.
This function displays a pseudosection of apparent resistivity, and a cross-section of your resistivity models
from previously. The figures should look similar to what you see in Figure 3. The models from each data file
are in the monte_carlo folder, seven files for profile1 and for profile2. Start with the data from profile1.
(a) First make sure your data is in the correct format within the folder:
a. Model files: mod_X.txt, (ie: 'mod_res01-2009')
b. Data files: X.txt, (ie: 'res01-2009')
i. You must make sure that the corresponding model and data files from each sounding are
called the same name, and all soundings have the same number of characters.
(b) Then edit the MATLAB function ‘profile2012.m’ so that your sounding names will be used, this will
have to be done for each separate profile. See lines 27-43 in the code.
(c) Run ‘profile2012.m’ by typing profile2012 in the MATLAB window. Make sure all files are in your
MATLAB path.
(d) Do this for both profiles, saving the created figures of the profile pseudo-section and cross-section.
Note you should also look through the function ‘profile2012.m’ to change the scale on these figures
when they are plotted. We may expect a maximal depth of about 10 – 15 m for this data. Data spacing is
15m.
Print the figures in colour. Print in grayscale, only if printing on a black and white printer (make sure
the colorbar is light to dark). Marks will be deducted if we can't distinguish the different regions.
Notice that the pseudosection is 'pseudo' - it does not give a true measure of depth! The relationship of
the electrode spacing and depth is non-linear, however, we are able to get a general idea of how the
resistivity varies beneath the electrode array.
QUESTIONS:
4.1 Discuss the information shown in the pseudo-section plot, and explain how it is different than
the model cross-section.
8
Lab 1 - Geophysics 424, 2018
PART 5: Interpretation
Collecting and analysing data does not make you a geophysicist! The interpretation is often the most important
part of a project. Thinking about both the data and the geology as you answer the questions below.
QUESTIONS:
5.1 Comment on the change in resistivity along each profile. Make sure you understand the colorbar
values!
5.2 Make a brief interpretation of the geology beneath the two profiles. Is there a difference between the
two profiles? Explain clearly why this geological structure might give the resistivity values you see in
the data. See Figure 4 for more information.
5.3 Use Archie’s law to estimate the porosity of the near surface layer in your model for res5beach.
Make sure to fully justify the values you choose for the cementation factor and fluid resistivity. Do this
where water exists in the pores (not where there is air in the pores, i.e. the very high resistivity surface
layer).
5.4 Does your porosity value make sense? Is it as you expected? Why or why not? See Geophysics 424
notes on the resistivity of rocks for reference.
Profile 1 Profile 2
Name Distance from start of profile (m) Name Distance from start of profile (m)
res01-2009 0 res08-2009 0
res02-2009 15 res09-2009 15
res03-2009 30 res10-2009 30
res04-2009 45 res11-2009 45
res05-2009 60 res12-2009 60
res06-2009 75 res13-2009 75
res07-2009 90 res14-2009 90
Table 1: Location of soundings on each profile. The location is the center point of the Schlumberger array.
9
Lab 1 - Geophysics 424, 2018
Figure 4 – Map showing the location of the two profiles near the Milk River and the DC Resistivity
sounding res5beach.
NOTE: Profile 2 is closer to the Milk River, on sandier soil. Profile 1 is higher on the bank, in shrubs and
vegetation. The location of sounding res5beach is on a sandy beach, a low and flat area, very close to the river.
NOTE: The profiles in your pseudosection and cross-section go from left to right (N to S). As shown above,
Profile 1 starts with res01 on the left and goes to res07 on the right, Profile 2 starts with res08 on the left and
goes to res14 on the right.
10