Resistivity Method
Estimation for depth-of investigation
Pseudo 2D Profiling
The self-potential method
Passive method for natural potentials
Redox, Streaming, Membrane Potentials
Lecture notes Lecture notes
Exercises: Resistivity Method
Exercise Resistivity Exercise Resistivity
Forward Modelling: Resistivity Method
We provide both Matlab and Python forward models required for the applied exercises. Below you find a Python version. The lines in which changes are required are marked correspondingly, evertyhing else should work out of the box.
1import numpy as np
2import matplotlib.pyplot as plt
3
4
5# Forward Model for VES
6def VESForward_RD(Params,VectorABHalf):
7
8
9 ParameterLength = len(Params)
10 if ParameterLength % 2 == 1:
11 r = Params[0:int((ParameterLength+1)/2)] # resistivities
12 t = Params[int((ParameterLength+1)/2):ParameterLength] # thickness
13 s = VectorABHalf
14
15 ls = len(s)
16 u = np.zeros(ls)
17 rho_semu = np.zeros(ls)
18
19 for ii in range(1,ls+1):
20 q = 13
21 f = 10
22 m = 4.438
23 x = 0
24 e = np.exp(np.log(10)/(2*m))
25 h = 2 * q - 2
26 u[ii-1] = s[ii-1]*np.exp(-f*np.log(10)/m-x)
27 l = len(r)
28 n = 1
29
30 li = n + h
31 a = np.zeros(li)
32
33 for i in range(1,li):
34 w = l
35 T = r[l-1]
36
37 while w > 1:
38 w = w-1
39 aa = np.tanh(t[w-1]/u[ii-1])
40 T = (T+r[w-1]*aa)/(1+T*aa/r[w-1])
41
42 a[i-1] = T
43 u[ii-1] = u[ii-1]*e
44
45 i = 1
46 rho_a = 105*a[i-1]-262*a[i+1]+416*a[i+3]-746*a[i+5]+1605*a[i+7]
47 rho_a = rho_a-4390*a[i+9]+13396*a[i+11]-27841*a[i+13]
48 rho_a = rho_a+16448*a[i+15]+8183*a[i+17]+2525*a[i+19]
49 rho_a = (rho_a+336*a[i+21]+225*a[i+23])/10000;
50 rho_semu[ii-1] = rho_a
51 else:
52 print('Params must be odd number (first resistivities, then layer thickness.')
53 rho_semu = 0;
54
55 return rho_semu
56
57
58
59
60
61# set parameters of the subsurface model
62Params = np.array((50,500,10)) # first resistivities, then thicknesses
63VectorABHalf = np.logspace(0.1,3) # forward model uses Schlummberger Array
64# create synthetic observations for a given subsurface model
65data = VESForward_RD(Params,VectorABHalf)
66
67
68# Visualize the results
69fig, (ax1, ax2) = plt.subplots(1, 2)
70NL = int(np.floor(len(Params)/2))
71ax1.plot(Params[0:NL+1],np.cumsum(np.append(0,Params[NL+1::])),'b-x',drawstyle = 'steps',label='subsurface model')
72ax1.invert_yaxis()
73ax1.set_xlabel('Resistivities (Ohm m)')
74ax1.set_ylabel('Depth (m)')
75ax1.legend()
76ax2.semilogx(VectorABHalf,data, 'rx' )
77ax2.set_xlabel('AB/2 (m)')
78ax2.set_ylabel('Apparent Resistivity (Ohm m)')
79ax2.legend()
80plt.show()
81
82