{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Ground Penetrating Radar Depth of Investigation and Resolution\n", "\n", "## Overview\n", "\n", "This notebook contains two apps, which are used to complete **part 2** and **part 3** in team TBL assignment 4:\n", "+ **GPR Zero Offset App**: This app simulates radargram data from two reflectors buried in a homogeneous Earth. The range of parameter values for this app are set such that we may assume we are operating in the wave regime.\n", "+ **Attenuation App**: This app computes the propagation velocity and skin depth for GPR signals as a function of operating frequency." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Importing Packages" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from geoscilabs.gpr.GPR_zero_offset import WidgetWaveRegime\n", "from geoscilabs.gpr.Attenuation import AttenuationWidgetTBL" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## GPR Zero Offset App (Wave Regime)\n", "\n", "This app is used to complete **part 2** of the team TBL. As previously mentionned, the app simulates radargram data from two reflectors buried in a homogeneous Earth. The range of parameter values for this app are set such that we may assume we are operating in the wave regime. In the wave regime, the following formulas can be used to approximate propagation velocity and skin depth:\n", "+ **Propagation Velocity:** $\\;\\;\\; v = \\dfrac{c}{\\sqrt{\\varepsilon_r}}$\n", "+ **Skin Depth:** $\\;\\;\\; \\delta = 0.0053 \\, \\dfrac{\\sqrt{\\varepsilon_r}}{\\sigma}$\n", "\n", "*Note however, that expressions for the horizontal resolution, vertical layer resolution and wavelength found in the GPG are still valid.*\n", "\n", "### Parameters for the App:\n", "\n", "+ $\\sigma$: Conductivity for the Earth in mS/m\n", "+ $\\varepsilon_r$: Relative permittivity for the Earth (unitless)\n", "+ $f_c$: Central operating frequency for the instrument in MHz\n", "+ $x_1, d_1$ and $R_1$: The x-location, depth and radius of reflector 1 in metres\n", "+ $x_2, d_2$ and $R_2$: The x-location, depth and radius of reflector 2 in metres" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "fc = 250*1e6\n", "d = 6\n", "v = 3*1e8 / np.sqrt(4)\n", "np.sqrt(v*d / (2*fc))" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "WidgetWaveRegime();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Attenuation App\n", "\n", "This app is used to complete **part 3** of the team TBL. As mentionned previously, the app computes the propagation velocity and skin depth for GPR signals as a function of operating frequency. Because we are working in the general case, the propagation velocity and skin depth are given by:\n", "\n", "+ **Propagation Velocity:** $\\;\\;\\; v = \\sqrt{\\dfrac{2}{\\mu \\varepsilon}} \\Bigg [ \\Bigg ( 1 + \\bigg ( \\dfrac{\\sigma}{\\omega \\varepsilon} \\bigg )^2 \\Bigg )^{1/2} + 1 \\; \\Bigg ]^{-1/2}$\n", "+ **Skin Depth:** $\\;\\;\\; \\delta = \\sqrt{\\dfrac{2}{\\omega^2 \\mu \\varepsilon}} \\Bigg [ \\Bigg ( 1 + \\bigg ( \\dfrac{\\sigma}{\\omega \\varepsilon} \\bigg )^2 \\Bigg )^{1/2} - 1 \\; \\Bigg ]^{-1/2}$\n", "\n", "where $\\omega = 2\\pi f_c$ and $f_c$ is the operating frequency. Here, we assume that the Earth is non-magnetic (e.g. $\\mu = \\mu_0$). The app provides the values for the propagation velocity and skin depth at frequencies $f_c$ = 25,100 and 1000 MHz.\n", "\n", "### Parameters for the App:\n", "\n", "+ $epsr$: Relative permittivity of the medium (unitless)\n", "+ $sigma$: Log (base 10) conductivity of the medium. *Note that sigma = -1.5 corresponds to a true conductivity of* $\\sigma$ *= 0.0316 S/m*." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "AttenuationWidgetTBL();" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.10" } }, "nbformat": 4, "nbformat_minor": 4 }