.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "gallery/tdomain/dc_rho-a_dip-dip.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_gallery_tdomain_dc_rho-a_dip-dip.py: DC apparent resistivity ======================= DC apparent resistivity, dipole-dipole configuration. There are various DC sounding layouts, the most common ones being Schlumberger, Wenner, pole-pole, pole-dipole, and **dipole-dipole**, at which we have a look here. Dipole-dipole layout as shown in figure 8.32 in Kearey et al. (2002): .. image:: ../../_static/figures/Fig_from_8-32.jpg The apparent resistivity :math:`\rho_a` of the *plotting point* is then computed with .. math:: \rho_a = \frac{V}{I} \pi na(n+1)(n+2)\ , where :math:`V` is measured Voltage, :math:`I` is source strength, :math:`a` is dipole length, and :math:`n` is the factor of source-receiver separation. **References** **Kearey, P., M. Brooks, and I. Hill, 2002**, An introduction to geophysical exploration, 3rd ed.: Blackwell Scientific Publications, ISBN: 0 632 04929 4. .. GENERATED FROM PYTHON SOURCE LINES 30-35 .. code-block:: Python import empymod import numpy as np import matplotlib.pyplot as plt plt.style.use('ggplot') .. GENERATED FROM PYTHON SOURCE LINES 36-41 Compute :math:`\boldsymbol{\rho_a}` ----------------------------------- First we define a function to compute apparent resistivity for a given model and given source and receivers. .. GENERATED FROM PYTHON SOURCE LINES 41-97 .. code-block:: Python def comp_appres(depth, res, a, n, srcpts=1, recpts=1, verb=1): """Return apparent resistivity for dipole-dipole DC measurement rho_a = V/I pi a n (n+1) (n+2). Returns die apparent resistivity due to: - Electric source, inline (y = 0 m). - Source of 1 A strength. - Source and receiver are located at the air-interface. - Source is centered at x = 0 m. Note: DC response can be obtained by either t->infinity s or f->0 Hz. f = 0 Hz is much faster, as there is no Fourier transform involved and only a single frequency has to be computed. By default, the minimum frequency in empymod is 1e-20 Hz. The difference between the signals for 1e-20 Hz and 0 Hz is very small. For more explanation regarding input parameters see `empymod.model`. Parameters ---------- depth : Absolute depths of layer interfaces, without air-interface. res : Resistivities of the layers, one more than depths (lower HS). a : Dipole length. n : Separation factors. srcpts, recpts : If < 3, bipoles are approximated as dipoles. verb : Verbosity. Returns ------- rho_a : Apparent resistivity. AB2 : Src/rec-midpoints """ # Get offsets between src-midpoint and rec-midpoint, AB AB = (n+1)*a # Collect model, putting source and receiver slightly (1e-3 m) into the # ground. model = { 'src': [-a/2, a/2, 0, 0, 1e-3, 1e-3], 'rec': [AB-a/2, AB+a/2, AB*0, AB*0, 1e-3, 1e-3], 'depth': np.r_[0, np.array(depth, ndmin=1)], 'freqtime': 1e-20, # Smaller f would be set to 1e-20 be empymod. 'verb': verb, # Setting it to 1e-20 avoids warning-message. 'res': np.r_[2e14, np.array(res, ndmin=1)], 'strength': 1, # So it is NOT normalized to 1 m src/rec. 'htarg': {'pts_per_dec': -1}, } return np.real(empymod.bipole(**model))*np.pi*a*n*(n+1)*(n+2), AB/2 .. GENERATED FROM PYTHON SOURCE LINES 98-103 Plot-function ------------- Second we create a plot-function, which includes the call to `comp_appres`, to use for a couple of different models. .. GENERATED FROM PYTHON SOURCE LINES 103-129 .. code-block:: Python def plotit(depth, a, n, res1, res2, res3, title): """Call `comp_appres` and plot result.""" # Compute the three different models rho1, AB2 = comp_appres(depth, res1, a, n) rho2, _ = comp_appres(depth, res2, a, n) rho3, _ = comp_appres(depth, res3, a, n) # Create figure plt.figure() # Plot curves plt.loglog(AB2, rho1, label='Case 1') plt.plot(AB2, rho2, label='Case 2') plt.plot(AB2, rho3, label='Case 3') # Legend, labels plt.legend(loc='best') plt.title(title) plt.xlabel('AB/2 (m)') plt.ylabel(r'Apparent resistivity $\rho_a (\Omega\,$m)') plt.show() .. GENERATED FROM PYTHON SOURCE LINES 130-142 Model 1: 2 layers ~~~~~~~~~~~~~~~~~ +--------+---------------------+---------------------+ |layer | depth (m) | resistivity (Ohm m) | +========+=====================+=====================+ |air | :math:`-\infty` - 0 | 2e14 | +--------+---------------------+---------------------+ |layer 1 | 0 - 50 | 10 | +--------+---------------------+---------------------+ |layer 2 | 50 - :math:`\infty` | 100 / 10 / 1 | +--------+---------------------+---------------------+ .. GENERATED FROM PYTHON SOURCE LINES 142-152 .. code-block:: Python plotit( 50, # Depth 20, # a (src- and rec-lengths) np.arange(3, 500), # n [10, 100], # Case 1 [10, 10], # Case 2 [10, 1], # Case 3 'Model 1: 2 layers') .. image-sg:: /gallery/tdomain/images/sphx_glr_dc_rho-a_dip-dip_001.png :alt: Model 1: 2 layers :srcset: /gallery/tdomain/images/sphx_glr_dc_rho-a_dip-dip_001.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 153-167 Model 2: layer embedded in background ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +--------+----------------------+---------------------+ |layer | depth (m) | resistivity (Ohm m) | +========+======================+=====================+ |air | :math:`-\infty` - 0 | 2e14 | +--------+----------------------+---------------------+ |layer 1 | 0 - 50 | 10 | +--------+----------------------+---------------------+ |layer 2 | 50 - 500 | 100 / 10 / 1 | +--------+----------------------+---------------------+ |layer 3 | 500 - :math:`\infty` | 10 | +--------+----------------------+---------------------+ .. GENERATED FROM PYTHON SOURCE LINES 167-177 .. code-block:: Python plotit( [50, 500], # Depth 20, # a (src- and rec-lengths) np.arange(3, 500), # n [10, 100, 10], # Case 1 [10, 10, 10], # Case 2 [10, 1, 10], # Case 3 'Model 2: layer embedded in background') .. image-sg:: /gallery/tdomain/images/sphx_glr_dc_rho-a_dip-dip_002.png :alt: Model 2: layer embedded in background :srcset: /gallery/tdomain/images/sphx_glr_dc_rho-a_dip-dip_002.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 178-192 Model 3: 3 layers ~~~~~~~~~~~~~~~~~ +--------+----------------------+----------------------+ |layer | depth (m) | resistivity (Ohm m) | +========+======================+======================+ |air | :math:`-\infty` - 0 | 2e14 | +--------+----------------------+----------------------+ |layer 1 | 0 - 50 | 10 | +--------+----------------------+----------------------+ |layer 2 | 50 - 500 | 100 / 10 / 1 | +--------+----------------------+----------------------+ |layer 3 | 500 - :math:`\infty` | 1000 / 10 / 0.1 | +--------+---------------------+-----------------------+ .. GENERATED FROM PYTHON SOURCE LINES 192-202 .. code-block:: Python plotit( [50, 500], # Depth 20, # a (src- and rec-lengths) np.arange(3, 500), # n [10, 100, 1000], # Case 1 [10, 10, 10], # Case 2 [10, 1, 0.1], # Case 3 'Model 3: 3 layers') .. image-sg:: /gallery/tdomain/images/sphx_glr_dc_rho-a_dip-dip_003.png :alt: Model 3: 3 layers :srcset: /gallery/tdomain/images/sphx_glr_dc_rho-a_dip-dip_003.png :class: sphx-glr-single-img .. GENERATED FROM PYTHON SOURCE LINES 203-205 .. code-block:: Python empymod.Report() .. raw:: html
Fri Mar 01 20:16:02 2024 UTC
OS Linux CPU(s) 2 Machine x86_64
Architecture 64bit RAM 7.5 GiB Environment Python
File system ext4
Python 3.11.6 (main, Feb 1 2024, 16:47:41) [GCC 11.4.0]
numpy 1.26.4 scipy 1.12.0 numba 0.59.0
empymod 2.3.0 IPython 8.22.1 matplotlib 3.8.3


.. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 1.877 seconds) **Estimated memory usage:** 10 MB .. _sphx_glr_download_gallery_tdomain_dc_rho-a_dip-dip.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: dc_rho-a_dip-dip.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: dc_rho-a_dip-dip.py ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_