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