{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os\n", "import numpy as np\n", "import pandas as pd\n", "from SimPEG import Mesh, Maps, DC, Utils\n", "from pymatsolver import PardisoSolver\n", "import matplotlib.pyplot as plt\n", "from pylab import hist\n", "from matplotlib import colors\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Running 2D DC inversion using SimPEG\n", "\n", "## Purpose\n", "\n", "We demonstrate how 2D line of field DC data can be inverted in SimPEG. The field DC data is from Syscal Pro system and exported to csv format. Follwing eight steps will be illustrated to guide how 2D DC inversion can be run within `SimPEG`. \n", "\n", "- Step1: Read in DC data in csv format\n", "- Step2: Generate `DC.IO` object\n", "- Step3: Generate Mapping\n", "- Step4: Form `Problem` object for physics\n", "- Step5: Set uncertainty for the data\n", "- Step6: Set initial model\n", "- Step7: Run inversion\n", "- Step8: Plot results" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Step1: Read in DC data in csv format\n", "\n", "Example file used here is 'dc_data.csv'. We first load this csv file using `pandas` then input survey information to `DC.IO` object. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Read csv file using `pandas`" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Downlaod an example DC data\n", "\n", "# from SimPEG.Utils.io_utils import download\n", "# url = \"https://storage.googleapis.com/simpeg/examples/dc_data.csv\"\n", "# fname = download(url, overwrite=True)\n", "\n", "fname = os.path.sep.join([\"..\", \"data\", \"dc_data.csv\"])" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# file name\n", "# read csv using pandas\n", "df = pd.read_csv(fname)\n", "# header for ABMN locations\n", "header_loc = ['Spa.'+str(i+1) for i in range(4)]\n", "# Apparent resistivity\n", "header_apprho = df.keys()[6]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
\n", " | Unnamed: 0 | \n", "Spa.1 | \n", "Spa.2 | \n", "Spa.3 | \n", "Spa.4 | \n", "Rho | \n", "Dev. | \n", "M | \n", "Sp | \n", "Vp | \n", "... | \n", "Channel | \n", "Overload | \n", "Tx-Bat | \n", "Rx-Bat | \n", "Temp. | \n", "Gapfiller | \n", "Synch | \n", "Cole Tau | \n", "Cole M | \n", "Cole rms | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
count | \n", "0.0 | \n", "1211.000000 | \n", "1211.000000 | \n", "1211.000000 | \n", "1211.000000 | \n", "1211.000000 | \n", "1211.000000 | \n", "1211.000000 | \n", "1211.000000 | \n", "1211.000000 | \n", "... | \n", "1211.000000 | \n", "1211.0 | \n", "1211.000000 | \n", "1211.000000 | \n", "1211.000000 | \n", "1211.0 | \n", "1211.000000 | \n", "1211.0 | \n", "1211.0 | \n", "1211.0 | \n", "
mean | \n", "NaN | \n", "214.219653 | \n", "219.219653 | \n", "255.780347 | \n", "260.780347 | \n", "181.833691 | \n", "42.542543 | \n", "34.878596 | \n", "0.084979 | \n", "-108.493249 | \n", "... | \n", "4.620149 | \n", "0.0 | \n", "11.688489 | \n", "11.828159 | \n", "46.093064 | \n", "0.0 | \n", "0.145334 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "
std | \n", "NaN | \n", "125.705571 | \n", "125.705571 | \n", "125.705571 | \n", "125.705571 | \n", "157.068458 | \n", "104.394421 | \n", "146.461954 | \n", "142.643142 | \n", "242.930941 | \n", "... | \n", "2.836490 | \n", "0.0 | \n", "0.109590 | \n", "0.051543 | \n", "0.667536 | \n", "0.0 | \n", "0.352583 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "
min | \n", "NaN | \n", "0.000000 | \n", "5.000000 | \n", "10.000000 | \n", "15.000000 | \n", "-12.080000 | \n", "0.000000 | \n", "-163.520000 | \n", "-549.960000 | \n", "-2397.696000 | \n", "... | \n", "1.000000 | \n", "0.0 | \n", "11.470000 | \n", "11.620000 | \n", "44.600000 | \n", "0.0 | \n", "0.000000 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "
25% | \n", "NaN | \n", "105.000000 | \n", "110.000000 | \n", "150.000000 | \n", "155.000000 | \n", "71.250000 | \n", "0.520000 | \n", "0.175000 | \n", "-39.945000 | \n", "-75.698000 | \n", "... | \n", "2.000000 | \n", "0.0 | \n", "11.590000 | \n", "11.800000 | \n", "45.600000 | \n", "0.0 | \n", "0.000000 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "
50% | \n", "NaN | \n", "215.000000 | \n", "220.000000 | \n", "255.000000 | \n", "260.000000 | \n", "139.170000 | \n", "4.820000 | \n", "2.030000 | \n", "-0.910000 | \n", "-11.334000 | \n", "... | \n", "4.000000 | \n", "0.0 | \n", "11.710000 | \n", "11.850000 | \n", "46.100000 | \n", "0.0 | \n", "0.000000 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "
75% | \n", "NaN | \n", "320.000000 | \n", "325.000000 | \n", "365.000000 | \n", "370.000000 | \n", "254.965000 | \n", "25.470000 | \n", "7.965000 | \n", "38.005000 | \n", "-2.512500 | \n", "... | \n", "7.000000 | \n", "0.0 | \n", "11.800000 | \n", "11.870000 | \n", "46.500000 | \n", "0.0 | \n", "0.000000 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "
max | \n", "NaN | \n", "460.000000 | \n", "465.000000 | \n", "470.000000 | \n", "475.000000 | \n", "1107.340000 | \n", "816.490000 | \n", "999.990000 | \n", "528.160000 | \n", "0.143000 | \n", "... | \n", "10.000000 | \n", "0.0 | \n", "11.850000 | \n", "11.920000 | \n", "48.000000 | \n", "0.0 | \n", "1.000000 | \n", "0.0 | \n", "0.0 | \n", "0.0 | \n", "
8 rows × 78 columns
\n", "