{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# MT1D layered earth: Sharp and Smooth features with PGI" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "_This notebook was adapted from_ https://github.com/simpeg/tle-magnetotelluric_inversion" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### This notebook reproduces the MT example from Astic & Oldenburg 2019.\n", "\n", "Magnetotelluric data are acquired over a layered-earth that has sharp and smooth features. The earth model consists of a background unit of $0.01~\\text{S/m}$, a $900~\\text{m}$ thick resistive unit with sharp contrast starting at a depth of $100~\\text{m}$ with a conductivity of $5\\cdot10^{-3}~\\text{S/m}$ (or $200~\\Omega \\text{m}$), and a deeper smooth conductor with a minimum resistivity of $10~\\Omega \\text{m}$, starting at a depth of $2,300~\\text{m}$ and finishing at a depth of $7,560~\\text{m}$. We discretize this model on a $89$ cells. \n", "\n", "The PGI algorithm is provided with the true GMM and the goal is to use it along with the MT data to find a solution that has the desired features." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Initial import\n", "from scipy.constants import mu_0\n", "import scipy.sparse as sp\n", "from SimPEG import (\n", " Mesh, Problem, Survey, Maps, Utils, DataMisfit,\n", " Regularization, Optimization, InvProblem,\n", " Directives, Inversion)\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import matplotlib.patheffects as pe\n", "from matplotlib.ticker import StrMethodFormatter,FormatStrFormatter\n", "from sklearn.mixture import GaussianMixture\n", "from pymatsolver import PardisoSolver as Solver\n", "import sys\n", "import copy\n", "from tleMT.MT1D import MT1DProblem, MT1DSurvey, MT1DSrc, ZxyRx, Survey, AppResPhaRx\n", "\n", "from PGI_MT_example_Utils import weighted_avg_and_var, omega, appres_phase_from_data\n", "\n", "# Better rendering\n", "import seaborn\n", "seaborn.set()\n", "\n", "# set a seed so that the results are reproducible\n", "np.random.seed(1) \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setup" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ ">> Smallest cell size = 7 m\n", ">> Padding distance = 316227 m\n", ">> # of padding cells 17\n", ">> # of core cells cells 72\n" ] } ], "source": [ "# Initialize the Earth-model\n", "layer_tops = np.r_[0., -100., -1000.] # in m\n", "rho_layers = np.r_[100., 200., 100.]\n", "\n", "# Initialize the survey\n", "rxloc = np.r_[0.]\n", "frequency = np.logspace(-3, 3, 25)\n", "\n", "# Create a receiver object\n", "rx = ZxyRx(\n", " rxloc, # location of the receiver\n", " component=\"both\", # measure both the real and imaginary components of the impedance (alternatively \"real\" / \"imag\")\n", " frequency=frequency\n", ")\n", "\n", "# create a plane wave source\n", "src = MT1DSrc([rx])\n", "\n", "# define a survey\n", "survey = MT1DSurvey([src])\n", "\n", "# Define the mesh\n", "max_depth_core = 15000.\n", "mesh = survey.setMesh(\n", " sigma=0.01, # approximate conductivity of the background\n", " max_depth_core=max_depth_core, # extent of the core region of the mesh\n", " ncell_per_skind=20, # number of cells per the smallest skin depth\n", " n_skind=2, # number of skin depths that the mesh should extend to ensure the lowest-frequency fields have decayed\n", " core_meshType=\"log\", # cell spacings in the core region of the mesh (\"linear\" or \"log\")\n", " max_hz_core=1000. # If using a logarithmic core mesh, what is the maximum cell size?\n", " )\n", "\n", "# Create the problem\n", "prob = MT1DProblem(\n", " mesh, # The mesh contains the geometry, grids, etc necessary for constructing the discrete PDE system\n", " sigmaMap=Maps.ExpMap(mesh), # in the inversion, we want to invert for log-conductivity (enforces postivity, electrical conductivity tends to vary logarithmically)\n", " verbose=False, # print information as we are setting up and solving\n", " Solver=Solver # solver to employ for solving Ax = b\n", ")\n", "\n", "# tell the problem and survey about each other so we can construct our matrix system\n", "# and right hand-side\n", "prob.pair(survey)\n", "\n", "# start with nans so we can do a check to make sure all\n", "# layer conductivities have been properly assigned\n", "rho = np.ones(mesh.nC) * np.nan\n", "\n", "# loop over each layer in the model and assign to mesh\n", "for layer_top, rho_layer in zip(layer_tops, rho_layers):\n", " inds = mesh.vectorCCx < layer_top\n", " rho[inds] = rho_layer\n", "\n", "# Add a smooth unit\n", "sigma = 1./rho\n", "mtrue = np.log(sigma)\n", "t = (mesh.vectorCCx+5000.)/5e3\n", "indx = np.abs(t) < 1\n", "maux = copy.deepcopy(mtrue)\n", "maux[indx] = (np.log(1./100.)*(1-(((1-t**2.)**2.)))-np.log(10))[indx]\n", "indx = np.logical_and(indx, maux > np.log(1./rho_layers[2]))\n", "mtrue[indx] = maux[indx]\n", "dtrue = survey.dpred(mtrue) # these are clean data (no noise yet.)\n", "\n", "std = 0.02 # standard deviation of the noise (10%)\n", "\n", "# add noise\n", "uncertTrue = std * np.abs(dtrue)\n", "noise = uncertTrue * np.random.randn(survey.nFreq*2)\n", "survey.dobs = dtrue + noise\n", "survey.std = std\n", "survey.eps = 0.\n", "uncert = std * np.abs(survey.dobs)\n", "\n", "# Compute Apparent resisitivity and phase for visualization\n", "res, phase = appres_phase_from_data(survey)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the true model\n", "fig0 = plt.figure(figsize=(7.5,3))\n", "ax1 = fig0.add_subplot(111)\n", "\n", "fontsize=16\n", "M = prob.mesh\n", "\n", "plt.loglog(-M.vectorCCx, np.exp(mtrue), 'ko-',linewidth=3,label='True Model',ms=7)\n", "plt.legend(fontsize=fontsize,loc=0)\n", "plt.gca().set_ylim([10**(-2.5),10**(-0.5)])\n", "plt.gca().set_xlabel('Depth (m)',fontsize=fontsize)\n", "plt.gca().tick_params(labelsize=fontsize)\n", "plt.gca().set_ylabel('Conductivity (S/m)',fontsize=fontsize)\n", "plt.show()\n", "\n", "#fig0.savefig('MT1D_GroundTruth_HighRes.png', dpi=600, bbox_inches='tight', pad_inches=0.1)\n", "#fig0.savefig(\"MT1D_GroundTruth_LowRes.png\", dpi=72, bbox_inches='tight', pad_inches=0.1)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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l+ksWPAcr776FgcO7GfFimVkZWUSHR3DNdfM4Oabb6+TclBZWcHChe+zZs1X5OXl0adPX+6//6EG46r+N5416yYefji1zr6///1ZVq9eyYcfLqZv3/4123fu3M6SJYvYu3c3VquVnj17M3furUyadInb6/fmm+/UyfGeMGEiknQVfn7+LFu2qkEw+9JLC5DlZbz77kcMHDi4To539XkAli79hKVLP+H119/mhRf+Rk5ONunp3xAUFFznfB9++C7vv/8fXnnlX3Vmsuv79NP/EhwczMSJk+tstzpLpx4+fIj4+IbZuZMnX0pYWBi9evWu2TZmzDh++mkTd955b51jJ04czfTpElddNY133/03+/fvIyQkhGnTZnDnnfdy4sRx3njjFXbv3klwcAiTJ0/hvvseIiAgoM55rrjiar75ZjXff/8tV1xxtdufSWieC07ENEvGbmbJ+GezZDyG0q1yJlAdJXx/oecXhI7OXeMWbWQU/gkJzQ66q+nHTaDXi2n0e28hvV5ME4FyO1S0eSNHnkjlwJ23c+SJVIo2b/T2kFxavXolAJdddoXz/koA0tNll8d/8cXnvPbaywwaNIRrrplBUVEhCxY8x/vv/6fBsZs3b+TPf/4DiYmJXHvtTBwO+Ne/XuUf//hLnePefPNV/v73ZykpKWHatOkYjbOJiophzZqvePDBe6isrKhz/E8/bWLx4o+4+urpjB07nsGDhwLw3ntv86c/PUVubg5Tp05n6tRrOHr0CPPn38/XX3/ZYHxm83qefvpxoqKiuf76G4iJiSE9fTl//vPTNcfMm3cXcXHxAMyde1udNxj1HTlymKysTLr/f3v3HR9VlT5+/JMQEpIQIBTpCrYjCBHpGIogSxExIlhARBBRwYaEVfkpq+KCrCyIirq4KiCgrho0BL8QSqihV2keQDpIkdBLgJDfH/feIdPS507K8369eF1z59w7J09mZ58585xzbqrluMab3r370rz5PY4k8/TpUzz77FN8++1UIiPL0737o9SrV58FC+YyYEAftm7d4naPzz//hEmTviAqqgHduvUgNfUS//3v50ydOsnR5tq1a8TGvszUqZOIjCxPt27GiOiQIS9y9Gjedi9MTPw/XnllIBs3bqB583vo0uVBjh07yrBhQ5k1y3j9ZCd+QUFBtG3bnuPHj/HbbxudHrt69SqLFydRo8aN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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the Data\n", "fig, ax = plt.subplots(1,1,figsize=(10,5))\n", "ax1 = ax.twinx()\n", "ax.loglog(frequency,1./res,'ro-',label='Apparent Conductivity (S\\m)')\n", "ax1.semilogx(frequency,phase,'bv-',label='Phase (°)')\n", "ax.tick_params(labelsize=20)\n", "ax1.tick_params(labelsize=20)\n", "ax.set_xlim([(1e3)+1e2,(1e-3)-1e-4])\n", "ax.set_ylim([10**(-2.5),10**(-0.5)])\n", "ax1.set_yticks([15,30,45,60,75])\n", "ax.set_xlabel(\"Frequency (Hz)\",fontsize=24)\n", "ax.set_ylabel(\"Apparent Conductivity\\n(S/m)\",fontsize=24,color='r')\n", "ax1.set_ylabel(\"Phase (°)\",fontsize=24,color='b')\n", "ax1.tick_params(axis='y', which='both', colors='b',labelsize=20)\n", "ax.tick_params(axis='y', which='both', colors='r',labelsize=20)\n", "ax.legend(fontsize=20,loc=4)\n", "ax1.legend(fontsize=20,loc=2)\n", "##fig.savefig('MT1D_Data_HighRes.png', dpi=600, bbox_inches='tight', pad_inches=0.1)\n", "#fig.savefig(\"MT1D_Data_LowRes.png\", dpi=72, bbox_inches='tight', pad_inches=0.1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Tikhonov inversion" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", " ***Done using same Solver and solverOpts as the problem***\n", "model has any nan: 0\n", "=============================== Projected GNCG ===============================\n", " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", "-----------------------------------------------------------------------------\n", "x0 has any nan: 0\n", " 0 4.00e-01 1.73e+04 0.00e+00 1.73e+04 5.32e+03 0 \n", " 1 2.67e-01 7.47e+02 2.25e+03 1.35e+03 4.63e+02 0 \n", " 2 1.78e-01 8.11e+01 2.67e+03 5.56e+02 2.08e+02 0 \n", " 3 1.19e-01 3.19e+01 2.53e+03 3.32e+02 4.84e+01 0 \n", "------------------------- STOP! -------------------------\n", "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 1.7283e+03\n", "0 : |xc-x_last| = 7.9872e-01 <= tolX*(1+|x0|) = 4.4445e-05\n", "0 : |proj(x-g)-x| = 4.8367e+01 <= tolG = 1.0000e-01\n", "0 : |proj(x-g)-x| = 4.8367e+01 <= 1e3*eps = 1.0000e-02\n", "0 : maxIter = 35 <= iter = 4\n", "------------------------- DONE! -------------------------\n" ] } ], "source": [ "# Simple Inversion\n", "##################\n", "\n", "# Set the initial and reference models\n", "sigma_ref = 1./rho_layers[0] # reference conductivity\n", "sigma_0 = 1./rho_layers[0] # starting conductivity\n", "\n", "# translate the starting and reference model to log-conductivity\n", "mref = np.log(sigma_ref)*np.ones(mesh.nC)\n", "m0 = np.log(sigma_0)*np.ones(mesh.nC)\n", "\n", "# Set weighting parameters\n", "alpha_s = 1e2 # smallness contribution\n", "alpha_z = 20. # smoothness contribution to the regularization\n", "beta = 4e-1 # Initial beta\n", "beta0_ratio = 10. # starting contribution of regularization 10x larger than the data misfit\n", "coolingFactor = 1.5\n", "coolingRate = 1\n", "\n", "# Data misfit\n", "dmisfit = DataMisfit.l2_DataMisfit(survey,std=0.02)\n", "#dmisfit.W = 1./uncert\n", "\n", "# Regularization\n", "reg = Regularization.Simple(\n", " prob.mesh, alpha_s=alpha_s, alpha_x=alpha_z, mref=mref\n", " ) # since we are in 1D, we work with the first dimension\n", "\n", "# Optimization\n", "opt = Optimization.ProjectedGNCG(\n", " maxIter=35, tolX=1e-6, maxIterCG=100, tolCG=1e-3)\n", "opt.remember('xc')\n", "\n", "# Statement of the inverse problem\n", "invProb = InvProblem.BaseInvProblem(dmisfit, reg, opt)\n", "invProb.beta = beta\n", "\n", "# Inversion Directives\n", "beta = Directives.BetaSchedule(\n", " coolingFactor=coolingFactor, coolingRate=coolingRate\n", " )\n", "target = Directives.TargetMisfit()\n", "directives = [beta, target]\n", "\n", "# assemble in an inversion\n", "inv = Inversion.BaseInversion(invProb, directiveList=directives)\n", "prob.counter = opt.counter = Utils.Counter()\n", "opt.remember('xc')\n", "\n", "# run the inversion\n", "l2model = inv.run(m0)\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the Tikhonv inversion result\n", "M = mesh\n", "fontsize=16\n", "fig,ax0 = plt.subplots(1,1,figsize=(7.5,3))\n", "ax0.loglog(-M.vectorCCx, np.exp(mtrue),color='black', linewidth=5.)\n", "ax0.loglog(-M.vectorCCx, np.exp(l2model),color='b', linewidth=3.)\n", "ax0.loglog(-M.vectorCCx, np.exp(m0),\n", " color='black',\n", " linestyle='dashed',\n", " linewidth=2)\n", "\n", "plt.legend(['True Model',\n", " 'mref',\n", " 'Petro',\n", " 'L2 model'],fontsize=fontsize,loc=0)\n", "plt.gca().set_ylim([10**(-2.5),10**(-0.5)])\n", "\n", "\n", "plt.gca().set_xlabel('Depth (m)',fontsize=fontsize)\n", "plt.gca().tick_params(labelsize=fontsize)\n", "plt.gca().set_ylabel('Conductivity (S/m)',fontsize=fontsize)\n", "ax0.legend(('True Model', 'Tikhonov', 'mref'),loc=0,fontsize=fontsize)\n", "ax0.set_xlabel(\"Depth(m)\",fontsize=fontsize)\n", "fig.canvas.draw()\n", "ax0.set_ylabel(\"Conductivity(S/m)\",fontsize=fontsize)\n", "ax0.tick_params(labelsize=fontsize)\n", "#fig.savefig('MT1D_L2_std2percent_HighRes.png', dpi=600, bbox_inches='tight', pad_inches=0.1)\n", "#fig.savefig(\"MT1D_L2_std2percent_LowRes.png\", dpi=72, bbox_inches='tight', pad_inches=0.1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## PGI" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Compute the GMM parameters for each units\n", "bckgdmean = -np.log(100)\n", "bckgrdvar = 0.01\n", "bckgrdprop = np.sum(mesh.vol[np.isclose(bckgdmean,mtrue)])/np.sum(mesh.vol)\n", "\n", "resmean = -np.log(200)\n", "resvar = 0.01\n", "resprop = np.sum(mesh.vol[np.isclose(resmean,mtrue)])/np.sum(mesh.vol)\n", "\n", "\n", "condmean, condvar = weighted_avg_and_var(maux[indx],weights=mesh.vol[indx])\n", "condprop = 1. -( bckgrdprop + resprop)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# Create the Prior GMM\n", "######################\n", "means_init = np.r_[-np.log(100), condmean, -np.log(200)][:,np.newaxis]\n", "clf = Utils.WeightedGaussianMixture(n_components=3,\n", " mesh=mesh,\n", " covariance_type='full',\n", " max_iter=1000,\n", " n_init=1,\n", " reg_covar=4e-3,\n", " means_init=means_init)\n", "clf.fit(mtrue.reshape(-1, 1))\n", "Utils.order_clusters_GM_weight(clf)\n", "\n", "clf.covariances_ = np.array([[[0.01]],\n", " [[condvar]],\n", " [[0.01]],\n", " ])\n", "clf.means_ =means_init\n", "clf.weights_ = np.r_[bckgrdprop,condprop,resprop]\n", "clf.precisions_cholesky_ = Utils.petroutils._compute_precision_cholesky(clf.covariances_, clf.covariance_type)\n", "Utils.petroutils.computePrecision(clf)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the Prior GMM distribution\n", "fig0, (ax, ax3) = plt.subplots(2, 1, sharex=True,figsize=(7.5,3))\n", "fontsize=16\n", "M = prob.mesh\n", "testXplot = np.linspace(-7.,-1.,1000)[:,np.newaxis];\n", "clfinv = clf\n", "log_dens0 = clf.score_samples(testXplot);\n", "log_dens = clfinv.score_samples(testXplot);\n", "ax3.plot(np.log10(np.exp(testXplot)), np.exp(log_dens0),linewidth =3.,color='black',\n", " path_effects=[pe.Stroke(linewidth=4, foreground='w'), pe.Normal()]\n", " )\n", "\n", "ax3.set_xticks([-3,-2,-1])\n", "ax3.tick_params(labelsize=fontsize)\n", "ax3.xaxis.set_major_formatter(FormatStrFormatter('$10^{%.0f}$'))\n", "ax3.set_xlabel('Conductivity(S/m)',fontsize=fontsize)\n", "ax3.hist(np.log10(np.exp((mtrue))),density = True, bins = 20,color='k',ec='k', weights=mesh.vol);\n", "ax3.set_ylim([0.,0.1])\n", "ax3.set_ylabel(\"Probability Density\",fontsize=fontsize)\n", "\n", "ax.hist(np.log10(np.exp((mtrue))),density = True, bins = 20,color='k',ec='k', weights=mesh.vol/np.sum(mesh.vol));\n", "ax.tick_params(labelsize=fontsize)\n", "ax.plot(np.log10(np.exp(testXplot)), np.exp(log_dens0),linewidth =3.,color='black',\n", " path_effects=[pe.Stroke(linewidth=4, foreground='w'), pe.Normal()]\n", " )\n", "\n", "ax.set_ylim([1.,4.])\n", "ax.set_yticks([1,2,3,4])\n", "ax.legend(['Prior Distribution','True Model\\nWeighted Histogram','$m_0$ Hist'],loc=1,fontsize=fontsize)\n", "\n", "d = .015 # how big to make the diagonal lines in axes coordinates\n", "# arguments to pass to plot, just so we don't keep repeating them\n", "kwargs = dict(transform=ax.transAxes, color='k', clip_on=False)\n", "ax.plot((-d, +d), (-d, +d), **kwargs) # top-left diagonal\n", "ax.plot((1 - d, 1 + d), (-d, +d), **kwargs) # top-right diagonal\n", "\n", "kwargs.update(transform=ax3.transAxes) # switch to the bottom axes\n", "ax3.plot((-d, +d), (1 - d, 1 + d), **kwargs) # bottom-left diagonal\n", "ax3.plot((1 - d, 1 + d), (1 - d, 1 + d), **kwargs) # bottom-right diagonal\n", "\n", "plt.show()\n", "\n", "#fig0.savefig('MT1D_GroundTruth_Dist_HighRes.png', dpi=600, bbox_inches='tight', pad_inches=0.1)\n", "#fig0.savefig(\"MT1D_GroundTruth_Dist_LowRes.png\", dpi=72, bbox_inches='tight', pad_inches=0.1)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n", " ***Done using same Solver and solverOpts as the problem***\n", "model has any nan: 0\n", "=============================== Projected GNCG ===============================\n", " # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n", "-----------------------------------------------------------------------------\n", "x0 has any nan: 0\n", " 0 4.00e-01 1.73e+04 0.00e+00 1.73e+04 5.32e+03 0 \n", "DM: [747.23446657] [False] ; CL: 88.24930461654172 False ; DP: True ; All: False\n", "progress [747.23446657] >< [15553.74121558]\n", " 1 4.00e-01 7.47e+02 9.12e+01 7.84e+02 5.43e+02 0 \n", "DM: [166.78757411] [False] ; CL: 75.49171852533105 False ; DP: True ; All: False\n", "progress [166.78757411] >< [672.51101991]\n", " 2 4.00e-01 1.67e+02 8.86e+01 2.02e+02 4.09e+02 0 \n", "DM: [29.99275347] [False] ; CL: 63.657092408377885 False ; DP: True ; All: False\n", "progress [29.99275347] >< [150.1088167]\n", " 3 4.00e-01 3.00e+01 7.98e+01 6.19e+01 5.38e+01 0 \n", "DM: [28.16593146] [False] ; CL: 53.33486652947676 False ; DP: True ; All: False\n", "progress [28.16593146] >< [26.99347813]\n", "update beta for countering plateau\n", " 4 5.00e-02 2.82e+01 7.08e+01 3.17e+01 3.56e+01 0 Skip BFGS \n", "DM: [19.20944178] [ True] ; CL: 55.51028698861877 False ; DP: True ; All: False\n", "progress [19.20944178] >< [25.34933831]\n", "update alpha_s for clustering: 1.3014433360708395\n", " 5 5.00e-02 1.92e+01 9.41e+01 2.39e+01 6.77e+01 0 \n", "DM: [15.84094007] [ True] ; CL: 24.46713713559105 True ; DP: True ; All: True\n", "progress [15.84094007] >< [17.28849761]\n", "update alpha_s for clustering: 2.0539237728440627\n", "------------------------- STOP! -------------------------\n", "1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 1.7283e+03\n", "0 : |xc-x_last| = 1.0085e+00 <= tolX*(1+|x0|) = 4.4445e-05\n", "0 : |proj(x-g)-x| = 6.7692e+01 <= tolG = 1.0000e-01\n", "0 : |proj(x-g)-x| = 6.7692e+01 <= 1e3*eps = 1.0000e-02\n", "0 : maxIter = 15 <= iter = 6\n", "------------------------- DONE! -------------------------\n" ] } ], "source": [ "# Petrophysics Inversion\n", "########################\n", "\n", "# Data misfit\n", "dmisfit = DataMisfit.l2_DataMisfit(survey)\n", "dmisfit.W = 1./uncert\n", "\n", "reg_petro = Regularization.MakeSimplePetroRegularization(GMmref=clf,\n", " GMmodel=clf,\n", " mesh=prob.mesh,\n", " mref=m0,\n", " cell_weights_list = [np.ones(mesh.nC)])\n", "reg_petro.mrefInSmooth = False\n", "\n", "# Weightings\n", "reg_petro.objfcts[0].alpha_s = 1.\n", "reg_petro.objfcts[0].alpha_x = 0\n", "reg_petro.objfcts[0].alpha_y = 0\n", "reg_petro.objfcts[0].alpha_z = 0.\n", "\n", "reg_petro.objfcts[1].alpha_s = 0.\n", "reg_petro.objfcts[1].alpha_x = 20.\n", "\n", "\n", "opt = Optimization.ProjectedGNCG(\n", " maxIter=15, tolX=1e-6, maxIterCG=100, tolCG=1e-3)\n", "opt.remember('xc')\n", "\n", "# Statement of the inverse problem\n", "invProb = InvProblem.BaseInvProblem(dmisfit, reg_petro, opt)\n", "invProb.beta =4e-1\n", "\n", "# Directives\n", "targets = Directives.PetroTargetMisfit(\n", " TriggerSmall=True, TriggerTheta=False, verbose=True)\n", "betaIt = Directives.PetroBetaReWeighting(\n", " verbose=True, rateCooling=8., rateWarming=1.,\n", " tolerance=0.02, UpdateRate=1,\n", " ratio_in_cooling=False,\n", " progress=0.1,\n", ")\n", "petrodir = Directives.GaussianMixtureUpdateModel(\n", " verbose=False,\n", " update_covariances=True,\n", " nu = 1.,\n", " kappa= 1.,\n", " alphadir= 1.)\n", "\n", "\n", "\n", "directives = [\n", " petrodir, \n", " targets,\n", " betaIt, \n", "]\n", "\n", "# assemble in an inversion\n", "inv = Inversion.BaseInversion(invProb, directiveList=directives)\n", "\n", "# run the inversion\n", "mcluster = inv.run(m0)\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'Conductivity (S/m)')" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfMAAADrCAYAAAB9/X8JAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3Xd8VFXawPHftExJIz0hoSOHKqggLTR1wYq9rqJidxUVcVf3dV1xF10rFiyI3VVRsSwqFlSU3gWph04IKRBIm9Rp7x93MsmkTiCTSeR8/eSTmXvv3PvMNcwz595znqPzeDwoiqIoitJ+6UMdgKIoiqIox0clc0VRFEVp51QyVxRFUZR2TiVzRVEURWnnVDJXFEVRlHZOJXNFURRFaedUMlcURVGUdk4lc0VRFEVp51QyVxRFUZR2TiVzRVEURWnnVDJXFEVRlHbOGOoA2hgzMATIBlwhjkVRFEU5MRmAFGANUBHIC1Qy9zcEWBLqIBRFURQFGAUsDWRDlcz9ZQPk55fgdrfv2eTi4iI4csQe6jDaFXXOmk+ds+ZT56z5TrRzptfriIkJB29OCoRK5v5cAG63p90nc+AP8R5amzpnzafOWfOpc9Z8J+g5C/h2r+oApyiKoijtnErmiqIoitLOqWSuKIqiKO2cSuaKoiiK0s6pZK4oiqIo7ZzqzX4MyspKsNsLcLmcoQ6lQYcO6XG73aEOo11prXOm1xswGsOIjOyAyRQW9OMpivLHp5J5M5WVlVBcnE+HDgmYTGHodLpQh1Qvo1GP06mSeXO0xjnzeDy43S4qKsrIzz9EZGQMVmt4UI+pKMofn0rmzWS3F9ChQwJhYeZQh6K0QzqdDoPBiM0WidFooqjoqErmiqIcN3XPvJlcLqe6NKq0CJPJjNPpCHUYiqL8Aahkfgza6qV1pX1Rf0eKorQUlcwVRVEUpZ1TyVxRFEVR2jmVzE9gM2Y8Snr64EZ/3nxzdqvHtWDBV6SnD2bMmKEUFRXVu83jj08nPX0wzz335HEdKzs7i/T0wSxa9GPAr5kx41Guu+6K4zquoihKS1K92U9gN9xwMxdeeKnv+b///U86derE9dff7FuWmJgYitAAcLvdLFu2mHPOOd9vudPpZMmSX0MUlaIoSttzTMlcCBEupSxp6WCU1pWamkZqaprvucVioUOHGPr3HxDCqKr1738yv/76c51kvnbtavR6HQkJofuioSiK0pYElMyFEGcCVwHjgM6AQQhRCRwAFgKfSSl/DlqUbdjhw4eZMuV2li5dTEVFRcjiMJvNpKeP5sUXXyMhIaFF952dncXll09kypT7+eSTD6msrGTGjKeYPftlbDYbTz31vG/bTz75kBdffI6lS9f6li1c+B3vv/82mZkHiI9P4Iorruayy65q8rhjx57B7NmvUFpais1m8y1ftOhHRo8ex5o1q/y2LygoYPbsWaxcuZyiokL69RvAnXdOoXfvvr5ttmzZzKxZM9mxYzupqWncdNNtdY6bmXmAl19+nrVr12Aw6Bk5chR3330/HTp0aNZ5UxRFaS2N3jMXQpwlhPgN+A7oAXwJ3A/cCvwD+AY4DfhWCLFOCDEhyPG2OVOm3M5PPy0MaSIHqKio4KefFjJlyu1BO8Ybb7zGHXfczR133I0QfQJ6zbfffs306Q8zaNCp/Oc/z3HOOefz0ksz+fDD95p8bXr6GDweNytWLPMtq7rEPm7cWX7blpaWcvvtk1m7djW3334X06c/gcfj4S9/uYXdu3cB2peSe++9g7AwM//+95Ocd95EHn98ut9+jh49wp133kxOTjYPPzydadMeYvPmTUyd+hccDjUmXFGUtqnBlrkQ4k0gHZgJzJNS5jWybRxwPfCyEGKplPKGlg60rVq7dk2oQ/ATzHjOPvtczjxzfMDbu91uZs9+mfHjz2Hq1L8BcPrpw9DpdLzzzptcfPHlWK3WBl8fHh7BaacNYfHinznzzD8BsG6d9v5OPXWw37YLFswnKyuTd9+dS7du3QEYOnQ4V199CW+9NZsZM55m3ry5mExhPPnkc1gsFoYPT8fj8TBrVs0rCx9RWVnBzJmv+Friffv25+qrL+HHH7+vc8lfURSlLWisZf4b0FdK+VpjiRxASnlESvkc0AdY35IBtnWDBw8JdQh+ghlP167dm7X9gQMZ5OUdZvjwkTidTt/PsGEjKC0tYdu2LU3uY+zYM1i+fBmVlZVA1SX2sRiN/t9DN2z4jW7duvsSOYDJZGL06LFs2KD9Sf7++0YGDToVi8VSY/9n+u1n/fq19Ot3MhEREb54ExOT6Nq1m++LhKIoSlvTYMtcSjmruTuTUjqAF48ronbmxRdfa3P3zIMlJiamWdsXFhYAMH36w0yf/nCd9Xl5jX5HBGDUqLE8/fQTrF69kmHDRrBkyS888si/62xXXFxMTExsPTHHUVJS4tumZ89efutjY+P8nhcVFbJ162bGjh1WZ1+1t1UURWkrAu7NLoRIA04F6u0FJKVs+iboH1BCQgIfffRZqMMICZ1OV2fK0NLSUt/jiIgIAKZO/Rt9+/ar8/qUlI5NHiM6ugODBp3G4sWLMJvNeDxw2ml1rz5ERUWRkbGvzvKjR48QHR3t3Vc0BQVH/dYXFRX6PQ8Pj2DYsBHcfHPdvgc1O+EpiqK0JQEVjRFCXA/sQusA9049P28HITaljQsPD6/Tuv799w2+x507dyU6OprDhw/Ru3df309hYSFz5ryG3W4P6Dhjx57BsmWLG7zEDnDyyYPYu3cP+/bt9S1zOBwsXryIAQMGAtp99vXr11JcXOzbpmbnuqr97N+/n+7de/ri7datB2+99brfe1MURWlLAq0ANx1YBPQEYur5qXt9U/nDGzZsBLt27eDNN2ezfv1ann32SaTc5ltvNBqZPPlWPvrofWbPfpm1a1fz1Vdf8q9//YOSEjsdO6YGdJwxY8ZRXFzMggVf1enFXuW88y4gKSmFBx64hx9++JZly5YwbdoU8vOPMmnSZACuuOJqjEYj06ZNYdmyJXz55TzmzHnVbz9XXvln7PZipk2bwpIlv7BixVL++td7WbduTcA9+BVFUVpboJfZ44CZUso9wQxGaV/OP/8iMjL28/nnnzB37geMHj2GKVPu51//esS3zaWXXonZbOHjjz9g7tz/EhUVzdixZ3HrrXcGPGtYbGwcAwYMZO/ePfVeYgew2cJ5+eXXefnl53nuuSdxuVz06zeAWbNep1ev3gDExMTy0kuv88ILz/LIIw+SkJDEAw88xEMPTfPtJzk5mVdeeYNXX32Rxx57BJ1OhxC9ef75VzjpJHEcZ0tRFCV4dB6Pp8mNhBD/BbKklH8Nfkgh1RXYe+SIHbe7/vOSk7Of5OQurRrUsTAa9Tid7qY3VHxCcc7ay99TQxISIjl8uLjpDRUfdc6a70Q7Z3q9jri4CIBuwL5AXhNoy/xOYLUQ4hRgHVBaa71HSvmvAPelKIqiKEoLCjSZ3wf0QrtnPrie9R5AJXNFURRFCYFAk/ldwCvANClleRDjURRFCTmPx4OnogJ9jQJDitKWBZrMTWglXdtVIhdCRAPLgIuklLtCHY+iKG2fq7SEjBmP4czPJ/HP1xE9clSoQ1KUJgU6NO0T4NpgBtLShBAj0RJ5r6a2VRRFqVK0fDmO3Fw8lZXkvvs2JVubLjusKKEWaMt8F/B3IcRwYDVQu1uhR0p5T4tGdvxu8/58EOpAFEVpP0pqFgdyu8l+7WU6//0fhCWnhC4oRWlCoMn8DiAfsAFj61nvAdpUMpdSTgIQQo0NVhQlMO7yMkrldv9lpaVkz5lNl388GpqgFCUAASVzKWW3YAdyLIQQVwG1J4TJlVLWLQSuKIrShJItW8DlAsAYG4urqAiP00nF/n04i4owRkWFOEJFqV9j85nnAQuB74HvpZTZrRZVgKSUc4G5oY5DUZQ/hpLfN/oeR40YScnmzVR46/1XZh1UyVxpsxrrAHcm2pzm1wF7hRCbhBDPCCHGCyHMrROeoihK6/C43X7JPPzkQZg7Vs/sV5F1MBRhKUpAGpvPfCOwEXhKCGEDxgETgJeANCHEEuAHtFb7cXX3FEJMBD6QUkbWWn4L8FcgDdgATJVSrjieYyn+7rrrVjZsWO+3zGw2k5bWmYkTL+LSS6+s85pffvmJr776H7t2SYqKioiLi2fo0OFcd91kkpOTfdutX7+WKVNu54033qN3775Bfy9NefPN2cyd+18WLlwS8GvS0wdz5533cM011wUxMqUtWPnl58QVFwFQ7HZx26MPc/upg4n3rq/MygpdcIrShEDvmZcC33h/EEJ0A8ajJfdHhBB2KWXasQQghBgB/BfQ1Vo+CXgNeAxYA9wNfC+EGCil3FtnRw3H3vVY4jqRDBgwkL/85V7f87KyUr799mtmznwawJfQPR4PTzzxGN999w3jx5/D1KkPEh0dTUbGfj7++AN+/fVnXnvtbdLSOoXkfSjKsZo//wtWPv8MN3gn5Vmcmcl3G9ZRsH4tzwwbCWiX2RWlrQq0N7sfbzKdDcwWQhiA4c3dh/dS/T1oZWBLgLAa63RoSfx1KeV077KFgEQrLTvlWOIOlLfAfb0OHdJjNAY6PD+0AolTp9MRFRXJoEED/ZYPHToUKbfx+eefcuWVVwMwb94nLFjwFX//+yNMnHiRb9vBgwczYcIErr/+Gl599UWefPJZAAwGve93Wzhner32fbGxWOpbZzDogha/Xq8nISGy6Q3bsPYe/8aNG5ky5Q6ePqW6UvXK3BwA9npb6gCO7Czi4yMCnu2vMe39nIWCOmeNazSZe5PqBCBTSrnZu6wL8CjQB9gEzJBSLj2GY58DPAQ8gDbF6v011vUEugDzqxZIKR1CiG+As4/hWM3S2Kxpbre7XcxGFugMYB6PB4+Herft0eMkli5djNPpxuPx8N57bzNgwEDOPXdine3NZhuTJ9/Gli2bfOtcrurfDcVy2WUXcNFFl3LwYCY//7wQo9HIJZdcwZVX/pnnnnuSJUt+ISoqmptuuo1zz73A97oNG9YzZ86r7Ny5A7PZzLhxZ3L77Xdjs9l823z44ft89tnHFBYWMGbMOOLiEgD/97pw4Xe8//7bZGYeICEhkcsvv4rLLrvKL0aXyxO0/+dut7tdzwbV3mezOnr0CBMnXkhlWRm9O8T4lm84mgdAblkZpU4HNqMJZ3ExObsPYoyOPq5jtvdzFgon2jmrMWtawBrrzR6B1pN9GPB/wGYhRAe0qmrxwAJgCLBGCDFYSrm/mfGuAbpJKQuEEI/WWldVta12CdY9QA8hhEFK6Wrm8YLm6PffcmT+//BUhK7arc5sIW7ihcROOKfF9pmZmUFHbwegnTslhw7lctVVDRcCHD/+HMaPb/7x33vvbcaOPYPHH3+GRYt+4u235/Djj98zcuRo/vWvJ/nkk4946qkZnHrqEJKTk1mxYhl/+9t9jB17JtdeewO5udm8/vqr7NmzmxdffA29Xs+HH77P7NmzmDRpMv36DWDBgq/45JMPMZlMvuN+++3XzJjxKJdccjl33XUf27Zt5qWXZlJZWck110xq/glT2p2//nUqGRn76RcTg9lgACCzxE5+RYVvm33FxfSNiQW8PdqPM5krSjA01jJ/EC2pXoDW0Q1gKpACTJZSvuu9xP4D8E9gcnMOLKVs7AZU1fiP2l/FitF64IcDRbQR+T98H9JEDuCpKCf/h++PKZl7PB6cTqfveV5eHl9+OY8dOyRTpkwFIDtbG5lY+3642+3G7fZvtRqNzbt7k5CQwEMPPYJOp6N//wHMn/85CQmJ3HWXdh+/U6fOXHnlRezYsZ3k5GTmzHmVPn368dhjT/j2kZKSyv33383y5UsZMSKdDz98lwsuuIibbroNgKFDh3PDDdeQlZXpi3v27Je99/7/BsCIESPweOCdd97k4osvx2q1Nut9KO2LlNuZP/8LAAbExvmWbz56xG+7vTWSeXlmJrY+oe/MqSi1NXYj8FLgcSnlAill1Sf9ZWiV4N4H8LaOZ6Ndim9JVTelal/rrlrepq5zx4yfgM4c2tmVdGYLMeOP7X/DihXLGDt2mO/nssvO59NPP+LKK6/hkkuuAMDt1i6E1L5d+Oyz//F77dixw9i+fWuzjt+nTz/ffUiz2YLNZqN37z6+9VFRWkvIbi+mtLSUnTsl48ad6bePoUOHExkZxYYN68nI2E9BQQHDho3wrdfpdIwZM873/MCBDPLyDjN8+EicTqfvZ9iwEZSWlrBtm6rH/Uf36qsv+R73j6lO5ufeeicff/yF7/m+GvfNMzf+1jrBKUozNdaE6oo2zhwAIUQS0Bv4XEpZM5lmgW/0Rksp9P6OBHJrLI9AS+QlLXy84xI74ZwWvbzd2k4+eZCvBQ46bDYrHTum+bWwk711qXNycvxee911k7ngAq0z3Pbt23jmmSdorpr3uauYG/hyZLcX4/F4iK3RkqoSExNDSUkJxd4P3+joDn7ra76msLAAgOnTH2b69Ifr7CsvLy/wN6C0Ozk52cyb97Hvec2Weadhw+mZmsb48Wfzww/f+XWCK9qzu1XjVJRANZbMy9BqsVcZ6/29sNZ2aUBBC8YEsNP7uzv+9827A1JKWX/vNOWYRERENDkOXIg+xMXFs2TJL1x88WW+5cnJyb6x5aWlpUGNEyAiIhKdTsfRWpdCQevMFB0dTbT3nmZ+fr7f+qKiQt/jiAitc8nUqX+jb1+t+q/BoPd12ktJ6YjyxzVnzmtUVlYC0NFmI847b7nOYiXM+//+vPMm1knmttJS3G43en3oR2coSk2N/UWuBi6s8fzPgAv4qtZ2NwDrWjYsdgIHAN/4JyGECTgP+KmFj6UEQK/XM2nSjaxevZJvvplf7zb79gU8/P+Y2Ww2TjqpF4sW+f8ZrFq1ArvdzoABA+nUqQvx8Qn8+uvPftusXLnc97hz565ER0dz+PAhevfuS+/efenTpy+FhYXMmfMadrs96O9FCQ27vZh3333L97xmq9zasyc6b6L+05/ORq/Xk1tWRonDAUCE0Yhct7Z1A1aUADTWMn8arUhLGlrSnwC8JaXMAhBCDEEb7/0ntE5yLUZK6RFC/AeYJYTIR+tBfxfa5fyZLXksJXCXXnol+/fv44knHmPFiqWMG3cWcXHxZGdnsXDh96xevYIBAwaSnBzcVu3kybfx0EP388gjD3HuuReQm5vD66+/TP/+JzNs2Ah0Oh0333wbTz45g9jYOIYMGcrPPy9k+/ZtvrHvRqORyZNv5aWXtD+n004bQm5uNq+++hJpaZ3p2DE1qO9BCZ2vv57vd5XGL5n36Ol7HB8fz+mnD2PlyuXsKy6mX6zWCW7Nd9/QZ8jprRewogSgsXKuP3nLrE4DEoFn0YaoVfkK7Z72/VLKBS0dmJTyFSGEFa2wzH1o5VwnSCn3tPSxlMBNnfo3Ro0aw5dffsasWc+Tn3+U6Oho+vU7mSeeeIb09DEtUlSjMenpo3niiWd46605PPTQ/URFRXHWWRO47ba/YPAOLzr//IvweOC//32Hzz77hMGDT2fSpBv54IN3ffu59NIrMZstfPzxB8yd+1+io6MZO/Ysbr31zqC/ByV0vvhint/z/n4t85P81p1zzvmsXLmc/fbqZL73t5a+EKkox0/n8Rzb7WchxFBgh5Qyv8mN24+uwN7Gisbk5OwnOblLqwZ1LAItGqNUC8U5ay9/Tw1pb8U88vLyGDDgJFzeaU7jzBb+N+FcbaVeT88XX0Fvqe58uXfvHoYOHcSNvXpzk7dfyfs7JXd8NO+Yr960t3PWFpxo56xG0ZhuwL6AXtPQCiFEj8ZeKKVcVV8iF0L0rG97RVGUUPvqqy99iRxgTI2OjtZewi+RA3Tr1p0+ffqSXVbduTPFZmP58mMpeqkowdNYB7gFQogXhBAB3QAVQvQQQryCVhlOURSlzfnyy8/8ntdM5pGnDa69ubbNmDPIqTFSI8UazqZNvwcnQEU5Ro11gDsF+A/aXOYrgc+B9Wi9zEuBaLRhacPRZlAbDrwFnBbMgBVFUY5FVtZBvxENHcLCGBSv1etHpyPilPo/uk4+eSBfvPum73myzcbmzSqZK21LYx3gSoEpQoiZwL1ok6Ik4l+VTYdWNOZLtBKvqnOaoiht0v/+9wU1+wilJ3fE4O3oaOnRE2OHDvW+bsCAgRwuK8PpdmPU64mzWNixdiUej0d1lFTajCaLaHunO70HuEcI0Retk1g0cAQ4IKXcFtQIFUVRWsC3337t99zvEvupDV9Q7NnzJMxWK7llpaSGa8WGLJUOMjMP0KlT5+AEqyjN1KwZMaSUW4HmFd5WFEUJsfz8o6xevdL3PMJoYnBCYvXzRpK5wWCgb99+ZJdWJ/MUm41Nm35XyVxpM1RNQkVR/vAWLfrJb3a/K3r0xOSt9Gbu0hVT1b3zBvTvP9C/E5wtnE2bNgYnWEU5BiqZK4ryh/fDD9/5HneNiOS6k4TvefTosU2+fsCAk8kurZ7fSXWCU9oalcwVRflDczqd/PyzNj+UDnhg4Cm+VrmlR0+iR41uch8DBpzsN9a8o83G77+rlrnSdqhkrijKH9ratWsoKNAmdpzUqzcD47wzNuv1JE26wTexSmP69OlHbnm573myNZzs7Cw1Va7SZgSUzIUQq4UQdwkhGr+xpLQ76emD+fDD90MdxnHJzs4iPX0wixb9GOpQfD788H3OP/8szjornR9//D7U4ZzQFi78Dj1wT/+TuaXGVL+xZ5+LOTUtoH1YLBZsySm+5yk2bXZodd9caSsCbZlvAKYDmUKIr4QQlwshzEGMS1HaLbvdzquvvsjgwUN59tmXGDx4aKhDOqEtXPgdfz/lNC7vXl1puig6mtgLJjZrP2m9+1DpLQXbwWzGajCqSnBKmxFQMpdS3gokA1cC5cC7QK4Q4g0hxJggxqco7Y7dXozH42H06HEMHHgKHRooRqIEX1bWQXqUlnJ2p+rJbBZlZZJ67/3oTWHN2teAkweSW+O+ebLNxtatm1ssVkU5HgGPM5dSOtAqvX0phIgEzgduB34WQmQC7wCvSykPBiNQpXXk5x9l1qznWb58KU6ng1NPHcw990zzmyFq1aoVvP/+20i5HZfLSefOXbnxxpsZM+YMAN58czbLly9l4MBBLFjwFd26deeRR/7N5ZdP5D//eY7PP/+UjRvXExkZxcUXX8b119/k23dZWRmvvfYSP//8IyUlJfTt248pU6bSq1dv3zZbtmxm1qyZ7NixndTUNG666bYm31d6+mAefPAfrFixlFWrVhAeHsENN9xMevponnpqBuvXryUxMYkpU+5n+PCRANx116106tSF3NxsNm/exMSJF3PXXfc2eo4WLPiKxx+fDsAjjzzIK6+kMG/eVy3y/0ZpvlXffcM9/Qf6nn+TsZ+vnQ5uO4bx4b179yVzwTd0iogEtE5w+/fvbbFYFeV4NKtoDIAQogtwFXAZWh327cB3wKXANCHETVLKuS0aZTuQmBjV4LpnnnmBSZNuBOC9995m2rR7Gtz20KEi3+OzzhrN779vqHe76667gWeffRGAjRt/Y+DAU44lbD8VFeXcffftVFRUcN99D2A2W/jvf9/mrrtu5Z13PiIqKoqtWzfzwAP3cOGFl3LjjbdQWlrCBx+8x/TpD/PZZ98QExMDwK5dOwgLC+Pf/36KyspK3zGeeGI6l1xyBX/+8yR+/nkhc+a8Sq9evRk+fCQej4cHH5zK7t07ufXWvxAXF89nn33C3XffxltvfUBqahrZ2Vnce+8d9O07gH//+0kyMvb7kmdTXnrpOS666DIuueQKPv/8E2bOfIp58+YyYcK5XHzx5bz99us89tg/+OKLBVi8s2ctWDCfCy64iKuuupbIyMgmz9Hw4enMmPE0//d/D3DbbX9h6NDhx/3/RWncunVrWLVqpd+yCRPOpnvX7sQuX87e4iJ+P3KE/IpyPt6zi2Ej0nnllZcAMJvN3HTTrb7Xvf/+OxQX1z/VZkpKR7K9Y82zS0soclSye9tWXnnlJfR6HePHn0P37o1ONqkoQRNQMvd2fLsCuAYYBuQDc4G/SClX19juf8AL3nVKO/Ptt99w4MB+3nvvY7p06QrA4MFDuPTSC/jss4+58cZb2Lt3D6NHj+P++//me11SUjKTJ1/L1q2bGTlyFAAul4t77rmf3t4OR9nZWQCMG/cnX0v6lFNO45dffmLlymUMHz6S1atXsm7dGmbOfJkhQ7T7zEOHDue6667g3Xff5O9//yfz5s3FZArjySefw2KxMHx4Oh6Ph1mznm/y/fXvP5A77rgbgISEBH79dRH9+g1g0qTJAFitZu6++w4OHNjPSd5xyDZbOPfe+wBGo/ZP5csvP2vyHPXqpb02La2T3xUFJTiuueYy8vP9Z2Pu1Kkz8YcOkQIsPHyI17dXF65ctmwJy5YtASAmJsYvmT///DMcOJBR73Huvvs+CivKADhgt7Pp6FEAHn30/wBYuPB7PvtMXYVRQiPQlnkW4Eab3vQy4GvvZffa1gPdWyi2dqVmi7oxkybd6GulN+XHHxcHtF1LtMoBfvttLWlpnUhNTcPpdAJgNlsYOHAQ69at4cYbb+G88yZy3nkTKSsrY//+vWRkZLB+/RoAHI5Kv/116dKtzjH69evve6zX64mPT6CsTPuAXL9+LRaLhVNOOc13fIDTTx/G0qXaufj9940MGnSqr+UMMHbsmQEl8759+/kex8TEAfi+bABER2v3tmu2zNLS0nyJPNBzpLQeh8NBfn4+er2eW2+907e8e/ceZH3xGQagT0ws/WNi2Zx/FIPBwOTJt2AwaP9PbTar3/7+/OdJvmFstQ0fPoL5i38BtPvl6UkpLM3NZvz4s/nhh+84fPhQUN6jogQi0GR+H/CRlPJIYxtJKaej9XpX2qHCwkL279/H2LHD6qxLS9PuMZaVlfH004/z008/ANC5cxdfK7bmjFRWqxWr1VpnPzWTMIBOp/e9rqiokPLy8nqPX5VQi4uL6dmzl9+62Ni4gN6f1WprMp7aYmJi/Z4Hco6U1lPqrcoWHh7BY4897lvustvZuU+7nz0kIZGnNq4HID19NDNmPNXg/qZO/Wujx1vw5usAdI7gYM2KAAAgAElEQVSI5EbRh6W52Zxxxln88MN3lNYo96oorS3QZH4J8CPaTGl+hBAnA+9JKQe1ZGBK64uIiKBnz148+ODDddaZvD1/Z858itWrV/LMMy8wcOCphIWFsXfvHn744dvjPn54eAQxMbE8/XTDrezo6GgKCo76LSsqKjzuYwcqkHOktB6dTscVV1yNyWTyW27/bZ1vqM7W/KO+e91VnTSPVWRqGhRof29VY81zcnJJSkomIUGV4VBCp8FkLoSYWGP9WGCidwrU2s4CVK+PP4CTTx7EmjWrSE7u6BtO5fF4eOyxf9C9ew969OjJli2bGDp0OEOGVLdMV61a7t32+I//8ccfYLXafPejAV588Vk8Hu2S+KmnDubzzz+huLiYyEitV/GKFcuO78DNjLGpc6S0nqioaGbNml1neeHKFb7HPx3M9D0eM2bccR0vqVsPKtauwWwwEBUWRrjRyJEjeWzatOO49qsox6uxlvkZwBTvYw/wn0a2bWyd0k6cd95EPv30Y+67706uvfZGoqKimD//C3799WfGj38O0BLqsmWL+fbbr0lKSmbdujV89JFWQa6ioryx3Tdp5MhR9O7dl2nT7mHy5FtISkrml19+4vPPP2XatIcAuOKKq5k//3OmTZvCpEmTOXw4l7femnN8b7wZAjlHSmg5i4oo2yHReZ8vytJGy8bHJ/j12TgWXbt1J2fxr3TxfpFMttnYt08NT1NCr7Fk/ldgJtrcBHvQLrX/VmsbF1Aopax/LIfSroSHR/Dyy6/z8ssv8MwzT+BwVNKtWw+eeOJZhg9PB+Cuu+6joqKCF154FoCuXbsxY8ZTvPjic2ze/DvnnHP+MR/fYDDw3HOzePXVF3nllRcpKSmhU6dO/P3v/+Tccy8AtHvYL730Oi+88CyPPPIgCQlJPPDAQzz00LTjPwEBCOQcKa3Hbi/mwIEDxMTEkOwtt2pftxad9zLRxiN5HCrXOliOHj0WfQB12BvTtWs31pWVVidza7gaa660CTpPANdGvWPLsxrowf5H0hXYe+SIHbe7/vOSk7Of5OQu9a5rS4xGPU6nu+kNFZ9QnLP28vfUkISESA4fDt13+V9++ZkrrriIUaPG8tln8wHInPkMpVu0ymzP/b6Bz/ftAeD551/mmmuuO67jlZSU8PKF53BRV23QzvObNvL5/r10796D3Nxc1qzZ2GSHzFCfs/boRDtner2OuLgIgG7AvkBe09g98xeBZ6SUGcD93mUNbe6RUjZcCUVRFCUIqnqQVw0x83g8lO3Z7Vu/8lCO7/GoUcdfeTo8PJziGq37ZJsNt9tNYWEhxcVFvmGWitLaGrvMfgHwJpABTES7b94QD6CSuaIorapqaJrN27PccegQHm9CLaioIMub7Lt06UqnYyjhWh9PVHW1x6oe7QaDAUAlcyVkGkzmUspuNR53bZVoFEVRmqEqedps4QCU1+iMJguri7+0RKu8iiUxCSq1O47JVu24Op3W3a7qy4WitLZA5zP/RQhxqxAiJtgBKYqiBKoqeVYVKKqokcy3F1SXeE1PH91ix4yq0cKvapm73W5vPKplroRGoF0784DngBwhxNdCiGuEEOFBjKtNC6TToKI0Rf0dHb/qe+bax1Hxzurx3ttqJPORI1sumaf06EmFd17zqrHmTqfDG49qmSuhEeh85pcBicD1QAUwB20+87lCiAuFEKZGd/AHYjAY69QgV5Rj4XBUYDSeMP90gqL6MrsNj9tNZY1JUrZ5J18RojdJSUktdsyu3bqTU+o/r3lFRaVfPIrS2pozn3kp2mxoc72t8gvQJl35FCgGAiuQ3c5FRHSgoOAwHTokYDKF+e6VKUogPB4PbreL8vIySkoKiYxUd66Ox/XXT+aMM86iY8dUKrOz0XtbzHnlZRzxFjFqyUvsAF27due7WmPND+Qf4eGHH0UINUueEhrHMp+5Ca2863ggHW02tSUtG1bbZfV2eCkszMPlcjaxdejo9XrffTwlMK11zvR6AyZTGDExiaqe+3FKTU0jNTUNgMJl1R9D2/Jr3i9vuc5vAPHx8RyurPA9T7HZqMzNZtKkG+nQQX05U0Ij0PnMTcAE4HK0YWqRwGLgYWCelLL+OQP/oKzWcF9Sb6tOtCILLUGds/bt6NYtvsdVnd90Oh0jRoxs0ePodDpKakyLm+ztBJedna2SuRIygbbM84AItPnKHwPmSimzgxaVoihKAN56aw579uzi2mtvoHz7Nqomud3unZO8X78BdaaxbQlOW/WX+Y7ex198MQ+3+5Ljrv+uKMci0GT+HPChlHJnMINRFEVpjgULvmbx4kWcMfYMkgurp8LdXqi1zFv6fnkVfUwMuLRbMlUt8+effwZAJXMlJBor5xoLFEgp3cBLNZbVS0p5tKF1iqIowVBWpvUqN5VX+D7MsktLKKzUepenp48KynEtScmQlQVUjzWvGY+itLbGWuaHgeHAarTL7E0NijW0VFCKoiiBqBpnXuqd5hQgw24HtA6Nw4aNCMpxY9PSKM/IwGI0EmkKw6zXU+F2++JRlNbWWDKfDFTNWHBjK8SiKIrSLFVFWvJ27aCq/nSGXevEOHDgIKKiooNy3OSUVLJLS+nmrdMeY7aQU1aqkrkSMo3VZn+3xtO9wHoppb32dkKIDsCfghCboihKo6qKtFTkZEOYBYAD3pZ5S1Z9qy0lJYVNpSW+ZB5rNpNTVqqKxighE2g510VAnwbWDQbea5lwFEVRAucr51pS3SKuapkH6345QEpKR7JqlG5N8NaGV+VclVBprAPcPKCX96kO+FAIUd/XzjQCnDxdURSlJfXs2ZMjR46QZrH4lh0osWM0Gjn99OFBO25iYhLZNUu6WrVOcCUlKpkrodFYy3wmsM77AyBrPK/6WQ28hVZIRlEUpVV9990i7rvjbhK9ybTc6eRQWRmDBp1KRERE0I5rMpkoDauuq39qfAIAM2fOCtoxFaUxjd0zXwYsAxBCADwmpdzb0PaKoiihsHPVcgZ7H2eW2PEAo0e3bAnX+ri9tdkBOnu/OBw9qkboKqER6KxpNwKnCyFeqlomhBguhFgqhDg/aNEpiqI0QJu0xs1hKX3LDpRond9auh57fQxxCb7HybZw9EB29sGGX6AoQRRQMhdC3Ax8BHSosTgPOAh8KYS4NAixKYqiNGjv3t2kpMTw4+7qwpQZdjtms5nBg08P+vHjU1LI987M5nC7MOj1PP30f4J+XEWpT6C92e8H/iWlvK5qgZRyp5TySuBx4JFgBKcoitKQkpJSPB4PJn31x9gBu50hQ4ZiqdEhLlhSUjqS5e1Fr0eHw+1m797dTbxKUYIj0GTeBfi1gXW/Aie1TDiKoiiBqRqWFmGq7oiWYS8OWj322lJSOpLtHYoWZtAKYLpcLjX1sBISgSbzPcDZDaw7EzjQMuEoiqIEpmpMd3SNOeEPlNhb5X45+I811+t0GHU6b1yqCpzS+gKdNe1F4FVvtbevgUNAAnA+WtnXu4MTnqIoSv22b98KgM3bMs+vKMdlCuOUU05tleOnpHTkYI0iMWEGA06nk7KysqAOi1OU+gSUzKWUrwshIoCHgJvRJl3RAUeBv0kpXwteiIqiKHVt2PAbAGbvJe4DdjvDh4/AVOOyezClpKT4FY6xGAyUOp3Y7cUkJCQ08kpFaXmBXmZHSvkckAj0A0YBA4Ak73JFUZRWtXXrFgCs3mSeYbcHtR57bRERkRTWeG4zal8icnKyWy0GRakS6GV2AKSUHmBbkGJRFEUJSEVFBfv372VMSkf+lNoJgIOlJdwwZmyrxmGKjcXpdmPU60lPTuGTPbuwe2vDK0prCiiZCyHcNDGfuZRSzWeuKEqrWLduDeXl5ZyVmsZpCYkA2PU6+vUb0KpxJCZ3JLeslNTwCO7qN4BVh3JwuVRvdqX1Bdoyn0rdZB4BjAZOBe5pyaAURVEas3jxIgCSvDXZAVJEH/T6gO8ctojU1FSy9u0lNVzr8NbRFs7Bg2pwj9L6Au0A93wDq2YIIWYBE4APWywqRVGURixerJW92HjkCBEmE50jIul9+rBWjyMtrRPZW7ZAAuRXVGAzGNm5c2fTL1SUFtase+YNmAf8rwX2oyiK0qSiokJ++20dOuDlrZuwGg2khkcw9Mw/tXosnTp1Zk2Z1qN91pZNLMzK5JTf1jXxKkVpeS1xTWoMUNEC+1EURWnS8uXLcLlcWLy92K0GIwUOB9169Gz1WFJT08jxjjWviufIkcOtHoeiBNoBbn49i/VAR2Ag0NBleEVRlBZVdb88TG+gzOXCYjTgsAa/Fnt90tI6+caaVyVzNQ2qEgqBXmaPom4HOA+QAcwG3mjJoBRFURqyePEvABi9nd0sBiPWpOSQxNKxYyo5ZWVaHEYtmdvtdioqKjCbzSGJSTkxBdoBbmyQ41AURWnSwYOZ7NihzV+u99ZCtxgMJJ3UKyTxmM1mjNHRVLpcWAzax6lRp+PgwUy6d+8RkpiUE1ODyVwIEducHUkp1bUlRVGCatGin3yPdd7fVqORqNS00AQEpKZ1Ires1HeZ3WY0kpl5QCVzpVU11jLPo4lCMbWoojGKogTVL7/8XGeZxWDAGBsXgmg0aWmdyM7N9SVzi8HIwYOZIYtHOTE1lswnU53M44AngO+Az4Ac77LzgIuAaUGMUVEUBZfL5ev8BvDc8JGkhkdg0OkwxYU2mefs3cuI5GReHDGKr/fv48CBjJDFo5yYGkzmUsp3qh4LIb4GZkspp9Ta7CMhxJPA1UCbmDlNCDEVuAnti8ha4DYppRo6pyjt3IYN6ykoKPA9T7LaMHk7wYW6Zb61rJR4i5V4ixVZkK9a5kqrC3Sc+RnAVw2s+wkY0jLhHB8hxFDgRuB0tFndDEDtLyCKorRDNe+XR5nCsBq1tojObEFvszX0sqBLS+vkG2sOkGwLJzNTlXRVWlegQ9MygPOBhfWsuwpoK/UL84G7pJQlAEKI34HOoQ1JUZSWUDOZJ1osXP/LT4QbjbxxxdXodLpGXhlcVWPNc8tK+XTPbhxuFwc8zelupCjHL9Bk/jjwjhCiB9p98zy0uc0vBtKBS4ITXvNIKXcAOwCEECloE8DcEMqYFEU5fnl5eaxfv9b3PN5qZeWhXMKNxpBeYgfo1ElL5kWVlczdvZOuEZFkVVbgdrtbfeIX5cQV6Djz94QQZcCDwAtoo0I8wErgHCnlj8ELsS4hxFXArFqLc6WU/bzruwDfAq+2dmyKojTM7XDgLivDXVGOMSoafYCFVWbOfAqXy+V7Hut9ncVgwBTiZB4VFY0jLAy9d7Ccw+3G4HJz+PAhkkJUzEY58QQ80YqU8lPgUyGEFegA5Espy4MWWeOxzAXm1rdOCDEI7f7+U1LKl1o1MEVR6nAVF1O0aiVFy5dSkbG/eoXBgKVLV6yiN1HDR2Lu2LHe1+/Zs5u33/YvMtkhrCqZGzHGNqskRlCkpnXC7qwEoNzlItlm48CBDJXMlVYTcDIXQujR6rCH4+04J4TwrZdSLm7p4JpLCJGAdhvgLinlvFDFkZuby7x5H7Nnz+5QhYDVaqKszBGy47cHXbp04eqrryMhISHUobRbLpeLuXM/YP36tbhcbr91Jo+HUyoqGFBRUf8HjctF+Z7dlO/ZTf6333DQYGBrWBj7TCbcNe6Bv//+23VeGmOxAmAxGkM6LK1KWloa+flaT/sKl4sUm42rr76MiRMvrrOt+rfZfO3hnFksZkaMGMW5554fkj4cgU60Mhz4BG1ilfqi9HAMRWOEEBOBD6SUkbWW3wL8FUgDNgBTpZQrAtjlfWh15B8WQjzsXfaNlPL/mhvbsSosLODyi87hutg4Lo2JxeX24PJ4cHncON3e3x4PLrcHp8eNy+PB6XZ7t6l+7PS4G9zG5a7aR+1t/Y/jt78ax65wuSh3OSlzuqhwuShzOSl3OnE3/fb+cN57721+/XUl4eHhoQ6lXbr55pt555136iw/O60zt/ftT7zFfwIUl8eD3VFJuctFktW/B3qqy0VqWRmHjx5l/v69LDx4gMySEmoLNxrpHh8PhL5gTJW0tE7kZ+cAUOZykmy1sTw3p94vIsof15w5r/HQQ//gvvseaPVjB9oyfwEoAO4EMuH4P/eFECOA/1Lry4EQYhLamPXHgDXA3cD3QoiBUsq9je1TSvl34O/HG9vx+PXXRXQsK2NMSmoowzgmFa6ayd1FuTfpl9dI/r7nThclTgfFDgd2RyV2h/ex04Hdof242kGP3oyM/cyf/wVXX31tqENpd44cOcJ7773nt6xbZBT3nzyIQXHxfstlQT7z9+/jp4OZ2J1aCyvKFMaguHjGp3UiPTnFN3FKgtXKTb37clPvvuwoLGB93mG25h/lUFkZYQYDDww6jWx7MaC1zMOSQ38pOy2tM3uXLMag0+HyeBiX0pHvMzMocTpDHZqfML2eeIuVBIuFBKuVBIuVSFMYYQY9Zr2BMIOeMO9vAIfLTYXbjcPtotKl/Xa4PWj/VfN4tOdmg4EoUxhRYSbv7zCiTGFEhoVh0uspdlRSXOmgyFFJUWUlxQ4HxY5KCisr2ZJ/lPV5h9vF50Zj3nzzde69d1qrt84DTeYDgEuklN8e7wGFEGa0Xub/AkqAsBrrdGhJ/HUp5XTvsoWARGt1t8qY8bi4iGN+bceOCWw4kkdmiZ1yp4ue0dEA5JWXsebQoQZfN6ZjR2xGEwDr8w6T651WsU5sFgunJyYBUOly8VMjxSkGxceTYtNanLuLCtlRo+BGTUa9nj+ldcJsMGA2GFifdZiyBj6EeneIoXeHmIDe05DEJNzeltj6vMNklZRQ4nJR5nRQ6nRS5nRS6nRS6Xbj8rgpqKj0fdC3pl9+WciUKXcA4HAUs3Bh9QhMm83G+eefj9VqbfW42qK8vDy2bdvGqFGj2L17C2639r0+wmQiPSmFQXHxZJeUkO1tUXeLjOLjPbtYeLDuuOsiRyWLc7JYnJNFpMnE5d17MrFLN+ItFn48eACH97J9tCmM4YnVCbvC4SDeYuGiLt0YOG4sKT07tcI7b9zYsSP58uXn6RoZBR4PIiaWhwadxse7d1JYWUmJU/sSXOly4ghistIDiVYbiVYrZr0Bi9FArNlMTJiFDmYz4d6x+fFWK0MSEgHtS/zPNT5HnG43Tnd1e+20+ASSveP4dxYWsKuwsN5jhxkMnFmjRv7PWZkc8s4oV1uP6GhGJqcAcKislHWHD5NqCyc9KYXtBflsLcgnw17crHrioWQzGukQFkZuWRnR0VEkJka1egzNGWfeUtGdAzwEPIBWEvb+Gut6Al0A3/zpUkqHEOIb4OwWOn6Tjhyx43Yf25/RgAFDGDBsBFf/9AMWg5GoMBMGnR6H28Xh8ob7Cy44sJ9wkwmjTsfW/HwOldf/jyDZamNCWicMej0ut5t3d8oG93lZtx4MiovHoNOxJCeLBQ2UmIwwmjgzNc03C9XLWzf55miu7ZqevXzJfG9xMTM2rGvw+B+fOYHU8HASrVbe3rGdRVkH693utPgEXhgxCoD88nIu+GFBg/vsGhGJGw955eWUtlCrZ+nSZRw+XExCQiTLl6/lhhtu8Fv/8MOPMmXK1BY5Vnt3yy234XA46NJFsHXrLuLNZvIqKrA7HHyXmcF3mf5/Y2F6PZXupi/kFTscvCW38d6O7YxO6cjKQ7kN/v+9tXdfru/bn2fue4Co4SM4fLi4Rd7b8ejX7zSSTh1Mp4wMburdF4B9xUVsyq9//qnosDDeHnMmZU4n5S4n969cRkFlZb3bjktJ5YzUVMpdLrbl5/P5vj0NxvHxWRN8X+AfWr2CJTnZ9W43LDHJl8xLnY5G/x0/PmSYL5kvy8nmDbmt3u06hJn9kvmszZsa/By7vpegV3QHAHYXFTV6/N7RHZCFBW06sZc6nVzevQeiQwwJt9x+3H+Ter2u2Y3KQJP5P4HHhBC7pJQNn/XArAG6SSkLhBCP1lpXNY/hrlrL9wA9hBAGKaWLNsxsNvPBB5+yZs0q5s//gr59+wOQk5Nd7yQRVc4/fyIREVrXgQ7LljRY2zkpKYn+484CoLKygtM+r7+fn8lkIGXIMMyduwKQvG0Lp23c0MC2JlaNGo3e7UbvdtP7yGE62e3oPJ46Px26dmNft24YXG7cVgtj83qhc3vQezzoPG50bu233u3BZqzuRjEoLh6zvv5uFV0jq7tMWIxGzk5ruM7Pxd260y9G67289FAuP2Vn4TbocesNuPR6PHo9Lr0eo9nMFRdeQmVYGC6jka++nk9JiR2Xy8mGDb/57fPo0SOUl5cDkSQlJXPFFVcDkJ2dzZIlv7BmzaoG4znR7NixnW3btiI3rCdm6WLeGHMGr23d4reNI8xEcWQULqORMWPGkZKi9VLfuHED27ZtqW+32Gw2v85iZZ/Pw1FehsnhwORwYHQ6MOn1GI1G+g08lbR7pmLt0TN4b7SZ9Ho97703l1WrVrBz+VJ67NhBj6joBv+WbUYjiTWu9oxP60xRA8k8PTmFsR2123Y9o6Ib/RJrM1Z/pJ8Sn0C492pfFY8O3Ho9XeLiORIXT6U5jEKPh/Q+ffGgA50Ojw6q7356qBS92ZOQiN7jJtLlZFQ9x9UBlrAwMrp0wWk04TQZGZB9EHtlBR6dXuvQqNP5PiPMPXux/aReGJ0OKiIjGJN/hLCKCgyuul/87u4/AFtkFPnR0czbvZNd+UdxGQzU7r6VktKRMWPGAVBeXs6XX37W4HlKTx9NWpp2RWfz5k1s3vx7zbOEzu3B4HIRbjRy4+ixmMsrsJWW8M7yJdjL668OflJUB0aLPvS6MDRlV3SeAC75CCHWoCXaCMAJ1H43HilldHMP7k3m06SUEd7nVwMfAilSypwa290MzAGipZRFzT1OM3QF9h5Py7ytSEiIDGmLxePx4Kkox1Vairu0VPtdYsdVbMdlL8Zlt+MqLsZlL8ZZXIzbri13N3L14ljpTCYM0dEYo6IwREXz+fffcrAgnyPl5eSVl5FXXs5Lb/+XsyaeTd7R6isSO3fuYOTIwaSldWL9+vqT0InmpJM6U1hYwPfX3Uh4rcut2/LzOdq/Pzc8+u+QVmRrCyoOZlK0YjmOvDycR4/gKinBXVqKu7wMjyOIt5J0OgxR0ZjiYjHGxhGWmIQpIQFTYhKmhESMHTqga6OFbDxuN+W7d1G8ZhXFa9fgKmr4o94YE4O1l8Daqzc2ITAlJTf6N+f7PCq24/R+7rjtdpzFRd7PoiKcR4/iOHoE59GjeBr4YtUQXVgY5s5diL/oEmy9+zTrtfWp0TLvBuwL5DWBtsy/PsaYmqv662D9y0/EDtftkk6nQ2exordYoRm9jd2OSlxFxTgLC3EVFeIsKsRVWIizqEh7XliIq7AAZ2FhwP/gPA4Hzrw8nHl5AExISoba43/feYvl772DOa0TUemjiBo2nO7de2C1WsnMPEB+/lFiYkI/njmU7HY7hYUFhBkM2AoKwPvhufbwIebu3snKQ7k8c+FFJ3wiBzCnppFw2RX1rouLsXIoMw93eTnu8nI8jkrclZV4HA48Lie4XHg8gMcNOj06HXicLtwVFdVfBHSATo/BakVvs6G3hWOIjMAUE4vOGPCI4zZFp9djPakX1pN6kXDVnynbISleswr7unW47P4NE2d+PsWrVlK8aiUAeqsVDAZwewAPeLSfqvPocbnA1TIXdfVWK+bOXbB07oK5SxfMnbsSlpwc8i9JgVaAmx7sQLyqvupHArk1lkegJfK641SUPxS9KQx9XFyTY4c9Hg/uslKcBd7kXlCA05vkXQX5OAsLfcs8FQFOmud2U5Gxn8Mf7idv3idEDj6dt595gR6nD6ODt5/AiSzLO3lIgtmCzttr+59rV/FLdpZvm+Q20LO8rdMbjRjCwzGo4ZAN0un12Hr3wda7D4lXX4u16DBZq9ZTKiXlu3bUuYLnbqCj3bHSWywY4+IxxcVhjNU+j0wJiZi7dMEUn9Amv7A2p2hMMlpntTFoneGOAEuBF6SUWY29thmqJmzpjv998+6AlFK272vfSovR6XQYbOEYbOHQQOWwKq6ysupWfVERW1av5Ou5HxBrthBv0X6SIiKINFT/c/BUVlK0fClpgLmkBN0NNwX5HbV9+9atAbShYxgMvLp/r18iB3z3xxWlpeiMRiJFL2JjU4g95zw8LhcVBzIo2yEp3SEp27EDd2nT7TxdWBiGiEgMEREYIr2/IyJ9j40dYjDFxWOMi9U+V9qZQIvG9ERL3Fa0KU9zgWTgDmCyEGK4lLJ2p7VjsRM4AFwE/OA9tgk4D/imBfavnIAMVisGq5Uw76X17p278Pqj/nWEDAYD+Tk55Py8lIJff6GyxhSWRUuXEH/xZRijm90t5A8lc7f2TzzJaiXytMF88+P3dbZJSkpp7bCUE4zOYMDStRuWrt2IGX82HrcbV4kdnbcDHwB6HaBD5/2NXo8+LKyx3bZ7gbbMn0FL4GdIKY9ULRRCxKMl3SeBS483GCmlRwjxH2CWECIfWAbcBcQDM493/4oCkJiYSGpqGgdrjK11uVxs2bWLHuPOJHrsGZTv3UPOW3PI3reX17dtwXjL9bzxyZchjDr0Uq1WLurajX4xsXg6xFBc7N9ByWg0Eh8f38CrFSU4dHo9xsjWH9fd1gR6x/4MYHrNRA4gpcwDZgDjWiogKeUraGPQrwPmoU3qMkFK2fDgSkVppoEDT6mzbO1abYpNnU6HtXsPIk8bgtVgZMGBDL5dshhHMHshtwMnd4hh2smncE6nLpSa6rYDkpKS1ZSfihIigf7LK6XhnuRumnHvvSYp5aNVw9JqLX9WStlZSmmTUo4IsC67ogRs0KCGk3kVay9BuMlER1s4DpeTXbt21nnNicRx+LDv8dF6CsGozm+KEjqBJvPFwD+EEH5deoUQscA/gF9bOjBFCabGWuZVrD1PAoOBnlHavfLf165uldjaqpWbfhg6TmYAABGxSURBVEcW5ONwu8mpp/dwcrLq/KYooRJoMn8A6ATsE0J8KYSYLYT4EtgLdEab4UxR2o2BAwfVWbZt2zbsdrvvud5sxtK1Gyd5O75tXL601eJra9zl5fzfkkXctHgRxS4XGfn5dbZRLXNFCZ2AkrmUcj9wCvAG2jSoZwAp3ueDpGygWK+itFGxsXF07tzFb5nb7Wbz5k1+y6y9hK9lvqXWuhNJUeYBCisrMep0JKSmknsop842aliaooROwPe6pZQH8Z8URVHatYEDTyEjY7/fst9//41hw4b7ntuE8M18tz1jHx6Pp00WjAi2zO3a9/UEqxVzQiI5WzfX2SapdlU9RVFaTaMtcyGETgjxZyHE2fUsXyiEuD644SlK8NR337z2JCzWnieRHB7BqOQUzkntRHkD08j+0R3wdv5LsFgxJSSSnV23TlRyshpjriih0mDLXAhhBOYCFwPPAt/VWJ2Edrn9LSHEBOBaKaWqm660K/X1aN+40T+Z6y1WLF268oR3QiLX/n0Qc+KVdj24fx+gtcxNCQnk5KjL7IrSljTWMr8VOBe4Wkrp18FNSpkjpewHXI9WLGZy8EJUlOA4+eSBdZbt2rWzTjEUmxC+x2Vye9DjaouysrQCO0kWK6b4eHJz686TrTrAKcr/t3fn0XGV5x3HvzPaZXnBtmzZeJOx/QAGm+SwYwg0LmvYmqZJAzgkhboBQgolPUDTE5YQUiAnnGxuWAsNaQo2jmng2Biz2FA3gMFmSfPEgOStxossjLygbaZ/3JHRZklX250r/T7n6Gj0zr13nnmORo/ee9/7vtHpqJhfAdzt7o8fbAN3/xWwAJjf24GJ9LURIw6hvHxqi7Z0Os3bb7/Voq3IDqe2sZF3q3fx4orl/Rli1vhw23Yg6Jnvz8+nttXiNcXFQxiqWbhEItNRMZ9G1+4fX0qw1rlI7LR3qr3tdfMZVOypYf6qF7n7uWU07tvXZp+BLJ1KcdUM4zd/diZzD53Izoa2S0mWlXW8nrSI9K2ORrPvJ1h6tDNJINxK7iJZYvbsz7J48aIWbevWvdHi55ziYg4/YiY5K19g454aqt99h9HHHd+fYZJOp2nYtYv67dtorKmhcU8Nqdo6koUFJAsKSZYMIX/cePJGje71dZUbP95NfirFhJISkkOGsLF6V5ttNPhNJFodFfM3gQuApzo5xoV8unSpSKy01zN/88032lw3HzJ9OhNLSqisqeGN557lpMMP79O40o2N1G/YQK3/kbrKCuq3bCa9t2vLPOaOH0/B9BnkzzDyp5STyO3WbMsH1GUGvwHkjBzF+vXeZhsVc5FodfQpXwAsMrPV7v5gexuY2TcIBr9d1RfBifS1o4+eRSKRIJ0ZrQ5QWVnBYYdNaLHdnLJxTB82gsqaGp793RIu/fFdvR7LsLx8Th5bxpyycRxbOoaSvLzQx0jX1VFfWUl9ZSUsf5aa+jpWbt3Kii2bWLNzB43N3mdX/fmhE9jxySeMLy7mhC2b+d6attPaqpiLROugxdzdl5jZL4H7zewa4BlgA8Fp9UnA2cBs4Al3v78/ghXpbUOHDuOww6Z1uojKuqqdXDJtBsu3QE19HUU5uexvbOjx648vLmZO2XjmlI1j1shR5HZwirymvo6Kjz+mqraW3XW17G9ooDA3l6KcXEoLCykfNoyRBYUt319ePudNmsx5kyazff9+FlW8z1MbKqgJsQLc8Px8lm/ZzNZ9RUwsGdruNuPGqZiLRKnD82/ufrWZ/R64Abip1dNvApe7+7/3VXAi/WH27M90Wsxr6uspzpyuXlxZwb0nzeHOtWvY1s6CI51JAslEgmQiQVVtLUs2VLBkQwVPnXnugWJ+/eqXWVu1k1Q6TYrgmnlX+9RJEiQTwWv86MRT+MzoUgCerHifhRXvQxpyEoku99IXV1YAwYQxW/e1f6p//PhDuxidiPSFTi+mufujwKNmVgZMABqBja3XNheJq4sv/iKLFh30DswDNu6poayomNxkgmNLx/DI6XO59511LN208aD7lOTm8tnSMRw54hD2NzbwyJ+cFJBKp6GdYvrOripWfbiVdbuqqGtnmdGuSJEmlQbSae5a9yYXTinnzAkTaUinqW1sOxK9M01F/+SxZbyxc0eb54uKijjttNO7FauI9I5EuhvX0AawKUBFVdUeUql456W0dCg7dtREHUYspNNp7r9/AY888iBbt7ad2axJMpHg0ilTuWjipAO9dIC3q6uprqultrGR+lSKYXl5jCkqYkxhISW5eQd62w2pFA2tCnRdqpG11dW8WrWTNVU7qc6c/u7sc9l0G1hXPr+JRIK8RILTxozl/AkTmTLk05tUPkk18tTmTSzZtJG9zQp903FvOGImp44ZSyKRoCGd4rJXVrGv2XZHHTWTm2++hRNPPLnTOCSgz2Z4gy1nyWSCUaNKAMqByq7so2Le0hRUzAetruZs/3vr+fChB6jfvq1br5NfNo7iI2cGX0ccSbKgoFvH6Y50KkX1sqXs/O0iaFaUk4WFDD/1cwyZNZvCadMglWb3qpXs+M1jB7YZN/8qhra6JU+/Z+EpZ+ENtpx1p5j37J4VkUGoaNp0Jn/vNnYsfJzdL6zocNtkcTEFEydRWD6VwvJyCqdOIy/Cud0TySQjzzmX4pkz2fbwA9Ru2gQE65VXL19G9fJlkEi0uQQw/HOntynkIpI9VMxFuiFZUMDYSy5j5NnnUr99G6naWlJ1taTr6kgWDyFv9GjyRo8mp3hI1KG2q3DSZCb9863sef01qv5rCXXNV0FrVcjzJ0yk9Mtf7ecIRSQMFXORHsgbNYq8UaOiDqNbEskkQ48/gZJjj2PvO2+x9+232feHd6nf9iHk5JA7bDj5ZeMYM+9rJPPzow5XRDqgYi4yyCWSSUpmHUPJrGMASNXVkcjL01zrIjGiYi4iLagXLhI/vbsig4iIiPQ7FXMREZGYUzEXERGJORVzERGRmFMxFxERiTkVcxERkZhTMRcREYk53WfeUg4Ek9wPBAPlffQn5Sw85Sw85Sy8wZSzZu81p6v7aNW0luYAq6IOQkREBDgVeLkrG6qYt1QAHAdsBRo72VZERKQv5ADjgNeA2q7soGIuIiIScxoAJyIiEnMq5iIiIjGnYi4iIhJzKuYiIiIxp2IuIiIScyrmIiIiMadiLiIiEnOaznUQM7PhwCvARe7+XtTxZDMzux74GyANvA7Md/cuTeYwGJlZArgHOCfT9DN3/0WEIcWKmf0IGOvul0YdS7Yzs4XA0cD+TNOt7r44wpAioWI+SJnZKcAvgRlRx5LtzOwE4OvA8cA+4FHgWuDuKOPKchcQ/IE9CigE/mBmL7n7u9GGlf3M7CxgHrAs6lhi4lhgtrvvjjqQKOk0++A1P/P1f1EHEgPVwDXuvtfd08BbwKSIY8pq7r4EOM/dU0ApQcdhT7RRZT8zGwPcDtwRdSxxYGbjgGHAE2b2lpndYmaDsq4Nyjct4O7z3P2VqOOIA3f/k7u/BAf+eHwbWBJtVNnP3evN7IfA/wIrgI0Rh5TVMpcmHgL+Afgo4nDiYizwHHAJcBJwGnBlpBFFRMVcpIvMbDJBUVrg7s9FHU8cuPuNBD3zicA3Iw4n210HrHV3rdzYRe6+1t3/yt13uPte4CfAF6KOKwoq5iJdYGbHECxFuMDddQq0E2Z2tJkdBZD5I/skMCvaqLLeV4ALzWwtcBtwrpn9POKYspqZnWhmzYt3LlAfVTxR0gA4kU6YWSmwlOC6+cKo44mJo4BvmtnnCToNFwMPRhtSdnP345sem9nlwFx3vzq6iGIhH7jXzFYCnxCc/Xk42pCioWIeY2Z2AfCYuw9t1X4l8I/ABGAtcL27r44gxKzSg3xdRzDI5rtm9t1M29Pu/k/9EHakupszd/+PzNmMdUAjsNDdf91/kUdHn8vwevB7ttLM7gN+T7AG+CLgsX4LPItoPfOYMrOTCXqLSXcvadY+j+A/09sIFrb/FnAKwa0bFVHEmg2Ur/CUs/CUs/CUs96hnnnMmFkBwWjq24G9BKeZmp5LEPzi3+fut2balgNO0Lu8tt8DjpjyFZ5yFp5yFp5y1rs0AC5+zgFuAr4D/LTVc9OAycBTTQ3uXg88DZzdXwFmGeUrPOUsPOUsPOWsF6mYx89rQLm7/4RgatHmmmZzaz016wfAYWaW09fBZSHlKzzlLDzlLDzlrBfpNHvMuPuWDp4elvle06q9huAftyHAx30RV7ZSvsJTzsJTzsJTznqXeuYDSyLzvfV/uU3tqX6MJQ6Ur/CUs/CUs/CUs5BUzAeWpoUGhrZqLyH45d/bv+FkPeUrPOUsPOUsPOUsJBXzgWV95vvUVu1TAc8sEiKfUr7CU87CU87CU85CUjEfWNYDm4CLmhrMLA84j2BOcWlJ+QpPOQtPOQtPOQtJA+AGEHdPZ1ap+pmZVQOvANcAo4EfRxpcFlK+wlPOwlPOwlPOwlPPfIBx918Q3Ld5GbAQGAGc5e4fRBpYllK+wlPOwlPOwlPOwtF0riIiIjGnnrmIiEjMqZiLiIjEnIq5iIhIzKmYi4iIxJyKuYiISMypmIuIiMScirmI9JiZJTrfSkT6imaAExkgzOxF4HPNmhqBjwjWjb7H3Xt9GkwzmwA8AFwK7DSzKUAF8CV3X9iN450H3ODuZ3QzniJgHXC+u3t3jiESR+qZiwwsrwAnZb7OAK4CCoDlZvbXffB6c4GzeuNAZjYMWEAw61e3uPt+4AfAAzpbIIOJeuYiA8tH7v4/zRvMbCHwPLDAzJa6e3U0oXXq7wlWxHq9h8f5FXAHwSIdi3sclUgMqJiLDHDunjKz2whWm/oScB+AmY0B7gG+AOQTFPxvu3tF5vlbgL8EfkhQHEcCLwHXuHulmV0OPJx5mR1mdivwb5mfp5jZM8DpBKf6f+7udxwsRjMrAK4Gbm7WdnkmvkuBu4HpwFvA14DDM3EdCrwIfMPdt2feb4OZLQJuQMVcBgmdZhcZHF4iuIZ+Mhy4tvwCMAf4FsFiFmXASjM7pNl+kwkK6i3A1wmK6IpM8X0a+H5mu7MJrp03uQN4leAfhd8B3zez8zuI7/NAKW2L71CCU+93Al8GJmZe9w6Cwn89wan+21vttwg42cwmdvCaIgOGirnIIODujUAVMDbTNA8w4Fx3f8zdFxMUxRKC4t6kBLjc3R/ODGi7CCgHvuLuO4D3M9utcffNzfZ72N1vcffnCa7bVxNcwz+YM4AN7r6rVXs+cKO7/9rdlxD0/MuBv3P3Re5+H/AEcEKr/d5odlyRAU/FXGRwOgNYD7xnZrlmlgvsA1YR9JKb7Hb3pU0/uPs7wAfAqZ0c/7+b7dMAbCZYwvJgpgCbDvLcq80eb8t8b35dvar1sd29huAfiCmdxCkyIOiaucggYGaFBNe8t2SaRhGcMq9vZ/P1zR5vbef5HZljdWRfq59TdNx5GN7OPk1qWje4+8G2bR3D8C5sJxJ7KuYig8OpBJ/3lzM/7ya4H/uKdratbfZ4VDvPj8ns25uq6P1e9CGZ44oMeDrNLjLAZe63vhHYBTyZaX6Z4Npzpbu/nrkdbA1wHcGgtSalZnZ8s2MdDUwlGDwHwaC63rAJmNBLx8LMRgDFwMbeOqZINlPPXGRgGWFmJ2Ye5xIUyCsIZob7qrt/nHnuIeBagslk7iQo9H8LfBFoPuo8Dfynmd2YefwDYC3BaHEIbjsD+Asze7YHca8AvmNmE1oNpOuukwji7fVZ70SykXrmIgPLKcDqzNfzwL8QDAQ7xd0fb9ooU9RPA/4I/CuwhOA2tAvd/Zlmx9sH3ArcS3B/+mpgbmZQGwTFchnwU4L7urvrhUycZ/bgGM2dCax29/au+YsMOIl0Oh11DCKShTKTxtzg7iX9+Hpz3X1OD4+TTzDQ70p3/21vxCaS7dQzF5FscS8wzcxa3zMe1jyC2+eW9DwkkXhQMReRrODuHwHzgbu6e4zMzHY3EUx0o9OOMmjoNLuIiEjMqWcuIiIScyrmIiIiMadiLiIiEnMq5iIiIjGnYi4iIhJzKuYiIiIx9//pzOv3W0iNRQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# PGI model\n", "fig,ax0 = plt.subplots(1,1,figsize=(7.5,3))\n", "fontsize=16\n", "M = prob.mesh\n", "plt.loglog(-M.vectorCCx, np.exp(mtrue), color='black',linewidth=5)\n", "\n", "plt.loglog(-M.vectorCCx, np.exp(mcluster), color='r',linewidth=3)\n", "plt.loglog(-M.vectorCCx, np.exp(reg_petro.objfcts[0].mref),\n", " color='black',\n", " linestyle='dashed',\n", " linewidth=2)\n", "\n", "plt.legend(['True Model',\n", " 'PGI model',\n", " 'learned mref',\n", "],fontsize=fontsize,loc=0)\n", "plt.gca().set_ylim([10**(-2.5),10**(-0.5)])\n", "\n", "\n", "plt.gca().set_xlabel('Depth (m)',fontsize=fontsize)\n", "plt.gca().tick_params(labelsize=fontsize)\n", "plt.gca().set_ylabel('Conductivity (S/m)',fontsize=fontsize)\n", "\n", "#fig.savefig('MT1D_petro_std2percent_HighRes.png', dpi=600, bbox_inches='tight', pad_inches=0.1)\n", "#fig.savefig(\"MT1D_petro_std2percent_LowRes.png\", dpi=72, bbox_inches='tight', pad_inches=0.1)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot Histogram and learned petrophysical distribution\n", "fig0, (ax, ax3) = plt.subplots(2, 1, sharex=True,figsize=(7.5,3))\n", "fontsize=16\n", "M = prob.mesh\n", "testXplot = np.linspace(-7.,-1.,1000)[:,np.newaxis];\n", "clfref = invProb.reg.objfcts[0].GMmref\n", "clfinv = invProb.reg.objfcts[0].GMmodel\n", "log_dens0 = clf.score_samples(testXplot);\n", "log_dens = clfinv.score_samples(testXplot);\n", "\n", "ax3.plot(np.log10(np.exp(testXplot)), np.exp(log_dens0),linewidth =3.,color='black')\n", "ax3.plot(np.log10(np.exp(testXplot)), np.exp(log_dens),linewidth =2.,color='r',\n", " #label='Learned Dist',\n", " path_effects=[pe.Stroke(linewidth=4, foreground='k'), pe.Normal()])\n", "\n", "ax3.set_xticks([-3,-2,-1])\n", "ax3.tick_params(labelsize=fontsize)\n", "ax3.xaxis.set_major_formatter(FormatStrFormatter('$10^{%.0f}$'))\n", "ax3.set_xlabel('Conductivity(S/m)',fontsize=fontsize)\n", "\n", "ax3.hist(np.log10(np.exp((mcluster))),density = True, bins = 20,color='r',ec='k', weights=mesh.vol,\n", " label='PGI Model\\nWeighted Hist.');\n", "ax3.set_ylim([0.,0.1])\n", "ax3.set_ylabel(\"Probability Density\",fontsize=fontsize)\n", "\n", "ax.hist(np.log10(np.exp((mcluster))),density = True, bins = 20,color='r',ec='k', weights=mesh.vol/np.sum(mesh.vol));\n", "ax.tick_params(labelsize=fontsize)\n", "testXplot = np.linspace(-7.,-1.,1000)[:,np.newaxis];\n", "\n", "ax.plot(np.log10(np.exp(testXplot)), np.exp(log_dens0),linewidth =3.,color='black')\n", "ax.plot(np.log10(np.exp(testXplot)), np.exp(log_dens),linewidth =2.,color='r',\n", " label='Learned Dist',\n", " path_effects=[pe.Stroke(linewidth=4, foreground='k'), pe.Normal()])\n", "\n", "ax.set_ylim([1.,4.])\n", "ax.set_yticks([1,2,3,4])\n", "ax.legend(['Prior Dist.','Learned Dist.',],loc=1,fontsize=fontsize)\n", "ax3.legend(loc=1,fontsize=fontsize)\n", "\n", "d = .015 # how big to make the diagonal lines in axes coordinates\n", "# arguments to pass to plot, just so we don't keep repeating them\n", "kwargs = dict(transform=ax.transAxes, color='k', clip_on=False)\n", "ax.plot((-d, +d), (-d, +d), **kwargs) # top-left diagonal\n", "ax.plot((1 - d, 1 + d), (-d, +d), **kwargs) # top-right diagonal\n", "\n", "kwargs.update(transform=ax3.transAxes) # switch to the bottom axes\n", "ax3.plot((-d, +d), (1 - d, 1 + d), **kwargs) # bottom-left diagonal\n", "ax3.plot((1 - d, 1 + d), (1 - d, 1 + d), **kwargs) # bottom-right diagonal\n", "\n", "\n", "plt.show()\n", "#fig0.savefig('MT1D_Dist_petro_HighRes.png', dpi=600, bbox_inches='tight', pad_inches=0.1)\n", "#fig0.savefig(\"MT1D_Dist_petro_LowRes.png\", dpi=72, bbox_inches='tight', pad_inches=0.1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.7.11" } }, "nbformat": 4, "nbformat_minor": 1 }