Merge pull request #6 from simpeg/Dom_dev

Examples and IP
This commit is contained in:
Rowan Cockett committed 2016-02-04 09:17:40 -08:00
commit 269269daf7
85 files changed
+425146 -1186

No files matched your search

+556
View File
@@ -0,0 +1,556 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Efficiency Warning: Interpolation will be slow, use setup.py!\n",
"\n",
" python setup.py build_ext --inplace\n",
" \n"
]
}
],
"source": [
"from SimPEG import *\n",
"import simpegDCIP as DC\n",
"from numpy.polynomial import polynomial"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: pylab import has clobbered these variables: ['linalg']\n",
"`%matplotlib` prevents importing * from pylab and numpy\n"
]
}
],
"source": [
"%pylab inline"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"cs = 0.5\n",
"mesh = Mesh.TensorMesh([np.ones(100)*cs, np.ones(50)*cs], \"CN\")\n",
"x = mesh.vectorCCx"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"actx = (x>-15.)&(x<15.)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"order = 3\n",
"Vobs = polynomial.polyvander(x, order)\n",
"dobs = 0.05*x-4\n",
"H = np.dot(Vobs.T, Vobs)\n",
"g = np.dot(Vobs.T, dobs)\n",
"mest = np.linalg.solve(H, g)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"dpred = Vobs.dot(mest)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"V = polynomial.polyvander(x, order)\n",
"m1D = Mesh.TensorMesh([V.shape[1]+2])\n",
"weight = (1./(V**2).sum(axis=0))**0.5\n",
"weight = weight / weight.max()\n",
"weightmap = Maps.Weighting(m1D, weights=np.r_[1., 1., weight])\n",
"m0_poly = np.r_[np.log(1e-3), np.log(1e-3), np.r_[-3., np.zeros(V.shape[1]-1)] / weight]\n",
"mtrue_poly = np.r_[np.log(1e-3), np.log(1e0), mest / weight]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"polymap = Maps.PolyMap(mesh, V.shape[1]-1, logSigma=True, normal='Y')\n",
"mappingfwd = polymap*weightmap\n",
"mapping = Maps.ExpMap(mesh)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"sigma = mappingfwd*mtrue_poly"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"xr = np.linspace(-15, 15, 20)\n",
"xz_A = Utils.ndgrid(xr, np.r_[-0.25])\n",
"xz_B = Utils.ndgrid(np.ones_like(xr)*22, np.r_[-0.25])\n",
"xz_M = Utils.ndgrid(xr, np.r_[-0.25])\n",
"xz_N = Utils.ndgrid(np.ones_like(xr)*-22, np.r_[-0.25])\n",
"\n",
"ntx = xz_A.shape[0]\n",
"txList = []\n",
"for i in range(ntx):\n",
" offset = abs(xz_A[i,0]-xz_M[:,0])\n",
" actrx = offset > 5.\n",
" rx = DC.RxDipole(xz_M[actrx,:], xz_N[actrx,:])\n",
" src = DC.SrcDipole([rx], xz_A[i,:], xz_B[i,:])\n",
" txList.append(src)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x15be0278>]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x15968710>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dat = mesh.plotImage(np.log10(sigma), clim=(-2, 0))\n",
"plt.colorbar(dat[0])\n",
"plot(xz_A[:,0], xz_A[:,1], 'w.')\n",
"plot(xz_B[:,0], xz_B[:,1], 'y.')\n",
"plot(xz_N[:,0], xz_N[:,1], 'r.')"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x15e72518>]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x15968198>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dat = mesh.plotImage(np.log10(mappingfwd*m0_poly), clim=(-2, 0))\n",
"plt.colorbar(dat[0])\n",
"plot(xz_A[:,0], xz_A[:,1], 'w.')\n",
"plot(xz_B[:,0], xz_B[:,1], 'y.')\n",
"plot(xz_N[:,0], xz_N[:,1], 'r.')"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from SimPEG import SolverLU"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x160b5eb8>]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x160c1278>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mtrue = np.log(sigma)\n",
"m0 = np.log(np.ones(mesh.nC)*1e-3)\n",
"survey = DC.SurveyDC(txList)\n",
"problem = DC.ProblemDC_CC(mesh, mapping = mapping)\n",
"problem.pair(survey)\n",
"problem.Solver = SolverLU\n",
"dtrue = survey.dpred(mtrue)\n",
"d0 = survey.dpred(m0)\n",
"j = problem.fields\n",
"plot(dtrue)\n",
"plot(d0)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.0046885259087758868"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"abs(dtrue).min()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(array([ 1., 2., 3., 4., 5., 4., 6., 7., 8., 9., 8.,\n",
" 10., 17., 17., 18., 33., 41., 30., 32., 17.]),\n",
" array([-2.32896368, -2.11250236, -1.89604103, -1.67957971, -1.46311839,\n",
" -1.24665706, -1.03019574, -0.81373441, -0.59727309, -0.38081177,\n",
" -0.16435044, 0.05211088, 0.2685722 , 0.48503353, 0.70149485,\n",
" 0.91795617, 1.1344175 , 1.35087882, 1.56734014, 1.78380147,\n",
" 2.00026279]),\n",
" <a list of 20 Patch objects>)"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAW8AAAEACAYAAAB8nvebAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEP1JREFUeJzt3W+sZHV9x/H3B5CgVaSUZndVzPpAyxPq0lTTpDSOtTRo\nLMKD+qcJUqsNaVMkphoRI9xo6t+CpmlCmoBmpdWGiKVs2ghbYCImLf5hF5E/YhtIxbJLVLQgkCr7\n7YN7drmud++duTPnzvyG9yuZcObMOXO+s5f93LPf3znzS1UhSWrLUbMuQJI0PsNbkhpkeEtSgwxv\nSWqQ4S1JDTK8JalBI4V3kqOT7Emyq3u+lOTBbt2eJGf2W6YkaaVjRtzuQuBu4Hnd8wIur6rLe6lK\nkrSmdc+8k7wIeB1wJZCDq1csS5I22Shtk08C7wEOrFhXwAVJ7khyVZITeqlOkrSqNcM7yeuBh6tq\nDz9/pn0F8BJgB/AQcFlvFUqSfkHW+m6TJB8GzgV+BhwHHA9cW1VvXbHNdmBXVZ26yv5+cYokbUBV\nrdmaXvPMu6ourqqTq+olwJuBm6vqrUm2rdjsHODONd5jYR+XXnrpzGvws/n5/HyL9xjFqFebwHLb\n5OC7fjzJy7vn9wPnj/E+kqQJjRzeVTUEht3yuT3VI0kagXdYTmAwGMy6hN4s8mcDP1/rFv3zjWLN\nAcuJ3zypPt9fkhZREmqSAUtJ0nwyvCWpQYa3JDXI8JakBhnektQgw1uSGmR4S1KDDG9JapDhLUkN\nMrwlqUGGtyQ1yPCWpAYZ3pLUoHEmY5C0AJI1v6zuiPyG0Pky0pl3kqOT7Emyq3t+YpLdSe5LcqOz\nx0utqTEfmjejtk0uBO7m6Z/iRcDuqnoZcFP3XJK0SdYN7yQvAl4HXMnyPJYAZwE7u+WdwNm9VCdJ\nWtUoZ96fBN4DHFixbktV7e+W9wNbpl2YJOnI1hywTPJ64OGq2pNksNo2VVVJjtgUW1paOrQ8GAyc\ne06SDjMcDhkOh2Pts+Yclkk+DJwL/Aw4Djge+CLwCmBQVfuSbANuqapTVtnfOSylObN8tcm4fy/j\n1SabaOI5LKvq4qo6uapeArwZuLmqzgWuB87rNjsPuG4aBUuSRjPuTToHf/V+FDgjyX3A73bPJUmb\nZM22ycRvbttEmju2TebfxG0TSdJ8MrwlqUGGtyQ1yPCWpAYZ3pLUIMNbkhpkeEtSgwxvSWqQ4S1J\nDTK8JalBhrckNcjwlqQGGd6S1CDDW5IaZHhLUoMMb0lq0LrhneS4JLcl2Zvk7iQf6dYvJXkwyZ7u\ncWb/5UqSYMSZdJI8p6oeT3IM8BXg3cBrgEer6vI19nMmHWnOOJPO/JvaTDpV9Xi3eCxwNPDIwWNs\nvDxJ0kaNFN5JjkqyF9gP3FJVd3UvXZDkjiRXJTmhtyolST/nmFE2qqoDwI4kzwduSDIArgA+2G3y\nIeAy4O2H77u0tHRoeTAYMBgMJipYkhbNcDhkOByOtc/Ys8cn+QDwRFX99Yp124FdVXXqYdva85bm\njD3v+TeVnneSkw62RJI8GzgD2JNk64rNzgHunKRYSdLoRmmbbAN2JjmK5bC/uqpuSvLZJDtY/hV+\nP3B+j3VKklYYu20y1pvbNpHmjm2T+Te1SwUlSfPF8JakBhnektQgw1uSGmR4S1KDRrrDUtL8Wr56\nRM80hre0EMa5jM+wXwS2TSSpQYa3JDXI8JakBtnzljR1GxlE9fb78RjeknriIGqfbJtIUoMMb0lq\nkOEtSQ0yvCWpQWuGd5LjktyWZG+Su5N8pFt/YpLdSe5LcqMzx0vS5lozvKvqSeDVVbUD+HXg1UlO\nBy4CdlfVy4CbuueSpE2ybtukqh7vFo8FjgYeAc4CdnbrdwJn91KdJGlVo8wef1SSvcB+4JaqugvY\nUlX7u032A1t6rFGSdJh1b9KpqgPAjiTPB25I8urDXq8kR7waf2lp6dDyYDBgMBhsuFhJs+NXz/Zn\nOBwyHA7H2mes2eOTfAB4AngHMKiqfUm2sXxGfsoq2zt7vNSz8WeD39js8f0ew9npV5p49vgkJx28\nkiTJs4EzgD3A9cB53WbnAddNXq4kaVTrtU22ATuTHMVy0F9dVTcl2QNck+TtwAPAG/stU5K00lht\nk7Hf3LaJ1DvbJotn4raJJGk+Gd6S1CDDW5IaZHhLUoMMb0lqkOEtSQ0yvCWpQYa3JDXI8JakBhne\nktQgw1uSGmR4S1KDDG9JapDhLUkNMrwlqUGjTEB8cpJbktyV5FtJ3tmtX0ryYJI93ePM/suVJMEI\nkzEk2Qpsraq9SZ4LfAM4m+XZcx6tqsvX2NfJGKSeORnD4hllMoZRZo/fB+zrlh9Lcg/wwoPHmLhK\nSdLYxup5J9kOnAb8R7fqgiR3JLnq4ETFkqT+jRzeXcvkC8CFVfUYcAXwEmAH8BBwWS8VSpJ+wbpt\nE4AkzwKuBf6+qq4DqKqHV7x+JbBrtX2XlpYOLQ8GAwaDwcarlaQFNBwOGQ6HY+0zyoBlgJ3AD6rq\nXSvWb6uqh7rldwGvqKo/OmxfByylnjlguXhGGbAcJbxPB74MfJOnfxoXA29huWVSwP3A+VW1/7B9\nDW+pZ4b34plKeE9YgOEt9czwXjyjhLd3WEpSgwxvSWqQ4S1JDTK8JalBhrckNcjwlqQGGd6S1CDD\nW5IaZHhLUoMMb0lqkOEtSQ0yvCWpQYa3JDXI8JakBhnektQgw1uSGrRueCc5OcktSe5K8q0k7+zW\nn5hkd5L7ktzo7PGStHlGmQZtK7C1qvZ2M8h/AzgbeBvw/ar6eJL3Ar9cVRcdtq8z6Ug9cyadxTOV\nmXSqal9V7e2WHwPuAV4InMXyxMR0/z17snIlSaMaq+edZDtwGnAbsGXFhMP7gS1TrUySdEQjh3fX\nMrkWuLCqHl35Wtcb8d88krRJjhlloyTPYjm4r66q67rV+5Nsrap9SbYBD6+279LS0qHlwWDAYDCY\nqGBJWjTD4ZDhcDjWPqMMWIblnvYPqupdK9Z/vFv3sSQXASc4YCltPgcsF88oA5ajhPfpwJeBb/L0\nT+N9wFeBa4AXAw8Ab6yqHx22r+Et9czwXjxTCe8JCzC8pZ4Z3otnKpcKSpLmj+EtSQ0yvCWpQYa3\nJDXI8JakBhnektSgke6wlLR5li/9k9ZmeEtzadxrqvVMY9tEkhpkeEtSg2ybSGOyJ92Pcf9cn+m3\n0xve0ob0+z0fz0z+GY3DtokkNcjwlqQGGd6S1CDDW5IatG54J/l0kv1J7lyxbinJg0n2dI8z+y1T\nkrTSKGfenwEOD+cCLq+q07rHl6ZfmiTpSNYN76q6FXhklZe8VkeSZmSSnvcFSe5IclWSE6ZWkSRp\nXRu9SecK4IPd8oeAy4C3r7bh0tLSoeXBYMBgMNjgISVpMQ2HQ4bD4Vj7jDR7fJLtwK6qOnXM15w9\nXgun/9na5237zTiGs82v1Nvs8Um2rXh6DnDnkbaVJE3fum2TJJ8HXgWclOS7wKXAIMkOln9V3g+c\n32uVkqSfM1LbZMNvbttEC8i2yXxsv8jZ0lvbRJI0W4a3JDXI8JakBhnektQgw1uSGmR4S1KDDG9J\napDhLUkNMrwlqUGGtyQ1yPCWpAYZ3pLUIMNbkhpkeEtSgwxvSWqQ4S1JDVo3vJN8Osn+JHeuWHdi\nkt1J7ktyo7PHS9LmGuXM+zPAmYetuwjYXVUvA27qnkuSNsm64V1VtwKPHLb6LGBnt7wTOHvKdUmS\n1rDRnveWqtrfLe8HtkypHknSCNadPX49VVVJjjgT6NLS0qHlwWDAYDCY9JDSVC1PKCzNznA4ZDgc\njrXPSLPHJ9kO7KqqU7vn9wKDqtqXZBtwS1Wdssp+zh6vuffMmw3e2ePnXZ+zx18PnNctnwdct8H3\nkSRtwLpn3kk+D7wKOInl/vYlwD8D1wAvBh4A3lhVP1plX8+8Nfc8856HY3jmvdIoZ94jtU0mKMDw\n1twzvOfhGIb3SqOE98QDllLfNjKguMh/sSUwvNWMcc/ipMXmd5tIUoMMb0lqkOEtSQ2y561Ntxl3\nNHrXpBad4a0Z6XsA0gFOLTbbJpLUIMNbkhpkeEtSg+x5a2IODkqbz/DWlDhAKG0m2yaS1CDDW5Ia\nZHhLUoPseesXOAApzb+JwjvJA8D/Ak8BP62qV06jKM0DByCleTbpmXexPBHxD6dRjCRpNNPoeXva\nJUmbbNLwLuDfknw9yZ9OoyBJ0vombZv8dlU9lORXgd1J7q2qW1dusLS0dGh5MBgwGAwmPKSc01Fa\nLMPhkOFwONY+U5s9PsmlwGNVddmKdc4e34ONzHY+zs/B2dTdfvOP4ezxK40ye/yG2yZJnpPked3y\nLwG/D9y50feTJI1ukrbJFuCfun/CHwP8Q1XdOJWqJElrmlrbZNU3t23SC9smbr+522/GMWybrDRK\n28Q7LGdss+5m9K5JabEY3nNhI2dBfR7DoJfmnV9MJUkNMrwlqUGGtyQ1yJ73lDkwKGkzGN69cHBQ\nUr9sm0hSgwxvSWqQ4S1JDbLnvQ4HICXNI8N7JA5ASpovtk0kqUGGtyQ16BnVNrn99tu55JKP8dRT\ns65EkiYzUXgnORP4FHA0cGVVfWwqVfXkoYce4uab7+OJJy4acY/vANf0WZIkbciGwzvJ0cDfAr8H\nfA/4WpLrq+qeaRXXh2OPfQFPPPGmEbe+DfjAGq8PgcGkJc2pIYv72cDPp9ZN0vN+JfCfVfVAVf0U\n+EfgDdMpqxXDWRfQo+GsC+jZcNYF9Gw46wLUs0nC+4XAd1c8f7BbJ0nq2SQ97yYnkHvyya9x/PF/\nMNK2Tz31CD/5Sc8FSdIGbHgC4iS/BSxV1Znd8/cBB1YOWiZpMuAladbWm4B4kvA+BLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x15ca0828>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"hist(np.log10(abs(dtrue)), bins = 20)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"noise = 0.05*abs(dtrue)*np.random.randn(dtrue.shape[0])"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n",
" ***Done using same solver as the problem***\n",
"============================ Inexact Gauss Newton ============================\n",
" # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n",
"-----------------------------------------------------------------------------\n",
" 0 1.00e+00 1.40e+08 0.00e+00 1.40e+08 8.32e+06 0 \n",
" 1 1.00e+00 1.88e+07 6.18e-03 1.88e+07 1.13e+06 0 \n",
" 2 1.00e+00 2.52e+06 2.45e-02 2.52e+06 1.55e+05 0 Skip BFGS \n",
" 3 1.25e-01 3.49e+05 5.43e-02 3.49e+05 2.17e+04 0 Skip BFGS \n",
" 4 1.25e-01 6.57e+04 9.31e-02 6.57e+04 3.25e+03 0 Skip BFGS \n",
" 5 1.25e-01 1.53e+04 7.19e+00 1.53e+04 4.83e+02 1 Skip BFGS \n",
" 6 1.56e-02 4.40e+03 1.81e+01 4.40e+03 5.23e+02 1 \n",
" 7 1.56e-02 2.56e+03 4.02e+01 2.56e+03 2.82e+03 0 Skip BFGS \n",
" 8 1.56e-02 5.47e+02 3.69e+01 5.47e+02 2.89e+02 0 \n",
" 9 1.95e-03 3.14e+02 3.71e+01 3.14e+02 3.22e+02 0 Skip BFGS \n",
" 10 1.95e-03 2.18e+02 3.92e+01 2.18e+02 1.07e+02 0 \n",
" 11 1.95e-03 1.77e+02 3.86e+01 1.77e+02 8.57e+01 0 \n",
" 12 2.44e-04 1.44e+02 4.09e+01 1.44e+02 9.30e+01 0 \n",
"------------------------- STOP! -------------------------\n",
"1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 1.3960e+07\n",
"1 : |xc-x_last| = 3.1882e+00 <= tolX*(1+|x0|) = 4.8945e+01\n",
"0 : |proj(x-g)-x| = 9.3043e+01 <= tolG = 1.0000e-01\n",
"0 : |proj(x-g)-x| = 9.3043e+01 <= 1e3*eps = 1.0000e-02\n",
"0 : maxIter = 30 <= iter = 13\n",
"------------------------- DONE! -------------------------\n"
]
}
],
"source": [
"survey.dobs = dtrue +noise\n",
"dmis = DataMisfit.l2_DataMisfit(survey)\n",
"dmis.Wd = 1./(0.05*abs(dtrue)+ 0.1)\n",
"reg = Regularization.Tikhonov(mesh)\n",
"opt = Optimization.InexactGaussNewton(maxIter=30,maxIterLS=20)\n",
"opt.remember('xc')\n",
"invProb = InvProblem.BaseInvProblem(dmis, reg, opt)\n",
"betaSched = Directives.BetaSchedule(coolingFactor=8, coolingRate=3)\n",
"targetmis = Directives.TargetMisfit()\n",
"savemodel = Directives.SaveModelEveryIteration()\n",
"inv = Inversion.BaseInversion(invProb, directiveList=[betaSched,targetmis])\n",
"reg.alpha_s = 1e-5\n",
"reg.mref = m0\n",
"mopt = inv.run(m0)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"XC = opt.recall('xc')"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from ipywidgets import interact, IntSlider\n",
"def viewInv(iteration):\n",
" fig = plt.figure(num=0,figsize = (10,5))\n",
" ax = plt.subplot(111)\n",
" dat = mesh.plotImage(np.log10(mapping*XC[iteration]), grid=True, ax=ax, clim=(-3, 0), gridOpts={'alpha':0.2}, pcolorOpts={'cmap':cm.RdPu})\n",
"# ax.set_xlim(mesh.vectorNx.min(), mesh.vectorNx.max())\n",
"# ax.set_ylim(mesh.vectorNy.min(), mesh.vectorNy.max())\n",
" ax.plot(mesh.vectorCCx, dpred, 'r--')\n",
" ax.plot(xz_A[:,0], xz_A[:,1], 'k.')\n",
" ax.plot(xz_B[:,0], xz_B[:,1], 'r.')\n",
" ax.plot(xz_N[:,0], xz_N[:,1], 'b.') \n",
"# plt.colorbar(dat[0], ax=ax)\n",
"# ax.set_ylim (-15, 0.)\n",
"# ax.set_xlim (-15, 15.)\n",
" plt.show()\n",
" return True"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmIAAAFHCAYAAAAC3yD+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXl4XOlV7vt+VbKsyfIg2ZI8dKfT3W6n55YSCGOAkBCm\nG8g5XOBw4EKYckIGhpCJ+xw4XEgOJ8/hArlAAiEQIAmEISG5kEPCQ8IFQrpxlQfJsix5tuV5kq25\nau91/9iyLe1vLXl/ripVyX5/z5MnraWlb3+1a9B21fvTciICQgghhBCy8uTqvQFCCCGEkPsVXogR\nQgghhNQJXogRQgghhNQJXogRQgghhNQJXogRQgghhNQJXogRQgghhNSJhrwQc869xjk34pwbc869\no977IYQQQgipBa7R/o6Ycy4P4BCAbwYwDuDfAXy/iBys68YIIYQQQqpMI74j9hUADovIcREpAfgz\nAK+t854IIYQQQqpOI16IbQNwatHXpxdqhBBCCCH3FI14IdZYn5USQgghhNSIpnpvQGEcwI5FX+9A\n8q7YLZxzvFgjhBBCyKpBRJxWb8QLsd0AHnXOvQjAGQDfC+D7003R8H7vBwvDrRh4YtavH2jx6oUD\nbRh4MtWby6EwtBYDT86l1m3xanA5FAbXYuCpVD2XQ2GwGQNPzft7SNWQz6GwvxkDTy+tv+Ed78cH\n3/fTqd48CvuaMPBMeem6g2sx8OzSGgAUhpox8Gy0dMv5JhT25DDwXLy0d/8aDPQvrQFAoZjz6lqt\nGr330vF+4qfei9/77Xc15N4a4XiNvDftvmuUva308Vbj3kLuv3vlXOz+t5L3Wg8AhRciDDxdWlKT\n+Xn999NueL8PZW42+Z36+MzS3v1rMPCSqaUHm59HYaQDA7sml9bnIhQOdWDgsaX13UPtGHj0xtLe\n2Rhv+O0/xwd+6nuXHm+kAwMvvr50byVB8Vgn+h9aWi+OdaD/RUtrmIlQPLEe/Q9OpNaIUTy5Hv0P\nLK0Xj3aif8e1pWvEQPH0BvRvX1ovnljv1QC9d+07/4PXd5OGuxATkbJz7k0A/h5AHsAfNKIxmX/4\nYQDJxe0rvvI6/vFjF+q7oVXCT/zUm1EoHkbPllZ87CMfxoYNG+5qnV/572/C1WtjaGu9+3WqsQaQ\n3KbRscO31rlbFq/z9p/9IwCdd71GqdSKv/1kZbep0vupke7rm/tZej9tqssai9fh/eTvZfH5red9\nvXidSu6nRrqv70fy/+V/w1cs/Hf54SeAt723rvvRaMSMGETksyLymIg8IiKNd9YAJBdhyf/+6fnw\nX5j3K6Njh1Hc+y/47Oc+j5/4qbfc9TonT43hn/65snWqsQaQ3KZqr/Orv/bmitb40pcr30ul91Mj\n3dc391PpOtW+r3k/+XtplPt68TqV3E+NdF/fj7hF/2s6cqDOu9FpyAux1YXgFV95/c5tAQw8/dVV\nXa+RaGttBQC8dKAfv/fbv3XX67S0VL5ONdYA/Ns08NzXVbzOL7zj/RWt8fiu6t6meq0B1O5+0rjT\nfVet28T7qTZ7uXn/NdL91Ej3daPT/3B/zdYWLLwj1oA03B90zYJzTl74i1HtGwGrKNegOePnlfob\nfmEjigc60f/EdXzgVyeW7U3q2vH062AX0ItcXq83+f3O6s0b9Rpw48Y1/OqvvRm/8I73Y926u39r\nvRrrNNJeqrUO91LbdRppL9Vah3up7Tq13ovMzek/MD/vlaRUUhoBzGm9xrplP5MMa915P7uWrK1c\nd8z5mbjkeEqvVgOAsr/Gi3//Tege34dL257B0R+8fQErSq+5tnWZFGW/fvqq/+eVZlh/1V6IqWF9\nJZQP54ywvhLsz+VQGGrxQotqWD9nhfXzFYf1i0MtXsiSYf3VfbxG3ttKH497Wx3H494a7Hgielj/\ny+XsYf25Of33U8FlD+vvawoI68cojHZgYGcqrD+ohPXnYxQOr8PAI0vrQWH9Q0pYf84I68/HKJ5a\nj/4dqbD+MSWsH4ke1j/p1xALiuMb0L8tFdZ/9380L8T40SQhhBBCSJ3ghRghhBBCSJ3ghRghhBBC\nSJ3ghRghhBBCSJ1YtWH9Fz6hWJNqs7mIUrTMRKXXshidUc+HmJD+8UzjcZVZk4QQQu6CyDIQdWNR\nSr4JiTnDblR61Z8HVBsTJcWkBIB53UwUrV4yLEZty1avYkKqhiZgGp3QypYdqV0/xXrvV/3uq1bV\niKNMDDwx49USEzJVt6xJbRySs6zJVt+azBvWpDH6qDDcmtmaLAyt9WwXl49R2LcGA88srRcG8wHW\npDOsyfy9axo1yPEaeW8rfTzubXUcj3trsOOVY/X1e/cLUH8H7P53+Pb97Jz++6novN+HMj+nW5N7\n84o1WdKtydkIhdF1GNi51IRURxzNxSgcWYeBh9PW5Dr0p6xJzMeZRxzJnD7KCHORbk0eV8YWWdbk\nqfWeHWlZk8vBjyYJIYQQQuoEL8QIIYQQQuoEL8QIIYQQQuoEL8QIIYQQQurE6rUm/2xE+0a2GqDb\nlJbxqNWtS1hnmYnaGpYJGWBNausadZc33Axak4SQe4FKf58FzSuuIbGv7ok24xEwjUXR6tb8yHlf\nTRTNjgSAslK3ZkrOG/eHZj0ahiU069GaEzmrWJNWr2VTaoZkZNif2hLGY/CrP/jq+8SaHG4zrEnf\npjStSdWwbPNMSuRcYjd6MyjzAdZkvnJrcmitN38yqSvWZJNDYU8eA88trdOabKzee/143NvqON6q\n3FvBVbaGc41xLnbDsyOlFCXGYup1vfDvUH8H7N4N73cL5ubU31uFYs77HSlzc8nvvsenl/bub8LA\nrpQ1OVdG4VAHBh5bak3KXKxak4UD7d5MSdua7NCtyeOdniFZHOnwZ0qWLGsy1k3IE4o1WY5VE7Jw\nWrEjY0HxzAb0b6U1SQghhBDS8PBCjBBCCCGkTvBCjBBCCCGkTjCsv6TGsD4hhKxaGNa/3c+wfrIH\nhvVrR396xAKAwsE2bxyDM8P6SrA/t0xYPx3sz+njkJDP6WHIA23+OKR8HoXBZi/EXzjQooT184Fh\n/bX+2Iu8qGH94mBtQquNHPZd6eM18t5W+nj3/N4qDYzXcM8NcT/F+qieQtGvQWL1NWt3MefVACTr\nPqvUtZC7UoMzhCal5oxeq1/ds4i+t2LOf/0ulVHY1+S93u8uKKOMgGRsUVoQm5tTf2/t3uO8352Y\nn0PhYLs3zqiwv9kfZTQXozDagYGdqbD+TITC2DpvnFHhYIcXype5GMWjnV4wv3iowxtlhLkYxROd\n6H9wab0w1mGMMtqA/h2p8HzJGFt0otML4EukB/CLpzegf+vVpesKUDyz0a8vAz+aJIQQQgipE7wQ\nI4QQQgipE7wQI4QQQgipE7wQI4QQQgipE6vWmnz+Y8PKN4IWUX7cWCCnGY/GNWxI3exVLEbDjnSW\n8aitba6hOBvW3hrFKlptmM8zpR4HPCeNdUOe1840iwPua9VCtn6+Vo8h4zZr5yL0ZU9Zwz7Hld9/\nlS5bs1NsEbI36zbrCpreG/IcqRWhr4UB97Uo1qRq8wGAaVMqJqRmPBq9lo2JkmJ0WsbjnFEvK7fF\ntCYVE9IyHjV70zA3TZtSO8/W401bwrIm/+g19541mR67AOjWJIBkvFCqHmRYHmxXDMu8algin9et\nyeFW35rMWdZkqz+aIp9HYf8az44pHsh7JiWAZMxS2qZsyquGTnGwybd58oYFtac245CqsUYjH882\n6ZxvisWiW2V7DOsqyCrLbn8V9iqPCzh9b3sV480ZvQGPIauu9opx3rRzLMh+jm8eL1UX49wHmXsB\nvZAQ+y+g19pbQO/ye0u9Dokkj61UvbAnrxjgopqCei8WepXXQ804V2rL96aO55y6t9v7SO15r3X7\n/OPt3pPzTcgo1kfiFXP+75ab9ZQdKfNz+u/DfU0YeEnqd+r8PAojHZ4hWRhs9UcZzep2JGZjFA6v\n88YZFUY6MJCyI2UuRvFYp2dIFkc7vFFGMqePLSoe7kD/jmyjjKSkjy0qnlzvG4+RoHh2I/r7ltaL\n434NsaB4biP6e7Nbk6v2QowQQgghZCVYM3UZ7ugBuPkZYH4WmJ/B1osOuenNiB9+zuvPDf0zcmcO\no/zqH7nj2rwQI4QQQsjqJo6Qn70BXL0EzM3Azc0AszPA2nUAnvXa3ZFB7Pz/voA1+RvA3AwwNws3\nP4sHHvgG4Lte5/WvuzCMpqOfgjS3AM2tQHMLmuY3AtKtb+fhZxE/+ESmrfNCjBBCCCErSxQlF0oA\n0N7hf//0CeT2voDt42Xk1l6Dm5sFZmcgj7wE0dd/p9eee/4LeO4Tf4B8awvQ3AJpaQXWtiLe9TLg\nQf9CDOu7cPnFX4/OvhjS3AqsbYGsbcX4le3ohp+lu/LQ16H01U8uqZ0c34ju9EeTN2ldd8dTcBOG\n9Zf8OMP6d9wbw/p3B8P6d2iuBgzr34Jh/dpzn4f1m65fQdv4GPKz08hNTiE/N4Xc3AxmN2/H1We/\nKeldFNbfcOCf8eCnfxP52Wnk56bg4ghRcysuPfcanHjtz3ph/fbTw9h04IuImloRr21F1NyGqLkV\ns5t2YKr7UX1vqzSsv2ovxMqF57164WC7H+J3LhlRlKrbvRmD/fm8Guy3QvyFg21egB/5XBKqfyod\n7G/zR1Pk83pQ88BadbxFcajFD6Lmm/SQ7OAaL2Trmpr0IPK+NTUZh2TVG2I8jRUCL/ghcImjsAC3\nNsokNsLMZthXCwZnDxFb9cJ+rVcPKBf2rfFvh4N+O7Re6L1WXe21QuBqr7WuEQLX6mKcey0wLkYI\nfG/2cLlVr7hXRBWBtJpVFxhr7FPWWPZ4qde9WPTXvf1r/NdIQJWfrHqteoPWENF79Line truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1ab1e9b0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"True"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"interact(viewInv, iteration = IntSlider(min=0, max=opt.iter-1,step=1, value=0))"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1ba516d8>]"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1ef46908>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(survey.dobs)\n",
"plt.plot(invProb.dpred)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
+402
View File
@@ -0,0 +1,402 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 372,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from SimPEG import *\n",
"import simpegDCIP as DC\n",
"from ipywidgets import interact, IntSlider, FloatSlider, FloatText, ToggleButtons"
]
},
{
"cell_type": "code",
"execution_count": 221,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 230,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import matplotlib\n",
"import matplotlib.pyplot as plt\n",
"matplotlib.rcParams['font.size'] = 14"
]
},
{
"cell_type": "code",
"execution_count": 231,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"npad = 8\n",
"cs = 1.\n",
"hx = [(cs,npad, -1.3),(cs,100),(cs,npad, 1.3)]\n",
"hy = [(cs,npad, -1.3),(cs,50)]\n",
"mesh = Mesh.TensorMesh([hx, hy], \"CN\")\n",
"x = mesh.vectorCCx"
]
},
{
"cell_type": "code",
"execution_count": 232,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"circmap = Maps.CircleMap(mesh)\n",
"circmap.slope = 1e5\n",
"mapping = circmap\n",
"sighalf = 1e-3\n",
"rhohalf = 1./sighalf"
]
},
{
"cell_type": "code",
"execution_count": 233,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"xr = np.linspace(-40, 40, 20)\n",
"xz_A = Utils.ndgrid(xr, np.r_[-2.5])\n",
"xz_B = Utils.ndgrid(np.ones_like(xr)*19, np.r_[-2.5])\n",
"xz_M = Utils.ndgrid(xr, np.r_[-2.5])\n",
"xz_N = Utils.ndgrid(np.ones_like(xr)*-19, np.r_[-2.5])"
]
},
{
"cell_type": "code",
"execution_count": 364,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def DipoleDipolefun(i):\n",
" plt.figure(figsize=(10, 3))\n",
" nmax = 8\n",
" ntx = xr.size-2\n",
" dxr = np.diff(xr)\n",
" plt.plot(xr[:-1]+dxr*0.5, np.zeros_like(xr[:-1]), 'ko')\n",
" plt.plot(xr[i]+dxr[i]*0.5, np.zeros(1), 'ro')\n",
" # for i in range(ntx):\n",
" if i < ntx-nmax+1:\n",
" txmid = xr[i]+dxr[i]*0.5\n",
" rxmid = xr[i+1:i+1+nmax]+dxr[i+1:i+1+nmax]*0.5\n",
" mid = (txmid+rxmid)*0.5\n",
" plt.plot(rxmid, np.zeros(rxmid.size), 'go')\n",
" plt.plot(mid, np.arange(nmax)+1., 'bo')\n",
" plt.plot(np.r_[txmid, mid[-1]], np.r_[0, nmax], 'k:') \n",
" for j in range(nmax):\n",
" plt.plot(np.r_[rxmid[j], mid[j]], np.r_[0, j+1], 'k:') \n",
"\n",
" else:\n",
" txmid = xr[i]+dxr[i]*0.5\n",
" rxmid = xr[i+1:ntx+1]+dxr[i+1:ntx+1]*0.5\n",
" mid = (txmid+rxmid)*0.5 \n",
" plt.plot((txmid+rxmid)*0.5, np.arange(mid.size)+1., 'bo')\n",
" plt.plot(rxmid, np.zeros(rxmid.size), 'go')\n",
" plt.plot(np.r_[txmid, mid[-1]], np.r_[0, mid.size], 'k:') \n",
" for j in range(ntx-i):\n",
" plt.plot(np.r_[rxmid[j], mid[j]], np.r_[0, j+1], 'k:') \n",
" plt.xlabel(\"X (m)\")\n",
" plt.ylabel(\"N-spacing\") \n",
" xlim(xr.min(), xr.max())\n",
" ylim(nmax+1, -1)\n",
" plt.show()\n",
" return "
]
},
{
"cell_type": "code",
"execution_count": 365,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def getPseudoLocs(xr, ntx, nmax):\n",
" dxr = np.diff(xr)\n",
" xloc = []\n",
" yloc = [] \n",
" for i in range(ntx):\n",
" if i < ntx-nmax+1:\n",
" txmid = xr[i]+dxr[i]*0.5\n",
" rxmid = xr[i+1:i+1+nmax]+dxr[i+1:i+1+nmax]*0.5\n",
" mid = (txmid+rxmid)*0.5\n",
" xloc.append(mid)\n",
" yloc.append(np.arange(nmax)+1.)\n",
" else:\n",
" txmid = xr[i]+dxr[i]*0.5\n",
" rxmid = xr[i+1:ntx+1]+dxr[i+1:ntx+1]*0.5\n",
" mid = (txmid+rxmid)*0.5 \n",
" xloc.append(mid)\n",
" yloc.append(np.arange(mid.size)+1.)\n",
" xlocvec = np.hstack(xloc)\n",
" ylocvec = np.hstack(yloc)\n",
" return np.c_[xlocvec, ylocvec]"
]
},
{
"cell_type": "code",
"execution_count": 366,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"dxr = np.diff(xr)\n",
"ntx, nmax = xr.size-2, 8\n",
"xzlocs = getPseudoLocs(xr, ntx, nmax)"
]
},
{
"cell_type": "code",
"execution_count": 367,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmIAAADaCAYAAAAFUC7XAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGaVJREFUeJzt3XucXGWZ4PHfQ5oQ5C5R8I4ExEFQHGQ+IoiNbgjK6KII\nqAyDuosiCuNtVdQ1jVy8oCAkzgh+1BEcHZRxFBJgQIeGcdHBCzu4IiA3wdEFZCEISYeEfvaPczpU\nikqnqrurTled3/fzqQ9V7zl1nvc8dJKn3/Oe90RmIkmSpN7bpOoOSJIk1ZWFmCRJUkUsxCRJkipi\nISZJklQRCzFJkqSKDFXdgQ2JCG/nlCRJfSMzo9PvzOoRscz01fBavHhx5X2YjS/zYl7MizkxL+al\n6tdUzepCTJIkaZBZiEmSJFXEQqyPDA8PV92FWcm8tGZeWjMvT2ROWjMvrZmXmRXTua7ZTRGRs7Vv\nkiRJjSKCHLTJ+pIkSYPMQkySJKkiFmKSJEkVsRCTJEmqiIWYJElSRSzEJEmSKlJJIRYRx0fEHRGx\nKiJ+FhH7V9EPSZKkKvW8EIuII4EvAKcCewHXApdFxLN63RdJkqQqVTEi9n7ga5n5lcy8OTNPBP4A\nvGs6B12+fDmLFi1ieHiYRYsWsXz58hnp7GyMW5eYVcX1XAcvZlVx6xKzqrh1iVlV3KrO9XMjIxw8\nfz6HbrstB8+fz+dGRroec+T0Eea/cD7b7rUt8184n5HTux9znR4/mXwusAY4rKl9KTDa1JbtWrZs\nWS5YsCCBda8FCxbksmXL2j7GVFQRty4xq4rruQ5ezKri1iVmVXHrErOquFWd6xmLF+dRQ0OZsO51\n1NBQnrF4cddiLj5tcQ69aCgZYd1r6EVDufi0zmKWdUvntdFUvjTVF/B0YBzYv6n9E8BNTW1tn/xB\nBx203g/LxGvRokWd5LBjVcStS8yq4nqugxezqrh1iVlV3LrErCpuVee6aPvtMyFXQj7WUIwdvP32\nXYu5/Z7bFwXYR1mvGNv+hZ3FnGohNsQsNtIwHDk8PLzBB42uXr26ZfvY2FgXelVt3LrErCqu5zp4\nMauKW5eYVcWtS8yq4lZ1rvPWrgXgQ8B+wJvK9s3K9m5Yu8laeAz4CnA0sGXZHpPHHB0dZXR0dNrx\ne12I/ZHidHdoat+BYp7YekbavC682WabtWyfN29eR53rVBVx6xKzqrie6+DFrCpuXWJWFbcuMauK\nW9W5jg0VZcmngC0a2lcPda9cGRofgjnA24GG0x7KyWM2DxCdfPLJU+vAVIbRpvMCfgKc29R2C3Ba\nU1vbw4Fetx+8mFXF9VwHL2ZVcesSs6q4dYlZVdzZNEfsiDlzujZHbNWqVfmJUz5R6RyxKL7bOxFx\nBHABcDzF0hXHAW8DXpCZdzfsl530bfny5SxZsoSxsTHmzZvHCSecwCGHHDLDvZ8dcesSs6q4nuvg\nxawqbl1iVhW3LjGrilvVuX5uZIQfLl3KZmvXsnLOHG6YM4dbbr2VrbfeesZjLV68mB133JF7HriH\npRcuZW2sZSiHeM+R72HkoyMdHSsiyMzotA89L8QAIuJdFJeAnwb8EnhfZv6oaZ+OCjFJkjR4Hnro\noa4UYVDMedtkk02YO3futI/VV4VYOyzEJElSo4nRudlynEZTLcR81qQkSZr1LrnkEo4//vhpH+em\nm25i4cKFzJbBHkfEJEnSrDc+Ps4jjzzCVlttNe1jrVixgm222WYGevU4L01KkqRamMqlxW5cjmzk\npUlJklQLxxxzDFdddVXb+2cmCxcu5JZbbulir6bGETFJktRXHnzwQbbZZhsi2h+AevDBB9l22227\n1icvTUqSpNpZvXr1Bp8EsLZ8NNJQF1fmn+ClSUmSVCv3338/++yzD48++mjL7eeeey6nnXZaj3vV\nGUfEJElS33rggQfYbrvtWm5bs2YNq1evZsstt+x6P7w0KUmSamvZsqs5++zLWbNmMzbddIz3vvc1\nHHLIAT2LP9VCrPsXTSVJkrpo+fJrePvbz+C++/ageIT1q7n99qIm6mUxNhXOEZMkSX3tnHOu4L77\nvgt8HNgR+CG33/4pliy5suKebZwjYpIkqa+tXj0EzC1fAE8GYGxsTlVdapsjYpIkqa9tttnalu3z\n5j3W4550zkJMkiT1tRNPPIgFCz62XtuCBR/lhBMWVtSj9nnXpCRJ6nvLl1/DkiVXMjY2h3nzHuOE\nExb2xV2TFmKSJEnT5Mr6kiRJfcZCTJIkqSIWYpIkSRWxEJMkSaqIhZgkSVJFLMQkSZIq0tNCLCJO\nioifRsSKiLg3Ii6OiBf0sg+SJEmzRa9HxF4BLAX2BV4JrAV+EBHb9bgfkiRJlat0QdeI2AJYAfzX\nzFzetM0FXSVJUl/o1wVdty778EDF/ZAkSeq5qkfEvg0sAF7SPPzliJgkSeoXUx0RG+pGZ9oREWcC\nLwP2t+KSJEl1VEkhFhFnAUcAB2bmnRvab2RkZN374eFhhoeHu901SZKkjRodHWV0dHTax2nr0mRE\nHAO02jGBMeDWzLy+rYARZwOHUxRhN0+ynwNlkiSpL0z10mS7hdjDwFyKEbTxsnkTiuUnEtgU+N/A\nosy8b5LjfBH4K+BQ4NcNm/6UmY807WshJkmS+kK375p8I3A9sB+wefnaD/g5cBjwYiCAszZynHcB\nWwI/BH7f8PpApx2XJEnqd+2OiN0IvD0zf9LU/lLga5n5ZxFxIPCNzHzGjHTMETFJktQnuj0i9lxg\nZYv2leU2gDsBV8iXJElqU7uF2HXA5yPiaRMN5fvPAf9eNu0K3D2z3ZMkSRpc7RZixwJPB+6KiN9G\nxG+Bu8q2/17uswVw6sx3UZIkaTC1vbJ+RGwCLASeXzbdBFzRrYlczhGTJEn9oqvLV1TBQkySJPWL\nrj/iqLxD8lXAU3j8kmYAmZkndhpYkiSp7toqxCLig8BngVsp1v2aGKoKWq+4L0mSpI1odx2xu4HP\nZObS7ndpXUwvTUqSpL7Q7XXEtgYu7fTgkiRJ2rB2C7F/BA7uZkckSZLqpt3J+ncBn4yI/YAbgDWN\nGzPzzJnumCRJ0qBrd47YnQ0fn/CFzHxuc9t0OUdMkiT1C9cRkyRJqki3J+tLkiRphm1wjlhEnAOc\nlJmPRMQSWq8X5oKukiRJUzTZZP0XApuW7/dkkkJspjslSZJUB84RkyRJmqauzhGLiLkRsXmL9s0j\nYm6nQSVJktT+ZP2LgHe2aH8n8O2Z644kSVJ9tFuIvQy4skX7lcB+M9cdSZKk+mi3EHsS8FiL9gS2\nmrnuSJIk1Ue7hdgvgbe0aH8z8H9mrjuSJEn10e6zJk8Gvh8RuwA/LNv+C3A48PpudEySJGnQtTUi\nlpmXAq8FngOcU76eBbw2My+ZSuCIOCkixsvFYiVJkmqn3RExMvNy4PKZCBoRLwWOBW7ABWElSVJN\n9fxZkxGxDfAN4G3AA72OL0mSNFu0u6DrZhHxyYj4TUSMlZcUJ16t7qaczHnAdzLzaopHJEmSJNVS\nuyNinwSOAT4PjAMfBJYCfwTe3W6wiDgW2Bn4eNnkZUlJklRb7c4ROwI4LjMvi4gzgO9n5m0R8WuK\nuye/tLEDRMRuwGnA/pk5MYoWTDIqNjIysu798PAww8PDbXZXkiSpe0ZHRxkdHZ32cdp66HdErASe\nn5l3RcQfgL/MzJ9HxM7Af2TmRhd1jYi3Al9l/YVh51CMij0GbJGZaxr296HfkiSpL3T1od/AXcAz\nyve3AQeX718KrGrzGP8M7AG8qHztBfwM+BawV2MRJkmSVAftXpr8HvAq4MfAF4BvlfO9ngGc0c4B\nMnMFsKKxrRxpeyAzb2y7x5IkSQOirUIsMz/S8P6iiPgdxcO+b87MZdOInzhhX5Ik1VRbc8Sq4Bwx\nSZLUL7o9R4yI2DsiLoiIn5evCyJi704DSpIkqdDugq5HAdcBOwKXlq8dgesi4ujudU+SJGlwtbt8\nxZ3AeZl5elP7ScA7M3OnGe+YlyYlSVKf6PalyacA327RfhHw1E6DSpIkqf1CbBQ4sEX7K4CrZ6w3\nkiRJNdLuOmKXAp+KiJdQrCUGsC/wemAkIt4wsWNmfndmuyhJkjSY2p0jNt7uATOz7TsxNxLTOWKS\nJKkvTHWOWLsLus5IcSVJkqTHTbnAiohNZ7IjkiRJddPuOmJ/ExFvbPj8VWAsIm6JiN261jtJkqQB\n1u6I2InAfQARcQBwOPAW4Hrg893pmiRJ0mBr967JpwO3l+9fC1yUmRdGxA3Aj7rSM0mSpAHX7ojY\nQ8AO5fuFwA/L92uBeTPdKUmSpDpod0TsCuDLEfELYBfgsrJ9d+CObnRMkiRp0LU7IvYeikuQ84E3\nZub9ZfvewDe70TFJkqRB19aCrlVwQVdJktQvuv3Q78ZAyyPiaZ1+T5IkSeubyoKuBwCbz3RHJEmS\n6sZHF0mSJFVkKoXYXRTLVkiSJGkaJp2sHxFPbtUMrPelzPx/M9wvJ+tLkqS+MdXJ+htbR+yPbRwj\ngTmdBpYkSaq7jRVir9xAewIHA+8F1nQSsLzj8tPAq4GtKB6d9K7MvKaT40iSJPW7SQuxzBxtbouI\nPwc+C7wcOA/4ZLvBImJb4H8B1wCvoXiQ+M7AvW33WJIkaUC0+4gjImJn4DTgcOCfgN0z87YO430I\n+M/MfGtD2287PIYkSdJA2OhdkxExPyLOBn5N8eDvfTPzyCkUYQCHAtdFxIURcU9EXB8R757CcSRJ\nkvrepIVYRHwcuA0YBg7NzFdm5k+nEW9n4HjgVuAg4Gzg0xZjkiSpjja2fMU4MAZcBYxTTNJvvjUz\nM/N1bQWLeBS4LjP3b2g7DXh9Zu7etK/LV0iSpL7QreUrzufxNcM2dPBOqqXfAzc2tLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x10a35a610>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"interact(DipoleDipolefun, i=IntSlider(min=0, max=ntx-1, step = 1, value=0))"
]
},
{
"cell_type": "code",
"execution_count": 238,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"txList = []\n",
"zloc = -2.5\n",
"for i in range(ntx):\n",
" A = np.r_[xr[i]+dxr[i]*0.5, zloc]\n",
" B = np.r_[mesh.vectorCCx.min(), zloc] \n",
" if i < ntx-nmax+1:\n",
" M = np.c_[xr[i+1:i+1+nmax], np.ones(nmax)*zloc] \n",
" N = np.c_[xr[i+2:i+2+nmax], np.ones(nmax)*zloc] \n",
" else:\n",
" M = np.c_[xr[i+1:ntx+1], np.ones(ntx-i)*zloc] \n",
" N = np.c_[xr[i+2:i+2+nmax], np.ones(ntx-i)*zloc] \n",
" rx = DC.RxDipole(M, N)\n",
" src = DC.SrcDipole([rx], A, B)\n",
" txList.append(src)"
]
},
{
"cell_type": "code",
"execution_count": 239,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"survey = DC.SurveyDC(txList)\n",
"problem = DC.ProblemDC_CC(mesh, mapping = mapping)\n",
"problem.pair(survey)"
]
},
{
"cell_type": "code",
"execution_count": 240,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from pymatsolver import MumpsSolver\n",
"problem.Solver = MumpsSolver"
]
},
{
"cell_type": "code",
"execution_count": 422,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"sigblk, sighalf = 2e-2, 2e-3\n",
"xc, yc, r = -15, -8, 4\n",
"mtrue = np.r_[np.log(sigblk), np.log(sighalf), xc, yc, r]\n",
"dtrue = survey.dpred(mtrue) \n",
"perc = 0.1\n",
"floor = np.linalg.norm(dtrue)*1e-3\n",
"uncert = np.random.randn(survey.nD)*perc + floor\n",
"dobs = dtrue + uncert "
]
},
{
"cell_type": "code",
"execution_count": 429,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def DC2Dfwdfun(mesh, rhohalf, rhoblk, xc, yc, r, dobs, uncert, predmis):\n",
" sighalf, sigblk = 1./rhohalf, 1./rhoblk\n",
" m0 = np.r_[np.log(sighalf), np.log(sighalf), xc, yc, r]\n",
" dini = survey.dpred(m0)\n",
" mtrue = np.r_[np.log(sigblk), np.log(sighalf), xc, yc, r]\n",
" dpred = survey.dpred(mtrue)\n",
" xi, yi = np.meshgrid(np.linspace(xr.min(), xr.max(), 120), np.linspace(1., nmax, 100))\n",
" appres = dpred/dini/sighalf\n",
" appresobs = dobs/dini/sighalf\n",
" pred = griddata(xzlocs[:,0], xzlocs[:,1], appres, xi, yi, interp='linear')\n",
" obs = griddata(xzlocs[:,0], xzlocs[:,1], appresobs, xi, yi, interp='linear')\n",
" fig = plt.figure(figsize = (12, 8))\n",
" ax1 = plt.subplot(311)\n",
" dat1 = mesh.plotImage(np.log10(1./(mapping*mtrue)), ax=ax1, clim=(0, 3), grid=True, gridOpts={'color':'k', 'alpha':0.5})\n",
" cb1 = plt.colorbar(dat1[0], ticks=np.linspace(0, 3, 5), ax=ax1, format=\"$10^{%4.1f}$\")\n",
" cb1.set_label(\"Resistivity (ohm-m)\")\n",
" ax1.set_ylim(-30, 0.)\n",
" ax1.set_xlim(-40, 40)\n",
" ax1.set_xlabel(\"\")\n",
" ax1.set_ylabel(\"Depth (m)\") \n",
" ax2 = plt.subplot(312)\n",
" dat2 = ax2.contourf(xi, yi, obs, 10)\n",
" ax2.contour(xi, yi, obs, 10, colors='k', alpha=0.5)\n",
" ax2.plot(xzlocs[:,0], xzlocs[:,1],'k.', ms = 3)\n",
" cb2 = plt.colorbar(dat2, ax=ax2, ticks=np.linspace(appresobs.min(), appresobs.max(), 5), format=\"%4.1f\")\n",
" \n",
" cb2.set_label(\"Apparent Resistivity \\n (ohm-m)\")\n",
" ax2.set_ylim(nmax+1, 0.)\n",
" ax2.set_ylabel(\"N-spacing\") \n",
" ax2.text(-38, 7, \"Observed\")\n",
" \n",
" ax3 = plt.subplot(313)\n",
" if predmis==\"pred\":\n",
" dat3 = ax3.contourf(xi, yi, pred, 10)\n",
" ax3.contour(xi, yi, pred, 10, colors='k', alpha=0.5)\n",
" ax3.plot(xzlocs[:,0], xzlocs[:,1],'k.', ms = 3)\n",
" cb3 = plt.colorbar(dat3, ax=ax3, ticks=np.linspace(appres.min(), appres.max(), 5),format=\"%4.0f\")\n",
" cb3.set_label(\"Apparent Resistivity \\n (ohm-m)\")\n",
" ax3.text(-38, 7, \"Predicted\")\n",
" elif predmis==\"mis\":\n",
" mis = (appresobs-appres)/(0.1*appresobs)\n",
" Mis = griddata(xzlocs[:,0], xzlocs[:,1], mis, xi, yi, interp='linear') \n",
" dat3 = ax3.contourf(xi, yi, Mis, 10)\n",
" ax3.contour(xi, yi, Mis, 10, colors='k', alpha=0.5)\n",
" ax3.plot(xzlocs[:,0], xzlocs[:,1],'k.', ms = 3)\n",
" cb3 = plt.colorbar(dat3, ax=ax3, ticks=np.linspace(mis.min(), mis.max(), 5), format=\"%4.2f\")\n",
" cb3.set_label(\"Normalized misfit\")\n",
" ax3.text(-38, 7, \"Misifit\") \n",
" ax3.set_ylim(nmax+1, 0.)\n",
" ax3.set_ylabel(\"N-spacing\") \n",
" ax3.set_xlabel(\"Distance (m)\") \n",
" plt.show()\n",
" return True"
]
},
{
"cell_type": "code",
"execution_count": 430,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"DC2Dfwd = lambda rhohalf, rhosph, xc, zc, r, predmis: DC2Dfwdfun(mesh, rhohalf, rhosph, xc, zc, r, dobs, uncert, predmis)\n",
"# DC2Dfwdfun(mesh, 1000., 1e1, 0., -9, 4, dobs, uncert, \"pred\")"
]
},
{
"cell_type": "code",
"execution_count": 431,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x109567310>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"True"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"interact(DC2Dfwd,\n",
" rhohalf = FloatSlider(min=0, max=1000, step=1, value = 500),\n",
" rhosph = FloatSlider(min=0, max=1000, step=1, value = 50),\n",
" xc = FloatSlider(min=-40, max=40, step=1, value = -15),\n",
" zc = FloatSlider(min= -20, max=0, step=1, value = -8),\n",
" r = FloatSlider(min= 0, max=15, step=0.5, value = 4),\n",
" predmis = ToggleButtons(options=['pred','mis']) \n",
" )"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
+506
View File
@@ -0,0 +1,506 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from SimPEG import *"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: pylab import has clobbered these variables: ['linalg']\n",
"`%matplotlib` prevents importing * from pylab and numpy\n"
]
}
],
"source": [
"%pylab inline"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"cs = 0.5\n",
"mesh = Mesh.TensorMesh([np.ones(100)*cs, np.ones(50)*cs], \"CN\")\n",
"x = mesh.vectorCCx"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"actind = mesh.gridCC[:,1] < -1.\n",
"meshact = Mesh.TensorMesh([mesh.hx, mesh.hy[:-2]], x0=mesh.x0)\n",
"actmap = Maps.ActiveCells(mesh, actind, 1e-2)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"circmap = Maps.CircleMap(meshact)\n",
"circmap.slope = 1e5"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"mapping = actmap*circmap"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"\n",
"# mapping = Maps.CircleMap(mesh)\n",
"mtrue = np.r_[np.log(1e0), np.log(1e-3), 0., -3., 2.]\n",
"m0 = np.r_[np.log(1e-3), np.log(1e-3), -3, -5., 1]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import simpegDCIP as DC"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"xr = np.linspace(-15, 15, 20)\n",
"xz_A = Utils.ndgrid(xr, np.r_[-0.25])\n",
"xz_B = Utils.ndgrid(np.ones_like(xr)*19, np.r_[-0.25])\n",
"xz_M = Utils.ndgrid(xr, np.r_[-0.25])\n",
"xz_N = Utils.ndgrid(np.ones_like(xr)*-19, np.r_[-0.25])"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"ntx = xz_A.shape[0]\n",
"txList = []\n",
"for i in range(ntx):\n",
" offset = abs(xz_A[i,0]-xz_M[:,0])\n",
" actrx = offset > 5.\n",
" rx = DC.RxDipole(xz_M[actrx,:], xz_N[actrx,:])\n",
" src = DC.SrcDipole([rx], xz_A[i,:], xz_B[i,:])\n",
" txList.append(src)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"survey = DC.SurveyDC(txList)\n",
"problem = DC.ProblemDC_CC(mesh, mapping = mapping)\n",
"problem.pair(survey)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from pymatsolver import MumpsSolver\n",
"problem.Solver = MumpsSolver"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"dini = survey.dpred(m0)\n",
"dtrue = survey.dpred(mtrue)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEACAYAAACtVTGuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsvXeYXGd99/25z/SyVWV3+oyKJcu4gDE2YMhiMBhwbEgI\nmNBxGiZA3jwQWgA7eSGBhOTNQwKkhyTU5AkOTmgOIOqLbYyrJKtLq12tVtL2NjOn3M8fZ2Z3yjln\nzhkhrLXP57p8XfLs/uYeSav7e35dSCnx8fHx8fGxQ3m8P4CPj4+Pz4WNLxQ+Pj4+Po74QuHj4+Pj\n44gvFD4+Pj4+jvhC4ePj4+PjiC8UPj4+Pj6OnDehEELkhBDfEULsEUI8KoR4e+31QSHE3UKIA0KI\nbwoh+hts3iuEOCiEeEwI8cLz9dl8fHx8fNwjzlcfhRBiGBiWUj4ohEgC9wMvA94EnJVSfkwI8W5g\nQEr5HiHELuBzwFVABvgf4CIppXFePqCPj4+PjyvOm0chpTwlpXyw9utFYB+mANwEfKb2bZ/BFA+A\nm4HPSylVKeUx4BDwjPP1+Xx8fHx83PFzyVEIIYrAU4F7gCEp5WTtS5PAUO3XaWCswWwMU1h8fHx8\nfB5HzrtQ1MJO/wd4h5RyofFr0ox7OcW+/PkiPj4+Po8zwfP55kKIEKZI/IuU8s7ay5NCiGEp5Skh\nRAo4XXt9HMg1mGdrrzW+ny8cPj4+Pl0gpRTd2p7PqicB/D2wV0r5/zV86SvAG2q/fgNwZ8Prtwgh\nwkKIErAduLf1faWUT9j/PvShDz3un8H//fm/vyfb7+3J8Ps7V86nR/Fs4LXAw0KIB2qvvRf4Y+BL\nQohbgWPAKwGklHuFEF8C9gIacJv8WfwOfXx8fHzOifMmFFLKH2DvsbzAxuYjwEfO12fy8fHx8fGO\n35l9ATEyMvJ4f4Tziv/7W788kX9v8MT//Z0r563h7nwghPCjUT4+Pj4eEUIgL8Rkto+Pj4/PEwNf\nKHx8fHx8HPGFwsfHx8fHEV8ofHx8fHwc8YXCx8fHx8cRXyh8fHx8fBzxhcLHx8fHxxFfKHx8fHx8\nHPGFwsfHx8fHEV8ofHx8fHwc8YXCx8fHx8cRXyh8fHx8fBzxhcLnCY+U5n/d8s1vQqXSne3oKHzi\nE92f/Vd/Bd/5Tvf2htG9rY9PHV8ofC54NA2+9KXu7d//fvjgB7uzffRReMlL4JFHurN/xzvg05/u\nznbvXvid34Gf/KQ7+4MHIZ+HpaXu7O+6Cz760e5sAb7/fZib697e58LBFwofVywsmBdXt7z//fDg\ng93ZfvrT8KY3dWd78CD86Z/C6dOdv7cVKc2L3jCgXPZu/5WvwHd2S5Y17ze1qsKv/zpszs+yUF7u\nyv71r4fxcVhc9GzO6Khp/73vebcFuPdeeP7z4Vvf6s7+pz+FF76we0+wWu1eIH3a8YXiScThw93b\n/voHHuBXP/ZPXdn+6Efwkf/5BN99+Ihn27Nn4faPnWH5mg96vjQMA37zN2HHFTNMVyc9n/2Xfwnz\nyxXSb/5dJuenPNmOj8Ov/4bk2jveyfjzn+/57Pe9D0TqQRZev4t71H/wZCslvPWt0L95kYHr/p7l\nFW/xp9lZuPFGeOa1VRb1GU+2AEeOwC//MsRe+EccXzjk2f7YMXjpaw/zrcFXMjnpXSkWF+EZNz3I\nG953n2fbRkZHTcH18YXiScM9Dyyw7YM3MX56xbPtvv0aX6y8iRN9X/BsW63C6+74Brzk7eydu8eT\nrZTw5lt1km98DTzrY1Sr3s7+6EdhhSlmXn4tDya9bdj94Q/hDz5cof/XXsV47s85Nu9eZefn4aW/\nqFJ861t4QP0SetjbZfuJT8Dn7v0G+5/xQvqVHMuae5dASnj3u+HbR7/NvpFLmXnurzE57/78s2fh\nRS+CXS/4CQdGrmLPlt/w9Nn37IHrroOb3vnfzF/1Pg4veXMjH30UnjNSJfyaWzB2/jvffeCkJ/vT\np+E5LzvAniufz7erf+zJtpEv3rlA6d2/wh995tzEBuDQEe2ccmQXAheUUAghbhBCPCaEOCiEePfj\n/XkuNG758Of5vb++uzvbT98OF93FxMysJzvDgBs//HEiGyZQ8R4Ceev7jzF+1ZsY1C5hvuItBvLR\nj0p+NPgWtmw1QNGYW3D/ePfv/w7/+x9PMvey61AUKMsF17YPPAAve/UUmXe/mP7eEIPL17Cw4k5g\np6fh+l+cY+qGG9mwZZT/+OWvIhV3cSsp4Q8/rPL73/l91Je+kS/f8h9cEn4xFd2d/fIy3PLGOf7p\nzFtYueENfOrGTxJcSTO/7M7+/vvhqdfvZ/5Fr+R7mZu4uO9KVOHuz01K+OxnzUt62zveyufLr6NX\n28qK6q4KQNPgk5+EkecZ5N72Rp6+PU+2ej3f3ne/K3uAr34VLhs5yJFrX8DbnvWbzMbvQ9ddmwNm\nTuXN7zzM6/5nhMi2H3HXgbu8vUEDmgZv/9g97PjELr73iHdv+kLighEKIUQA+EvgBmAX8GohxMWP\n76e6sNi/eA8PnXb/D6fO2dkyxzZ9CqW8gbklbx7Fez/1A05k/5w/uPpTaMKbUHz8byb4jPZiPvi8\n91Ayrmex6l4o/vrvqvy/j9xK/qqH+c9bvoxQk0wtuAs6f+5z8Bsf/h7y1qt57VNfxevyH6Aq3dl+\n/evwvDd/B/FbV3L9JVfyhV/+AhHZx2Kl85/bgw/CU17xn+wbuYyXXbuDr7z6K2T7NyODKx2fKCcn\n4XmvvZePnnkOV770fh657UGuzV9LLBSlojlf9FLC176hUnzlX/GV/A5uvElnz1sf4cXbX0zAiLGw\n4mx/5gy8+m37uPZjtzL3y9fyhhc+jYNvO8jNpdehi84i8+MfS6565bf5re/9Irz5Wq65fIA9t+0h\nrT2no1AYBnz1q5Kd1/2Ej933AeLvvojE5jP868v/lV19T+f+iZ92tL/7brj+xWXe/Cdfpvra5/Dx\nmz7Ix1/yYURkgR8/6i7kOD1tPpjkXvpZPhe/hg+9/PX8wdP/lv0rP3Bl38jiInzs0+NsvPXX+PTc\nL/KXN/8xv3DZFs/vcyERfLw/QAPPAA5JKY8BCCG+ANwM7Hs8P9SFhCENllXvoaPlagWMEKHqZmY9\nCsW3Tt7J83vexs5NO9EV90KxUtZ5155f4HdG3sj7nv92vv79D7Couns6/cS/HOOdD76S5zwvzX++\n/lskwgkULcnUwiLQ72j7lvec4F9OvpfELd/hH37pb3nJ9pfw0TvvooqzUCwswG988CHunP5Del51\nD//4S5/mpRe9FICwEmWpav/nNjUl+e0/+R7/Z/JjbHjBIe589T9yXek6AJLRKATLaBqEQu22k5OS\n93zqB3zuyJ8R3n4ff/KS2/nNq96MIsxnuFgoStWwvqxVFT571xgf/PI/MJH6Wy553sV85jXf4PLh\ny1e/JyCjlt6QlPD9++b4gy/cxfdmPkso/wDveMlb+L2R/QzGBlc/u471RX9q0uBTX36Qv//hl5nc\n/Dk2Xh7lYy98B2986peIhWIAhESEsoVQGAb86P4F/uZrP+TOfXdRLnyFjS+O8ZorX8avXPI5rkpf\nhRCCa4pP4y/H/qnNXtPg2z+a5Z/uvo9vPPY9ykPfRX/mT7ls+BI+9sIvMFIcAWBD9el85Sf38ezL\nb7T8/e8/oHPn7lHu/MFeHpx4lN4r/4vhV8zypVvu5orhK5iYmeVd99zH/KJKb9LiL6/hvY4ehe/s\nNvjcD37IDxb/EbnjP3n5tb/Gp16zn8H4gK3teuFCEooMcKLh/8eAqx+nz3JBIjEoa96FQtcNhAwQ\nkDHml73ZG4ZBWMQYSMTRA+7LSBZWysjkOH/28vcBkAgmmS67Swh/bv/fcPnQ5dx9698ghLkPPqAn\nme5QvrNS1vm0vIL/dctt3P6CT5MMJwHoiyfQhPNnf+Off4b/ir+H33/pu/jd536GRDix+rWwEmPJ\nxqMwDEnq/c8lvvEsf/jat/OOX3gT0WB09evRoCkU5XK7UPzRZ3/A7//kDfQlovyvV/w6H3jx51Yv\n2Tp2QvG8932c78//K/QdZ+TKV3HnK/+Lp6Uvb/u+AFEWG0q2vnnfEd75hb/mwPKPqA4+xEV9I3zs\nF3+V33rOl5s+N0AyGkFvCJt96J+/ydf2/ICDCw8y1/tDkmIzI9e8hA/c/G88PfPU1b+r1T+3QISK\nVuHYxBwfv/NuHhzbz5G5xzjNo+gDB0jJK3n9zS/htuu+ycWbdrbZ3/i0K/nD+9/Ku//+vzhw6gTH\nZk8wuryXmciDiMRZUuIKbvzF5/LqZ76fZ+efRU+kp8l+R/Iq7nrsa2z69wTHzp7mxPQkx6dOMbZ8\niNngYxj9h4jJDZSecjG//spLee6Wt/NLF/8SASUAQGqgn1h5C3/0b1/n0kKOiZlZJufM/8anpxmf\nH+dMZZxZYwx6x5CJCYa3buPdV76Jt177Rwwlh9r+PtYrF5JQrPN0z/nHkN0JhaobIBWCRJl3GWtf\nPROdgBJgIBnHCLj3KFTdoDGymQwnGVs87spWkyqbA9ubLo6gkWRmyVkoyqoK4UX+9CV/2PR6fzyB\npjgLxYS6n+dGf5sPvOB3274WDcRYtvEoVM1AHf4h0x/SVr2ARsKBMCgaS8s6PT2Bpq997cDdPKPv\nZn70oY+3XZJ14uEIqtH8VG4Ykt2Rd/Jvr/8+L3v6NQQV+3/GwRah+OjXPsspHuCvXvUhXvnMa+iJ\nJG1te+JRjAah+INDN3Jd7+/x/1z1el438mlKG9O2tgCRmlDc9g9/zbenP8Mz+m/kl7ddx3WXvpUX\nX/FUIsGIo/2VWwts1q7kM3s/yeZojvymHDeXXsPNz/gTLs9vtfzzbuSVT7uBd333tLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x107614750>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot(dini)\n",
"plot(dtrue)\n",
"figsize(12, 5)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(array([ 1., 2., 5., 4., 10., 11., 13., 20., 17., 20., 23.,\n",
" 10., 0., 0., 4., 17., 29., 36., 32., 18.]),\n",
" array([-0.21911748, -0.05445749, 0.1102025 , 0.27486249, 0.43952249,\n",
" 0.60418248, 0.76884247, 0.93350246, 1.09816245, 1.26282245,\n",
" 1.42748244, 1.59214243, 1.75680242, 1.92146242, 2.08612241,\n",
" 2.2507824 , 2.41544239, 2.58010239, 2.74476238, 2.90942237,\n",
" 3.07408236]),\n",
" <a list of 20 Patch objects>)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x10a2ad990>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"hist(np.log10(abs(dtrue)), bins = 20)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"m1D = Mesh.TensorMesh([5])"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar instance at 0x10a7b12d8>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x10a698690>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"figsize(14*0.5,7*0.5)\n",
"circmodelest = mapping*mtrue\n",
"dat = mesh.plotImage(np.log10(circmodelest), clim=(-4, 1), grid=True, gridOpts={'alpha':0.5})\n",
"plot(xz_A[:,0], xz_A[:,1], 'w.')\n",
"plot(xz_B[:,0], xz_B[:,1], 'k.')\n",
"plot(xz_N[:,0], xz_N[:,1], 'r.')\n",
"# plot(temp.rxList[0].locs[0][:,0], temp.rxList[0].locs[0][:,1], 'bo')\n",
"plt.colorbar(dat[0])"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n",
" ***Done using same solver as the problem***\n",
"SimPEG.SaveModelEveryIteration will save your models as: '###-InversionModel-2015-11-10-16-33.npy'\n",
"============================ Inexact Gauss Newton ============================\n",
" # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n",
"-----------------------------------------------------------------------------\n",
" 0 0.00e+00 4.69e+03 0.00e+00 4.69e+03 3.97e+04 0 \n",
" 1 0.00e+00 2.80e+03 4.41e-03 2.80e+03 1.09e+03 0 \n",
" 2 0.00e+00 2.59e+03 3.14e+01 2.59e+03 1.43e+04 1 \n",
" 3 0.00e+00 1.31e+03 4.23e+01 1.31e+03 1.48e+04 3 \n",
" 4 0.00e+00 1.22e+03 5.74e+01 1.22e+03 1.49e+04 4 \n",
" 5 0.00e+00 8.55e+02 3.58e+01 8.55e+02 2.20e+04 0 \n",
" 6 0.00e+00 6.43e+02 5.20e+01 6.43e+02 1.71e+04 3 \n",
" 7 0.00e+00 4.57e+02 4.43e+01 4.57e+02 5.20e+03 0 \n",
" 8 0.00e+00 3.83e+02 6.55e+01 3.83e+02 1.54e+04 2 \n",
" 9 0.00e+00 3.67e+02 5.78e+01 3.67e+02 5.76e+03 1 \n",
" 10 0.00e+00 3.31e+02 6.61e+01 3.31e+02 1.20e+04 1 \n",
" 11 0.00e+00 3.30e+02 6.15e+01 3.30e+02 1.76e+04 2 \n",
" 12 0.00e+00 2.01e+02 4.84e+01 2.01e+02 8.75e+03 0 \n",
" 13 0.00e+00 1.54e+02 6.25e+01 1.54e+02 8.56e+03 2 \n",
"------------------------- STOP! -------------------------\n",
"1 : |fc-fOld| = 0.0000e+00 <= tolF*(1+|f0|) = 4.6952e+02\n",
"0 : |xc-x_last| = 5.6930e-01 <= tolX*(1+|x0|) = 1.2421e-19\n",
"0 : |proj(x-g)-x| = 8.5645e+03 <= tolG = 1.0000e-01\n",
"0 : |proj(x-g)-x| = 8.5645e+03 <= 1e3*eps = 1.0000e-02\n",
"0 : maxIter = 30 <= iter = 14\n",
"------------------------- DONE! -------------------------\n"
]
}
],
"source": [
"survey.dobs = dtrue\n",
"dmis = DataMisfit.l2_DataMisfit(survey)\n",
"dmis.Wd = 1./(0.01*abs(dtrue)+1.)\n",
"reg = Regularization.BaseRegularization(m1D)\n",
"opt = Optimization.InexactGaussNewton(maxIter=30,tolX=1e-20, maxIterLS=20)\n",
"opt.remember('xc')\n",
"invProb = InvProblem.BaseInvProblem(dmis, reg, opt)\n",
"invProb.beta = 0.\n",
"betaSched = Directives.BetaSchedule(coolingFactor=1, coolingRate=1)\n",
"targetmis = Directives.TargetMisfit()\n",
"savemodel = Directives.SaveModelEveryIteration()\n",
"inv = Inversion.BaseInversion(invProb, directiveList=[betaSched,targetmis, savemodel])\n",
"reg.mref = m0\n",
"mopt = inv.run(m0)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"XC = opt.recall('xc')"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from ipywidgets import interact, IntSlider"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def viewinv(iteration):\n",
"# iteration = 15\n",
" figsize(10,6)\n",
" ax1 = plt.subplot(211)\n",
" circmodelest = mapping*mtrue\n",
" if iteration > opt.iter-1:\n",
" circmodeltrue = mapping*mopt\n",
" else:\n",
" circmodeltrue = mapping*XC[iteration]\n",
" mesh.plotImage(np.log10(circmodelest), ax=ax1, clim=(-3, 0), grid=True, gridOpts={'alpha':0.5})\n",
" ax2 = plt.subplot(212)\n",
" mesh.plotImage(np.log10(circmodeltrue), ax=ax2, clim=(-3, 0), grid=True, gridOpts={'alpha':0.5})\n",
" plt.show()\n",
" return True"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmIAAAF/CAYAAADq9qU+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X+s5XV95/HXS5TWaNa2S8KPYRpwxegQKhBhbbbNYKx2\ncI04IVTNNoLsNk2wYho0Chq5pJtU464xtmVjIgo1BcO2hs4EUUZ3nNZdEF0GisCUAaVhsNKmIguN\nysC894/zRc7c+/3O3Dv3fj+f9+d7n4/kJvd8zrnn9Zr7HS7f+bzv+R5HhAAAAFDeC2oXAAAAWK84\nEQMAAKiEEzEAAIBKOBEDAACohBMxAACASjgRAwAAqCTliZjtLbb32N5r+4O1+wAAAIzB2a4jZvso\nSX8v6bckPSrp25LeGRH3Vy0GAACwxjLuiJ0t6cGIeDgi9kv6oqTzKncCAABYcxlPxDZIemTu9r5u\nDQAAYFIynojlmpUCAACM5IW1C/R4VNLGudsbNdsV+znbnKwBAIBmRIT71jOeiH1H0im2T5L0A0lv\nl/TOJY+6t+dc7M8kvafnGfvWx3rsWjzHhQvSdQs5u2X+vmXJ6zt+WbplyMvcbSX/7ZXuVjqvxW5j\n/exs8XvRYt5qf3Zm/l6c2nsOJinhiVhEPGP7DyR9VdJRkq7hFZMAAGCK0l2+Yjlshy5pr/ey3bEg\nnb1QuwWOFMevXRy7tnH82jbl43e1mxpNLk/W7ce1eI5Hz8nbLfP3LUte3/HL0i1DXuZuK/lvr3S3\n0nktdhvrZ2eL34sW81b7szPz9+Lqnsd1Mr5qEhvOqd0Aq8HxaxfHrm0cv7at0+PHaBIAAGBMkxxN\nXn1Vz+JmSbuWuT7WY0vn0a2NvMzdSueV7bZZoddr6c+LnbpyyXrf2tD6ghZW3Y3jNMVupfMydyud\nl7nbMEaTAAAAlbQ7mtTO2jUANGCzvjHK8+7SOaM8L4Apev0ER5Optx/Zis3frXRe5m6l88bptqCF\nVY8bV/LY1+uqgZHlzlX9OVa+nuGxdKuXl7lb6bzM3YYxmgQAAKiE0SSASRhrBLlSjCwBLMVosmd9\nKtuddGsjL3O30nmr7zbWKyFX8thDrY/zCsuh9QyPpVu9vMzdSudl7jaM0SQAAEAljCYBNCfLGHK5\nGFcC6x2jyZ71qWx30q2NvMzdSuetRbel4z8px2iyb22XPPDnmPpxyvDYqedl7lY6L3O3YYwmAQAA\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x10c979dd0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"True"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"interact(viewinv, iteration=IntSlider(min=0, max=opt.iter, step = 1, value=0))"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x10c8ed390>]"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmkAAAFwCAYAAADjQOwcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXeYnGW5/z/vzO5sndnZ3WzvpAIGCARRpAQpIqLgQSwc\nEAsG5CB67OX4M9iOylERFY9YaJ4gIIoFAoQSmkgNnVRStmU32WRrtkx5f39s3s3s7szOW55nshPu\nz3XlIsxunntmdnbe73zvZpimiSAIgiAIgjC78B3oOyAIgiAIgiBMR0SaIAiCIAjCLEREmiAIgiAI\nwixERJogCIIgCMIsRESaIAiCIAjCLEREmiAIgiAIwixEm0gzDKPBMIyHDcN41TCMVwzDuHLf7WWG\nYaw2DGODYRj3G4YRTvg3XzMMY6NhGOsMwzhD130TBEEQBEGY7Ri65qQZhlENVJum+YJhGMXAc8C5\nwMeBXaZp/sgwjK8ApaZpftUwjMOAlcCxQB3wALDANM24ljsoCIIgCIIwi9HmpJmmucM0zRf2/X0Q\neJ1x8fU+4KZ933YT48IN4BzgVtM0I6ZpbgU2AW/Vdf8EQRAEQRBmMxmpSTMMoxlYAjwFVJmm2bXv\nS11A1b6/1wJtCf+sjXFRJwiCIAiC8KZDu0jbl+q8E/isaZoDiV8zx3OtM+VbZWeVIAiCIAhvSnJ0\nHm4YRi7jAu0W0zTv2ndzl2EY1aZp7jAMowbo3nd7O9CQ8M/r992WeJ6INkEQBEEQsgbTNA23/1Zn\nd6cB/A54zTTNaxK+9Dfg4n1/vxi4K+H2DxuGETAMowWYDzw99VzTNOVPBv9861vfOuD34c32R55z\nec7fDH/kOZfn/M3wxys6nbR3ABcCLxmGsXbfbV8DfgDcbhjGJ4GtwAcBTNN8zTCM24HXgChwuani\nEQqCIAiCIGQh2kSaaZqPk9qpOy3Fv/k+8H1d90kQBEEQBCFbkI0DwowsW7bsQN+FNx3ynGceec4z\njzznmUee8+xD2zBbHRiGIRlQQRAEQRCyAsMwMGdj44AgCIIgCILgHhFpgiAIgiAIsxARaYIgCIIg\nCLMQEWmCIAiCIAizEBFpgiAIgiAIsxARaYIgCIIgCLMQEWmCIAiCIAizEBFpgiAIgiAIsxARaYIg\nCIIgCLMQEWmCIAiCIAizEBFpgiAIgiAIsxARaYIgCIIgCLMQEWmCIAiCIAizEBFpgiAIgiAIsxAR\naYIgCIIgCLMQEWmCIAiCIAizEBFpgiAIgiAIsxARaYIgCIIgCLMQEWmCIAiCIAizEBFpgiAIgiAI\nsxARaYIgCIIgCLMQEWmCIAiCIAizEBFpgiAIgiAIsxARaYIgCIIgCLMQEWmCIAiCIAizEBFpgiAI\ngiAIsxARaYIgCIIgCLMQEWmCIAiCIAizEBFpgiAIgiAIsxARaYIgCIIgCLMQEWmCIAg2+dRyk+PP\n2MFZZ0Fvr744lyyPsvTsF7THEQRhdiMiTRBscNFlOznm7Oe1XzQvvnQPx5y9NiNxlrzvyYNGBFx8\naS9H/Nu9Wh+PaZrcG/syTx76DlatguXL9cQZjgxzV+ADPHfY6VrjwPjZJ75z+KB5HZimyamfvZ2T\nl5laH9NYbIwjv/gVTnrniPbn7hOX7mXZMg6an5HgDBFpQtZjmqb2GPf6L+P50AqtF03TNLkn95M8\nX/5FrXHiZpx/BC7ihcrPaxcB5/7H07Rc/B2tF5ihsSHuKnoPL9dfqfXxLP3it+kouRMCgyxZAtdf\nrz7GnuE9tHzrDPr7DMgd1hYHxp+3u7mcx49t0P46uPCyLuZe9D/ahcZvn/8tD5V9iEefHNL6mL75\n0Dd5KfgjHtv4gtY4z7Q/w02VlTzy8ibtPyNhdiIiTchq3vb5H1O//Aqtb/6rN6+mp+KvkDPM0qX6\nLpp/fOWP7Cl7AAJDWuP89MmfMhR6QXuc9bvWc3f4LLYW36btAvOJ5SM0fPEDDPcVa/v5mKbJ1x/8\nOuv8txG/6T7IGaGxEcJhtXHa+9s56caTyOk+hsitt2mLA/DP1n9S+50j2dU/AAW7OWqJqe11cOZn\n7mZl6CjemPclVt0X1SY02vvb+fpDX8eI54J/VNtr++EtD3PLS7dQued9UL1WW5zWvlbef9v7yYtW\nQd1TWn9XLR544wGC32zhxFMHxbmbJYhIE7RwyfKI9jRKe387zxR9i47+Lm0i4JPLxzj311fS2P4F\nyqr2snq1novmBZ9u5eI/fo6Fm68lWD6oLc5Zn1nN1+7+EYevv5nC8JC2OB/+9BaO+p8zyX3x05Cr\nRwwOjA7wl8Kz2NMZInLHDfgCI8ofTzQe5fAv/wc/v+d+8m99FPqaMHJHuPFGdTEAnu14lkVXH8/Q\nk//OyF9/CrEAGCa//X1UaZzhyDBHffGrnPKr84jdezVjt90CcT8NTRHlr4PzLn+JsivfzeqcKzFv\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x10c8ed2d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot(invProb.dpred, '.')\n",
"plot(dtrue)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
+426
View File
@@ -0,0 +1,426 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from SimPEG import *"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: pylab import has clobbered these variables: ['linalg']\n",
"`%matplotlib` prevents importing * from pylab and numpy\n"
]
}
],
"source": [
"%pylab inline"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"cs = 25.\n",
"hx = [(cs,7, -1.3),(cs,21),(cs,7, 1.3)]\n",
"hy = [(cs,7, -1.3),(cs,21),(cs,7, 1.3)]\n",
"hz = [(cs,7, -1.3),(cs,20)]"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"mesh = Mesh.TensorMesh([hx, hy, hz], \"CCN\")\n",
"sigma = np.ones(mesh.nC)"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" ---- 3-D TensorMesh ---- \n",
" x0: -833.94\n",
" y0: -833.94\n",
" z0: -1071.44\n",
" nCx: 35\n",
" nCy: 35\n",
" nCz: 27\n",
" hx: 156.87, 120.67, 92.82, 71.40, 54.93, 42.25, 32.50, 21*25.00, 32.50, 42.25, 54.93, 71.40, 92.82, 120.67, 156.87\n",
" hy: 156.87, 120.67, 92.82, 71.40, 54.93, 42.25, 32.50, 21*25.00, 32.50, 42.25, 54.93, 71.40, 92.82, 120.67, 156.87\n",
" hz: 156.87, 120.67, 92.82, 71.40, 54.93, 42.25, 32.50, 20*25.00\n"
]
}
],
"source": [
"print mesh"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"33075"
]
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mesh.nC"
]
},
{
"cell_type": "code",
"execution_count": 82,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"Div = mesh.faceDiv"
]
},
{
"cell_type": "code",
"execution_count": 83,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[['neumann', 'neumann'], ['neumann', 'neumann'], ['neumann', 'neumann']]"
]
},
"execution_count": 83,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mesh.setCellGradBC(\"neumann\")"
]
},
{
"cell_type": "code",
"execution_count": 84,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"Grad = mesh.cellGrad"
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Afc = mesh.aveF2CC\n",
"Msig = Utils.sdiag(1./(Afc.T*(1./sigma)))"
]
},
{
"cell_type": "code",
"execution_count": 102,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"A = Div*Msig*Grad"
]
},
{
"cell_type": "code",
"execution_count": 103,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# A[-1, -1] / mesh.vol[-1]"
]
},
{
"cell_type": "code",
"execution_count": 104,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"A[0,0] /= mesh.vol[0]"
]
},
{
"cell_type": "code",
"execution_count": 105,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"inds = Utils.closestPoints(mesh, np.r_[0., 0., 0.])"
]
},
{
"cell_type": "code",
"execution_count": 106,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"q = np.zeros(mesh.nC)\n",
"q[inds] = 1."
]
},
{
"cell_type": "code",
"execution_count": 109,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from pymatsolver import MumpsSolver"
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"Ainv = MumpsSolver(A)"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"phi = Ainv*q"
]
},
{
"cell_type": "code",
"execution_count": 115,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(27,)"
]
},
"execution_count": 115,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mesh.vectorCCz.shape"
]
},
{
"cell_type": "code",
"execution_count": 117,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(<matplotlib.collections.QuadMesh at 0x10e663790>,\n",
" <matplotlib.lines.Line2D at 0x10e663c10>)"
]
},
"execution_count": 117,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x10da13090>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mesh.plotSlice(phi,ind=26, grid=True)"
]
},
{
"cell_type": "code",
"execution_count": 120,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"xyzM = Utils.ndgrid(mesh.vectorCCx+5., mesh.vectorCCy, np.r_[0.])\n",
"xyzN = Utils.ndgrid(mesh.vectorCCx-5., mesh.vectorCCy, np.r_[0.])"
]
},
{
"cell_type": "code",
"execution_count": 123,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"PM = mesh.getInterpolationMat(xyzM, \"CC\")\n",
"PN = mesh.getInterpolationMat(xyzN, \"CC\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"PM = mesh.getInterpolationMat"
]
},
{
"cell_type": "code",
"execution_count": 124,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"data = PM*phi-PN*phi"
]
},
{
"cell_type": "code",
"execution_count": 126,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x108812c10>"
]
},
"execution_count": 126,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x10ceae110>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(data.reshape(mesh.nCx, mesh.nCy))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
@@ -0,0 +1,167 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# DCR Pseudo-section Simulation"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Efficiency Warning: Interpolation will be slow, use setup.py!\n",
"\n",
" python setup.py build_ext --inplace\n",
" \n"
]
}
],
"source": [
"from SimPEG import *\n",
"from SimPEG.Examples import DC_PseudoSection_Simulation\n",
"\n",
"from ipywidgets import interactive, FloatText, FloatSlider, ToggleButtons #interactive plots!\n",
"\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Transmitter 8 of 9 -> Time:0.976000070572 sec Transmitter 8 of 9\n",
"Forward completed\n"
]
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x154fecc0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = DC_PseudoSection_Simulation.run()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we have a tool to forward model data in 3D space, we can experiment with different survey configurations.\n",
"\n",
"We here give the two options:\n",
"pole-dipole (pdp) or dipole-dipole (dpdp).\n",
"\n",
"In both cases we need to specify three important parameter.\n",
"\n",
"a: Transmitter and receivers seperation (m)\n",
"\n",
"b: Dipole seperation (m)\n",
"\n",
"n: Number of receiver dipoles along line\n",
"\n",
"We can also specify values of conductivity for the background (sig0) and the two sphere anomalies (sig1 and sig2)."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Transmitter 8 of 9 -> Time:0.976999998093 sec Transmitter 8 of 9\n",
"Forward completed\n"
]
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x2183a90>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"(<matplotlib.figure.Figure at 0x2183a90>,\n",
" <matplotlib.axes._subplots.AxesSubplot at 0x187ccba8>)"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"Simul_Fct = lambda a,b,n, sig0, sig1, sig2, stype: DC_PseudoSection_Simulation.run(param = np.r_[a,b,n], sig=np.r_[sig0,sig1,sig2], stype = stype)\n",
"\n",
"interactive(Simul_Fct, a=FloatText(min=10.,max=40.,step=5.,value=30.),\n",
" b=FloatText(min=10.,max=40.,step=5.,value=30.),\n",
" n=FloatText(min=1,max=30,step=5,value=10.),\n",
" sig0=FloatText(min=1e-4,max=1e+4,step=1e+1,value=1e-2),\n",
" sig1=FloatText(min=1e-4,max=1e+4,step=1e+1,value=1e-1),\n",
" sig2=FloatText(min=1e-4,max=1e+4,step=1e+1,value=1e-3),\n",
" stype=ToggleButtons(options=['pdp','dpdp'],value='dpdp'))\n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
+534
View File
@@ -0,0 +1,534 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Efficiency Warning: Interpolation will be slow, use setup.py!\n",
"\n",
" python setup.py build_ext --inplace\n",
" \n",
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: pylab import has clobbered these variables: ['linalg']\n",
"`%matplotlib` prevents importing * from pylab and numpy\n"
]
}
],
"source": [
"from SimPEG import *\n",
"import simpegDCIP as DC\n",
"%pylab inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"cs = 25.\n",
"hx = [(cs,7, -1.3),(cs,21),(cs,7, 1.3)]\n",
"hy = [(cs,7, -1.3),(cs,21),(cs,7, 1.3)]\n",
"hz = [(cs,7, -1.3),(cs,20)]"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"mesh = Mesh.TensorMesh([hx, hy, hz], 'CCN')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"blk1 = Utils.ModelBuilder.getIndicesBlock(np.r_[-50, 75, -50], np.r_[75, -50, -150], mesh.gridCC)\n",
"sighalf = 1e-3\n",
"sigma = np.ones(mesh.nC)*sighalf\n",
"sigma[blk1] = 1e-1\n",
"sigmahomo = np.ones(mesh.nC)*sighalf"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(<matplotlib.collections.QuadMesh at 0x157f41d0>,\n",
" <matplotlib.lines.Line2D at 0x15631320>)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x15482e10>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\nFJsU75szS+48xi16riHmn8Y9CUlST7abJEnYbloK2039c203rV5sUrxvziy58xi36LmGmH8a202S\npJ5sN0mSsN20FLab+ufablq92KR435xZcucxbtFzDTH/NLabJEk9WSQkSU3uSUiScE9iKdyT6J/r\nnsTqxSbF++bMkjuPcYuea4j5p3FPQpLUk+0mSRK2m5bCdlP/XNtNqxebFO+bM0vuPMYteq4h5p/G\ndpMkqSfbTZIkbDcthe2m/rm2m1YvNineN2eW3HmMW/RcQ8w/je0mSVJPFglJUpN7EpIk3JNYCvck\n+ue6J7F6sUnxvjmz5M5j3KLnGmL+adyTkCT1ZLtJkoTtpqWw3dQ/13bT6sUmxfvmzJI7j3GLnmuI\n+aex3SRJ6sl2kyQJ201LYbupf67tptWLTYr3zZkldx7jFj3XEPNPY7tJktSTRUKS1GSRkCQ1uXEt\nScKN66Vw47p/rhvXqxebFO+bM0vuPMYteq4h5p/GjWtJUk8WCUlSk0VCktTkxrUkCTeul8KN6/65\nblyvXmxSvG/OLLnzGLfouYaYfxo3riVJPVkkJElNFglJUpNFQpLUZJGQJDVZJCRJTV4nIUnC6ySW\nwusk+ud6ncTqxSbF++bMkjuPcYuea4j5p/E6CUlSTxYJSVKTRUKS1GSRkCQ1WSQkSU0WCUlSk0VC\nktTkxXSSJNbVxXRJLgJeCXyjC72lqq7tjr0Z+HXgAeC1VXV9F38acDlwBHBNVb2u/QheTLfYebyY\nztik2KR435xZcucxbtFzDTH/NOvrYroC3l1Vp3U/ewvEFuAcYAuwFXh/kr2V7QPA+VV1KnBqkq1D\nLFySNpIh9yQe9rYGOBv4SFXdV1W7gNuBM5KcABxVVTu6vA8BL1jOMiVp4xqySFyY5PNJLktydBc7\nEdg9lrMbOGmN+J4uLklaoIXtSSTZDhy/xqG3MmodvaO7/07gXcD583v0T4/dPgXYPL+pJWkl7AR2\nTc1aWJGoqp8/kLwklwKf6O7uATaNHX4Co3cQe7rb4/E97VmH3PyRpIPBZvb9BXodbVx3ewx7vRC4\nubt9NfDiJIcn2QycCuyoqjuBe5Kc0W1kvxT4+FIXLUkb0FDfJ3FJkqcyOstpJ/BqgKq6Jck24Bbg\nfuCCeuhCjgsYnQL7aEanwF639FVL0gYzSJGoqpdNOHYxcPEa8X8FfnyR65Ik7cuP5Line truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1577eba8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mesh.plotSlice(sigma, normal='X', grid=True)\n",
"mesh.plotSlice(sigma, ind=22, normal='Z', grid=True)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"xtemp = np.linspace(-150, 150, 21)\n",
"ytemp = np.linspace(-150, 150, 21)\n",
"xyz_rxP = Utils.ndgrid(xtemp-10., ytemp, np.r_[0.])\n",
"xyz_rxN = Utils.ndgrid(xtemp+10., ytemp, np.r_[0.])\n",
"xyz_rxM = Utils.ndgrid(xtemp, ytemp, np.r_[0.])"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x15be3940>]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x155f4a20>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(1,1, figsize = (5,5))\n",
"mesh.plotSlice(sigma, grid=True, ax = ax)\n",
"ax.plot(xyz_rxP[:,0],xyz_rxP[:,1], 'w.')\n",
"ax.plot(xyz_rxN[:,0],xyz_rxN[:,1], 'r.', ms = 3)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1323\n"
]
}
],
"source": [
"rx = DC.RxDipole(xyz_rxP, xyz_rxN)\n",
"tx = DC.SrcDipole([rx], [-200, 0, -12.5],[+200, 0, -12.5])\n",
"print xyz_rxP.size"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"survey = DC.SurveyDC([tx])\n",
"problem = DC.ProblemDC_CC(mesh)\n",
"problem.pair(survey)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"try:\n",
" from pymatsolver import MumpsSolver\n",
" problem.Solver = MumpsSolver\n",
"except Exception, e:\n",
" problem.Solver = SolverLU"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "ImportError",
"evalue": "No module named pymatsolver",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-11-d6799536a06f>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0mpymatsolver\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mMumpsSolver\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;31mImportError\u001b[0m: No module named pymatsolver"
]
}
],
"source": [
"from pymatsolver import MumpsSolver"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"problem.Solver = SolverLU\n",
"\n",
"data = survey.dpred(sigmahomo)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "IndentationError",
"evalue": "expected an indented block (<ipython-input-13-ff092c0e869a>, line 3)",
"output_type": "error",
"traceback": [
"\u001b[1;36m File \u001b[1;32m\"<ipython-input-13-ff092c0e869a>\"\u001b[1;36m, line \u001b[1;32m3\u001b[0m\n\u001b[1;33m \u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mIndentationError\u001b[0m\u001b[1;31m:\u001b[0m expected an indented block\n"
]
}
],
"source": [
"# Plot pseudo section\n",
"for ii in range(data):\n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"u1 = problem.fields(sigma)\n",
"u2 = problem.fields(sigmahomo)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Msig1 = Utils.sdiag(1./(mesh.aveF2CC.T*(1./sigma)))\n",
"Msig2 = Utils.sdiag(1./(mesh.aveF2CC.T*(1./sigmahomo)))"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"j1 = Msig1*mesh.cellGrad*u1[tx, 'phi_sol']\n",
"j2 = Msig2*mesh.cellGrad*u2[tx, 'phi_sol']"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# us = u1-u2\n",
"# js = j1-j2"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'mesh' is not defined",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-2-cb76a57fca1d>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mmesh\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplotSlice\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmesh\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0maveF2CCV\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mj1\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mvType\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'CCv'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mnormal\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'Y'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mview\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m'vec'\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstreamOpts\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m{\u001b[0m\u001b[1;34m\"density\"\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;36m3\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"color\"\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;34m'w'\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[1;31m#xlim(-300, 300)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;31m#ylim(-300, 0)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mNameError\u001b[0m: name 'mesh' is not defined"
]
}
],
"source": [
"mesh.plotSlice(mesh.aveF2CCV*j1, vType='CCv', normal='Y', view='vec', streamOpts={\"density\":3, \"color\":'w'})\n",
"#xlim(-300, 300)\n",
"#ylim(-300, 0)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'js' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-23-575f23801c4a>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mmesh\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplotSlice\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmesh\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0maveF2CCV\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0mjs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvType\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'CCv'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnormal\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'Y'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mview\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'vec'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstreamOpts\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m\"density\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"color\"\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m'w'\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2\u001b[0m \u001b[0mxlim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m300\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m300\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mylim\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m300\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
"\u001b[0;31mNameError\u001b[0m: name 'js' is not defined"
]
}
],
"source": [
"mesh.plotSlice(mesh.aveF2CCV*js, vType='CCv', normal='Y', view='vec', streamOpts={\"density\":3, \"color\":'w'})\n",
"xlim(-300, 300)\n",
"ylim(-300, 0)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"a = np.random.randn(3)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"print (a.reshape([1,-1])).repeat(3, axis = 0)\n",
"print (a.reshape([1,-1])).repeat(3, axis = 0).sum(axis=1)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"def DChalf(txlocP, txlocN, rxloc, sigma, I=1.):\n",
" rp = (txlocP.reshape([1,-1])).repeat(rxloc.shape[0], axis = 0)\n",
" rn = (txlocN.reshape([1,-1])).repeat(rxloc.shape[0], axis = 0)\n",
" rP = np.sqrt(((rxloc-rp)**2).sum(axis=1))\n",
" rN = np.sqrt(((rxloc-rn)**2).sum(axis=1))\n",
" return I/(sigma*2.*np.pi)*(1/rP-1/rN)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"data_analP = DChalf(np.r_[-200, 0, 0.],np.r_[+200, 0, 0.], xyz_rxP, sighalf)\n",
"data_analN = DChalf(np.r_[-200, 0, 0.],np.r_[+200, 0, 0.], xyz_rxN, sighalf)\n",
"data_anal = data_analP-data_analN"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"Data_anal = data_anal.reshape((21, 21), order = 'F')\n",
"Data = data.reshape((21, 21), order = 'F')\n",
"X = xyz_rxM[:,0].reshape((21, 21), order = 'F')\n",
"Y = xyz_rxM[:,1].reshape((21, 21), order = 'F')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"fig, ax = plt.subplots(1,2, figsize = (12, 5))\n",
"vmin = np.r_[data, data_anal].min()\n",
"vmax = np.r_[data, data_anal].max()\n",
"dat0 = ax[0].contourf(X, Y, Data, 60, vmin = vmin, vmax = vmax)\n",
"dat1 = ax[1].contourf(X, Y, Data_anal, 60, vmin = vmin, vmax = vmax)\n",
"cb0 = plt.colorbar(dat1, orientation = 'horizontal', ax = ax[0])\n",
"cb1 = plt.colorbar(dat1, orientation = 'horizontal', ax = ax[1])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
+474 -433
View File
@@ -1,443 +1,484 @@
{
"metadata": {
"name": "",
"signature": "sha256:b7556968258042b90534fa310f5e2522502708190e2655f8d1be84dd18c34ec2"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
"cells": [
{
"cells": [
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"from SimPEG import *\n",
"import simpegDC as DC\n",
"from simpegem1d import Utils1D\n",
"%pylab inline"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"prompt_number": 12
},
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"DC Forward Modeling of Schlumber array"
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we test the accuracy of DC forward modeling using analytic solution."
"name": "stderr",
"output_type": "stream",
"text": [
"Vendor: Continuum Analytics, Inc.\n",
"Package: mkl\n",
"Message: trial mode expires in 29 days\n"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Step1: Generate mesh"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"cs = 25.\n",
"npad = 11\n",
"hx = [(cs,npad, -1.3),(cs,41),(cs,npad, 1.3)]\n",
"hy = [(cs,npad, -1.3),(cs,17),(cs,npad, 1.3)]\n",
"hz = [(cs,npad, -1.3),(cs,20)]"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 13
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"mesh = Mesh.TensorMesh([hx, hy, hz], 'CCN')"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 14
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"mesh.plotGrid()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x110fe1850>"
]
}
],
"prompt_number": 15
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Step2: Generating model"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"sighalf = 1e-2\n",
"sigma = np.ones(mesh.nC)*sighalf"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 16
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Step3: Design survey: Schulumberger array"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"http://www.landrinstruments.com/_/rsrc/1271695892678/home/ultra-minires/additional-information-1/schlumberger-soundings/schlum%20array.JPG\"> </img>"
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"$$ \\rho_a = \\frac{V}{I}\\pi\\frac{b(b+a)}{a}$$"
]
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"Let $b=na$, then we rewrite above equation as:"
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"$$ \\rho_a = \\frac{V}{I}\\pi na(n+1)$$"
]
},
{
"cell_type": "heading",
"level": 4,
"metadata": {},
"source": [
"Since AB/2 can be a good measure for depth of investigation, we express "
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"$$AB/2 = \\frac{(2n+1)a}{2}$$"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"matplotlib.rcParams.update({'font.size': 14, 'text.usetex': True, 'font.family': 'arial'})"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 17
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"ntx = 16"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 18
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"xtemp_txP = np.arange(ntx)*(25.)-500.\n",
"xtemp_txN = -xtemp_txP\n",
"ytemp_tx = np.zeros(ntx)\n",
"xtemp_rxP = -50.\n",
"xtemp_rxN = 50.\n",
"ytemp_rx = 0.\n",
"abhalf = abs(xtemp_txP-xtemp_txN)*0.5\n",
"a = xtemp_rxN-xtemp_rxP\n",
"b = ((xtemp_txN-xtemp_txP)-a)*0.5"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 19
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fig, ax = plt.subplots(1,1, figsize = (12,3))\n",
"for i in range(ntx):\n",
" ax.plot(np.r_[xtemp_txP[i], xtemp_txP[i]], np.r_[0., 0.4-0.01*(i-1)], 'k-', lw = 1)\n",
" ax.plot(np.r_[xtemp_txN[i], xtemp_txN[i]], np.r_[0., 0.4-0.01*(i-1)], 'k-', lw = 1)\n",
" ax.plot(xtemp_txP[i], ytemp_tx[i], 'bo')\n",
" ax.plot(xtemp_txN[i], ytemp_tx[i], 'ro')\n",
" ax.plot(np.r_[xtemp_txP[i], xtemp_txN[i]], np.r_[0.4-0.01*(i-1), 0.4-0.01*(i-1)], 'k-', lw = 1) \n",
"\n",
"ax.plot(np.r_[xtemp_rxP, xtemp_rxP], np.r_[0., 0.2], 'k-', lw = 1)\n",
"ax.plot(np.r_[xtemp_rxN, xtemp_rxN], np.r_[0., 0.2], 'k-', lw = 1)\n",
"ax.plot(xtemp_rxP, ytemp_rx, 'ko')\n",
"ax.plot(xtemp_rxN, ytemp_rx, 'go')\n",
"ax.plot(np.r_[xtemp_rxP, xtemp_rxN], np.r_[0.2, 0.2], 'k-', lw = 1) \n",
"\n",
"ax.grid(True) \n",
"ax.set_ylim(-0.2,0.6)\n",
"ax.set_xlim(-600,600)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 20,
"text": [
"(-600, 600)"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x10d9c1f90>"
]
}
],
"prompt_number": 20
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"fig, ax = plt.subplots(1,1, figsize = (6,4))\n",
"ax.plot(xtemp_txP, ytemp_tx, 'bo')\n",
"ax.plot(xtemp_txN, ytemp_tx, 'ro')\n",
"ax.plot(xtemp_rxP, ytemp_rx, 'ko')\n",
"ax.plot(xtemp_rxN, ytemp_rx, 'go')\n",
"ax.legend(('A (C+)', 'B (C-)', 'M (P+)', 'N (C-)'), fontsize = 14)\n",
"mesh.plotSlice(sigma, grid=True, ax = ax, pcolorOpts={'cmap':'binary'})\n",
"ax.set_xlim(-600, 600)\n",
"ax.set_ylim(-200, 200)\n",
"ax.set_title('Survey geometry (Plan view)')\n",
"ax.set_xlabel('x (m)')\n",
"ax.set_ylabel('y (m)')\n",
"ax.text(-600, 210, '(a)', fontsize = 16)\n",
"# fig.savefig('DCsurvey.png', dpi = 200)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 21,
"text": [
"<matplotlib.text.Text at 0x10da73a50>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x112b59190>"
]
}
],
"prompt_number": 21
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"txlist = []\n",
"rx = DC.RxDipole(np.r_[xtemp_rxP, ytemp_rx, -12.5], np.r_[xtemp_rxN, ytemp_rx, -12.5])\n",
"for i in range(ntx): \n",
" tx = DC.SrcDipole([rx], [xtemp_txP[i], ytemp_tx[i], -12.5],[xtemp_txN[i], ytemp_tx[i], -12.5])\n",
" txlist.append(tx)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 22
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"survey = DC.SurveyDC(txlist)\n",
"problem = DC.ProblemDC(mesh)\n",
"problem.pair(survey)\n",
"try:\n",
" from pymatsolver import MumpsSolver\n",
" problem.Solver = MumpsSolver\n",
"except Exception, e:\n",
" problem.Solver = SolverLU"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 23
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Step4: Run DC forward modeling"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%%time\n",
"data = survey.dpred(sigma)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"CPU times: user 4.93 s, sys: 612 ms, total: 5.54 s\n",
"Wall time: 5 s\n"
]
}
],
"prompt_number": 25
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ \\rho_a = \\frac{V}{I}\\pi\\frac{b(b+a)}{a}$$"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"appres = data*np.pi*b*(b+a)/a\n",
"\n",
"\n",
"fig, ax = plt.subplots(1,1, figsize = (6, 4))\n",
"ax.semilogx(np.r_[100., 500.], np.r_[100., 100.], 'k--')\n",
"ax.semilogx(abhalf, appres, 'k.-')\n",
"ax.set_ylim(90., 120.)\n",
"ax.set_xscale('log')\n",
"ax.set_xlabel('AB/2')\n",
"ax.set_ylabel('Apparent resistivity ($\\Omega m$)')\n",
"ax.grid(True)\n",
"ax.text(100, 122, '(b)', fontsize = 16)\n",
"ax.legend(('True', 'simpegDC'), loc = 1, fontsize = 14)\n",
"# fig.savefig('comp_dc.png')"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 26,
"text": [
"<matplotlib.legend.Legend at 0x10d9ed410>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nm9M0u0dEpIEUDCLuvu2C+WbWV8z5ZtZnZiNAX5RjwIq7t7h7u7sn3F3rDIhI0aamphoyx/rU1NSm\nfPADAwMMDAyQSCQYHx9nYyP/v8nHxsYy5w4MDDA/P1/33xdpxnrYxHUUuOzub5pZK3DY3S8U+f1b\n7p43cOU7ZmbD7j5d5LXVJyJSpp3WJ7K8vMzCwgLf+EbjjQFaXV2lo6OD06dPZ8q3sbFBX18fqVTq\njnwl/f39dHZ28vLLL2fO7enpIZVKZZa1z6fRZqyPAUngmJmtANMEnetVY2ZHwtrKRBi0RESK0t3d\n3ZABBPIvBtna2sr09DTJZJLx8fHM/tOnT7OwsJAJIOlzZ2dnWV9fr0l5C4kaRM67+wV3H3X3TmAC\nOFuFcqUthvdbAM4BC1W8l4hI3XV3d2cCRNr4+Pgd2RbT53Z0dNSyeHcoa7Khuy8V03dSquw+kPBz\njyY7ikiu06dPMzQ0lMmBPj09ncmr3tnZmTmnra0t0+/Q3t5OIpFgdXWVsbEx2tvb6ezszKTKnZqa\nynz/xIkTJBKJzPlpW+VeX1paYmBggBMnTjAwMMDo6CidnZ0sLGz/b+F4PJ651tLSUmZfPouLi6X9\noVVI1KRUMWDJzM4Dc9WcG2JmPcCUu2/qNXL3jwp95/jx4+zfvz8oaCxGV1cXhw4dAuDSpUsA2ta2\ntrfYLsbIyAg//elPuffee3n11VeLSvRUzeulUinm5+e5ePEiEOT6MDMmJibYt28fZ88GjSWnTp1i\nbW2N06dP881vfpOJiQkSiQQdHR1MTU2xtrbGwMAAg4ODLC4uMjIyQjKZzASoM2fOMD4+vim/+la5\n1/v6+viHf/gHnnjiCS5cuMDw8DCzs7Pb5oQHaG9vB+Cjjz7K5DrZt29f3nNz0/nmk/33e+nSJa5e\nvbrtd4qWzi9czAs4STDJ8ChBM9YKcC7C928VewxoBY5kbR/e6l7BTxGRchTz/9EjjzziQFVeg4OD\nkcu8vr7uZuajo6M+NzfnyWTSk8mku7tPTk56R0dH5txTp055e3v7pu2WlpbM9uTkpLe1tRU8/8qV\nK25mvrS05OfPn3cz81Qqtakcy8vLmfNWV1fd3f3y5ctuZr6xsXFHuV988cU7flNPT0+mXOnvjo+P\nR/6zcd/67zQ8FikO5L6iNmctuXvS3Wf9dr/I6HZfMrNuMzsFeNhB3rfdMQ/mp6TCJVeGwyAynPcG\nIlIz9957LxBkBFxfXy/rAeTuPPbYY5nrTU1NRS5PLBbj7NmzzM/PMzAwQEdHxx0pbrNl1wT27du3\naTtfLSj7eLqGsLq6uin3+tDQECMjI5l7x+Nx4vE4c3PB9Lf5+fmi8runpa8Bt5uxCv2m0dHRgkOC\nayFqc9aamXV51sx0d09t9YXwnGVgGTgd8dgC6kwXaSivvvoqIyMjTE1Nld2UVYnrLS8vE4/HWVlZ\nYXV1lcnJScbGxirWV5D98F5bC1Z9isfjXLt2DSice31kZITJyUkuX76MmXH58uWi77exscHf/M3f\nAEFgO3r0aCYg5UpnX6yXqDWRY8CbZnbRzL5hZl3VKJSINK5YLMbMzExFAkglrnf9+nVGR4MGkQMH\nDmRqBJWSSqUyneFnz56lo6ODrq4uhoaGCuZeX1paYmZmhrNnzzI4OMjIyAi3bt3adN10QPKcORyj\no6P09vZuGpo8PT1Ne3t7JnVv2tDQ0KahwHURpdpJ2EdB0C8yAswAF8utzlbihfpERMrWjP8fzc/P\n++DgYObV39/vq6urPjs76x0dHd7S0uInTpzw2dlZb2tr85aWFh8fH990fHx83Ofn5zed7x70ifT2\n9vrY2Jj39vZ6IpHI9HO4uy8tLXlvb693dHR4b2+vX7hwwd2D/o54PO5mtuk1Ozvr7u5nz57N3Kut\nrc37+/u9v7/fe3t7t+z7GB0dzZzb39/vCwsL2/75bPV3SgX6RKLOWG8FEh40MzUUzVgXKd9Om7Fe\nrrGxMRYWFiI3jc3Pz3P69GlmZ2cz/SDj4+Mkk8mCzV/VUrdVfPPxoLM7E0DMrNW3WaBRRGS3mZ2d\nJR6Pb+pIb29v58EHH6xjqapj2z6RcMmRlXA13RUzeyFrwt9BM3u3ymUUEam52dlZpqenWV5e5pln\nnon03bGxMZLJJAMDA5mJiOvr6w27BEs5ik1KNQmsEkw27CdYcXfC3V8xsxUPhvrWlZqzRMqn5qyd\np97NWcfyBIjZ8OY94fyN+XIKICIizWu7mkhfI3ai56OaiEj5VBPZeRptKXgREZGM7YJIT6EDZtYa\n5vrYeT1FIiJSlO36RJbN7CJwiiAZVZwgCdUgcJmgw30ReKmahRSR2jErq3VDdpktg4i7z5tZHFjK\n2j0PjLr7qpnFgPzrE4tI01F/iERV9Ix1M+tx96Ws7VYg7lmJo+pJHesiItFUomM90rInjULine truncated
"text": [
"<matplotlib.figure.Figure at 0x112b6ca50>"
]
}
],
"prompt_number": 26
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 21
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 21
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
"source": [
"from SimPEG import *\n",
"import simpegDCIP as DC\n",
"from simpegem1d import Utils1D\n",
"%pylab inline"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# DC Forward Modeling of Schlumber array"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we test the accuracy of DC forward modeling using analytic solution."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Step1: Generate mesh"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"cs = 25.\n",
"npad = 11\n",
"hx = [(cs,npad, -1.3),(cs,41),(cs,npad, 1.3)]\n",
"hy = [(cs,npad, -1.3),(cs,17),(cs,npad, 1.3)]\n",
"hz = [(cs,npad, -1.3),(cs,20)]"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"mesh = Mesh.TensorMesh([hx, hy, hz], 'CCN')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x104395510>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"mesh.plotGrid()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Step2: Generating model"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"sighalf = 1e-2\n",
"sigma = np.ones(mesh.nC)*sighalf"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Step3: Design survey: Schulumberger array"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"http://www.landrinstruments.com/_/rsrc/1271695892678/home/ultra-minires/additional-information-1/schlumberger-soundings/schlum%20array.JPG\"> </img>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### $$ \\rho_a = \\frac{V}{I}\\pi\\frac{b(b+a)}{a}$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Let $b=na$, then we rewrite above equation as:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### $$ \\rho_a = \\frac{V}{I}\\pi na(n+1)$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Since AB/2 can be a good measure for depth of investigation, we express "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### $$AB/2 = \\frac{(2n+1)a}{2}$$"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"matplotlib.rcParams.update({'font.size': 14, 'text.usetex': True, 'font.family': 'arial'})"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"ntx = 16"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"xtemp_txP = np.arange(ntx)*(25.)-500.\n",
"xtemp_txN = -xtemp_txP\n",
"ytemp_tx = np.zeros(ntx)\n",
"xtemp_rxP = -50.\n",
"xtemp_rxN = 50.\n",
"ytemp_rx = 0.\n",
"abhalf = abs(xtemp_txP-xtemp_txN)*0.5\n",
"a = xtemp_rxN-xtemp_rxP\n",
"b = ((xtemp_txN-xtemp_txP)-a)*0.5"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(-600, 600)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x10e08b5d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(1,1, figsize = (12,3))\n",
"for i in range(ntx):\n",
" ax.plot(np.r_[xtemp_txP[i], xtemp_txP[i]], np.r_[0., 0.4-0.01*(i-1)], 'k-', lw = 1)\n",
" ax.plot(np.r_[xtemp_txN[i], xtemp_txN[i]], np.r_[0., 0.4-0.01*(i-1)], 'k-', lw = 1)\n",
" ax.plot(xtemp_txP[i], ytemp_tx[i], 'bo')\n",
" ax.plot(xtemp_txN[i], ytemp_tx[i], 'ro')\n",
" ax.plot(np.r_[xtemp_txP[i], xtemp_txN[i]], np.r_[0.4-0.01*(i-1), 0.4-0.01*(i-1)], 'k-', lw = 1) \n",
"\n",
"ax.plot(np.r_[xtemp_rxP, xtemp_rxP], np.r_[0., 0.2], 'k-', lw = 1)\n",
"ax.plot(np.r_[xtemp_rxN, xtemp_rxN], np.r_[0., 0.2], 'k-', lw = 1)\n",
"ax.plot(xtemp_rxP, ytemp_rx, 'ko')\n",
"ax.plot(xtemp_rxN, ytemp_rx, 'go')\n",
"ax.plot(np.r_[xtemp_rxP, xtemp_rxN], np.r_[0.2, 0.2], 'k-', lw = 1) \n",
"\n",
"ax.grid(True) \n",
"ax.set_ylim(-0.2,0.6)\n",
"ax.set_xlim(-600,600)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.text.Text at 0x10ee9dcd0>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZwAAAEiCAYAAADNgWQ8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3U1vG9mZL/D/IwewVyYt3w9gkc7epOjcXSK03hYO7gDR\ni3tmNQO0LA5w7Wxi004CRFkktqSsbAxsUb2eiSU5K2nRlhSoe3ktS72PRPYXsF68soG0nruoU1Sx\nVFV8LxbJ/w8gRNZzqniqSNajOudUlagqiIiIWq2v3RUgIqLewIRDREShYMIhIqJQMOEQEVEomHCI\niCgUPZ9wRGReRIarLBsXkRURibW6XkRE3aanE46IzAM4U9Xtasqr6gmApwCqKk9EROd6NuGIyAiA\nGVV9Ust8qroPoCAiD1tTs+YQkRER2TWPA3NklhCR9yIy0O760TkRSbXjMxGRe/b32Dw/EJEz8zjy\n+P6kTNl5Ez8TkZmw6x3EfMePW10vEXnL31HtejbhAMgBeF3nvK8B1JSowmSS6SsAk6qaUdWbAJYA\nvAeQAsAmwWjJAkiE+YYicg/AhKouAoCq5s33ZA+AAvjCfHcyAAZN/d6LyLCq5gDYzdBRO3P8CMAH\n82ilWQCbbF6vTU8mHBGJw/rBvHdPF5FV89/LgfnvbsJjEdsA4j6xKMgBWFXVH+wJptlw0rzsb0el\nyNcwQtxxi0gC1j8ksx7hYwAC4MSeoKqnsJqS4ZjntJV1rJeqnqjqTVX9W4vfpwhgDcByK9+n2/Rk\nwgGQMX8LrumrAGKqOmb+29sy08qYvhzncqImAeu/0jIm6eyFXx3yY/oRE7B28mGZB/De+Q9JFYrm\nb6r51elYSwAm2bRWvV5NOHbzxZFr+jHK/9PcBQARuVFhOVHzHsCIOUp76PpBTJm43RZ/bNriv3BM\ns9vnH3pMmzDt/ZumP+iVo93/tSk/KSKHzmlm+j1z1PjWPJx9AvYyvhGRmOmDurAMN8dRqXO58/YR\naqX3dsQfOeKlkYhmeqm/wrzXkVn+jHn/TRM/cC+30noDsI+S503saYVtvisiz+rdXsYErH+mamH/\ncxX4D4uILJn1sPt+njlijxzftxlT1t6WgX2ipmzQ92zFfBfLvruO+f0+g0eO5b402/K94/P8lVh9\nbPb72Ed69lEOYLUoUDVUtecesJqWzgDc8ojFTPwVrITjV+4MwOt2r4vP+sUcdbcfx2adBlxlJ0z8\nC8e0ATPtN45pw2baMzPPKwA/Arhhnp8BuOoo/xDAS8freVgJ/qrrfWOO8u56zFTaxgA2AbzzWh/7\n/at47yUAB45lPANw5HidMuWPzHJjAN6aaQcAbplpB875qnzvC9u/ym1e7/YaMfN9FbA9z5zfE1j/\nWB3a7+2YVrYcWK0BBx71n/GYdgbgKwBXzfqdARiuUHd7/YO+Z17f3Uqfgf3+zuWeuZY743ztmH4A\n4Jt2/+Y75dH2CrRlpc9/LF+4pk+aL9BX5kdtfzH9Es7Tdq9LhfUcNj/Sf5gfqv1DTznKjLi3BYC4\nx4/WLvcP8zoG4Ffmuf0jf+Yov+v4gdvLe+rxHs55zgCsOF6/tXdwAevoXm7ZjrDSezvKO9fVXp+H\n5nXaYwc04TGfnQRuVLveOP/nxyvh+G7zBraX/X6/8onbCefAfIa75vlL57Ld29lMewXgQ4XPx96W\nr4PK+dQt8HvmqtdvavgM7Hncn7fzn44Vr20Lq7XgKKjefJw/erJJTVXtvptSk5hYHakrsL6EX6vV\nvn3da35TFgDetbKe9TBNPPOA1WejqllV/SmAmzg/9G9khN2WWfapmo5ZtZoWtgDcM3VIACio6kcz\nj90cM2o3acDa1ocoHzG3ANMmbm9jrdzPkIfVTGibhNUsajcZVXrvtImX+vP0vKlkxPVezkEmdqd5\nwWNavMr3rtaFbW7Us71OKsRtI2pGqanVCf+flZZtvmvXTfPeM7O+wPn2cPL67XiVcy6/0vfMS8XP\nwOwP9nA+IGLWPOKmOTMOIBGw/lEbqRdZP2l3BdooD2AMwNfmtXMn8bX5Mj8y05IAvnfMmwZwrC0e\nCVOnfliH/2XtyubHuigiSVzckboF9U2995k+D2uY6AysAQuvHDF7275S1a8vzHnuKaxtbv/wXwWU\ntS0AmDb9NbuwfvxJx84h8L1FZNI9LYC7zw8I3oFXu97O+gzA+o/ZOQrMb5vXs73sBNn0kYpmWz4z\n9firqj4WkbMK9ahV0PfMS7WfwRKAJbFOKRhU1VkRsRNPf8D7xFH/uvScnjzCMXKwOtbt/3L2cL7z\nOoD1Y07D+o8qL6ZT3XiC6HYUHsH6z8yvE/YU/jswW9DoO6+dLtQaAVeAtV0GVfXvjrD9fmXLNUdj\npRP0zE52DdZOdKLKhP4eVlNHxvyH7f5PvNJ72/GkI2Yn3M0q3r9S3YLeG7iYsBZgNR05+W3zmreX\n4+j+wijGRjhaCFZV9S+q+r05MmiqCt8zL/Ygh0rfPXt48wqAv5rnS7D+OXsUkKwGUPsAjJ7VswnH\n/FhzcIyjV9XHqtpvmhDuqupHtYZIX7e/2Oa/uINq/2Nto2ceI3USsI5+njom2zugMVMmDtNkAeB/\neSw3aPiuPcS3bJSUnp+zcE/MuUvmfVZwsWnFrttSwPvALCMBq1lkwYw2emRGI5WO4Cq9t4nnUX5O\nyiysI9i/uN7S2cRq70y9tofUsN6l7W9iA6r6vdfyfFS9vRxyAG77xOwjn2tVLstdt0GgtJ72KQVJ\nOT9Bst9nPr9pXjy/Z17LMgm22u/eGqzvU968XjF/PUfmiYjdHFvLtu9t7e5E8nrAGhU0A6sTdgUX\nR8w8hNUh/hBmpEmlWMB7TaDC6BhH2RgcHZZRfMDaEf4D56N/7DbrFfPcawDEBM47iV/jfFTWGawf\npR3/0fz17dyFdYb3VZ/YMzP/kXmvCx3lptyB3zI8yi456up87Nby3ub7smu20WucD3iwB5L8aLbr\nQ/PddE6zv6tHjmm/quG9n5nYgR1zvW+lbV719nLMc4TywSP3zHLOzHsemc/+wm/IfB92HeWeOrbh\nkXl8A2v0nj3ttet7ZG/LFM5H/P0Ij5Fg1X7PYP3u7Xp9QPlAgYrfPTP/N65pKwHf09Vq68uH2Wbt\nroDHhxjDxWGUzqGWu66yqwGxlVbVk4+mfub2f/aA1YRR7U4n4dxJO6bPwLooa9vXLUrby7WMYbiS\nMh81bb8ROIbj81HdI4pNakmU94+8B5AQkavmELbUnq1Ws9gwUDq8dccqdY5TNLyH1RGcgPWfaLX9\nY7MArunFdnxB5X6qTlbv9ipRqy9kptIJl+RrUlX9miXJR+RGqanqnrMNHlZn37GqfjQ/MHcn65E5\na9gvdksvtolTtLyCNRDjJawfctAwV6c/A4iZQR7O0VfvcH5xyW5U7/Yqo9aVz/ebWbFeoarZdteh\nE0Uu4QAXziW4B6uJBAgeylltJydFjFpXLF6sY75TWFda7in1bi+idotik1qJGbb4Vz0f7vkBF08O\n64d17sWRT4yIiCIgkkc4ACDWbZ8PXe3zBXgkEbXG/Pf5xTyWzTODiYhqpKoNXdU8kkc49gAALT/3\nxW5zdpZLwJycp9aJm54xL47RJrWOTmmoTKtjf/jDHyJTl15av2Ytz7l+UVk3rl/nr18tZfzKN0Pk\njnBMorBvC2BPPoR1UhZwPrKmAOvkNeetZINiRETURpFLOGqdGex75KXlI2veVBsjIqL2imSTGtVv\naGio3VVoKa5fZ+P69TZpVttcJxERtddbRGpqn6ymfFAZxrozFpV6MMZYkEb2d+Z59w0aICKi7tOz\nRzjtrgMRUadp9AgncoMGwsImNcbYpNaZMWod93Z3N6k1ik1qREQUCiYcIiIKBRMOEVGL5HI5LC8v\nVy7osL297bmcsbGx0mNrawuZTNCd4M8Vi0UUi8Wa6tAqTDhERC2Sz+extFT9HahzudyFvpLR0VF8\n/PgRb9++xdu3b7G6uorZ2dmqk8jAwAByuRz299t/JwomHCKiFtja2sLp6Sn29/erSg5bW1soFov4\n4osvStMWFhawvb2Nly9flqbFYjGsra3h+Pi46rosLy9jamqqthVoASYcIqIWsI9uVLWqo5zZ2Vlk\ns+W3d3r8+LFnokilUkgmkxemF4tFzya5WCyGdDpdc/NeszHhEFHH2dj4DuPjv8fQ0BzGx3+PjY3v\nIrEsp729PczMzCCVSiGfzweWLRQKKBaLZf0ye3vWBfATiYTnPLu7uxemvX//Hrmc9x3HM5lMTc17\nrdCz5+EQUWfa2PgOv/71Nzg8/FNp2uHh7wAAd+78vG3LclpbW8Po6CgA4Msvv0Qul8P29jaGh73v\nfG4nl6tXr5amFQrWXdOvX7/uOU8sFrswLehcmXg8XnqfduERDhF1lOfP35YlCAA4PPwTXrzwvf1V\nKMtyWlpawr179wAAMzMzpWl+7OTiZB/ZfPjwoer3DTpZtr/fuj/lx48fq15es/EIh4g6yufP3rut\nT58utXVZtpOTE2xvb5cSjW1tbQ2np6eeRyZezWb2NK9kBFh9PgsLC3j37h3GxsbKYn191rHE1NQU\nXr9+XRZzHkWFjUc4RNRRLl/+p+f0K1d+bOuybPl8HgsLC9jd3S09VldXAQArKyue83glnHg8jsnJ\nSWxueh9tFYtFxGIxjIyMoFAooFAoYH5+Hul0uvTaOUigUChgcHCw7vVqilpuN9otD2u1Lc7n1aim\nfFAZxrozFpV69EJsff1bTSZ/q4CWHsnkE11f/9Z3njCWZYvH47q3t+c5PZlM+s6XTCZ1a2urbNrJ\nyYkmk0mdnZ0tmz41NaXb29sXlrG6uqqDg4Oey5+cnNTFxcXAuru3u8e+srF9b6MLaLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x10e069890>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(1,1, figsize = (6,4))\n",
"ax.plot(xtemp_txP, ytemp_tx, 'bo')\n",
"ax.plot(xtemp_txN, ytemp_tx, 'ro')\n",
"ax.plot(xtemp_rxP, ytemp_rx, 'ko')\n",
"ax.plot(xtemp_rxN, ytemp_rx, 'go')\n",
"ax.legend(('A (C+)', 'B (C-)', 'M (P+)', 'N (C-)'), fontsize = 14)\n",
"mesh.plotSlice(sigma, grid=True, ax = ax, pcolorOpts={'cmap':'binary'})\n",
"ax.set_xlim(-600, 600)\n",
"ax.set_ylim(-200, 200)\n",
"ax.set_title('Survey geometry (Plan view)')\n",
"ax.set_xlabel('x (m)')\n",
"ax.set_ylabel('y (m)')\n",
"ax.text(-600, 210, '(a)', fontsize = 16)\n",
"# fig.savefig('DCsurvey.png', dpi = 200)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"txlist = []\n",
"rx = DC.RxDipole(np.r_[xtemp_rxP, ytemp_rx, -12.5], np.r_[xtemp_rxN, ytemp_rx, -12.5])\n",
"for i in range(ntx): \n",
" tx = DC.SrcDipole([rx], [xtemp_txP[i], ytemp_tx[i], -12.5],[xtemp_txN[i], ytemp_tx[i], -12.5])\n",
" txlist.append(tx)\n",
"survey = DC.SurveyDC(txlist)\n",
"problem = DC.ProblemDC_CC(mesh)\n",
"problem.pair(survey)\n",
"try:\n",
" from pymatsolver import MumpsSolver\n",
" problem.Solver = MumpsSolver\n",
"except Exception, e:\n",
" problem.Solver = SolverLU "
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Step4: Run DC forward modeling"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 5.26 s, sys: 554 ms, total: 5.81 s\n",
"Wall time: 4.06 s\n"
]
}
],
"source": [
"%%time\n",
"data = survey.dpred(sigma)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$ \\rho_a = \\frac{V}{I}\\pi\\frac{b(b+a)}{a}$$"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x10f990a10>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nm9M0u0dEpIEUDCLuvu2C+WbWV8z5ZtZnZiNAX5RjwIq7t7h7u7sn3F3rDIhI0aamphoyx/rU1NSm\nfPADAwMMDAyQSCQYHx9nYyP/v8nHxsYy5w4MDDA/P1/33xdpxnrYxHUUuOzub5pZK3DY3S8U+f1b\n7p43cOU7ZmbD7j5d5LXVJyJSpp3WJ7K8vMzCwgLf+EbjjQFaXV2lo6OD06dPZ8q3sbFBX18fqVTq\njnwl/f39dHZ28vLLL2fO7enpIZVKZZa1z6fRZqyPAUngmJmtANMEnetVY2ZHwtrKRBi0RESK0t3d\n3ZABBPIvBtna2sr09DTJZJLx8fHM/tOnT7OwsJAJIOlzZ2dnWV9fr0l5C4kaRM67+wV3H3X3TmAC\nOFuFcqUthvdbAM4BC1W8l4hI3XV3d2cCRNr4+Pgd2RbT53Z0dNSyeHcoa7Khuy8V03dSquw+kPBz\njyY7ikiu06dPMzQ0lMmBPj09ncmr3tnZmTmnra0t0+/Q3t5OIpFgdXWVsbEx2tvb6ezszKTKnZqa\nynz/xIkTJBKJzPlpW+VeX1paYmBggBMnTjAwMMDo6CidnZ0sLGz/b+F4PJ651tLSUmZfPouLi6X9\noVVI1KRUMWDJzM4Dc9WcG2JmPcCUu2/qNXL3jwp95/jx4+zfvz8oaCxGV1cXhw4dAuDSpUsA2ta2\ntrfYLsbIyAg//elPuffee3n11VeLSvRUzeulUinm5+e5ePEiEOT6MDMmJibYt28fZ88GjSWnTp1i\nbW2N06dP881vfpOJiQkSiQQdHR1MTU2xtrbGwMAAg4ODLC4uMjIyQjKZzASoM2fOMD4+vim/+la5\n1/v6+viHf/gHnnjiCS5cuMDw8DCzs7Pb5oQHaG9vB+Cjjz7K5DrZt29f3nNz0/nmk/33e+nSJa5e\nvbrtd4qWzi9czAs4STDJ8ChBM9YKcC7C928VewxoBY5kbR/e6l7BTxGRchTz/9EjjzziQFVeg4OD\nkcu8vr7uZuajo6M+NzfnyWTSk8mku7tPTk56R0dH5txTp055e3v7pu2WlpbM9uTkpLe1tRU8/8qV\nK25mvrS05OfPn3cz81Qqtakcy8vLmfNWV1fd3f3y5ctuZr6xsXFHuV988cU7flNPT0+mXOnvjo+P\nR/6zcd/67zQ8FikO5L6iNmctuXvS3Wf9dr/I6HZfMrNuMzsFeNhB3rfdMQ/mp6TCJVeGwyAynPcG\nIlIz9957LxBkBFxfXy/rAeTuPPbYY5nrTU1NRS5PLBbj7NmzzM/PMzAwQEdHxx0pbrNl1wT27du3\naTtfLSj7eLqGsLq6uin3+tDQECMjI5l7x+Nx4vE4c3PB9Lf5+fmi8runpa8Bt5uxCv2m0dHRgkOC\nayFqc9aamXV51sx0d09t9YXwnGVgGTgd8dgC6kwXaSivvvoqIyMjTE1Nld2UVYnrLS8vE4/HWVlZ\nYXV1lcnJScbGxirWV5D98F5bC1Z9isfjXLt2DSice31kZITJyUkuX76MmXH58uWi77exscHf/M3f\nAEFgO3r0aCYg5UpnX6yXqDWRY8CbZnbRzL5hZl3VKJSINK5YLMbMzExFAkglrnf9+nVGR4MGkQMH\nDmRqBJWSSqUyneFnz56lo6ODrq4uhoaGCuZeX1paYmZmhrNnzzI4OMjIyAi3bt3adN10QPKcORyj\no6P09vZuGpo8PT1Ne3t7JnVv2tDQ0KahwHURpdpJ2EdB0C8yAswAF8utzlbihfpERMrWjP8fzc/P\n++DgYObV39/vq6urPjs76x0dHd7S0uInTpzw2dlZb2tr85aWFh8fH990fHx83Ofn5zed7x70ifT2\n9vrY2Jj39vZ6IpHI9HO4uy8tLXlvb693dHR4b2+vX7hwwd2D/o54PO5mtuk1Ozvr7u5nz57N3Kut\nrc37+/u9v7/fe3t7t+z7GB0dzZzb39/vCwsL2/75bPV3SgX6RKLOWG8FEh40MzUUzVgXKd9Om7Fe\nrrGxMRYWFiI3jc3Pz3P69GlmZ2cz/SDj4+Mkk8mCzV/VUrdVfPPxoLM7E0DMrNW3WaBRRGS3mZ2d\nJR6Pb+pIb29v58EHH6xjqapj2z6RcMmRlXA13RUzeyFrwt9BM3u3ymUUEam52dlZpqenWV5e5pln\nnon03bGxMZLJJAMDA5mJiOvr6w27BEs5ik1KNQmsEkw27CdYcXfC3V8xsxUPhvrWlZqzRMqn5qyd\np97NWcfyBIjZ8OY94fyN+XIKICIizWu7mkhfI3ai56OaiEj5VBPZeRptKXgREZGM7YJIT6EDZtYa\n5vrYeT1FIiJSlO36RJbN7CJwiiAZVZwgCdUgcJmgw30ReKmahRSR2jErq3VDdpktg4i7z5tZHFjK\n2j0PjLr7qpnFgPzrE4tI01F/iERV9Ix1M+tx96Ws7VYg7lmJo+pJHesiItFUomM90Line truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x10ea722d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"appres = data*np.pi*b*(b+a)/a\n",
"\n",
"\n",
"fig, ax = plt.subplots(1,1, figsize = (6, 4))\n",
"ax.semilogx(np.r_[100., 500.], np.r_[100., 100.], 'k--')\n",
"ax.semilogx(abhalf, appres, 'k.-')\n",
"ax.set_ylim(90., 120.)\n",
"ax.set_xscale('log')\n",
"ax.set_xlabel('AB/2')\n",
"ax.set_ylabel('Apparent resistivity ($\\Omega m$)')\n",
"ax.grid(True)\n",
"ax.text(100, 122, '(b)', fontsize = 16)\n",
"ax.legend(('True', 'simpegDC'), loc = 1, fontsize = 14)\n",
"# fig.savefig('comp_dc.png')"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
}
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
+71 -60
View File
@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
"signature": "sha256:420f2b8a60ef08ab473ad159b33d15f48d4551a725f31a27a51cc03264657fbc"
"signature": "sha256:29c8b78e5b8f768bcf861afb186d1d85bff67ec768eba74cf6c3e85da81d0c01"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,7 +13,7 @@
"collapsed": false,
"input": [
"from SimPEG import *\n",
"import simpegDC as DC\n",
"import simpegDCIP as DC\n",
"from simpegem1d import Utils1D\n",
"%pylab inline"
],
@@ -26,18 +26,9 @@
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"output_type": "stream",
"stream": "stderr",
"text": [
"Vendor: Continuum Analytics, Inc.\n",
"Package: mkl\n",
"Message: trial mode expires in 20 days\n"
]
}
],
"prompt_number": 1
"prompt_number": 4
},
{
"cell_type": "code",
@@ -51,7 +42,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
"prompt_number": 5
},
{
"cell_type": "heading",
@@ -97,7 +88,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
"prompt_number": 6
},
{
"cell_type": "code",
@@ -108,7 +99,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 4
"prompt_number": 7
},
{
"cell_type": "code",
@@ -124,11 +115,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x10439a3d0>"
"<matplotlib.figure.Figure at 0x10c83c990>"
]
}
],
"prompt_number": 5
"prompt_number": 8
},
{
"cell_type": "heading",
@@ -154,7 +145,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 6
"prompt_number": 9
},
{
"cell_type": "code",
@@ -187,11 +178,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x10db67550>"
"<matplotlib.figure.Figure at 0x10e1d9710>"
]
}
],
"prompt_number": 7
"prompt_number": 10
},
{
"cell_type": "code",
@@ -212,7 +203,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 8
"prompt_number": 11
},
{
"cell_type": "heading",
@@ -278,7 +269,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 15
"prompt_number": 12
},
{
"cell_type": "code",
@@ -297,7 +288,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 16
"prompt_number": 13
},
{
"cell_type": "code",
@@ -319,7 +310,7 @@
]
}
],
"prompt_number": 17
"prompt_number": 14
},
{
"cell_type": "code",
@@ -349,7 +340,7 @@
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 18,
"prompt_number": 15,
"text": [
"(-0.2, 0.6)"
]
@@ -359,11 +350,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x10e28ea50>"
"<matplotlib.figure.Figure at 0x1104a8b50>"
]
}
],
"prompt_number": 18
"prompt_number": 15
},
{
"cell_type": "code",
@@ -392,11 +383,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x114a31710>"
"<matplotlib.figure.Figure at 0x10e2f0790>"
]
}
],
"prompt_number": 19
"prompt_number": 16
},
{
"cell_type": "markdown",
@@ -419,7 +410,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 22
"prompt_number": 17
},
{
"cell_type": "heading",
@@ -433,7 +424,7 @@
"cell_type": "code",
"collapsed": false,
"input": [
"problem = DC.ProblemDC(mesh, mapping=mapping)\n",
"problem = DC.ProblemDC_CC(mesh, mapping=mapping)\n",
"problem.pair(survey)\n",
"try:\n",
" from pymatsolver import MumpsSolver\n",
@@ -444,7 +435,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 29
"prompt_number": 19
},
{
"cell_type": "heading",
@@ -468,12 +459,12 @@
"output_type": "stream",
"stream": "stdout",
"text": [
"CPU times: user 4.7 s, sys: 582 ms, total: 5.28 s\n",
"Wall time: 4.41 s\n"
"CPU times: user 6.05 s, sys: 708 ms, total: 6.76 s\n",
"Wall time: 6.01 s\n"
]
}
],
"prompt_number": 31
"prompt_number": 20
},
{
"cell_type": "markdown",
@@ -497,8 +488,20 @@
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 32
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 21,
"text": [
"array([ 0.0186522 , 0.0211157 , 0.02374998, 0.02677094, 0.02987307,\n",
" 0.03446037, 0.03920482, 0.04541832, 0.05344991, 0.062497 ,\n",
" 0.07516488, 0.09013051, 0.11364832, 0.1407387 , 0.18918521,\n",
" 0.27485483])"
]
}
],
"prompt_number": 21
},
{
"cell_type": "code",
@@ -533,7 +536,7 @@
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 34,
"prompt_number": 22,
"text": [
"(-500.0, 0.0)"
]
@@ -543,11 +546,11 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAA94AAAExCAYAAACK4HpVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3X2QXFd95//31zY2JkZqSYB/sFUgjc1uQfEgj2TiPGAU\nS7JJFjaxpZH4VUhZqUgzAsLuEmyNtWTx7C9kNZLJJmAeNGNvqsIG//BIMqYSQmyNhNiFJCCNpBAI\nu9gaDdisH/an0UghWH6Qvr8/zmnNnZ5+uPd293TPzOdV1TW6t8899/Rt8O3vPed8j7k7IiIiIiIi\nItIcl7S6ASIiIiIiIiJzmQJvERERERERkSZS4C0iIiIiIiLSRAq8RURERERERJpIgbeIiIiIiIhI\nEynwlpYys4KZXYiv1SnKdyTKL21+C6edf1s89+4ZPm93K847U1p1XUVEREREZoICb2kpd58AjsbN\nrhSHrI9/T7j7WFMaVZ2X/G3V+eeaVl9XEREREZGmUeAt7WAg/k0TeG+Mf/c2qS0AFHvVy7w1DOwE\n9jTz/HOVrquIiIiIzEeXtboBIsAQIfgumNlqdz9QrpCZdQDXEXpFB8qVabBpva/ufgw4NgPnnst0\nXUVERERkXlGPt7Scu58h9Hga1Xu9i8PMR1s0zFxERERERCQzBd7SLopDjKsF3mWHmccEbQNmdiIO\nZT5tZkPlkrWZ2fpY5o64PRC3h+L2nsRQaCsdGl0tyZmZdcbjT8cyJ8ys38wWlvswsS17Stp9xMzW\nVbkGqcXrstPMRkrq31LjmFTXMsvnbvB1LbZpWZmyxe93R9zelvgsJ8xsd6XvQ0RERESkWRR4S7sY\nin8LFQLmAmWGmZtZJ3AS2AIsBU4DCwi94/vN7M4K5zMzG4jHOZPDnx9lamC/h/LzjqcMlzazbuAI\nsC6e/3RszzbgZGmQaGY742deV9LuTmCPmfVXaHcq8XqNAHcCy0vqH6gU4JLxWmb43Hmv6/oy9Rfb\ndKLKQwozs/1AP3ABOAEsA7rjdRERERERmTEKvKUtpBhuviH+LR1mvgdYSAjGF7n7Ene/FOiN7++s\n0FvbQwgwdwIrCAEZ7n6fuxfP5e6+0d03ljn+ohjk7iYEjdvc/VJ3XwJcS8jYXojnKZbvIATEDnQX\ny8d298Ri26qdM4WdhEBzhKnXpXhtu8v0GGe6llk+dx3XtfhAZk+xTcBiJoP4PeV6vgnfZyfQ6e5v\ndPc3Er5ngI5qvf4iIiIiIo2mwFvaSbXs5sV9F3tNY2/rMmC/u3/A3c8W33P3e0gEjGXq6yAEvdvd\n/XgM/PMq1j/o7p9MtOFkot3JntnO+HfY3e9PVuTu9xF6nd3MrqujTSvj396S67KPcA2LPcBA7muZ\n9XNntT3+3R8D9bOx/jMxiB8ufsYyxy4Eutz9eKJdx4BdcbOjjnaJiIiIiGSiwFvaRgwKofxw89VM\nz2ZeDO7KBdYA98W/5QLY06VBbx2Kw9WntSMGobuAweLcYnffCxTc/ZYa9dazpnXx2JvLtGlD7AU+\nmNid51pm+tw5FJPpVWpTcX+5EQ0TJZ+vaDT+LeRsk4iIiIhIZlpOTNrNXkLA1QUcgIvzfGH6MPNi\nr+VWM/tAlTrNzJaWHDtaqXAWcTg0AJUyrbv7XWX2XexRjnV0AGuAtYSe53qCbggPKAaAbfH6DRB6\n2Cst2ZXpWgITxR1ZPndGxetwpML7xbna5XqvKx0jIiIiIjLjFHhLu3mQEHhvALbGfWWzmTM5VHo9\n1QPVcu81JPBmMujLVF9MZLad6UOxi221ehrl7vfFgH57bOPOeN4zhGu8M/ZKF2W9lrk+d1olDzTO\nlivj7hNmViy/oKTcRLljRERERERaQUPNpa0khpsvTAw3X8f0YeYXDyEM2760wuuS+HesSU0uBniL\n0x5gZmuYzNR9ghAUryckArsUqNQrnYm73+Puiwm96IOEHuIFhMRjJ8rMIc9yLU/HY1J/7oxtzxQ4\nVwrORURERETagQJvaUeDxOzmMUiF6cPMISQhA1hSqaK4LnXT5vO6e805w2a2xsy2JOY6F+cm74xz\nrbe7+0PJRGANbuMBd9/q7tcTMo4Xk5Il505nupaJ3vIsnzurM7GeclnLi9nhQb3bIiIiItLmFHgn\nmFlnDBTWmdmdFZahkuYrru+8gcmkX+V6u0cIAXpPmfeKc8PHmVySqllGw+kqrim9h7hEV9wurke+\no0L5AnXM8Y4B8gkzmzbPOQbMxSzgKxJv5bmWWT93Vodjm9ZXeL/YVs3nlrLy/jc9y3Fmtr7S+/P9\nnlLj2qyJ1+ROM+svt8TffL9+IiIytyjwjmLvWX9cb3hfXEKpp1JvmzSPux8g9GIWmMycXTq/GyYD\n122lw6Zjz2yxR7fZgffFHuzS3t24TNdCQhb1sbj7JCGgvKa0IjPbxuR861zzvOMw7WVAZ4WgeG38\nmwxY81zLrJ87q2L920v/fxjnyBfXQq+U9Vzmsbz/Tc9yXByRM0iZB2Xz/Z5S49p0AgvjdJh7YiLG\n8WTwPd+vn4iIzD0KvCf1ArtL9g2gH/WtMqVntVzwFjN0FwPyETMbMrPuGLyeJASfI3UsG2axJ6Zq\nL0tce3uUkHDsZDym28z2EP435Uxdm3x//Hsg9uZ0xvL7gX7CQwejTMCZQXG96j2J61JsUz8lAWue\na5njcxelva4HCMPiC4Q56btj/QNMPjQYrrBsmEje/6bXPM7MlpnZbsL/L8YbfP5ZLeW16U7k8wAu\n5vdYm9g1L6+fiIjMYe6ulzuEHwhLS/YVgAutbtt8fBGGY18AzgN31Ci7O5ZNvs4TsncvKCm7Lr7/\nYI06h5J1JfZvifs+X1J+ISEYPF+mHZvL1P9omTY/BixPnOMC8Egs313uvBk+Q/J1Crit3muZ83Nn\nuq6JY8rVP+07rPX9VjuPXnPrlfe/6VmPAx4HbmrU+efSq8q1OQIsK7P/UV0/vfTSSy+95urL3Otd\nLnj2i0NpxwkZnc+WvHcB6PDmZcWWBog9w2sIgeAocLTe7ywO014GTHjKXvM4THsF4QfiUeBI6f+m\nKpX1RM9t4tzDXkfStXhdOoufgzB6oGoPcZ5rmfFz57muyTZNEK5L1TbJ/JX3v+l5jjOzxwk9uAfr\nqWcuKndt4v5+Qu6GtR4TNcah6Uvd/X5dPxERmYsUeHNxLtnj7j5t6H28ya+pFayIiEh7yPvf9DzH\nVQi8dU+hcuAd3ztCeCjYQ5jOstDj8HNdPxERmYsua3UD2kTTlpsSEZEZl/e/6Y26F+ieUoO7rzSz\nRwnzto8CyZwPun4iIjLnKLmaiIiIzKiYwXwbIaFaByGpozKWi4jInKUe75zMTGP0RUQS3D3XEnjl\nZP1vbCPPLc0Vs573F+dpx4B7D2HFh2vrrFv3ZhERaahG/cZQ4B2MApjZggoJoUbLHdTXzBbNA18H\nfqXVjZjldA3rp2vYGH0trLNMuVz/Ta/juGbVM+fExGkkk6O5+xngZjM7YmY3EYae575+yl0z9/X1\n9dHX19fqZrStuXJ92v1ztLp9M3n+Zp6rGXU3sk6zxj3X11BzwN0nmFyP+KKY4GVC2VNFRGbeZSlf\npfL+N71R9wLdU6paAZyo8N4AIZO5rp9UtWrVqlY3oa3NlevT7p+j1e2byfM381zNqLvV300lCrwn\nDQPXl+zrJAx9ExGRGXZlylcFef+b3qh7ge4p5Y0C11R4r7gcIej6SRXt+qO6XcyV69Pun6PV7VPg\nPbN1NoIC70m9QFfJvu64X5pgaasbMAcsbXUD5oClrW6AVPSylK8Kav433cwKZnYiJvpKfVwZ5cah\n6Z4STLk2iXW7V08pFHqzlyR6s3X9RERkTtE63glmdh2wEThMzLJaaa1QM/O+GWybiEg766PxydU+\nl7LsByucu9Z/0+N841Fgm7vfn+G4hcD2+N76WMcwsL+4FnWaetpVlbnVaY5Ne222EHq+T8VdE+5+\nX0ldma+fmbl+14iISKOYWcN+3yjwzkmBt4jIpD4aH3jfV7sYAFsafO75JGYUX09Y1mslU9fQPg0c\nIQzv3jsb5lYr8BYRkUZqZOCtrOYiItKWdINqHjNbR+iZ7oy7RoEDwDgwQQjAF8f31wK7zGwE2OHu\nD818i0VERGY3/a4REZG2VGX+tuSUWDO7E9gL9Lr7gRTHrQF6gL0xAO+aDT3gIiIi7UKBt4iItCXd\noJqi2Gu9MstB7j5MmKuNmW0jZB9f3PjmiYiIzE36XSMiIm3pFa1uwNzUEdfJzs3dd5nZYKMaJCIi\nMh9oOTEREWlLl6V8SXpZg+7SZb/y1iMiIjLfKfAWEZG2VOc63tIYJ82s38yWtrohIiIis5kCbxER\naUvq8Z45ZrbOzMbN7IKZPWJmO8xsqbuPuvtdQFer2ygiIjKb6TeLiIi0JfVmz6iNwGpgCWH5sJuB\nXjM7QUiqtqSFbRMREZn1FHiLiEhb0g1qRh1292Px38Xs5QVgA2HpsR2tapiIiMhcoN81IiLSltTj\n3VoxgZqyl4uIiDSA5niLiEhbujLlSxriPjPb0upGiIiIzFUKvEVEpC0pudqMcmCFmT1mZpuVxVxE\nRKSx9JtFRETakoaaz6g9wAQwBuwCCmY2AeyPryF3P9u65omIiMxuCrxFRKQt1Rt4m1knsAIYBzqA\no+5+oBHHZSizAThFyAr+YCKBWbvZ4+73FTdiYrU1hAzn24GdZMxsbmbrgdNlrstO4FFgJM4jr3R8\nru9PRESkHSnwFhGRtlTPDcrMOoB+d785sW/IzEbd/WQ9x6UsswbYVlLmiJl1VTt/u4gB8d74yix+\n/kFgfZm3O4E7Y7nS9064+xvzfn8iIiLtSnO8RUSkLb3ssnSvCnqB3SX7Bgg9t9WkOS5NmYLine truncated
"text": [
"<matplotlib.figure.Figure at 0x110aad290>"
"<matplotlib.figure.Figure at 0x10e2d5d10>"
]
}
],
"prompt_number": 34
"prompt_number": 22
},
{
"cell_type": "heading",
@@ -573,7 +576,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 35
"prompt_number": 23
},
{
"cell_type": "code",
@@ -610,7 +613,7 @@
"\n",
" # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n",
"-----------------------------------------------------------------------------\n",
" 0 4.33e-01 6.26e+03 4.48e+00 6.27e+03 8.79e+03 0 "
" 0 2.61e-01 6.27e+03 4.48e+00 6.27e+03 8.80e+03 0 "
]
},
{
@@ -618,7 +621,7 @@
"stream": "stdout",
"text": [
"\n",
" 1 4.33e-01 6.16e+02 3.99e+00 6.18e+02 2.57e+03 0 "
" 1 2.61e-01 5.22e+02 3.96e+00 5.23e+02 2.50e+03 0 "
]
},
{
@@ -626,7 +629,7 @@
"stream": "stdout",
"text": [
"\n",
" 2 8.65e-02 2.66e+02 3.93e+00 2.66e+02 1.05e+03 0 "
" 2 5.23e-02 1.67e+02 3.91e+00 1.67e+02 8.21e+02 0 "
]
},
{
@@ -634,7 +637,7 @@
"stream": "stdout",
"text": [
"\n",
" 3 8.65e-02 9.60e+01 3.92e+00 9.64e+01 3.61e+02 0 Skip BFGS "
" 3 5.23e-02 7.93e+01 4.08e+00 7.95e+01 2.62e+02 0 Skip BFGS "
]
},
{
@@ -642,7 +645,7 @@
"stream": "stdout",
"text": [
"\n",
" 4 1.73e-02 7.46e+01 4.01e+00 7.46e+01 2.16e+02 0 Skip BFGS "
" 4 1.05e-02 6.35e+01 4.25e+00 6.36e+01 1.71e+02 0 Skip BFGS "
]
},
{
@@ -650,7 +653,7 @@
"stream": "stdout",
"text": [
"\n",
" 5 1.73e-02 4.24e+01 4.41e+00 4.24e+01 1.20e+02 0 Skip BFGS "
" 5 1.05e-02 3.01e+01 5.08e+00 3.02e+01 2.36e+02 0 Skip BFGS "
]
},
{
@@ -658,7 +661,7 @@
"stream": "stdout",
"text": [
"\n",
" 6 3.46e-03 2.73e+01 4.78e+00 2.73e+01 8.23e+01 0 Skip BFGS "
" 6 2.09e-03 2.33e+01 5.32e+00 2.33e+01 1.57e+02 0 Skip BFGS "
]
},
{
@@ -666,7 +669,7 @@
"stream": "stdout",
"text": [
"\n",
" 7 3.46e-03 1.10e+01 5.73e+00 1.10e+01 2.42e+01 0 Skip BFGS "
" 7 2.09e-03 1.01e+01 6.69e+00 1.01e+01 1.34e+02 0 Skip BFGS "
]
},
{
@@ -675,16 +678,16 @@
"text": [
"\n",
"------------------------- STOP! -------------------------\n",
"1 : |fc-fOld| = 1.6315e+01 <= tolF*(1+|f0|) = 6.2674e+02\n",
"0 : |xc-x_last| = 7.2794e-01 <= tolX*(1+|x0|) = 2.6641e-14\n",
"0 : |proj(x-g)-x| = 2.4186e+01 <= tolG = 1.0000e-01\n",
"0 : |proj(x-g)-x| = 2.4186e+01 <= 1e3*eps = 1.0000e-02\n",
"1 : |fc-fOld| = 1.3195e+01 <= tolF*(1+|f0|) = 6.2702e+02\n",
"0 : |xc-x_last| = 7.9764e-01 <= tolX*(1+|x0|) = 2.6641e-14\n",
"0 : |proj(x-g)-x| = 1.3417e+02 <= tolG = 1.0000e-01\n",
"0 : |proj(x-g)-x| = 1.3417e+02 <= 1e3*eps = 1.0000e-02\n",
"1 : maxIter = 7 <= iter = 7\n",
"------------------------- DONE! -------------------------\n"
]
}
],
"prompt_number": 36
"prompt_number": 24
},
{
"cell_type": "code",
@@ -695,7 +698,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 37
"prompt_number": 25
},
{
"cell_type": "code",
@@ -730,14 +733,22 @@
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"output_type": "pyout",
"prompt_number": 26,
"text": [
"<matplotlib.figure.Figure at 0x10ed29dd0>"
"<matplotlib.text.Text at 0x11049df90>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x114071f10>"
]
}
],
"prompt_number": 38
"prompt_number": 26
},
{
"cell_type": "code",
@@ -758,7 +769,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 39
"prompt_number": 27
},
{
"cell_type": "code",
+648 -423
View File
File diff suppressed because it is too large. Load diff
+64 -28
View File
@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
"signature": "sha256:8f8d2c689741d8d56146a511dd2c67e7956c3d1fe0dcef0cf550c0b5c5f9c52d"
"signature": "sha256:9107d99fbfb21822b71a94de16f078e82c12cf73d2e85893fd26dfda06c8ce14"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -13,7 +13,7 @@
"collapsed": false,
"input": [
"from SimPEG import *\n",
"import simpegDC as DC\n",
"import simpegDCIP as DC\n",
"%pylab inline\n",
"from pymatsolver import MumpsSolver"
],
@@ -33,7 +33,7 @@
"text": [
"Vendor: Continuum Analytics, Inc.\n",
"Package: mkl\n",
"Message: trial mode expires in 20 days\n"
"Message: trial mode expires in 29 days\n"
]
}
],
@@ -156,9 +156,9 @@
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 8,
"prompt_number": 7,
"text": [
"[<matplotlib.lines.Line2D at 0x10ea54b90>]"
"[<matplotlib.lines.Line2D at 0x10db0fa50>]"
]
},
{
@@ -166,11 +166,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x10e8888d0>"
"<matplotlib.figure.Figure at 0x10d9ac710>"
]
}
],
"prompt_number": 8
"prompt_number": 7
},
{
"cell_type": "code",
@@ -179,7 +179,7 @@
"expmap = Maps.ExpMap(mesh)\n",
"m2to3 = Maps.Map2Dto3D(mesh,normal='Y')\n",
"imap = Maps.IdentityMap(mesh)\n",
"problem = DC.ProblemDC(mesh, mapping= imap )\n",
"problem = DC.ProblemDC_CC(mesh, mapping= imap )\n",
"problem.Solver = MumpsSolver\n",
"problem.pair(survey)"
],
@@ -204,16 +204,16 @@
"output_type": "pyout",
"prompt_number": 10,
"text": [
"[<matplotlib.lines.Line2D at 0x1106dd910>,\n",
" <matplotlib.lines.Line2D at 0x1106ddb90>]"
"[<matplotlib.lines.Line2D at 0x1038621d0>,\n",
" <matplotlib.lines.Line2D at 0x103862450>]"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x10d9bb3d0>"
"<matplotlib.figure.Figure at 0x10e82c610>"
]
}
],
@@ -283,7 +283,7 @@
"\n",
" # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n",
"-----------------------------------------------------------------------------\n",
" 0 6.59e+00 1.84e+03 1.05e+04 7.11e+04 2.15e+03 0 "
" 0 7.28e+00 1.86e+03 1.05e+04 7.84e+04 2.20e+03 0 "
]
},
{
@@ -291,7 +291,7 @@
"stream": "stdout",
"text": [
"\n",
" 1 6.59e+00 1.98e+02 1.07e+04 7.10e+04 1.89e+02 0 "
" 1 7.28e+00 6.57e+02 1.06e+04 7.80e+04 1.15e+03 1 "
]
},
{
@@ -299,7 +299,7 @@
"stream": "stdout",
"text": [
"\n",
" 2 1.32e+00 1.70e+02 1.07e+04 1.43e+04 2.63e+02 0 "
" 2 1.46e+00 5.58e+02 1.06e+04 1.61e+04 1.03e+03 3 Skip BFGS "
]
},
{
@@ -307,7 +307,7 @@
"stream": "stdout",
"text": [
"\n",
" 3 1.32e+00 9.16e+01 1.07e+04 1.42e+04 1.81e+02 0 "
" 3 1.46e+00 1.36e+02 1.08e+04 1.59e+04 1.69e+02 0 Skip BFGS "
]
},
{
@@ -315,7 +315,7 @@
"stream": "stdout",
"text": [
"\n",
"------------------------------------------------------------------"
" 4 2.91e-01 8.24e+01 1.07e+04 3.20e+03 2.05e+02 0 "
]
},
{
@@ -323,10 +323,37 @@
"stream": "stdout",
"text": [
"\n",
"0 : ft = 1.4181e+04 <= alp*descent = 1.4181e+04\n",
"1 : maxIterLS = 10 <= iterLS = 10\n",
"------------------------- End Linesearch -------------------------\n",
"The linesearch got broken. Boo.\n"
" 5 2.91e-01 4.61e+01 1.07e+04 3.16e+03 1.35e+02 0 Skip BFGS "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" 6 5.83e-02 4.40e+01 1.07e+04 6.65e+02 1.16e+02 0 "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
" 7 5.83e-02 3.99e+01 1.07e+04 6.61e+02 1.35e+02 0 "
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"------------------------- STOP! -------------------------\n",
"1 : |fc-fOld| = 4.7528e+00 <= tolF*(1+|f0|) = 7.8397e+03\n",
"0 : |xc-x_last| = 4.6314e-01 <= tolX*(1+|x0|) = 1.8172e-13\n",
"0 : |proj(x-g)-x| = 1.3494e+02 <= tolG = 1.0000e-01\n",
"0 : |proj(x-g)-x| = 1.3494e+02 <= 1e3*eps = 1.0000e-02\n",
"1 : maxIter = 7 <= iter = 7\n",
"------------------------- DONE! -------------------------\n"
]
}
],
@@ -346,15 +373,15 @@
"output_type": "pyout",
"prompt_number": 14,
"text": [
"<matplotlib.colorbar.Colorbar instance at 0x10daf85a8>"
"<matplotlib.colorbar.Colorbar instance at 0x10fcbaa28>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEZCAYAAAB1mUk3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztvXucFNWd9//+MOMM14CMoiAIajDBxZVEBP2FLESj4hUT\nV7Pk0V2NWTfyaPS3bCTimsX4rLeErD4a3TViSEw0IWviJYrKmuDGrEq8YCCi4gXlpkQU5DrDDN/n\njzpdXd3T3dM9PTM903zfr1e9OFV16tSp7qbOVH3O9/OVmeE4juPs2fSqdAccx3GcyuODgeM4juOD\ngeM4juODgeM4joMPBo7jOA4+GDiO4zj4YOD0ICSdJ+l3ifUtkkZVrkeOUz34YOB0KyRNkvQ/kjZJ\n2ijpKUnjc9U1swFmtqoDz10naZ6kVZI+kvSipKmJ/UdLWhT6tUHSAkn7d9T5HaeS+GDgdBskfQz4\nNXAzsDdwAHA10NhFXagF3gH+ysw+BvwzsEDSyLB/EPDvwMiwbAF+2EV9c5xOxQcDpztxKGBm9nOL\n2Glmi8xsWa7KknZLOjiU+0iaG/6q3yTpd5J6h31Hh6eNDyUtlTQ5V3tmtt3Mrjazd8L6w8BbwKfD\n+qNmdp+ZbTWzHcD3gc90+KfgOBXABwOnO/Eq0CJpvqSpkvYu4djvAp8CjgEGA98Adks6gOhp49tm\ntjfwT8B9kvZpq0FJ+xENUH/KU+WvgOUl9NFxui0+GDjdBjPbAkwCDPgBsEHSA5KGFDpOUi/gfOBS\nM1tvZrvN7BkzawLOAR4xs0fDOf4LeA44uY029wJ+Csw3s9dy7P9L4CqiQcdxejw+GDjdCjN7xczO\nN7MRwFhgGHBTG4ftA/QG3sixbyRwVnhF9KGkD4le7eQVfsPgcjewE7g4x/6PA48AXzez3xdxWY7T\n7fHBwOm2mNmrwI+IBoVCvE904/54jn3vAHeb2d6JZYCZ3ZirIUkC5gH7AmeaWUvW/pHAIqLXTj8t\n7Yocp/vig4HTbZD0CUn/GN7zI2kEMB14utBxZrYbuAv4nqShkmokHSOpDvgJcJqkE8L23pKmpM6R\ng9uBTwKnm1nGLKZwzG+AW83sjrIu1nG6GT4YON2JLcBE4FlJW4kGgT8CM8N+CwuJ9RT/BCwD/gBs\nBK4DepnZGmAaMBvYQPSkMJMcv/3wV/+FwBHAuyGobYuk6aHKV4GDgDmJfR+Vf9mOU3nU05LbhCCg\nm4Aa4E4zu6HCXXIcx+nx9KjBQFIN0fTDzwNrif4KnG5mKyraMcdxnB5OT3tNNAF43cxWmdku4GdE\nrwAcx3GcMuhpg8EBwOrE+pqwzXEcxymDnjYY9Jx3Wo7jOD2I2kp3oETWAiMS6yOIng5iJPmA4ThO\n0ZiZ2ntse+435ZyvM+lpg8FzwOjgYb8O+BLRPPQMrNWW9qF7wU5s57GPwb8MgTn7tV13x5vQdxts\n75e/Tt9t8EyefUfT2jrzfGBuYn0m8GAonzYEtAFsCDAddDPYpdD8bdhrIOzaDNv71TGwtolvXtWL\n6y7ZjYaAbQA2gsZASrLXGLBfhPJZYONCeWn6fKcDNjpsXwl2Z9ixEnQD2CzgNNAksKeAbaATwR4D\nDkyc7xegb4F9G3gTNB/svNDu/PRfBcOBOaE8B3ge+A/gDsDCJFXNzTw2tZ2VoAfBTgcuT/Rpfbi+\nXwD9QCeDPQI8EdpKthuuT1/NPMfm3lF54M70d913W+ZnlvosX/nrkYzR26ywkTRRzxF6ja/9y2Au\nnrM3Y/UGy+0Q/uLPb6S/lycT/fsh6BGwYLihRzJ/W323gTWQgTaCHU5OtCzdVk6Gge4E+2qBOsn2\n7gSbXVzdVsdeCx05f1Czym/j/5RQ95/LP12n0aMGAzNrlnQx8BjR1NJ5PpPIcZxKslelO9BB9KjB\nAMDMFgILK90Px3Ec6IE30TxUy3V0S6YUeO3TU5g0uRewu9LdKJsjK92BDmD8lL6V7oKTgz6V7kAH\n0aOCzorBBWTHcUqhXAH5ByXU//syz9eZVOWTQYcKyAVd7wsc+0h+QS6bXe9A3WZoGpi/Tt1meCnP\nviNIi7UpTieKyEvxN6QF6IlJAfm4cJ3TicTk08EeBMaDhoGtg4+GRGLy5uY6gFblKC8Y6MBwLKGd\nW0P54iC2Egmvuzan+5USrJ/72DiO0VKetnGsYyhnaiH32Ums4iBm6jbm2gxGsJqz9RAL7DT24X2O\n1dP8xo4B4Fg9zZs2FICDtZ6d26L2e/eD9RZ9sEO1mYU2BYCTtDjj2CdtAgANbIwF2lc5NO7H3myK\nz9fARo7Qa7xkh3L4B6/RqwF2b4zO16shfX17DQRbGq57XJawHNR9zczaHnK6fTi2D4O1gw+sDy3U\nsK+28mfrz4DtW+ndD3Zug/ploKPBngGeBV0KdjORqJ0SwQnl0enPXCvBDsz8veidtJCdjZam28rJ\nMNC/g32tQJ1ke/9eXQJytdxEq+U6HMdxKoILyI7jOE7V3ESr5Tocx3EqQrU8GbiA7DjOHk25AnK2\nXleI08s8X2dSlU8G3UZAziPItWJdQtDN194GeCvPvoOIomyTHJm17Ujg3VDebwxoBdgYYGIikvc4\n0LlgdwOTgyD8DrwzYggjtYG3bQjrGBYLvQDHaGmGEPu4TQLgBD3Fr+04AE7VE9xh5wJwoe5mls0J\nlz2Mu3Uh59odvMxhPK9JHGlP8fJHh7Fj4GD6bP6AHSv2hqMFzxg0ApMFT4bxPrv8+1D+TKgP0bHJ\nOg+E8jTBY6F8ouD5UN6nGUbuBW/vgtoWOKA3rN3J0GHrWK+DGWpv8gleZbFOYoot5DBe5jbNZEZQ\nhG/TTK4J4chXaS7z7WwAztOCjM8sKXYnBe41idDg4drIGmtgQMuWWLT/2Lqm+HthRSJSe3kQo+cC\nS0F3Q/jIo/Jn0r8F/R5sfObvRc9l1snY93uwL+beB8CQdgjI3yqubqtjv939BOTOmloq6SyiIPpP\nAkeZ2Qt56l1KlHhJwA/M7ObEvkuAGUAL8LCZ5b3iqhwMHMdxuopOvIkuA75A5KaSE0ljiQaCo4Bd\nwKOSfm1mb0j6HNHDyF+a2S5J+xY6WU9zLXUcx+lW7FXCUgpm9oqZvdZGtU8Cz5rZTjNrAZ4EUs9x\nFwHXhdwvmNmfCzXkg4HjOE4Z1JawdALLgc9KGiypL3AKkVcjwGjgryQ9I2mxpPF5W8EFZMdx9nDK\nFZCz9bokz5Gp3d2RdT5Ji4D9cxw628weCnV+C8wsoBl8hUgX2Ab8CdhpZv8oaRnwGzO7VNJRwM/N\n7OB8fa1KzSAlnJWL7m4j8rLQsQ+CHV1k5XUhAvTA/FX0Tn6L677b0uJwiv3JYVuc+hkcBHoC7Dhg\nXMKC+TOgL4L9EphEbI/8x30PjSNuX+UTcRQwwNl6iBvtEgAu1y1cZtcBcJOu4Ez7CQD36Rwm2JMA\nLNFkGlois+mNyw+AIwQvWfS/5gLBvFC+XXCRRX/3/E7wWYs8qt8SHGSwCfhQsHcY+z8U1IZys0jn\nQSpQTtYfGsoHAM8JxluULeNXgi9Y9DB+neAKg/HAmYL7DI5ujEXm6PjeHGLLAXhDYznBHgDgcU3j\nErsRgFt0OXNtBgAzdRv32hkATNf9sQC/Hxviz3wY6+II5H1Wb00LyCtBx4E9QSQmXxyivt/KYat9\nVvq3oF+0nhiRtLzORo+0MSljSNoGvRh0c5kC8ty26xXd3sy267RFoZvo0WFJcUfWfjM7vtzzm9ld\nwF0Akq4FgicAa4Bfhjp/kLRbUoOZbczVjr8mchzHKYPO0gyyyPv0ImlI+PdAIsH5nrDrfuDYsO9Q\noC7fQABV+mTgOI7TVXTi1NIvAP8X2Ad4WNKLZnaSpGFEU0hPCVX/U1ID0WyiGWb2Udh+F3BXeF3U\nBPxtofP5YOA4jlMGnRWBbGa/An6VY/s6IqE4tf5XeY7fBRT90twFZMdx9mjKFZCz9bpC7F/m+TqT\nqnwy6DYCcp6IzlZ8kIgIztfeCrBhefata71P6zLb0wqwyWHloETU8eGJyNXxoMlgT8K2ib3o33s3\nW3f2Ymn9p5ik53nKjmQZh3OR5nN7SO57keZnCKNJwTQppPL2rujcI/eCh8N4vRS4UvCvQTROibVL\nSQvFb0Fa+F0JHAq8BqwFPgf8NlzU54D7QvlM0lmhzwdSjvN/n7U9maU5NedjFNAAbITawZG4XGtw\nOPCi4FMWhXPfKfiqRaE+/yD4j3BN/5AZ/TywcT0Am+uHZojo51okJd6tC7kq+Dlfo2uZZ18OX9Fb\nsWX2KFZxsNbzpg1l1AfrY8tsrUxYWL8Fmg52L/BOFFmbitTVrExxVze3/j+iu/OLxLq3jfzGAzMF\n67bQXKI81u1A3+p+AvJepdxFm8s/X2dRlYOB4zhOV1Hrg4HjOI6zV02le9Ax+GDgOI5TBiU9GXRj\nXEB2HGePplwBuZDbcKv6G1xA7lKCtlk2mt+GdW+hY38ZInyLYXOwEC7gHKLn8udU1rLWdtlamnl+\nPZEQDUeEXLKzgTEJ2+rDQ67epfD+Ef3jqNcXGccJeorHbRLL+Ms4JzFEEbTn2e0AzNdFGSJp/22R\nL9bWfvtm2kt/P5RfJC3ELiUd+fsnYIegj8GO94jmYLwLvA5MAp4CVgHnAD8JF3UOkFIWZxI5/xL+\nTZb/Tyj/M9EUboCvkxafP06UVfql6MOhDmiCffaC9wX7GIwD/kvw+VD+ruCfwjV9V/CzUP4bwauh\n/Akx3FYCsEajOc5+DcATOpUL7SYA7tBlcTT3Ibwe51/+OG/E0cijWlal7axXNqExYCuIROOUnfXq\nkE85mVv52vingGa3Fns1F+xicqJb24gu7g26AfKbI2e1d0Nmf0pBs7ufgFwtd9EquQzHcZLine truncated
"text": [
"<matplotlib.figure.Figure at 0x10eeb9190>"
"<matplotlib.figure.Figure at 0x103879a90>"
]
}
],
@@ -385,21 +412,30 @@
"output_type": "pyout",
"prompt_number": 16,
"text": [
"[<matplotlib.lines.Line2D at 0x110194e10>,\n",
" <matplotlib.lines.Line2D at 0x1101a10d0>]"
"[<matplotlib.lines.Line2D at 0x10f42a790>,\n",
" <matplotlib.lines.Line2D at 0x10f42aa10>]"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x10ed69dd0>"
"<matplotlib.figure.Figure at 0x10fa4d110>"
]
}
],
"prompt_number": 16
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 16
},
{
"cell_type": "code",
"collapsed": false,
+703
View File
@@ -0,0 +1,703 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"WARNING: pylab import has clobbered these variables: ['linalg']\n",
"`%matplotlib` prevents importing * from pylab and numpy\n"
]
}
],
"source": [
"from SimPEG import *\n",
"import simpegDCIP as DC\n",
"%pylab inline\n",
"from pymatsolver import MumpsSolver"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"cs = 12.5\n",
"nc = 500/cs+1\n",
"hx = [(cs,7, -1.3),(cs,nc),(cs,7, 1.3)]\n",
"hy = [(cs,7, -1.3),(cs,int(nc/2+1)),(cs,7, 1.3)]\n",
"hz = [(cs,7, -1.3),(cs,int(nc/2+1))]"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" ---- 3-D TensorMesh ---- \n",
" x0: -541.97\n",
" y0: -416.97\n",
" z0: -548.22\n",
" nCx: 55\n",
" nCy: 35\n",
" nCz: 28\n",
" hx: 78.44, 60.34, 46.41, 35.70, 27.46, 21.13, 16.25, 41*12.50, 16.25, 21.13, 27.46, 35.70, 46.41, 60.34, 78.44\n",
" hy: 78.44, 60.34, 46.41, 35.70, 27.46, 21.13, 16.25, 21*12.50, 16.25, 21.13, 27.46, 35.70, 46.41, 60.34, 78.44\n",
" hz: 78.44, 60.34, 46.41, 35.70, 27.46, 21.13, 16.25, 21*12.50\n"
]
}
],
"source": [
"mesh = Mesh.TensorMesh([hx, hy, hz], 'CCN')\n",
"print mesh"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"sighalf = 1e-2\n",
"sigma = np.ones(mesh.nC)*sighalf\n",
"p0 = np.r_[-50., 50., -50.]\n",
"p1 = np.r_[ 50.,-50., -150.]\n",
"blk_ind = Utils.ModelBuilder.getIndicesBlock(p0, p1, mesh.gridCC)\n",
"sigma[blk_ind] = 1e-3"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"eta = np.zeros_like(sigma)\n",
"eta[blk_ind] = 0.1"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"sigmaInf = sigma.copy()\n",
"sigma0 = sigma*(1-eta)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(-600.0, 600.0, -600.0, 0.0)"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x10986eb90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"dat = mesh.plotSlice(eta, normal='Y')\n",
"plt.colorbar(dat[0])\n",
"axis('equal')"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"nElecs = 21\n",
"x_temp = np.linspace(-250, 250, nElecs)\n",
"aSpacing = x_temp[1]-x_temp[0]\n",
"y_temp = 0.\n",
"xyz = Utils.ndgrid(x_temp, np.r_[y_temp], np.r_[0.])"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"63\n"
]
}
],
"source": [
"srcList = DC.Examples.WennerArray.getSrcList(nElecs,aSpacing)\n",
"survey = DC.SurveyDC(srcList)\n",
"print len(survey.srcList)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"DATA = Survey.Data(survey)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"tx0 = srcList[0]"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"'c5f9fd3e-9e73-4561-b2c2-52a2747439e8'"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tx0.uid"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import SimPEG"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"SimPEG.Survey.Data??"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1089f8550>]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1087a6750>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig, ax = plt.subplots(1,1, figsize = (6.5,5))\n",
"indz = 22\n",
"dat = mesh.plotSlice(sigma, grid=True, ax = ax, ind=indz)\n",
"ax.set_xlim(-300, 300)\n",
"ax.set_ylim(-300, 300)\n",
"cb = plt.colorbar(dat[0])\n",
"ax.set_title('Depth at '+str(mesh.vectorCCz[indz])+' m')\n",
"\n",
"txLocs = np.array([[tx.loc[0][0], tx.loc[1][0]] for tx in survey.srcList]).flatten()\n",
"ax.plot(txLocs, txLocs*0, 'w.', ms = 3)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"expmap = Maps.ExpMap(mesh)\n",
"m2to3 = Maps.Map2Dto3D(mesh,normal='Y')\n",
"imap = Maps.IdentityMap(mesh)\n",
"problem = DC.ProblemDC_CC(mesh, mapping= imap )\n",
"problem.Solver = MumpsSolver\n",
"try:\n",
" problem.pair(survey)\n",
"except Exception, e:\n",
" survey.unpair()\n",
" problem.pair(survey)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 6.49 s, sys: 705 ms, total: 7.2 s\n",
"Wall time: 4.94 s\n"
]
}
],
"source": [
"%%time\n",
"phi0 = survey.dpred(sigma0)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" ---- 3-D TensorMesh ---- \n",
" x0: -541.97\n",
" y0: -416.97\n",
" z0: -548.22\n",
" nCx: 55\n",
" nCy: 35\n",
" nCz: 28\n",
" hx: 78.44, 60.34, 46.41, 35.70, 27.46, 21.13, 16.25, 41*12.50, 16.25, 21.13, 27.46, 35.70, 46.41, 60.34, 78.44\n",
" hy: 78.44, 60.34, 46.41, 35.70, 27.46, 21.13, 16.25, 21*12.50, 16.25, 21.13, 27.46, 35.70, 46.41, 60.34, 78.44\n",
" hz: 78.44, 60.34, 46.41, 35.70, 27.46, 21.13, 16.25, 21*12.50\n"
]
}
],
"source": [
"print mesh"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"phiInf = survey.dpred(sigmaInf)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"phiIP_true = phi0-phiInf"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# F = problem.fields(mesh, survey)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"surveyIP = DC.SurveyIP(srcList)\n",
"problemIP = DC.ProblemIP(mesh, sigma=sigma)\n",
"problemIP.pair(surveyIP)\n",
"problemIP.Solver = MumpsSolver"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x10984ab90>,\n",
" <matplotlib.lines.Line2D at 0x10984ae10>]"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1089dcf90>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"datasyn = surveyIP.dpred(eta)\n",
"surveyIP.makeSyntheticData(eta,std=0.02,force=True)\n",
"plot(np.c_[surveyIP.dobs,datasyn])"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"problemIP.mapping = imap"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"dmis = DataMisfit.l2_DataMisfit(surveyIP)\n",
"dmis.Wd = 1./abs(phi0)*1e3\n",
"reg = Regularization.Tikhonov(mesh,mapping=imap)\n",
"# opt = Optimization.InexactGaussNewton(maxIter=4,tolX=1e-15)\n",
"opt = Optimization.ProjectedGNCG(maxIter=3,tolX=1e-15)\n",
"opt.remember('xc')\n",
"invProb = InvProblem.BaseInvProblem(dmis, reg, opt)\n",
"beta = Directives.BetaEstimate_ByEig(beta0_ratio=1e-1)\n",
"betaSched = Directives.BetaSchedule(coolingFactor=5, coolingRate=4)\n",
"inv = Inversion.BaseInversion(invProb, directiveList=[beta,betaSched])"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"reg.alpha_s = 1e-4\n",
"reg.alpha_x = 1.\n",
"reg.alpha_z = 1.\n",
"reg.alpha_y = 1."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"opt.upper = Inf\n",
"opt.lower = 0."
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SimPEG.InvProblem will set Regularization.mref to m0.\n",
"SimPEG.InvProblem is setting bfgsH0 to the inverse of the eval2Deriv.\n",
" ***Done using same solver as the problem***\n",
"=============================== Projected GNCG ===============================\n",
" # beta phi_d phi_m f |proj(x-g)-x| LS Comment \n",
"-----------------------------------------------------------------------------\n",
" 0 5.84e+00 9.43e+01 0.00e+00 9.43e+01 1.69e+03 0 \n",
" 1 5.84e+00 7.43e+00 6.13e-03 7.46e+00 3.04e+02 0 \n",
" 2 5.84e+00 3.10e+00 1.33e-02 3.18e+00 2.65e+02 0 Skip BFGS \n",
" 3 5.84e+00 2.13e+00 1.82e-02 2.24e+00 2.49e+02 0 Skip BFGS \n",
"------------------------- STOP! -------------------------\n",
"1 : |fc-fOld| = 9.4407e-01 <= tolF*(1+|f0|) = 9.5287e+00\n",
"0 : |xc-x_last| = 4.4997e-02 <= tolX*(1+|x0|) = 1.0000e-15\n",
"0 : |proj(x-g)-x| = 2.4936e+02 <= tolG = 1.0000e-01\n",
"0 : |proj(x-g)-x| = 2.4936e+02 <= 1e3*eps = 1.0000e-02\n",
"1 : maxIter = 3 <= iter = 3\n",
"------------------------- DONE! -------------------------\n"
]
}
],
"source": [
"m0 = np.ones(problemIP.mapping.nP)*1e-10\n",
"mopt = inv.run(m0)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" ---- 3-D TensorMesh ---- \n",
" x0: -541.97\n",
" y0: -416.97\n",
" z0: -548.22\n",
" nCx: 55\n",
" nCy: 35\n",
" nCz: 28\n",
" hx: 78.44, 60.34, 46.41, 35.70, 27.46, 21.13, 16.25, 41*12.50, 16.25, 21.13, 27.46, 35.70, 46.41, 60.34, 78.44\n",
" hy: 78.44, 60.34, 46.41, 35.70, 27.46, 21.13, 16.25, 21*12.50, 16.25, 21.13, 27.46, 35.70, 46.41, 60.34, 78.44\n",
" hz: 78.44, 60.34, 46.41, 35.70, 27.46, 21.13, 16.25, 21*12.50\n"
]
}
],
"source": [
"print mesh"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(-600.0, 600.0, -600.0, 0.0)"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x10faf04d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"colorbar(mesh.plotSlice(mopt, normal='Y', ind=17, grid=True, gridOpts={'alpha': 0.2, 'color':'black'})[0])\n",
"axis('equal')"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# sigma_est = expmap * m2to3 * mopt"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"dpred = surveyIP.dpred(mopt)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x11345b510>,\n",
" <matplotlib.lines.Line2D at 0x11345b750>]"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x10f219190>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot(np.c_[dpred,surveyIP.dobs], '.-')"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
@@ -0,0 +1,441 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Objective:** \n",
"\n",
"In this tutorial we will create a simple two-sphere model and simulate DC Resistivity data for various transmitter-receiver configurations.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Efficiency Warning: Interpolation will be slow, use setup.py!\n",
"\n",
" python setup.py build_ext --inplace\n",
" \n"
]
}
],
"source": [
"from SimPEG import *\n",
"import simpegDCIP as DC\n",
"import scipy.interpolate as interpolation\n",
"import time\n",
"import re"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\dominiquef.MIRAGEOSCIENCE\\AppData\\Local\\Continuum\\Anaconda\\lib\\site-packages\\IPython\\kernel\\__init__.py:13: ShimWarning: The `IPython.kernel` package has been deprecated. You should import from ipykernel or jupyter_client instead.\n",
" \"You should import from ipykernel or jupyter_client instead.\", ShimWarning)\n",
"WARNING: "
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"pylab import has clobbered these variables: ['linalg']\n",
"`%matplotlib` prevents importing * from pylab and numpy\n"
]
}
],
"source": [
"%matplotlib notebook\n",
"%pylab inline"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(-200, 200)"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x15e3dd30>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# First we need to create a mesh and a model.\n",
"\n",
"# This is our mesh\n",
"dx = 5.\n",
"\n",
"hxind = [(dx,15,-1.3), (dx, 75), (dx,15,1.3)]\n",
"hyind = [(dx,15,-1.3), (dx, 10), (dx,15,1.3)]\n",
"hzind = [(dx,15,-1.3),(dx, 15)]\n",
"\n",
"mesh = Mesh.TensorMesh([hxind, hyind, hzind], 'CCN')\n",
"\n",
"# Define our model\n",
"bckgr = 1e-2\n",
"cond = 1e-1\n",
"resis = 1e-3\n",
"zloc = -50.\n",
"xloc = 50.\n",
"yloc = 0.\n",
"radi = 25.\n",
"\n",
"# Set background conductivity\n",
"model = np.ones(mesh.nC) * bckgr\n",
"\n",
"# First anomaly (conductor)\n",
"ind = Utils.ModelBuilder.getIndicesSphere([-xloc,yloc,zloc],radi,mesh.gridCC)\n",
"model[ind] = cond\n",
"\n",
"# Second anomaly (resistor)\n",
"ind = Utils.ModelBuilder.getIndicesSphere([xloc,yloc,zloc],radi,mesh.gridCC)\n",
"model[ind] = resis\n",
"\n",
"# Get index of the center\n",
"indy = int(mesh.nCy/2)\n",
"indz = int(np.argmin( np.abs(mesh.vectorCCz - zloc) ))\n",
"\n",
"# Plot the model for reference\n",
"# Define core mesh extent\n",
"xlim = 200\n",
"zlim = 200\n",
"\n",
"plt.figure()\n",
"ax = plt.subplot(1,2,1, aspect='equal')\n",
"mesh.plotSlice(np.log10(model), ax =ax, normal = 'Y', ind = indy,grid=True)\n",
"ax.set_title('E-W section at '+str(mesh.vectorCCy[indy])+' m')\n",
"plt.gca().set_aspect('equal', adjustable='box')\n",
"plt.xlim([-xlim,xlim])\n",
"plt.ylim([-zlim,0])\n",
"\n",
"ax = plt.subplot(1,2,2, aspect='equal')\n",
"mesh.plotSlice(np.log10(model), ax =ax, normal = 'Z', ind = indz,grid=True)\n",
"ax.set_title('Depth at '+str(mesh.vectorCCz[indz])+' m')\n",
"plt.gca().set_aspect('equal', adjustable='box')\n",
"plt.xlim([-xlim,xlim])\n",
"plt.ylim([-xlim,xlim])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that we have model in 3D, we can define a survey.\n",
"There area various ground DC configurations used in the field.\n",
"We can explore two survey types here: pole-dipole (pdp) and dipole-dipole (dpdp).\n",
"In both cases we need to specify three important parameter.\n",
"\n",
"a: Seperation (m) between the transmitter and receivers\n",
"\n",
"b: Dipole seperation (m) of the receiver (and transmitter for dpdp)\n",
"\n",
"n: Number of receiver dipoles along line\n",
"\n",
"We also need to give a starting and end point for the survey.\n"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"(-200, 200)"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x15e3d240>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Survey parameters\n",
"a = 30.\n",
"b = 30.\n",
"n = 20 # Integer number of rx dipoles\n",
"\n",
"# Specify the survey type: \"pdp\" | \"dpdp\"\n",
"stype = 'dpdp'\n",
"\n",
"# Then specify the end points of the survey. Let's keep it simple for now and survey above the anomalies, top of the mesh\n",
"ends = [(-175,0),(175,0)]\n",
"ends = np.c_[np.asarray(ends),np.ones(2).T*mesh.vectorNz[-1]]\n",
"\n",
"# Snap the endpoints to the grid. Easier to create 2D section.\n",
"indx = Utils.closestPoints(mesh, ends )\n",
"locs = np.c_[mesh.gridCC[indx,0],mesh.gridCC[indx,1],np.ones(2).T*mesh.vectorNz[-1]]\n",
"\n",
"# We will handle the geometry of the survey for you and create all the combination of tx-rx along line\n",
"[Tx, Rx] = DC.gen_DCIPsurvey(locs, mesh, stype, a, b, n)\n",
"\n",
"# Here is an example for the first tx-rx array\n",
"fig, ax = plt.subplots(1,1, figsize = (6.5,5))\n",
"mesh.plotSlice(np.log10(model), ax =ax, normal = 'Z', ind = indz,grid=True)\n",
"ax.set_title('Depth at '+str(mesh.vectorCCz[indz])+' m')\n",
"plt.gca().set_aspect('equal', adjustable='box')\n",
"\n",
"plt.scatter(Tx[0][0,:],Tx[0][1,:],s=20,c='g')\n",
"plt.scatter(Rx[0][:,0::3],Rx[0][:,1::3],s=20,c='y')\n",
"plt.xlim([-xlim,xlim])\n",
"plt.ylim([-xlim,xlim])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The next section will specify all the parameters used to forward model the data"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"#Set boundary conditions\n",
"mesh.setCellGradBC('neumann')\n",
"\n",
"# Define the differential operators needed for the DC problem\n",
"Div = mesh.faceDiv\n",
"Grad = mesh.cellGrad\n",
"Msig = Utils.sdiag(1./(mesh.aveF2CC.T*(1./model)))\n",
"\n",
"A = Div*Msig*Grad\n",
"\n",
"# Change one corner to deal with nullspace\n",
"A[0,0] = 1\n",
"A = sp.csc_matrix(A)\n",
"\n",
"# We will solve the system iteratively, so a pre-conditioner is helpful\n",
"# This is simply a Jacobi preconditioner (inverse of the main diagonal)\n",
"dA = A.diagonal()\n",
"P = sp.spdiags(1/dA,0,A.shape[0],A.shape[0])\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Transmitter 8 of 9 -> Time:0.990999937057 sec Transmitter 8 of 9\n",
"Forward completed\n"
]
}
],
"source": [
"# Now we can solve the system for all the transmitters\n",
"# We want to store the data\n",
"data = []\n",
"\n",
"# There is probably a more elegant way to do this, but we can just for-loop through the transmitters\n",
"for ii in range(len(Tx)):\n",
" \n",
" start_time = time.time() # Let's time the calculations\n",
" \n",
" #print(\"Transmitter %i / %i\\r\" % (ii+1,len(Tx)))\n",
" \n",
" # Select dipole locations for receiver\n",
" rxloc_M = np.asarray(Rx[ii][:,0:3])\n",
" rxloc_N = np.asarray(Rx[ii][:,3:])\n",
" \n",
" # Number of receivers\n",
" nrx = rxloc_M.shape[0]\n",
" \n",
" # For usual cases \"dpdp\" or \"gradient\"\n",
" if not re.match(stype,'pdp'): \n",
" inds = Utils.closestPoints(mesh, np.asarray(Tx[ii]).T )\n",
" RHS = mesh.getInterpolationMat(np.asarray(Tx[ii]).T, 'CC').T*( [-1,1] / mesh.vol[inds] ) \n",
" \n",
" else: \n",
" \n",
" # Create an \"inifinity\" pole\n",
" tx = np.squeeze(Tx[ii][:,0:1])\n",
" tinf = tx + np.array([dl_x,dl_y,0])*dl_len*2\n",
" inds = Utils.closestPoints(mesh, np.c_[tx,tinf].T)\n",
" RHS = mesh.getInterpolationMat(np.asarray(Tx[ii]).T, 'CC').T*( [-1] / mesh.vol[inds] ) \n",
"\n",
"\n",
" # Iterative Solve\n",
" Ainvb = sp.linalg.bicgstab(P*A,P*RHS, tol=1e-5)\n",
"\n",
" # We now have the potential everywhere\n",
" phi = mkvc(Ainvb[0])\n",
" \n",
" # Solve for phi on pole locations\n",
" P1 = mesh.getInterpolationMat(rxloc_M, 'CC')\n",
" P2 = mesh.getInterpolationMat(rxloc_N, 'CC')\n",
" \n",
" # Compute the potential difference\n",
" dtemp = (P1*phi - P2*phi)*np.pi\n",
" \n",
" data.append( dtemp ) \n",
" print '\\rTransmitter {0} of {1} -> Time:{2} sec'.format(ii,len(Tx),time.time()- start_time),\n",
" \n",
"print 'Transmitter {0} of {1}'.format(ii,len(Tx))\n",
"print 'Forward completed'\n",
" \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Once we have our problem, we can use the inversion tools in SimPEG to run our inversion:"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x18d372e8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Let's just convert the 3D format into 2D (distance along line) and plot\n",
"[Tx2d, Rx2d] = DC.convertObs_DC3D_to_2D(Tx,Rx)\n",
"\n",
"fig, ax = plt.subplots(1,1, figsize = (8,7))\n",
"plt.gca().set_aspect('equal', adjustable='box')\n",
"\n",
"# Plot the location of the spheres for reference\n",
"circle1=plt.Circle((-xloc-Tx[0][0,0],zloc),radi,color='w',fill=False, lw=3)\n",
"circle2=plt.Circle((xloc-Tx[0][0,0],zloc),radi,color='k',fill=False, lw=3)\n",
"ax.add_artist(circle1)\n",
"ax.add_artist(circle2)\n",
"\n",
"# Add the speudo section\n",
"DC.plot_pseudoSection(Tx2d,Rx2d,data,mesh.vectorNz[-1],stype)\n",
"\n",
"plt.xlim([0,2*xlim])\n",
"plt.ylim([-zlim,0])\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Back in the days (not so long ago really), geophysicists used to interpret DCR data directly from pseudo-section. Hopefully this example will convince you that interpretating speudo-section is really tricky, arguably impossible.\n",
"Fortunately for us, we now have inversion techniques to make sense of the data."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"125.0\n"
]
}
],
"source": [
"print -xloc-Tx[0][0,0]"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.11"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

-233
View File
@@ -1,233 +0,0 @@
from SimPEG import *
class SrcDipole(Survey.BaseSrc):
"""A dipole source, locA and locB are moved to the closest cell-centers"""
current = 1
loc = None
_rhsDict = None
def __init__(self, rxList, locA, locB, **kwargs):
self.loc = (locA, locB)
super(SrcDipole, self).__init__(rxList, **kwargs)
def getRhs(self, mesh):
if getattr(self, '_rhsDict', None) is None:
self._rhsDict = {}
if mesh not in self._rhsDict:
pts = [self.loc[0], self.loc[1]]
inds = Utils.closestPoints(mesh, pts)
q = np.zeros(mesh.nC)
q[inds] = - self.current * ( np.r_[1., -1.] / mesh.vol[inds] )
self._rhsDict[mesh] = q
return self._rhsDict[mesh]
class RxDipole(Survey.BaseRx):
"""A dipole source, locA and locB are moved to the closest cell-centers"""
def __init__(self, locsM, locsN, **kwargs):
locs = (locsM, locsN)
assert locsM.shape == locsN.shape, 'locs must be the same shape.'
super(RxDipole, self).__init__(locs, 'dipole', storeProjections=False, **kwargs)
@property
def nD(self):
"""Number of data in the receiver."""
return self.locs[0].shape[0]
def getP(self, mesh):
P0 = mesh.getInterpolationMat(self.locs[0], self.projGLoc)
P1 = mesh.getInterpolationMat(self.locs[1], self.projGLoc)
return P0 - P1
class SurveyDC(Survey.BaseSurvey):
"""
**SurveyDC**
Geophysical DC resistivity data.
"""
def __init__(self, srcList, **kwargs):
self.srcList = srcList
Survey.BaseSurvey.__init__(self, **kwargs)
self._rhsDict = {}
self._Ps = {}
def projectFields(self, u):
"""
Predicted data.
.. math::
d_\\text{pred} = Pu(m)
"""
P = self.getP(self.prob.mesh)
return P*mkvc(u)
def getRhs(self, mesh):
if mesh not in self._rhsDict:
RHS = np.array([src.getRhs(mesh) for src in self.srcList]).T
self._rhsDict[mesh] = RHS
return self._rhsDict[mesh]
def getP(self, mesh):
if mesh in self._Ps:
return self._Ps[mesh]
P_src = [sp.vstack([rx.getP(mesh) for rx in src.rxList]) for src in self.srcList]
self._Ps[mesh] = sp.block_diag(P_src)
return self._Ps[mesh]
class ProblemDC(Problem.BaseProblem):
"""
**ProblemDC**
Geophysical DC resistivity problem.
"""
surveyPair = SurveyDC
Solver = Solver
def __init__(self, mesh, **kwargs):
Problem.BaseProblem.__init__(self, mesh)
self.mesh.setCellGradBC('neumann')
Utils.setKwargs(self, **kwargs)
deleteTheseOnModelUpdate = ['_A', '_Msig', '_dMdsig']
@property
def Msig(self):
if getattr(self, '_Msig', None) is None:
sigma = self.curModel.transform
Av = self.mesh.aveF2CC
self._Msig = Utils.sdiag(1/(self.mesh.dim * Av.T * (1/sigma)))
return self._Msig
@property
def dMdsig(self):
if getattr(self, '_dMdsig', None) is None:
sigma = self.curModel.transform
Av = self.mesh.aveF2CC
dMdprop = self.mesh.dim * Utils.sdiag(self.Msig.diagonal()**2) * Av.T * Utils.sdiag(1./sigma**2)
self._dMdsig = lambda Gu: Utils.sdiag(Gu) * dMdprop
return self._dMdsig
@property
def A(self):
"""
Makes the matrix A(m) for the DC resistivity problem.
:param numpy.array m: model
:rtype: scipy.csc_matrix
:return: A(m)
.. math::
c(m,u) = A(m)u - q = G\\text{sdiag}(M(mT(m)))Du - q = 0
Where M() is the mass matrix and mT is the model transform.
"""
if getattr(self, '_A', None) is None:
D = self.mesh.faceDiv
G = self.mesh.cellGrad
self._A = D*self.Msig*G
# Remove the null space from the matrix.
self._A[-1,-1] /= self.mesh.vol[-1]
self._A = self._A.tocsc()
return self._A
def fields(self, m):
self.curModel = m
A = self.A
Ainv = self.Solver(A, **self.solverOpts)
Q = self.survey.getRhs(self.mesh)
Phi = Ainv * Q
return Phi
def Jvec(self, m, v, u=None):
"""
:param numpy.array m: model
:param numpy.array v: vector to multiply
:param numpy.array u: fields
:rtype: numpy.array
:return: Jv
.. math::
c(m,u) = A(m)u - q = G\\text{sdiag}(M(mT(m)))Du - q = 0
\\nabla_u (A(m)u - q) = A(m)
\\nabla_m (A(m)u - q) = G\\text{sdiag}(Du)\\nabla_m(M(mT(m)))
Where M() is the mass matrix and mT is the model transform.
.. math::
J = - P \left( \\nabla_u c(m, u) \\right)^{-1} \\nabla_m c(m, u)
J(v) = - P ( A(m)^{-1} ( G\\text{sdiag}(Du)\\nabla_m(M(mT(m))) v ) )
"""
# Set current model; clear dependent property $\mathbf{A(m)}$
self.curModel = m
sigma = self.curModel.transform # $\sigma = \mathcal{M}(\m)$
if u is None:
# Run forward simulation if $u$ not provided
u = self.fields(self.curModel)
else:
shp = (self.mesh.nC, self.survey.nSrc)
u = u.reshape(shp, order='F')
D = self.mesh.faceDiv
G = self.mesh.cellGrad
# Derivative of model transform, $\deriv{\sigma}{\m}$
dsigdm_x_v = self.curModel.transformDeriv * v
# Take derivative of $C(m,u)$ w.r.t. $m$
dCdm_x_v = np.empty_like(u)
# loop over fields for each source
for i in range(self.survey.nSrc):
# Derivative of inner product, $\left(\mathbf{M}_{1/\sigma}^f\right)^{-1}$
dAdsig = D * self.dMdsig( G * u[:,i] )
dCdm_x_v[:, i] = dAdsig * dsigdm_x_v
# Take derivative of $C(m,u)$ w.r.t. $u$
dCdu = self.A
# Solve for $\deriv{u}{m}$
dCdu_inv = self.Solver(dCdu, **self.solverOpts)
P = self.survey.getP(self.mesh)
J_x_v = - P * mkvc( dCdu_inv * dCdm_x_v )
return J_x_v
def Jtvec(self, m, v, u=None):
self.curModel = m
sigma = self.curModel.transform # $\sigma = \mathcal{M}(\m)$
if u is None:
u = self.fields(self.curModel)
shp = (self.mesh.nC, self.survey.nSrc)
u = u.reshape(shp, order='F')
P = self.survey.getP(self.mesh)
PT_x_v = (P.T*v).reshape(shp, order='F')
D = self.mesh.faceDiv
G = self.mesh.cellGrad
A = self.A
mT_dm = self.mapping.deriv(m)
dCdu = A.T
Ainv = self.Solver(dCdu, **self.solverOpts)
w = Ainv * PT_x_v
Jtv = 0
for i, ui in enumerate(u.T): # loop over each column
Jtv += self.dMdsig( G * ui ).T * ( D.T * w[:,i] )
Jtv = - mT_dm.T * ( Jtv )
return Jtv
+853
View File
@@ -0,0 +1,853 @@
from SimPEG import *
class FieldsDC_CC(Problem.Fields):
knownFields = {'phi_sol':'CC'}
aliasFields = {
'phi' : ['phi_sol','CC','_phi'],
'e' : ['phi_sol','F','_e'],
'j' : ['phi_sol','F','_j']
}
def __init__(self,mesh,survey,**kwargs):
super(FieldsDC_CC, self).__init__(mesh, survey, **kwargs)
def startup(self):
self._cellGrad = self.survey.prob.mesh.cellGrad
self._Mfinv = self.survey.prob.mesh.getFaceInnerProduct(invMat=True)
def _phi(self, phi_sol, srcList):
phi = phi_sol
# for i, src in enumerate(srcList):
# phi_p = src.phi_p(self.survey.prob)
# if phi_p is not None:
# phi[:,i] += phi_p
return phi
def _e(self, phi_sol, srcList):
e = -self._cellGrad*phi_sol
# for i, src in enumerate(srcList):
# e_p = src.e_p(self.survey.prob)
# if e_p is not None:
# e[:,i] += e_p
return e
def _j(self, phi_sol, srcList):
j = -self._Mfinv*self.survey.prob.Msig*self._cellGrad*phi_sol
# for i, src in enumerate(srcList):
# j_p = src.j_p(self.survey.prob)
# if j_p is not None:
# j[:,i] += j_p
return j
class SrcDipole(Survey.BaseSrc):
"""A dipole source, locA and locB are moved to the closest cell-centers"""
current = 1
loc = None
# _rhsDict = None
def __init__(self, rxList, locA, locB, **kwargs):
self.loc = (locA, locB)
super(SrcDipole, self).__init__(rxList, **kwargs)
def eval(self, prob):
# Recompute rhs
# if getattr(self, '_rhsDict', None) is None:
# self._rhsDict = {}
# if mesh not in self._rhsDict:
pts = [self.loc[0], self.loc[1]]
inds = Utils.closestPoints(prob.mesh, pts)
q = np.zeros(prob.mesh.nC)
q[inds] = - self.current * ( np.r_[1., -1.] / prob.mesh.vol[inds] )
# self._rhsDict[mesh] = q
# return self._rhsDict[mesh]
return q
class RxDipole(Survey.BaseRx):
"""A dipole source, locA and locB are moved to the closest cell-centers"""
def __init__(self, locsM, locsN, **kwargs):
locs = (locsM, locsN)
assert locsM.shape == locsN.shape, 'locs must be the same shape.'
super(RxDipole, self).__init__(locs, 'dipole', storeProjections=False, **kwargs)
@property
def nD(self):
"""Number of data in the receiver."""
return self.locs[0].shape[0]
def getP(self, mesh):
P0 = mesh.getInterpolationMat(self.locs[0], self.projGLoc)
P1 = mesh.getInterpolationMat(self.locs[1], self.projGLoc)
return P0 - P1
class SurveyDC(Survey.BaseSurvey):
"""
**SurveyDC**
Geophysical DC resistivity data.
"""
def __init__(self, srcList, **kwargs):
self.srcList = srcList
Survey.BaseSurvey.__init__(self, **kwargs)
# self._rhsDict = {}
self._Ps = {}
def projectFields(self, u):
"""
Predicted data.
.. math::
d_\\text{pred} = Pu(m)
"""
P = self.getP(self.prob.mesh)
return P*mkvc(u[self.srcList, 'phi_sol'])
def getP(self, mesh):
if mesh in self._Ps:
return self._Ps[mesh]
P_src = [sp.vstack([rx.getP(mesh) for rx in src.rxList]) for src in self.srcList]
self._Ps[mesh] = sp.block_diag(P_src)
return self._Ps[mesh]
class ProblemDC_CC(Problem.BaseProblem):
"""
**ProblemDC**
Geophysical DC resistivity problem.
"""
surveyPair = SurveyDC
Solver = Solver
fieldsPair = FieldsDC_CC
Ainv = None
def __init__(self, mesh, **kwargs):
Problem.BaseProblem.__init__(self, mesh)
self.mesh.setCellGradBC('neumann')
Utils.setKwargs(self, **kwargs)
deleteTheseOnModelUpdate = ['_A', '_Msig', '_dMdsig']
@property
def Msig(self):
if getattr(self, '_Msig', None) is None:
sigma = self.curModel.transform
Av = self.mesh.aveF2CC
self._Msig = Utils.sdiag(1/(self.mesh.dim * Av.T * (1/sigma)))
return self._Msig
@property
def dMdsig(self):
if getattr(self, '_dMdsig', None) is None:
sigma = self.curModel.transform
Av = self.mesh.aveF2CC
dMdprop = self.mesh.dim * Utils.sdiag(self.Msig.diagonal()**2) * Av.T * Utils.sdiag(1./sigma**2)
self._dMdsig = lambda Gu: Utils.sdiag(Gu) * dMdprop
return self._dMdsig
@property
def A(self):
"""
Makes the matrix A(m) for the DC resistivity problem.
:param numpy.array m: model
:rtype: scipy.csc_matrix
:return: A(m)
.. math::
c(m,u) = A(m)u - q = G\\text{sdiag}(M(mT(m)))Du - q = 0
Where M() is the mass matrix and mT is the model transform.
"""
if getattr(self, '_A', None) is None:
D = self.mesh.faceDiv
G = self.mesh.cellGrad
self._A = D*self.Msig*G
# Remove the null space from the matrix.
self._A[0,0] /= self.mesh.vol[0]
self._A = self._A.tocsc()
return self._A
def getRHS(self):
# if self.mesh not in self._rhsDict:
RHS = np.array([src.eval(self) for src in self.survey.srcList]).T
# self._rhsDict[mesh] = RHS
# return self._rhsDict[mesh]
return RHS
def fields(self, m):
F = self.fieldsPair(self.mesh, self.survey)
self.curModel = m
A = self.A
self.Ainv = self.Solver(A, **self.solverOpts)
RHS = self.getRHS()
Phi = self.Ainv * RHS
Srcs = self.survey.srcList
F[Srcs, 'phi_sol'] = Phi
return F
def Jvec(self, m, v, u=None):
"""
:param numpy.array m: model
:param numpy.array v: vector to multiply
:param numpy.array u: fields
:rtype: numpy.array
:return: Jv
.. math::
c(m,u) = A(m)u - q = G\\text{sdiag}(M(mT(m)))Du - q = 0
\\nabla_u (A(m)u - q) = A(m)
\\nabla_m (A(m)u - q) = G\\text{sdiag}(Du)\\nabla_m(M(mT(m)))
Where M() is the mass matrix and mT is the model transform.
.. math::
J = - P \left( \\nabla_u c(m, u) \\right)^{-1} \\nabla_m c(m, u)
J(v) = - P ( A(m)^{-1} ( G\\text{sdiag}(Du)\\nabla_m(M(mT(m))) v ) )
"""
# Set current model; clear dependent property $\mathbf{A(m)}$
self.curModel = m
sigma = self.curModel.transform # $\sigma = \mathcal{M}(\m)$
if u is None:
# Run forward simulation if $u$ not provided
u = self.fields(self.curModel)[self.survey.srcList, 'phi_sol']
else:
u = u[self.survey.srcList, 'phi_sol']
D = self.mesh.faceDiv
G = self.mesh.cellGrad
# Derivative of model transform, $\deriv{\sigma}{\m}$
dsigdm_x_v = self.curModel.transformDeriv * v
# Take derivative of $C(m,u)$ w.r.t. $m$
dCdm_x_v = np.empty_like(u)
# loop over fields for each source
for i in range(self.survey.nSrc):
# Derivative of inner product, $\left(\mathbf{M}_{1/\sigma}^f\right)^{-1}$
dAdsig = D * self.dMdsig( G * u[:,i] )
dCdm_x_v[:, i] = dAdsig * dsigdm_x_v
# Take derivative of $C(m,u)$ w.r.t. $u$
dA_du = self.A
# Solve for $\deriv{u}{m}$
# dCdu_inv = self.Solver(dCdu, **self.solverOpts)
if self.Ainv is None:
self.Ainv = self.Solver(dA_du, **self.solverOpts)
P = self.survey.getP(self.mesh)
Jv = - P * mkvc( self.Ainv * dCdm_x_v )
return Jv
def Jtvec(self, m, v, u=None):
self.curModel = m
sigma = self.curModel.transform # $\sigma = \mathcal{M}(\m)$
if u is None:
# Run forward simulation if $u$ not provided
u = self.fields(self.curModel)[self.survey.srcList, 'phi_sol']
else:
u = u[self.survey.srcList, 'phi_sol']
shp = u.shape
P = self.survey.getP(self.mesh)
PT_x_v = (P.T*v).reshape(shp, order='F')
D = self.mesh.faceDiv
G = self.mesh.cellGrad
dA_du = self.A
mT_dm = self.mapping.deriv(m)
# We probably always need this due to the linesearch .. (?)
self.Ainv = self.Solver(dA_du.T, **self.solverOpts)
# if self.Ainv is None:
# self.Ainv = self.Solver(dCdu, **self.solverOpts)
w = self.Ainv * PT_x_v
Jtv = 0
for i, ui in enumerate(u.T): # loop over each column
Jtv += self.dMdsig( G * ui ).T * ( D.T * w[:,i] )
Jtv = - mT_dm.T * ( Jtv )
return Jtv
def readUBC_DC2DModel(fileName):
from SimPEG import np, mkvc
"""
Read UBC GIF 2DTensor model and generate 2D Tensor model in simpeg
Input:
:param fileName, path to the UBC GIF 2D model file
Output:
:param SimPEG TensorMesh 2D object
:return
Created on Thu Nov 12 13:14:10 2015
@author: dominiquef
"""
# Open fileand skip header... assume that we know the mesh already
obsfile = np.genfromtxt(fileName,delimiter=' \n',dtype=np.str,comments='!')
dim = np.array(obsfile[0].split(),dtype=float)
temp = np.array(obsfile[1].split(),dtype=float)
if len(temp) > 1:
model = np.zeros(dim)
for ii in range(len(obsfile)-1):
mm = np.array(obsfile[ii+1].split(),dtype=float)
model[:,ii] = mm
model = model[:,::-1]
else:
if len(obsfile[1:])==1:
mm = np.array(obsfile[1:].split(),dtype=float)
else:
mm = np.array(obsfile[1:],dtype=float)
# Permute the second dimension to flip the order
model = mm.reshape(dim[1],dim[0])
model = model[::-1,:]
model = np.transpose(model, (1, 0))
model = mkvc(model)
return model
def plot_pseudoSection(Tx,Rx,data,z0, stype):
from SimPEG import np, mkvc
from scipy.interpolate import griddata
from matplotlib.colors import LogNorm
import pylab as plt
import re
"""
Read list of 2D tx-rx location and plot a speudo-section of apparent
resistivity.
Assumes flat topo for now...
Input:
:param d2D, z0
:switch stype -> Either 'pdp' (pole-dipole) | 'dpdp' (dipole-dipole)
Output:
:figure scatter plot overlayed on image
Created on Mon December 7th, 2015
@author: dominiquef
"""
#d2D = np.asarray(d2D)
midl = []
midz = []
rho = []
for ii in range(len(Tx)):
# Get distances between each poles
rC1P1 = np.abs(Tx[ii][0] - Rx[ii][:,0])
rC2P1 = np.abs(Tx[ii][1] - Rx[ii][:,0])
rC1P2 = np.abs(Tx[ii][1] - Rx[ii][:,1])
rC2P2 = np.abs(Tx[ii][0] - Rx[ii][:,1])
rP1P2 = np.abs(Rx[ii][:,1] - Rx[ii][:,0])
# Compute apparent resistivity
if re.match(stype,'pdp'):
rho = np.hstack([rho, data[ii] * 2*np.pi * rC1P1 * ( rC1P1 + rP1P2 ) / rP1P2] )
elif re.match(stype,'dpdp'):
rho = np.hstack([rho, data[ii] * 2*np.pi / ( 1/rC1P1 - 1/rC2P1 - 1/rC1P2 + 1/rC2P2 ) ])
Cmid = (Tx[ii][0] + Tx[ii][1])/2
Pmid = (Rx[ii][:,0] + Rx[ii][:,1])/2
midl = np.hstack([midl, ( Cmid + Pmid )/2 ])
midz = np.hstack([midz, -np.abs(Cmid-Pmid)/2 + z0 ])
# Grid points
grid_x, grid_z = np.mgrid[np.min(midl):np.max(midl), np.min(midz):np.max(midz)]
grid_rho = griddata(np.c_[midl,midz], np.log10(abs(1/rho.T)), (grid_x, grid_z), method='linear')
#plt.subplot(2,1,2)
plt.imshow(grid_rho.T, extent = (np.min(midl),np.max(midl),np.min(midz),np.max(midz)), origin='lower', alpha=0.8)
cbar = plt.colorbar(format = '%.2f',fraction=0.02)
cmin,cmax = cbar.get_clim()
ticks = np.linspace(cmin,cmax,3)
cbar.set_ticks(ticks)
# Plot apparent resistivity
plt.scatter(midl,midz,s=50,c=np.log10(abs(1/rho.T)))
def gen_DCIPsurvey(endl, mesh, stype, a, b, n):
from SimPEG import np
import re
"""
Load in endpoints and survey specifications to generate Tx, Rx location
stations.
Assumes flat topo for now...
Input:
:param endl -> input endpoints [x1, y1, z1, x2, y2, z2]
:object mesh -> SimPEG mesh object
:switch stype -> "dpdp" (dipole-dipole) | "pdp" (pole-dipole) | 'gradient'
: param a, n -> pole seperation, number of rx dipoles per tx
Output:
:param Tx, Rx -> List objects for each tx location
Lines: P1x, P1y, P1z, P2x, P2y, P2z
Created on Wed December 9th, 2015
@author: dominiquef
"""
def xy_2_r(x1,x2,y1,y2):
r = np.sqrt( np.sum((x2 - x1)**2 + (y2 - y1)**2) )
return r
## Evenly distribute electrodes and put on surface
# Mesure survey length and direction
dl_len = xy_2_r(endl[0,0],endl[1,0],endl[0,1],endl[1,1])
dl_x = ( endl[1,0] - endl[0,0] ) / dl_len
dl_y = ( endl[1,1] - endl[0,1] ) / dl_len
nstn = np.floor( dl_len / a )
# Compute discrete pole location along line
stn_x = endl[0,0] + np.array(range(int(nstn)))*dl_x*a
stn_y = endl[0,1] + np.array(range(int(nstn)))*dl_y*a
# Create line of P1 locations
M = np.c_[stn_x, stn_y, np.ones(nstn).T*mesh.vectorNz[-1]]
# Create line of P2 locations
N = np.c_[stn_x+a*dl_x, stn_y+a*dl_y, np.ones(nstn).T*mesh.vectorNz[-1]]
## Build list of Tx-Rx locations depending on survey type
# Dipole-dipole: Moving tx with [a] spacing -> [AB a MN1 a MN2 ... a MNn]
# Pole-dipole: Moving pole on one end -> [A a MN1 a MN2 ... MNn a B]
Tx = []
Rx = []
if not re.match(stype,'gradient'):
for ii in range(0, int(nstn)-1):
if re.match(stype,'dpdp'):
tx = np.c_[M[ii,:],N[ii,:]]
elif re.match(stype,'pdp'):
tx = np.c_[M[ii,:],M[ii,:]]
#Rx.append(np.c_[M[ii+1:indx,:],N[ii+1:indx,:]])
# Current elctrode seperation
AB = xy_2_r(tx[0,1],endl[1,0],tx[1,1],endl[1,1])
# Number of receivers to fit
nstn = np.min([np.floor( (AB - b) / a ) , n])
# Check if there is enough space, else break the loop
if nstn <= 0:
continue
# Compute discrete pole location along line
stn_x = N[ii,0] + dl_x*b + np.array(range(int(nstn)))*dl_x*a
stn_y = N[ii,1] + dl_y*b + np.array(range(int(nstn)))*dl_y*a
# Create receiver poles
# Create line of P1 locations
P1 = np.c_[stn_x, stn_y, np.ones(nstn).T*mesh.vectorNz[-1]]
# Create line of P2 locations
P2 = np.c_[stn_x+a*dl_x, stn_y+a*dl_y, np.ones(nstn).T*mesh.vectorNz[-1]]
Rx.append(np.c_[P1,P2])
Tx.append(tx)
#==============================================================================
# elif re.match(stype,'dpdp'):
#
# for ii in range(0, int(nstn)-2):
#
# indx = np.min([ii+n+1,nstn])
# Tx.append(np.c_[M[ii,:],N[ii,:]])
# Rx.append(np.c_[M[ii+2:indx,:],N[ii+2:indx,:]])
#==============================================================================
elif re.match(stype,'gradient'):
# Gradient survey only requires Tx at end of line and creates a square
# grid of receivers at in the middle at a pre-set minimum distance
Tx.append(np.c_[M[0,:],N[-1,:]])
# Get the edge limit of survey area
min_x = endl[0,0] + dl_x * b
min_y = endl[0,1] + dl_y * b
max_x = endl[1,0] - dl_x * b
max_y = endl[1,1] - dl_y * b
box_l = np.sqrt( (min_x - max_x)**2 + (min_y - max_y)**2 )
box_w = box_l/2.
nstn = np.floor( box_l / a )
# Compute discrete pole location along line
stn_x = min_x + np.array(range(int(nstn)))*dl_x*a
stn_y = min_y + np.array(range(int(nstn)))*dl_y*a
# Define number of cross lines
nlin = int(np.floor( box_w / a ))
lind = range(-nlin,nlin+1)
ngrad = nstn * len(lind)
rx = np.zeros([ngrad,6])
for ii in range( len(lind) ):
# Move line in perpendicular direction by dipole spacing
lxx = stn_x - lind[ii]*a*dl_y
lyy = stn_y + lind[ii]*a*dl_x
M = np.c_[ lxx, lyy , np.ones(nstn).T*mesh.vectorNz[-1]]
N = np.c_[ lxx+a*dl_x, lyy+a*dl_y, np.ones(nstn).T*mesh.vectorNz[-1]]
rx[(ii*nstn):((ii+1)*nstn),:] = np.c_[M,N]
Rx.append(rx)
else:
print """stype must be either 'pdp', 'dpdp' or 'gradient'. """
return Tx, Rx
def writeUBC_DCobs(fileName,Tx,Rx,d,wd, dtype):
from SimPEG import np, mkvc
import re
"""
Read UBC GIF DCIP 3D observation file and generate arrays for tx-rx location
Input:
:param fileName, path to the UBC GIF 3D obs file
Output:
:param rx, tx, d, wd
:return
Created on Mon December 7th, 2015
@author: dominiquef
"""
fid = open(fileName,'w')
fid.write('! GENERAL FORMAT\n')
for ii in range(len(Tx)):
tx = np.asarray(Tx[ii])
rx = np.asarray(Rx[ii])
nrx = rx.shape[0]
fid.write('\n')
if re.match(dtype,'2D'):
for jj in range(nrx):
fid.writelines("%e " % ii for ii in mkvc(tx))
fid.writelines("%e " % ii for ii in mkvc(rx[jj]))
fid.write('%e %e\n'% (d[ii][jj],wd[ii][jj]))
#np.savetxt(fid, np.c_[ rx ,np.asarray(d[ii]), np.asarray(wd[ii]) ], fmt='%e',delimiter=' ',newline='\n')
elif re.match(dtype,'3D'):
fid.write('\n')
fid.writelines("%e " % ii for ii in mkvc(tx))
fid.write('%i\n'% nrx)
np.savetxt(fid, np.c_[ rx ,np.asarray(d[ii]), np.asarray(wd[ii]) ], fmt='%e',delimiter=' ',newline='\n')
fid.close()
def convertObs_DC3D_to_2D(Tx,Rx):
from SimPEG import np
import numpy.matlib as npm
"""
Read list of 3D Tx Rx location and change coordinate system to distance
along line assuming all data is acquired along line
First transmitter pole is assumed to be at the origin
Assumes flat topo for now...
Input:
:param Tx, Rx
Output:
:figure Tx2d, Rx2d
Created on Mon December 7th, 2015
@author: dominiquef
"""
Tx2d = []
Rx2d = []
for ii in range(len(Tx)):
if ii == 0:
endp = Tx[0][0:2,0]
nrx = Rx[ii].shape[0]
rP1 = np.sqrt( np.sum( ( endp - Tx[ii][0:2,0] )**2 , axis=0))
rP2 = np.sqrt( np.sum( ( endp - Tx[ii][0:2,1] )**2 , axis=0))
rC1 = np.sqrt( np.sum( ( npm.repmat(endp.T,nrx,1) - Rx[ii][:,0:2] )**2 , axis=1))
rC2 = np.sqrt( np.sum( ( npm.repmat(endp.T,nrx,1) - Rx[ii][:,3:5] )**2 , axis=1))
Tx2d.append( np.r_[rP1, rP2] )
Rx2d.append( np.c_[rC1, rC2] )
#np.savetxt(fid, data, fmt='%e',delimiter=' ',newline='\n')
return Tx2d, Rx2d
def readUBC_DC3Dobs(fileName):
from SimPEG import np
"""
Read UBC GIF DCIP 3D observation file and generate arrays for tx-rx location
Input:
:param fileName, path to the UBC GIF 3D obs file
Output:
:param rx, tx, d, wd
:return
Created on Mon December 7th, 2015
@author: dominiquef
"""
# Load file
obsfile = np.genfromtxt(fileName,delimiter=' \n',dtype=np.str,comments='!')
# Pre-allocate
Tx = []
Rx = []
d = []
wd = []
# Countdown for number of obs/tx
count = 0
for ii in range(obsfile.shape[0]):
if not obsfile[ii]:
continue
# First line is transmitter with number of receivers
if count==0:
temp = (np.fromstring(obsfile[ii], dtype=float,sep=' ').T)
count = int(temp[-1])
temp = np.reshape(temp[0:-1],[2,3]).T
Tx.append(temp)
rx = []
continue
temp = np.fromstring(obsfile[ii], dtype=float,sep=' ')
rx.append(temp)
count = count -1
# Reach the end of
if count == 0:
temp = np.asarray(rx)
Rx.append(temp[:,0:6])
# Check for data + uncertainties
if temp.shape[1]==8:
d.append(temp[:,6])
wd.append(temp[:,7])
# Check for data only
elif temp.shape[1]==7:
d.append(temp[:,6])
return Tx, Rx, d, wd
def readUBC_DC2DLoc(fileName):
from SimPEG import np
"""
Read UBC GIF 2D observation file and generate arrays for tx-rx location
Input:
:param fileName, path to the UBC GIF 2D model file
Output:
:param rx, tx
:return
Created on Thu Nov 12 13:14:10 2015
@author: dominiquef
"""
# Open fileand skip header... assume that we know the mesh already
#==============================================================================
# fopen = open(fileName,'r')
# lines = fopen.readlines()
# fopen.close()
#==============================================================================
# Load file
obsfile = np.genfromtxt(fileName,delimiter=' \n',dtype=np.str,comments='!')
# Check first line and figure out if 2D or 3D file format
line = np.array(obsfile[0].split(),dtype=float)
tx_A = []
tx_B = []
rx_M = []
rx_N = []
d = []
wd = []
for ii in range(obsfile.shape[0]):
# If len==3, then simple format where tx-rx is listed on each line
if len(line) == 4:
temp = np.fromstring(obsfile[ii], dtype=float,sep=' ')
tx_A = np.hstack((tx_A,temp[0]))
tx_B = np.hstack((tx_B,temp[1]))
rx_M = np.hstack((rx_M,temp[2]))
rx_N = np.hstack((rx_N,temp[3]))
rx = np.transpose(np.array((rx_M,rx_N)))
tx = np.transpose(np.array((tx_A,tx_B)))
return tx, rx, d, wd
def readUBC_DC2DMesh(fileName):
from SimPEG import np
"""
Read UBC GIF 2DTensor mesh and generate 2D Tensor mesh in simpeg
Input:
:param fileName, path to the UBC GIF mesh file
Output:
:param SimPEG TensorMesh 2D object
:return
Created on Thu Nov 12 13:14:10 2015
@author: dominiquef
"""
# Open file
fopen = open(fileName,'r')
# Read down the file and unpack dx vector
def unpackdx(fid,nrows):
for ii in range(nrows):
line = fid.readline()
var = np.array(line.split(),dtype=float)
if ii==0:
x0= var[0]
xvec = np.ones(int(var[2])) * (var[1] - var[0]) / int(var[2])
xend = var[1]
else:
xvec = np.hstack((xvec,np.ones(int(var[1])) * (var[0] - xend) / int(var[1])))
xend = var[0]
return x0, xvec
#%% Start with dx block
# First line specifies the number of rows for x-cells
line = fopen.readline()
nl = np.array(line.split(),dtype=float)
[x0, dx] = unpackdx(fopen,nl)
#%% Move down the file until reaching the z-block
line = fopen.readline()
if not line:
line = fopen.readline()
#%% End with dz block
# First line specifies the number of rows for z-cells
line = fopen.readline()
nl = np.array(line.split(),dtype=float)
[z0, dz] = unpackdx(fopen,nl)
# Flip z0 to be the bottom of the mesh for SimPEG
z0 = z0 - sum(dz)
dz = dz[::-1]
#%% Make the mesh using SimPEG
from SimPEG import Mesh
tensMsh = Mesh.TensorMesh([dx,dz],(x0, z0))
return tensMsh
+182
View File
@@ -0,0 +1,182 @@
from SimPEG import *
from BaseDC import SurveyDC, FieldsDC_CC
class SurveyIP(SurveyDC):
"""
**SurveyDC**
Geophysical DC resistivity data.
"""
def __init__(self, srcList, **kwargs):
self.srcList = srcList
Survey.BaseSurvey.__init__(self, **kwargs)
self._Ps = {}
def dpred(self, m, u=None):
"""
Predicted data.
.. math::
d_\\text{pred} = Pu(m)
"""
return self.prob.forward(m)
class ProblemIP(Problem.BaseProblem):
"""
**ProblemIP**
Geophysical IP resistivity problem.
"""
surveyPair = SurveyDC
Solver = Solver
sigma = None
Ainv = None
u = None
def __init__(self, mesh, **kwargs):
Problem.BaseProblem.__init__(self, mesh)
self.mesh.setCellGradBC('neumann')
Utils.setKwargs(self, **kwargs)
# deleteTheseOnModelUpdate = ['_A', '_Msig', '_dMdsig']
@property
def Msig(self):
if getattr(self, '_Msig', None) is None:
# sigma = self.curModel.transform
sigma = self.sigma
Av = self.mesh.aveF2CC
self._Msig = Utils.sdiag(1/(self.mesh.dim * Av.T * (1/sigma)))
return self._Msig
@property
def dMdsig(self):
if getattr(self, '_dMdsig', None) is None:
# sigma = self.curModel.transform
sigma = self.sigma
Av = self.mesh.aveF2CC
dMdprop = self.mesh.dim * Utils.sdiag(self.Msig.diagonal()**2) * Av.T * Utils.sdiag(1./sigma**2)
self._dMdsig = lambda Gu: Utils.sdiag(Gu) * dMdprop
return self._dMdsig
@property
def A(self):
"""
Makes the matrix A(m) for the DC resistivity problem.
:param numpy.array m: model
:rtype: scipy.csc_matrix
:return: A(m)
.. math::
c(m,u) = A(m)u - q = G\\text{sdiag}(M(mT(m)))Du - q = 0
Where M() is the mass matrix and mT is the model transform.
"""
if getattr(self, '_A', None) is None:
D = self.mesh.faceDiv
G = self.mesh.cellGrad
self._A = D*self.Msig*G
# Remove the null space from the matrix.
self._A[-1,-1] /= self.mesh.vol[-1]
self._A = self._A.tocsc()
return self._A
def getRHS(self):
# if self.mesh not in self._rhsDict:
RHS = np.array([src.eval(self) for src in self.survey.srcList]).T
# self._rhsDict[mesh] = RHS
# return self._rhsDict[mesh]
return RHS
def fields(self, m):
if self.u is None:
A = self.A
if self.Ainv == None:
self.Ainv = self.Solver(A, **self.solverOpts)
Q = self.getRHS()
self.u = self.Ainv * Q
return self.u
def forward(self, m, u=None):
# Set current model; clear dependent property $\mathbf{A(m)}$
self.curModel = m
# sigma = self.curModel.transform # $\sigma = \mathcal{M}(\m)$
sigma = self.sigma
if self.u is None:
# Run forward simulation if $u$ not provided
u = self.fields(sigma)
shp = (self.mesh.nC, self.survey.nSrc)
u = self.u.reshape(shp, order='F')
D = self.mesh.faceDiv
G = self.mesh.cellGrad
# Derivative of model transform, $\deriv{\sigma}{\m}$
# dsigdm_x_v = self.curModel.transformDeriv * v
dsigdm_x_v = Utils.sdiag(sigma) * self.curModel.transformDeriv * m
# Take derivative of $C(m,u)$ w.r.t. $m$
dCdm_x_v = np.empty_like(u)
# loop over fields for each source
for i in range(self.survey.nSrc):
# Derivative of inner product, $\left(\mathbf{M}_{1/\sigma}^f\right)^{-1}$
dAdsig = D * self.dMdsig( G * u[:,i] )
dCdm_x_v[:, i] = dAdsig * dsigdm_x_v
# Take derivative of $C(m,u)$ w.r.t. $u$
if self.Ainv == None:
self.Ainv = self.Solver(A, **self.solverOpts)
# dCdu = self.A
# Solve for $\deriv{u}{m}$
# dCdu_inv = self.Solver(dCdu, **self.solverOpts)
P = self.survey.getP(self.mesh)
J_x_v = - P * mkvc( self.Ainv * dCdm_x_v )
return -J_x_v
def Jvec(self, m, v, u=None):
return self.forward(v)
def Jtvec(self, m, v, u=None):
self.curModel = m
# sigma = self.curModel.transform # $\sigma = \mathcal{M}(\m)$
sigma = self.sigma
if self.u is None:
u = self.fields(sigma)
else:
u = self.u
shp = (self.mesh.nC, self.survey.nSrc)
u = u.reshape(shp, order='F')
P = self.survey.getP(self.mesh)
PT_x_v = (P.T*v).reshape(shp, order='F')
D = self.mesh.faceDiv
G = self.mesh.cellGrad
A = self.A
mT_dm = Utils.sdiag(sigma)*self.mapping.deriv(m)
# mT_dm = self.mapping.deriv(m)
# dCdu = A.T
# Ainv = self.Solver(dCdu, **self.solverOpts)
# if self.Ainv == None:
self.Ainv = self.Solver(A.T, **self.solverOpts)
w = self.Ainv * PT_x_v
Jtv = 0
for i, ui in enumerate(u.T): # loop over each column
Jtv += self.dMdsig( G * ui ).T * ( D.T * w[:,i] )
Jtv = - mT_dm.T * ( Jtv )
return -Jtv
+216
View File
@@ -0,0 +1,216 @@
import os
from SimPEG import *
import simpegDCIP as DC
import pylab as plt
from matplotlib import animation
from JSAnimation import HTMLWriter
import time
import re
#from readUBC_DC2DMesh import readUBC_DC2DMesh
#from readUBC_DC2DModel import readUBC_DC2DModel
#from readUBC_DC2DLoc import readUBC_DC2DLoc
#from convertObs_DC3D_to_2D import convertObs_DC3D_to_2D
#from readUBC_DC3Dobs import readUBC_DC3Dobs
#%%
home_dir = 'C:\\Users\\dominiquef.MIRAGEOSCIENCE\\ownCloud\\Research\\Modelling\\Synthetic\\Two_Sphere'
msh_file = 'Mesh_2D.msh'
mod_file = 'Model_2D.con'
obs_file = 'FWR_data3D.dat'
dsep = '\\'
# Forward solver
slvr = 'BiCGStab' #'LU'
# Preconditioner
pcdr = 'Jacobi' #'Gauss-Seidel'#
# Number of padding cells to remove from plotting
padc = 15
# Load UBC mesh 2D
mesh = DC.readUBC_DC2DMesh(home_dir + dsep + msh_file)
# Load model
model = DC.readUBC_DC2DModel(home_dir + dsep + mod_file)
# load obs file
[Tx,Rx,d,wd] = DC.readUBC_DC3Dobs(home_dir + dsep + obs_file)
[Tx, Rx] = DC.convertObs_DC3D_to_2D(Tx,Rx)
#%% Create system
#Set boundary conditions
mesh.setCellGradBC('neumann')
Div = mesh.faceDiv
Grad = mesh.cellGrad
Msig = Utils.sdiag(1./(mesh.aveF2CC.T*(1./model)))
A = Div*Msig*Grad
# Change one corner to deal with nullspace
A[0,0] = 1
A = sp.csc_matrix(A)
start_time = time.time()
if re.match(slvr,'BiCGStab'):
# Create Jacobi Preconditioner
if re.match(pcdr,'Jacobi'):
dA = A.diagonal()
P = sp.spdiags(1/dA,0,A.shape[0],A.shape[0])
# Create Gauss-Seidel Preconditioner
elif re.match(pcdr,'Gauss-Seidel'):
LD = sp.tril(A,k=0)
#LDinv = sp.linalg.splu(LD)
elif re.match(slvr,'LU'):
# Factor A matrix
Ainv = sp.linalg.splu(A)
print("LU DECOMP--- %s seconds ---" % (time.time() - start_time))
#%% Create SimPEG objects
# Create sub-mesh for plotting
hx = mesh.hx
hy = mesh.hy
hx_sub = hx[padc:-padc]
hy_sub = hy[padc:]
mesh_sub = Mesh.TensorMesh([hx_sub,hy_sub],(mesh.vectorNx[padc], mesh.vectorNy[padc]))
model_sub = model.reshape(mesh.nCy,mesh.nCx)
model_sub = mkvc(model_sub[padc:,padc:-padc].T)
xx = mesh_sub.vectorCCx
yy = mesh_sub.vectorCCy
#%% Solve
#txii = range(50,1950,100)
#jx_CC_sub = np.zeros((len(txii),mesh_sub.nCx,mesh_sub.nCy))
#jy_CC_sub = np.zeros((len(txii),mesh_sub.nCx,mesh_sub.nCy))
fig = plt.figure(figsize=(10,5))
axs = plt.axes(ylim = (yy[0],yy[-1]+mesh.hy[-1]*2), xlim = (xx[0],xx[-1]))#
plt.tight_layout(pad=0.4, w_pad=0.5, h_pad=1.0)
plt.ylim(yy[0],yy[-1]+mesh.hy[-1]*2)
plt.xlim(xx[0],xx[-1])
#im1 = axs.pcolormesh([],[],[], alpha=0.75,extent = (xx[0],xx[-1],yy[-1],yy[0]),interpolation='nearest',vmin=-1e-2, vmax=1e-2)
#im2 = axs.pcolormesh([],[],[],alpha=0.2,extent = (xx[0],xx[-1],yy[-1],yy[0]),interpolation='nearest',cmap='gray')
im1 = axs.pcolormesh(mesh_sub.vectorCCx,mesh_sub.vectorCCy,np.zeros((mesh_sub.nCy,mesh_sub.nCx)), alpha=0.75,vmin=-1e-2, vmax=1e-2)
im2 = axs.pcolormesh(mesh_sub.vectorCCx,mesh_sub.vectorCCy,np.zeros((mesh_sub.nCy,mesh_sub.nCx)), alpha=0.75,vmin=-1e-2, vmax=1e-2)
im3 = axs.streamplot(xx, yy, np.zeros((mesh_sub.nCy,mesh_sub.nCx)), np.zeros((mesh_sub.nCy,mesh_sub.nCx)),color='k')
im4 = axs.scatter([],[], c='r', s=200)
im5 = axs.scatter([],[], c='r', s=200)
#==============================================================================
# def init():
# im1.set_data([[],[],[]])
# im2.set_data([[],[],[]])
#
# return [im1]+[im2]
#==============================================================================
def animate(ii):
#for ii in range(len(txii)):
removeStream()
tx = np.asarray(np.c_[Tx[ii],np.ones(Tx[ii].shape[0])*mesh.vectorNy[-1]-1])
inds = Utils.closestPoints(mesh, tx )
RHS = mesh.getInterpolationMat( tx , 'CC').T*( [-1,1] / mesh.vol[inds] )
if re.match(slvr,'BiCGStab'):
if re.match(pcdr,'Jacobi'):
dA = A.diagonal()
P = sp.spdiags(1/dA,0,A.shape[0],A.shape[0])
# Iterative Solve
phi = sp.linalg.bicgstab(P*A,P*RHS, tol=1e-5)
phi = mkvc(phi[0])
elif re.match(slvr,'LU'):
#Direct Solve
phi = Ainv.solve(RHS)
j = -Msig*Grad*phi
j_CC = mesh.aveF2CCV*j
# Compute charge density solving div*grad*phi
Q = -mesh.faceDiv*mesh.cellGrad*phi
jx_CC = j_CC[0:mesh.nC].reshape(mesh.nCy,mesh.nCx)
jy_CC = j_CC[mesh.nC:].reshape(mesh.nCy,mesh.nCx)
#%% Grab only the core for presentation
jx_CC_sub = jx_CC[padc:,padc:-padc]
jy_CC_sub = jy_CC[padc:,padc:-padc]
Q_sub = Q.reshape(mesh.nCy,mesh.nCx)
Q_sub = Q_sub[padc:,padc:-padc]
J_rho = np.sqrt(jx_CC_sub**2 + jy_CC_sub**2)
lw = np.log10(J_rho/J_rho.min())
#axs.imshow(Q_sub,alpha=0.75,extent = (xx[0],xx[-1],yy[-1],yy[0]),interpolation='nearest',vmin=-1e-2, vmax=1e-2)
#axs.imshow(np.log10(model_sub.reshape(mesh_sub.nCy,mesh_sub.nCx)),alpha=0.2,extent = (xx[0],xx[-1],yy[-1],yy[0]),interpolation='nearest',cmap='gray')
global im1
im1 = axs.pcolormesh(mesh_sub.vectorCCx,mesh_sub.vectorCCy,Q_sub, alpha=0.75,vmin=-1e-2, vmax=1e-2)
global im2
im2 = axs.pcolormesh(mesh_sub.vectorCCx,mesh_sub.vectorCCy,np.log10(model_sub.reshape(mesh_sub.nCy,mesh_sub.nCx)), alpha=0.25)
global im3
im3 = axs.streamplot(xx, yy, jx_CC_sub, jy_CC_sub,color='k',linewidth = lw,density=0.5)
global im4
im4 = axs.scatter(tx[0,0],mesh.vectorNy[-1], c='r', s=75, marker='v' )
global im5
im5 = axs.scatter(tx[1,0],mesh.vectorNy[-1], c='b', s=75, marker='v' )
#plt.show()
#im1.set_array(Q_sub)
#im2.set_array(np.log10(model_sub.reshape(mesh_sub.nCy,mesh_sub.nCx)))
#im2.set_array(mesh_sub.vectorCCx, mesh_sub.vectorCCy,jx_CC_sub.T,jy_CC_sub.T)
#return [im1] + [im2]
#%% Create widget
def removeStream():
global im1
im1.remove()
global im2
im2.remove()
global im3
im3.lines.remove()
axs.patches = []
global im4
im4.remove()
global im5
im5.remove()
#def viewInv(msh,iteration):
#, linewidth=lw.T
#%%
#interact(viewInv,msh = mesh_sub, iteration = IntSlider(min=0, max=len(txii)-1 ,step=1, value=0))
# set embed_frames=True to embed base64-encoded frames directly in the HTML
anim = animation.FuncAnimation(fig, animate,
frames=len(Tx), interval=5)
anim.save(home_dir + '\\animation.html', writer=HTMLWriter(embed_frames=True))
+478
View File
@@ -0,0 +1,478 @@
"""
Experimental script for the forward modeling of DC resistivity data
along survey lines defined by the user. The program loads in a 3D mesh
and model which is used to design pole-dipole or dipole-dipole survey
lines.
Uses SimPEG to generate the forward problem and compute the LU
factorization.
Calls DCIP2D for the inversion of a projected 2D section from the full
3D model.
Assumes flat topo for now...
Created on Mon December 7th, 2015
@author: dominiquef
"""
#%%
from SimPEG import *
import simpegDCIP as DC
import pylab as plt
from pylab import get_current_fig_manager
from scipy.interpolate import griddata
import time
import re
import numpy.matlib as npm
import scipy.interpolate as interpolation
#==============================================================================
# from readUBC_DC3Dobs import readUBC_DC3Dobs
# from readUBC_DC2DModel import readUBC_DC2DModel
# from writeUBC_DCobs import writeUBC_DCobs
# from plot_pseudoSection import plot_pseudoSection
# from gen_DCIPsurvey import gen_DCIPsurvey
# from convertObs_DC3D_to_2D import convertObs_DC3D_to_2D
#==============================================================================
from matplotlib.colors import LogNorm
import os
home_dir = 'C:\\Users\\dominiquef.MIRAGEOSCIENCE\\ownCloud\\Research\\Modelling\\Synthetic\\Two_Sphere'
dsep = '\\'
#from scipy.linalg import solve_banded
# Load UBC mesh 3D
mesh = Mesh.TensorMesh.readUBC(home_dir + '\Mesh_5m.msh')
#mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\MtIsa_20m.msh')
#mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\Mesh_50m.msh')
# Load model
#model = Utils.meshutils.readUBCTensorModel(home_dir + '\MtIsa_3D.con',mesh)
#model = Utils.meshutils.readUBCTensorModel(home_dir + '\Synthetic.con',mesh)
#model = Utils.meshutils.readUBCTensorModel(home_dir + '\Lalor_model_50m.con',mesh)
model = Mesh.TensorMesh.readModelUBC(mesh,home_dir + '\TwoSpheres.con')
#model = model**0 * 1e-2
# Specify survey type
stype = 'dpdp'
# Survey parameters
a = 30
b = 30
n = 20
# Forward solver
slvr = 'BiCGStab' #'LU'
# Preconditioner
pcdr = 'Jacobi'#
# Inversion parameter
pct = 0.01
flr = 1e-4
chifact = 100
ref_mod = 1e-2
# DOI threshold
cutoff = 0.8
#%% Create system
#Set boundary conditions
mesh.setCellGradBC('neumann')
Div = mesh.faceDiv
Grad = mesh.cellGrad
Msig = Utils.sdiag(1./(mesh.aveF2CC.T*(1./model)))
A = Div*Msig*Grad
# Change one corner to deal with nullspace
A[0,0] = 1
A = sp.csc_matrix(A)
start_time = time.time()
if re.match(slvr,'BiCGStab'):
# Create Jacobi Preconditioner
if re.match(pcdr,'Jacobi'):
dA = A.diagonal()
P = sp.spdiags(1/dA,0,A.shape[0],A.shape[0])
#LDinv = sp.linalg.splu(LD)
elif re.match(slvr,'LU'):
# Factor A matrix
Ainv = sp.linalg.splu(A)
print("LU DECOMP--- %s seconds ---" % (time.time() - start_time))
#%% Create survey
# Display top section
top = int(mesh.nCz)-1
plt.figure()
ax_prim = plt.subplot(1,1,1)
mesh.plotSlice(model, ind=top, normal='Z', grid=False, pcolorOpts={'alpha':0.5}, ax =ax_prim)
plt.xlim([423200,423750])
plt.ylim([546350,546650])
plt.gca().set_aspect('equal', adjustable='box')
plt.show()
cfm1=get_current_fig_manager().window
gin=[1]
# Keep creating sections until returns an empty ginput (press enter on figure)
#while bool(gin)==True:
# Bring back the plan view figure and pick points
cfm1.activateWindow()
plt.sca(ax_prim)
# Takes two points from ginput and create survey
#if re.match(stype,'gradient'):
gin = [(423230. , 546440.), (423715. , 546440.)]
#else:
#gin = plt.ginput(2, timeout = 0)
#==============================================================================
# if not gin:
# print 'SimPED - Simulation has ended with return'
# break
#==============================================================================
# Add z coordinate to all survey... assume flat
nz = mesh.vectorNz
var = np.c_[np.asarray(gin),np.ones(2).T*nz[-1]]
# Snap the endpoints to the grid. Easier to create 2D section.
indx = Utils.closestPoints(mesh, var )
endl = np.c_[mesh.gridCC[indx,0],mesh.gridCC[indx,1],np.ones(2).T*nz[-1]]
[Tx, Rx] = DC.gen_DCIPsurvey(endl, mesh, stype, a, b, n)
dl_len = np.sqrt( np.sum((endl[0,:] - endl[1,:])**2) )
dl_x = ( Tx[-1][0,1] - Tx[0][0,0] ) / dl_len
dl_y = ( Tx[-1][1,1] - Tx[0][1,0] ) / dl_len
azm = np.arctan(dl_y/dl_x)
# Plot stations along line
plt.scatter(Tx[0][0,:],Tx[0][1,:],s=20,c='g')
plt.scatter(Rx[0][:,0::3],Rx[0][:,1::3],s=20,c='y')
#%% Forward model data
data = []#np.zeros( nstn*nrx )
unct = []
problem = DC.ProblemDC_CC(mesh)
for ii in range(len(Tx)):
start_time = time.time()
# Select dipole locations for receiver
rxloc_M = np.asarray(Rx[ii][:,0:3])
rxloc_N = np.asarray(Rx[ii][:,3:])
# Number of receivers
nrx = rxloc_M.shape[0]
if not re.match(stype,'pdp'):
inds = Utils.closestPoints(mesh, np.asarray(Tx[ii]).T )
RHS = mesh.getInterpolationMat(np.asarray(Tx[ii]).T, 'CC').T*( [-1,1] / mesh.vol[inds] )
else:
# Create an "inifinity" pole
tx = np.squeeze(Tx[ii][:,0:1])
tinf = tx + np.array([dl_x,dl_y,0])*dl_len*2
inds = Utils.closestPoints(mesh, np.c_[tx,tinf].T)
RHS = mesh.getInterpolationMat(np.asarray(Tx[ii]).T, 'CC').T*( [-1] / mesh.vol[inds] )
# Solve for phi on pole locations
P1 = mesh.getInterpolationMat(rxloc_M, 'CC')
P2 = mesh.getInterpolationMat(rxloc_N, 'CC')
if re.match(slvr,'BiCGStab'):
if re.match(pcdr,'Jacobi'):
dA = A.diagonal()
P = sp.spdiags(1/dA,0,A.shape[0],A.shape[0])
# Iterative Solve
Ainvb = sp.linalg.bicgstab(P*A,P*RHS, tol=1e-5)
phi = mkvc(Ainvb[0])
elif re.match(slvr,'LU'):
#Direct Solve
phi = Ainv.solve(RHS)
# Compute potential at each electrode
dtemp = (P1*phi - P2*phi)*np.pi
data.append( dtemp )
unct.append( np.abs(dtemp) * pct + flr)
print("--- %s seconds ---" % (time.time() - start_time))
#%% Run 2D inversion if pdp or dpdp survey
# Otherwise just plot and apparent susceptibility map
if not re.match(stype,'gradient'):
#%% Write data file in UBC-DCIP3D format
DC.writeUBC_DCobs(home_dir+'\FWR_data3D.dat',Tx,Rx,data,unct,'3D')
#%% Load 3D data
[Tx, Rx, data, wd] = DC.readUBC_DC3Dobs(home_dir + '\FWR_data3D.dat')
#%% Convert 3D obs to 2D and write to file
[Tx2d, Rx2d] = DC.convertObs_DC3D_to_2D(Tx,Rx)
DC.writeUBC_DCobs(home_dir+'\FWR_3D_2_2D.dat',Tx2d,Rx2d,data,unct,'2D')
#%% Create a 2D mesh along axis of Tx end points and keep z-discretization
dx = np.min( [ np.min(mesh.hx), np.min(mesh.hy) ])
nc = np.ceil(dl_len/dx)+3
padx = dx*np.power(1.4,range(1,15))
# Creating padding cells
h1 = np.r_[padx[::-1], np.ones(nc)*dx , padx]
# Create mesh with 0 coordinate centerer on the ginput points in cell center
mesh2d = Mesh.TensorMesh([h1, mesh.hz], x0=(-np.sum(padx)-dx/2,mesh.x0[2]))
# Create array of points for interpolating from 3D to 2D mesh
xx = Tx[0][0,0] + mesh2d.vectorCCx * np.cos(azm)
yy = Tx[0][1,0] + mesh2d.vectorCCx * np.sin(azm)
zz = mesh2d.vectorCCy
[XX,ZZ] = np.meshgrid(xx,zz)
[YY,ZZ] = np.meshgrid(yy,zz)
xyz2d = np.c_[mkvc(XX),mkvc(YY),mkvc(ZZ)]
#plt.scatter(xx,yy,s=20,c='y')
F = interpolation.NearestNDInterpolator(mesh.gridCC,model)
m2D = np.reshape(F(xyz2d),[mesh2d.nCx,mesh2d.nCy]).T
#==============================================================================
# mesh2d = Mesh.TensorMesh([mesh.hx, mesh.hz], x0=(mesh.x0[0]-endl[0,0],mesh.x0[2]))
# m3D = np.reshape(model, (mesh.nCz, mesh.nCy, mesh.nCx))
# m2D = m3D[:,1,:]
#==============================================================================
#%%
plt.figure()
axs = plt.subplot(1,1,1)
plt.xlim([-dx,nc*dx+dx])
plt.ylim([mesh2d.vectorNy[-1]-dl_len/2,mesh2d.vectorNy[-1]+2*dx])
plt.gca().set_aspect('equal', adjustable='box')
circle1=plt.Circle((144,1500),50,color='w',fill=False, lw=3)
circle2=plt.Circle((344,1500),50,color='k',fill=False, lw=3)
axs.add_artist(circle1)
axs.add_artist(circle2)
plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(m2D))#axes = [mesh2d.vectorNx[0],mesh2d.vectorNx[-1],mesh2d.vectorNy[0],mesh2d.vectorNy[-1]])
cbar = plt.colorbar(format = '%.2f',fraction=0.02)
cmin,cmax = cbar.get_clim()
ticks = np.linspace(cmin,cmax,3)
cbar.set_ticks(ticks)
# Plot poles
plt.scatter(Tx2d[0][0],mesh2d.vectorNy[-1]+dx,s=50,c='r',marker='v')
plt.scatter(Tx2d[0][1],mesh2d.vectorNy[-1]+dx,s=50,c='b',marker='v')
plt.scatter(Rx2d[0][:,0],np.ones(Rx2d[0].shape[0])*mesh2d.vectorNy[-1]+dx,s=50,c='g')
#mesh2d.plotImage(mkvc(m2D), grid=True, ax=axs)
#%% Plot pseudo section
plt.figure()
axs = plt.subplot(1,1,1)
plt.xlim([-dx,nc*dx+dx])
plt.ylim([mesh2d.vectorNy[-1]-dl_len/2,mesh2d.vectorNy[-1]+2*dx])
plt.gca().set_aspect('equal', adjustable='box')
circle1=plt.Circle((144,1500),50,color='w',fill=False, lw=3)
circle2=plt.Circle((344,1500),50,color='k',fill=False, lw=3)
axs.add_artist(circle1)
axs.add_artist(circle2)
DC.plot_pseudoSection(Tx2d,Rx2d,data,nz[-1],stype)
plt.show()
#%% Run two inversions with different reference models and compute a DOI
invmod = []
refmod = []
plt.figure()
for jj in range(2):
# Create dcin2d inversion files and run
inv_dir = home_dir + '\Inv2D'
if not os.path.exists(inv_dir):
os.makedirs(inv_dir)
mshfile2d = 'Mesh_2D.msh'
modfile2d = 'Model_2D.con'
obsfile2d = 'FWR_3D_2_2D.dat'
inp_file = 'dcinv2d.inp'
# Export 2D mesh
fid = open(inv_dir + dsep + mshfile2d,'w')
fid.write('%i\n'% mesh2d.nCx)
fid.write('%f %f 1\n'% (mesh2d.vectorNx[0],mesh2d.vectorNx[1]))
np.savetxt(fid, np.c_[mesh2d.vectorNx[2:],np.ones(mesh2d.nCx-1)], fmt='\t %e %i',delimiter=' ',newline='\n')
fid.write('\n')
fid.write('%i\n'% mesh2d.nCy)
fid.write('%f %f 1\n'%( 0,mesh2d.hy[-1]))
np.savetxt(fid, np.c_[np.cumsum(mesh2d.hy[-2::-1])+mesh2d.hy[-1],np.ones(mesh2d.nCy-1)], fmt='\t %e %i',delimiter=' ',newline='\n')
fid.close()
# Export 2D model
fid = open(inv_dir + dsep + modfile2d,'w')
fid.write('%i %i\n'% (mesh2d.nCx,mesh2d.nCy))
np.savetxt(fid, mkvc(m2D[::-1,:].T), fmt='%e',delimiter=' ',newline='\n')
fid.close()
# Export data file
DC.writeUBC_DCobs(inv_dir + dsep + obsfile2d,Tx2d,Rx2d,data,unct,'2D')
# Write input file
fid = open(inv_dir + dsep + inp_file,'w')
fid.write('OBS LOC_X %s \n'% obsfile2d)
fid.write('MESH FILE %s \n'% mshfile2d)
fid.write('CHIFACT 1 %f\n'% chifact)
fid.write('TOPO DEFAULT %s \n')
fid.write('INIT_MOD DEFAULT\n')
fid.write('REF_MOD VALUE %e\n'% (ref_mod*(jj+1)))
fid.write('ALPHA DEFAULT\n')
fid.write('WEIGHT DEFAULT\n')
fid.write('STORE_ALL_MODELS FALSE\n')
fid.write('INVMODE SVD\n')
fid.write('USE_MREF TRUE\n')
fid.close()
os.chdir(inv_dir)
os.system('dcinv2d ' + inp_file)
#Load model
minv = DC.readUBC_DC2DModel(inv_dir + dsep + 'dcinv2d.con')
axs = plt.subplot(2,1,jj+1)
plt.xlim([-dx,nc*dx+dx])
plt.ylim([mesh2d.vectorNy[-1]-dl_len/2,mesh2d.vectorNy[-1]+2*dx])
plt.gca().set_aspect('equal', adjustable='box')
minv = np.reshape(minv,(mesh2d.nCy,mesh2d.nCx))
#plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(m2D),alpha=0.5, cmap='gray')
circle1=plt.Circle((144,1500),50,color='w',fill=False, lw=3)
circle2=plt.Circle((344,1500),50,color='k',fill=False, lw=3)
axs.add_artist(circle1)
axs.add_artist(circle2)
axp = plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(minv),alpha=1,vmin = -2.25, vmax = -1.5)
plt.show()
if jj == 1:
plt.ylabel('(b)',rotation=360)
plt.xlabel('Distance (m)')
else:
plt.ylabel('(a)',rotation=360)
cbar = plt.colorbar(format = '%.2f',fraction=0.05,orientation='vertical',pad=0.02)
cmin,cmax = cbar.get_clim()
ticks = np.linspace(cmin,cmax,3)
cbar.set_ticks(ticks)
#cbar.set_ticklabels('%.2f')
invmod.append(minv)
refmod.append(ref_mod*(jj+1))
#%% Compute DOI
DOI = np.abs(invmod[0] - invmod[1]) / np.abs(refmod[0] - refmod[1])
# Normalize between [0 1]
DOI = DOI - np.min(DOI)
DOI = (1.- DOI/np.max(DOI))
DOI[DOI > cutoff] = 1
plt.figure()
plt.xlim([-dx,nc*dx+dx])
plt.ylim([mesh2d.vectorNy[-1]-dl_len/2,mesh2d.vectorNy[-1]+2*dx])
plt.gca().set_aspect('equal', adjustable='box')
plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,DOI,alpha=1)
cbar = plt.colorbar(format = '%.2f',fraction=0.02)
#%% Replace alpha values from inversion
#rgba_plt = axp.get_facecolor()
#rgba_plt[:,3] = mkvc(DOI)/2
plt.figure()
axs = plt.subplot(1,1,1)
plt.xlim([-dx,nc*dx+dx])
plt.ylim([mesh2d.vectorNy[-1]-dl_len/2,mesh2d.vectorNy[-1]+2*dx])
plt.gca().set_aspect('equal', adjustable='box')
circle1=plt.Circle((144,1500),50,color='w',fill=False, lw=3)
circle2=plt.Circle((344,1500),50,color='k',fill=False, lw=3)
axs.add_artist(circle1)
axs.add_artist(circle2)
axs = plt.pcolor(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(invmod[0]),edgecolor="none")
plt.draw()
cbar = plt.colorbar(format = '%.2f',fraction=0.02)
aa = axs.get_facecolors()
aa[:,3] = mkvc(DOI.T)
axs.set_facecolor(aa)
plt.draw()
#%% Othrwise it is a gradient array, plot surface of apparent resisitivty
elif re.match(stype,'gradient'):
rC1P1 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,0],Rx[0].shape[0], 1) - Rx[0][:,0:2])**2, axis=1 ))
rC2P1 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,1],Rx[0].shape[0], 1) - Rx[0][:,0:2])**2, axis=1 ))
rC1P2 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,1],Rx[0].shape[0], 1) - Rx[0][:,3:5])**2, axis=1 ))
rC2P2 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,0],Rx[0].shape[0], 1) - Rx[0][:,3:5])**2, axis=1 ))
rC1C2 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,0]-Tx[0][0:2,1],Rx[0].shape[0], 1) )**2, axis=1 ))
rP1P2 = np.sqrt( np.sum( (Rx[0][:,0:2] - Rx[0][:,3:5])**2, axis=1 ))
rho = np.abs(data[0]) * np.pi *((rC1P1)**2 / rP1P2)#/ ( 1/rC1P1 - 1/rC2P1 - 1/rC1P2 + 1/rC2P2 )
Pmid = (Rx[0][:,0:2] + Rx[0][:,3:5])/2
# Grid points
grid_x, grid_z = np.mgrid[np.min(Rx[0][:,[0,3]]):np.max(Rx[0][:,[0,3]]):a/10, np.min(Rx[0][:,[1,4]]):np.max(Rx[0][:,[1,4]]):a/10]
grid_rho = griddata(np.c_[Pmid[:,0],Pmid[:,1]], (abs(rho.T)), (grid_x, grid_z), method='linear')
#plt.subplot(2,1,2)
plt.imshow(grid_rho.T, extent = (np.min(grid_x),np.max(grid_x),np.min(grid_z),np.max(grid_z)) ,origin='lower')
var = 'Gradient Array - a-spacing: ' + str(a) + ' m'
plt.title(var)
plt.colorbar()
+403
View File
@@ -0,0 +1,403 @@
"""
Experimental script for the forward modeling of DC resistivity data
along survey lines defined by the user. The program loads in a 3D mesh
and model which is used to design pole-dipole or dipole-dipole survey
lines.
Uses SimPEG to generate the forward problem and compute the LU
factorization.
Calls DCIP2D for the inversion of a projected 2D section from the full
3D model.
Assumes flat topo for now...
Created on Mon December 7th, 2015
@author: dominiquef
"""
#%%
from SimPEG import np, Utils, Mesh, mkvc, sp
import simpegDCIP as DC
import pylab as plt
from pylab import get_current_fig_manager
from scipy.interpolate import griddata
import time
import re
import numpy.matlib as npm
#from readUBC_DC3Dobs import readUBC_DC3Dobs
#from readUBC_DC2DModel import readUBC_DC2DModel
#from writeUBC_DCobs import writeUBC_DCobs
import scipy.interpolate as interpolation
#from plot_pseudoSection import plot_pseudoSection
#from gen_DCIPsurvey import gen_DCIPsurvey
#from convertObs_DC3D_to_2D import convertObs_DC3D_to_2D
import os
#home_dir = 'C:\\Users\\dominiquef.MIRAGEOSCIENCE\\ownCloud\\Research\\Modelling\\Synthetic\\Two_Sphere'
home_dir ='C:\Users\dominiquef.MIRAGEOSCIENCE\ownCloud\Research\MtIsa\Modeling'
dsep = '\\'
#from scipy.linalg import solve_banded
# Load UBC mesh 3D
#mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\Mesh_10m.msh')
mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\MtIsa_20m.msh')
#mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\Mesh_50m.msh')
# Load model
model = Utils.meshutils.readUBCTensorModel(home_dir + '\MtIsa_20m.con',mesh)
#model = Utils.meshutils.readUBCTensorModel(home_dir + '\Synthetic.con',mesh)
#model = Utils.meshutils.readUBCTensorModel(home_dir + '\Lalor_model_50m.con',mesh)
#model = Utils.meshutils.readUBCTensorModel(home_dir + '\TwoSpheres.con',mesh)
#model[model>1] = 0.08
#model = model**0 * 1e-2
# Specify survey type
stype = 'pdp'
# Survey parameters
a = 100
b = 100
n = 15
# Forward solver
slvr = 'BiCGStab' #'LU'
# Preconditioner
pcdr = 'Jacobi'#'Gauss-Seidel'#
# Inversion parameter
pct = 0.01
flr = 1e-4
chifact = 100
ref_mod = 1e-2
#%% Create system
#Set boundary conditions
mesh.setCellGradBC('neumann')
Div = mesh.faceDiv
Grad = mesh.cellGrad
Msig = Utils.sdiag(1./(mesh.aveF2CC.T*(1./model)))
A = Div*Msig*Grad
# Change one corner to deal with nullspace
A[0,0] = 1
A = sp.csc_matrix(A)
start_time = time.time()
if re.match(slvr,'BiCGStab'):
# Create Jacobi Preconditioner
if re.match(pcdr,'Jacobi'):
dA = A.diagonal()
P = sp.spdiags(1/dA,0,A.shape[0],A.shape[0])
# Create Gauss-Seidel Preconditioner
elif re.match(pcdr,'Gauss-Seidel'):
LD = sp.tril(A,k=0)
#LDinv = sp.linalg.splu(LD)
elif re.match(slvr,'LU'):
# Factor A matrix
Ainv = sp.linalg.splu(A)
print("LU DECOMP--- %s seconds ---" % (time.time() - start_time))
#%% Create survey
# Display top section
top = int(mesh.nCz)-1
plt.figure()
ax_prim = plt.subplot(1,1,1)
mesh.plotSlice(model, ind=top, normal='Z', grid=False, pcolorOpts={'alpha':0.5}, ax =ax_prim)
#plt.xlim([423000,424000])
#plt.ylim([546200,547000])
plt.gca().set_aspect('equal', adjustable='box')
plt.show()
cfm1=get_current_fig_manager().window
gin=[1]
# Keep creating sections until returns an empty ginput (press enter on figure)
#while bool(gin)==True:
# Bring back the plan view figure and pick points
cfm1.activateWindow()
plt.sca(ax_prim)
# Takes two points from ginput and create survey
#if re.match(stype,'gradient'):
gin = [(400.,12200.), (1800.,12200.)]
#else:
#gin = plt.ginput(2, timeout = 0)
#==============================================================================
# if not gin:
# print 'SimPED - Simulation has ended with return'
# break
#==============================================================================
# Add z coordinate to all survey... assume flat
nz = mesh.vectorNz
var = np.c_[np.asarray(gin),np.ones(2).T*nz[-1]]
# Snap the endpoints to the grid. Easier to create 2D section.
indx = Utils.closestPoints(mesh, var )
endl = np.c_[mesh.gridCC[indx,0],mesh.gridCC[indx,1],np.ones(2).T*nz[-1]]
[Tx, Rx] = DC.gen_DCIPsurvey(endl, mesh, stype, a, b, n)
dl_len = np.sqrt( np.sum((endl[0,:] - endl[1,:])**2) )
dl_x = ( Tx[-1][0,1] - Tx[0][0,0] ) / dl_len
dl_y = ( Tx[-1][1,1] - Tx[0][1,0] ) / dl_len
azm = np.arctan(dl_y/dl_x)
# Plot stations along line
plt.scatter(Tx[0][0,:],Tx[0][1,:],s=20,c='g')
plt.scatter(Rx[0][:,0::3],Rx[0][:,1::3],s=20,c='y')
#%% Forward model data
data = []#np.zeros( nstn*nrx )
unct = []
problem = DC.ProblemDC_CC(mesh)
for ii in range(len(Tx)):
start_time = time.time()
# Select dipole locations for receiver
rxloc_M = np.asarray(Rx[ii][:,0:3])
rxloc_N = np.asarray(Rx[ii][:,3:])
# Number of receivers
nrx = rxloc_M.shape[0]
if not re.match(stype,'pdp'):
inds = Utils.closestPoints(mesh, np.asarray(Tx[ii]).T )
RHS = mesh.getInterpolationMat(np.asarray(Tx[ii]).T, 'CC').T*( [-1,1] / mesh.vol[inds] )
else:
# Create an "inifinity" pole
tx = np.squeeze(Tx[ii][:,0:1])
tinf = tx + np.array([dl_x,dl_y,0])*dl_len*2
inds = Utils.closestPoints(mesh, np.c_[tx,tinf].T)
RHS = mesh.getInterpolationMat(np.asarray(Tx[ii]).T, 'CC').T*( [-1] / mesh.vol[inds] )
# Solve for phi on pole locations
P1 = mesh.getInterpolationMat(rxloc_M, 'CC')
P2 = mesh.getInterpolationMat(rxloc_N, 'CC')
if re.match(slvr,'BiCGStab'):
if re.match(pcdr,'Jacobi'):
dA = A.diagonal()
P = sp.spdiags(1/dA,0,A.shape[0],A.shape[0])
# Iterative Solve
Ainvb = sp.linalg.bicgstab(P*A,P*RHS, tol=1e-5)
# Create Gauss-Seidel Preconditioner
elif re.match(pcdr,'Gauss-Seidel'):
LD = sp.tril(A,k=0)
phi = mkvc(Ainvb[0])
elif re.match(slvr,'LU'):
#Direct Solve
phi = Ainv.solve(RHS)
# Compute potential at each electrode
dtemp = (P1*phi - P2*phi)*np.pi
data.append( dtemp )
unct.append( np.abs(dtemp) * pct + flr)
print("--- %s seconds ---" % (time.time() - start_time))
#%% Run 2D inversion if pdp or dpdp survey
# Otherwise just plot and apparent susceptibility map
if not re.match(stype,'gradient'):
#%% Write data file in UBC-DCIP3D format
DC.writeUBC_DCobs(home_dir+'\FWR_data3D.dat',Tx,Rx,data,unct,'3D')
#%% Load 3D data
[Tx, Rx, data, wd] = DC.readUBC_DC3Dobs(home_dir + '\FWR_data3D.dat')
#%% Convert 3D obs to 2D and write to file
[Tx2d, Rx2d] = DC.convertObs_DC3D_to_2D(Tx,Rx)
DC.writeUBC_DCobs(home_dir+'\FWR_3D_2_2D.dat',Tx2d,Rx2d,data,unct,'2D')
#%% Create a 2D mesh along axis of Tx end points and keep z-discretization
dx = np.min( [ np.min(mesh.hx), np.min(mesh.hy) ])
nc = np.ceil(dl_len/dx)+3
padx = dx*np.power(1.4,range(1,15))
# Creating padding cells
h1 = np.r_[padx[::-1], np.ones(nc)*dx , padx]
# Create mesh with 0 coordinate centerer on the ginput points in cell center
mesh2d = Mesh.TensorMesh([h1, mesh.hz], x0=(-np.sum(padx)-dx/2,mesh.x0[2]))
# Create array of points for interpolating from 3D to 2D mesh
xx = Tx[0][0,0] + mesh2d.vectorCCx * np.cos(azm)
yy = Tx[0][1,0] + mesh2d.vectorCCx * np.sin(azm)
zz = mesh2d.vectorCCy
[XX,ZZ] = np.meshgrid(xx,zz)
[YY,ZZ] = np.meshgrid(yy,zz)
xyz2d = np.c_[mkvc(XX),mkvc(YY),mkvc(ZZ)]
#plt.scatter(xx,yy,s=20,c='y')
F = interpolation.NearestNDInterpolator(mesh.gridCC,model)
m2D = np.reshape(F(xyz2d),[mesh2d.nCx,mesh2d.nCy]).T
#==============================================================================
# mesh2d = Mesh.TensorMesh([mesh.hx, mesh.hz], x0=(mesh.x0[0]-endl[0,0],mesh.x0[2]))
# m3D = np.reshape(model, (mesh.nCz, mesh.nCy, mesh.nCx))
# m2D = m3D[:,1,:]
#==============================================================================
plt.figure()
axs = plt.subplot(2,1,1)
plt.xlim([0,nc*dx])
plt.ylim([mesh2d.vectorNy[-1]-dl_len/2,mesh2d.vectorNy[-1]])
plt.gca().set_aspect('equal', adjustable='box')
plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(m2D),alpha=0.5, cmap='gray')#axes = [mesh2d.vectorNx[0],mesh2d.vectorNx[-1],mesh2d.vectorNy[0],mesh2d.vectorNy[-1]])
#mesh2d.plotImage(mkvc(m2D), grid=True, ax=axs)
#%% Plot pseudo section
DC.plot_pseudoSection(Tx2d,Rx2d,data,nz[-1],stype)
plt.colorbar
plt.show()
#%% Create dcin2d inversion files and run
inv_dir = home_dir + '\Inv2D'
if not os.path.exists(inv_dir):
os.makedirs(inv_dir)
mshfile2d = 'Mesh_2D.msh'
modfile2d = 'MtIsa_2D.con'
obsfile2d = 'FWR_3D_2_2D.dat'
inp_file = 'dcinv2d.inp'
# Export 2D mesh
fid = open(inv_dir + dsep + mshfile2d,'w')
fid.write('%i\n'% mesh2d.nCx)
fid.write('%f %f 1\n'% (mesh2d.vectorNx[0],mesh2d.vectorNx[1]))
np.savetxt(fid, np.c_[mesh2d.vectorNx[2:],np.ones(mesh2d.nCx-1)], fmt='\t %e %i',delimiter=' ',newline='\n')
fid.write('\n')
fid.write('%i\n'% mesh2d.nCy)
fid.write('%f %f 1\n'%( 0,mesh2d.hy[-1]))
np.savetxt(fid, np.c_[np.cumsum(mesh2d.hy[-2::-1])+mesh2d.hy[-1],np.ones(mesh2d.nCy-1)], fmt='\t %e %i',delimiter=' ',newline='\n')
fid.close()
# Export 2D model
fid = open(inv_dir + dsep + modfile2d,'w')
fid.write('%i %i\n'% (mesh2d.nCx,mesh2d.nCy))
np.savetxt(fid, mkvc(m2D[::-1,:].T), fmt='%e',delimiter=' ',newline='\n')
fid.close()
# Export data file
DC.writeUBC_DCobs(inv_dir + dsep + obsfile2d,Tx2d,Rx2d,data,unct,'2D')
# Write input file
fid = open(inv_dir + dsep + inp_file,'w')
fid.write('OBS LOC_X %s \n'% obsfile2d)
fid.write('MESH FILE %s \n'% mshfile2d)
fid.write('CHIFACT 1 %f\n'% chifact)
fid.write('TOPO DEFAULT %s \n')
fid.write('INIT_MOD DEFAULT\n')
fid.write('REF_MOD VALUE %e\n'% ref_mod)
fid.write('ALPHA DEFAULT\n')
fid.write('WEIGHT DEFAULT\n')
fid.write('STORE_ALL_MODELS FALSE\n')
fid.write('INVMODE SVD\n')
fid.write('USE_MREF TRUE\n')
fid.close()
os.chdir(inv_dir)
os.system('dcinv2d ' + inp_file)
#%%
#Load model
minv = DC.readUBC_DC2DModel(inv_dir + dsep + 'dcinv2d.con')
#plt.figure()
axs = plt.subplot(2,1,2)
plt.xlim([0,nc*dx])
plt.ylim([mesh2d.vectorNy[-1]-dl_len/2,mesh2d.vectorNy[-1]])
plt.gca().set_aspect('equal', adjustable='box')
minv = np.reshape(minv,(mesh2d.nCy,mesh2d.nCx))
plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(m2D),alpha=0.5, cmap='gray')
plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(minv),alpha=0.5, clim=(np.min(np.log10(m2D)),np.max(np.log10(m2D))))
cbar = plt.colorbar(format = '%.2f',fraction=0.02)
cmin,cmax = cbar.get_clim()
ticks = np.linspace(cmin,cmax,3)
cbar.set_ticks(ticks)
#%% Othrwise it is a gradient array, plot surface of apparent resisitivty
elif re.match(stype,'gradient'):
rC1P1 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,0],Rx[0].shape[0], 1) - Rx[0][:,0:2])**2, axis=1 ))
rC2P1 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,1],Rx[0].shape[0], 1) - Rx[0][:,0:2])**2, axis=1 ))
rC1P2 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,0],Rx[0].shape[0], 1) - Rx[0][:,3:5])**2, axis=1 ))
rC2P2 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,1],Rx[0].shape[0], 1) - Rx[0][:,3:5])**2, axis=1 ))
rC1C2 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,0]-Tx[0][0:2,1],Rx[0].shape[0], 1) )**2, axis=1 ))
rP1P2 = np.sqrt( np.sum( (Rx[0][:,0:2] - Rx[0][:,3:5])**2, axis=1 ))
rho = np.abs(data[0]) *np.pi *2. / ( 1/rC1P1 - 1/rC2P1 - 1/rC1P2 + 1/rC2P2 )#*((rC1P1)**2 / rP1P2)#
Pmid = (Rx[0][:,0:2] + Rx[0][:,3:5])/2
# Grid points
grid_x, grid_z = np.mgrid[np.min(Rx[0][:,[0,3]]):np.max(Rx[0][:,[0,3]]):a/10, np.min(Rx[0][:,[1,4]]):np.max(Rx[0][:,[1,4]]):a/10]
grid_rho = griddata(np.c_[Pmid[:,0],Pmid[:,1]], (abs(rho.T)), (grid_x, grid_z), method='linear')
#plt.subplot(2,1,2)
plt.figure()
plt.imshow(grid_rho.T, extent = (np.min(grid_x),np.max(grid_x),np.min(grid_z),np.max(grid_z)) ,origin='lower')
var = 'Gradient Array - a-spacing: ' + str(a) + ' m'
plt.title(var)
plt.colorbar()
plt.contour(grid_x,grid_z,grid_rho, colors='k')
#%% Load tight model and plot
mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\MtIsa_5m.msh')
# Load model
model = Utils.meshutils.readUBCTensorModel(home_dir + '\MtIsa_5m.con',mesh)
model = model.reshape((mesh.nCz,mesh.nCx))
plt.figure()
plt.imshow(np.log10(model),extent = (125,375,0,75),origin='lower')
plt.colorbar(fraction=0.015)
+85
View File
@@ -0,0 +1,85 @@
import os
home_dir = 'C:\Users\dominiquef.MIRAGEOSCIENCE\Documents\GIT\SimPEG\simpegdc\simpegDCIP\Dev'
os.chdir(home_dir)
#%%
from SimPEG import np, Utils, Mesh, mkvc, SolverLU
import simpegDCIP as DC
import pylab as plt
# Load UBC mesh 3D
mesh = Utils.meshutils.readUBCTensorMesh('Mesh_40m.msh')
# Load model
model = Utils.meshutils.readUBCTensorModel('Synthetic.con',mesh)
#%%
# Display top section
top = int(mesh.nCz)-1
mesh.plotSlice(model, ind=top, normal='Z', grid=True, pcolorOpts={'alpha':0.8})
ylim=(546000,546750)
xlim=(422900,423675)
# Takes two points from ginput and create survey
temp = plt.ginput(2)
# Add z coordinate
nz = mesh.vectorNz
endp = np.c_[np.asarray(temp),np.ones(2).T*nz[-1]]
# Create dipole survey receivers and plot
nrx = 10
ab = 40
a = 20
# Evenly distribute transmitters for now and put on surface
dplen = np.sqrt( np.sum((endp[1,:] - endp[0,:])**2) )
dp_x = ( endp[1,0] - endp[0,0] ) / dplen
dp_y = ( endp[1,1] - endp[0,1] ) / dplen
nstn = np.floor( dplen / ab )
stn_x = endp[0,0] + np.cumsum( np.ones(nstn)*dp_x*ab )
stn_y = endp[0,1] + np.cumsum( np.ones(nstn)*dp_y*ab )
plt.scatter(stn_x,stn_y,s=100, c='w')
M = np.c_[stn_x-a*dp_x, stn_y-a*dp_y, np.ones(nstn).T*nz[-1]]
N = np.c_[stn_x+a*dp_x, stn_y+a*dp_y, np.ones(nstn).T*nz[-1]]
plt.scatter(M[:,0],M[:,1],s=10,c='r')
plt.scatter(N[:,0],N[:,1],s=10,c='b')
#%% Create inversion parameter
Rx = DC.RxDipole(M,N)
Tx = DC.SrcDipole([Rx], tx[0,:],tx[1,:])
survey = DC.SurveyDC([Tx])
problem = DC.ProblemDC_CC(mesh)
problem.pair(survey)
problem.Solver = SolverLU
data = survey.dpred(model)
#Set boundary conditions
mesh.setCellGradBC('neumann')
Div = mesh.faceDiv
Grad = mesh.cellGradBC
Msig = Utils.sdiag(1./(mesh.aveF2CC.T*(1./model)))
A = Div*Msig*Grad
# Change one corner to deal with nullspace
A[0,0] = 1.
# Get the righthand side
RHS = problem.getRHS
# Solve for phi
phi = SolverLU(A)*-RHS
+390
View File
@@ -0,0 +1,390 @@
"""
Experimental script for the forward modeling of DC resistivity data
along survey lines defined by the user. The program loads in a 3D mesh
and model which is used to design pole-dipole or dipole-dipole survey
lines.
Uses SimPEG to generate the forward problem and compute the LU
factorization.
Calls DCIP2D for the inversion of a projected 2D section from the full
3D model.
Assumes flat topo for now...
Created on Mon December 7th, 2015
@author: dominiquef
"""
#%%
from SimPEG import np, Utils, Mesh, mkvc, sp
import simpegDCIP as DC
import pylab as plt
from pylab import get_current_fig_manager
from scipy.interpolate import griddata
import time
import re
import numpy.matlib as npm
#from readUBC_DC3Dobs import readUBC_DC3Dobs
#from readUBC_DC2DModel import readUBC_DC2DModel
#from writeUBC_DCobs import writeUBC_DCobs
import scipy.interpolate as interpolation
#from plot_pseudoSection import plot_pseudoSection
#from gen_DCIPsurvey import gen_DCIPsurvey
#from convertObs_DC3D_to_2D import convertObs_DC3D_to_2D
import os
#home_dir = 'C:\\Users\\dominiquef.MIRAGEOSCIENCE\\ownCloud\\Research\\Modelling\\Synthetic\\Two_Sphere'
home_dir ='C:\Users\dominiquef.MIRAGEOSCIENCE\Documents\GIT\SimPEG\simpegdc\simpegDCIP\Dev'
dsep = '\\'
#from scipy.linalg import solve_banded
# Load UBC mesh 3D
#mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\Mesh_10m.msh')
mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\MtIsa_20m.msh')
#mesh = Utils.meshutils.readUBCTensorMesh(home_dir + '\Mesh_50m.msh')
# Load model
model = Utils.meshutils.readUBCTensorModel(home_dir + '\MtIsa_3D.con',mesh)
#model = Utils.meshutils.readUBCTensorModel(home_dir + '\Synthetic.con',mesh)
#model = Utils.meshutils.readUBCTensorModel(home_dir + '\Lalor_model_50m.con',mesh)
#model = Utils.meshutils.readUBCTensorModel(home_dir + '\TwoSpheres.con',mesh)
#model = model**0 * 1e-2
# Specify survey type
stype = 'pdp'
# Survey parameters
a = 150
b = 150
n = 40
# Forward solver
slvr = 'BiCGStab' #'LU'
# Preconditioner
pcdr = 'Jacobi'#'Gauss-Seidel'#
# Inversion parameter
pct = 0.01
flr = 1e-4
chifact = 100
ref_mod = 1e-3
#%% Create system
#Set boundary conditions
mesh.setCellGradBC('neumann')
Div = mesh.faceDiv
Grad = mesh.cellGrad
Msig = Utils.sdiag(1./(mesh.aveF2CC.T*(1./model)))
A = Div*Msig*Grad
# Change one corner to deal with nullspace
A[0,0] = 1
A = sp.csc_matrix(A)
start_time = time.time()
if re.match(slvr,'BiCGStab'):
# Create Jacobi Preconditioner
if re.match(pcdr,'Jacobi'):
dA = A.diagonal()
P = sp.spdiags(1/dA,0,A.shape[0],A.shape[0])
# Create Gauss-Seidel Preconditioner
elif re.match(pcdr,'Gauss-Seidel'):
LD = sp.tril(A,k=0)
#LDinv = sp.linalg.splu(LD)
elif re.match(slvr,'LU'):
# Factor A matrix
Ainv = sp.linalg.splu(A)
print("LU DECOMP--- %s seconds ---" % (time.time() - start_time))
#%% Create survey
# Display top section
top = int(mesh.nCz)-1
plt.figure()
ax_prim = plt.subplot(1,1,1)
mesh.plotSlice(model, ind=top, normal='Z', grid=False, pcolorOpts={'alpha':0.5}, ax =ax_prim)
#plt.xlim([423000,424000])
#plt.ylim([546200,547000])
plt.gca().set_aspect('equal', adjustable='box')
plt.show()
cfm1=get_current_fig_manager().window
gin=[1]
# Keep creating sections until returns an empty ginput (press enter on figure)
#while bool(gin)==True:
# Bring back the plan view figure and pick points
cfm1.activateWindow()
plt.sca(ax_prim)
# Takes two points from ginput and create survey
#if re.match(stype,'gradient'):
#gin = [(425347, 6079766), (427792, 6081806)]
#else:
gin = plt.ginput(2, timeout = 0)
#==============================================================================
# if not gin:
# print 'SimPED - Simulation has ended with return'
# break
#==============================================================================
# Add z coordinate to all survey... assume flat
nz = mesh.vectorNz
var = np.c_[np.asarray(gin),np.ones(2).T*nz[-1]]
# Snap the endpoints to the grid. Easier to create 2D section.
indx = Utils.closestPoints(mesh, var )
endl = np.c_[mesh.gridCC[indx,0],mesh.gridCC[indx,1],np.ones(2).T*nz[-1]]
[Tx, Rx] = gen_DCIPsurvey(endl, mesh, stype, a, b, n)
dl_len = np.sqrt( np.sum((endl[0,:] - endl[1,:])**2) )
dl_x = ( Tx[-1][0,1] - Tx[0][0,0] ) / dl_len
dl_y = ( Tx[-1][1,1] - Tx[0][1,0] ) / dl_len
azm = np.arctan(dl_y/dl_x)
# Plot stations along line
plt.scatter(Tx[0][0,:],Tx[0][1,:],s=20,c='g')
plt.scatter(Rx[0][:,0::3],Rx[0][:,1::3],s=20,c='y')
#%% Forward model data
data = []#np.zeros( nstn*nrx )
unct = []
problem = DC.ProblemDC_CC(mesh)
for ii in range(len(Tx)):
start_time = time.time()
# Select dipole locations for receiver
rxloc_M = np.asarray(Rx[ii][:,0:3])
rxloc_N = np.asarray(Rx[ii][:,3:])
# Number of receivers
nrx = rxloc_M.shape[0]
if not re.match(stype,'pdp'):
inds = Utils.closestPoints(mesh, np.asarray(Tx[ii]).T )
RHS = mesh.getInterpolationMat(np.asarray(Tx[ii]).T, 'CC').T*( [-1,1] / mesh.vol[inds] )
else:
# Create an "inifinity" pole
tx = np.squeeze(Tx[ii][:,0:1])
tinf = tx + np.array([dl_x,dl_y,0])*dl_len*2
inds = Utils.closestPoints(mesh, np.c_[tx,tinf].T)
RHS = mesh.getInterpolationMat(np.asarray(Tx[ii]).T, 'CC').T*( [-1] / mesh.vol[inds] )
# Solve for phi on pole locations
P1 = mesh.getInterpolationMat(rxloc_M, 'CC')
P2 = mesh.getInterpolationMat(rxloc_N, 'CC')
if re.match(slvr,'BiCGStab'):
if re.match(pcdr,'Jacobi'):
dA = A.diagonal()
P = sp.spdiags(1/dA,0,A.shape[0],A.shape[0])
# Iterative Solve
Ainvb = sp.linalg.bicgstab(P*A,P*RHS, tol=1e-5)
# Create Gauss-Seidel Preconditioner
elif re.match(pcdr,'Gauss-Seidel'):
LD = sp.tril(A,k=0)
phi = mkvc(Ainvb[0])
elif re.match(slvr,'LU'):
#Direct Solve
phi = Ainv.solve(RHS)
# Compute potential at each electrode
dtemp = (P1*phi - P2*phi)*np.pi
data.append( dtemp )
unct.append( np.abs(dtemp) * pct + flr)
print("--- %s seconds ---" % (time.time() - start_time))
#%% Run 2D inversion if pdp or dpdp survey
# Otherwise just plot and apparent susceptibility map
if not re.match(stype,'gradient'):
#%% Write data file in UBC-DCIP3D format
writeUBC_DCobs(home_dir+'\FWR_data3D.dat',Tx,Rx,data,unct,'3D')
#%% Load 3D data
[Tx, Rx, data, wd] = readUBC_DC3Dobs(home_dir + '\FWR_data3D.dat')
#%% Convert 3D obs to 2D and write to file
[Tx2d, Rx2d] = convertObs_DC3D_to_2D(Tx,Rx)
writeUBC_DCobs(home_dir+'\FWR_3D_2_2D.dat',Tx2d,Rx2d,data,unct,'2D')
#%% Create a 2D mesh along axis of Tx end points and keep z-discretization
dx = np.min( [ np.min(mesh.hx), np.min(mesh.hy) ])
nc = np.ceil(dl_len/dx)+3
padx = dx*np.power(1.4,range(1,15))
# Creating padding cells
h1 = np.r_[padx[::-1], np.ones(nc)*dx , padx]
# Create mesh with 0 coordinate centerer on the ginput points in cell center
mesh2d = Mesh.TensorMesh([h1, mesh.hz], x0=(-np.sum(padx)-dx/2,mesh.x0[2]))
# Create array of points for interpolating from 3D to 2D mesh
xx = Tx[0][0,0] + mesh2d.vectorCCx * np.cos(azm)
yy = Tx[0][1,0] + mesh2d.vectorCCx * np.sin(azm)
zz = mesh2d.vectorCCy
[XX,ZZ] = np.meshgrid(xx,zz)
[YY,ZZ] = np.meshgrid(yy,zz)
xyz2d = np.c_[mkvc(XX),mkvc(YY),mkvc(ZZ)]
#plt.scatter(xx,yy,s=20,c='y')
F = interpolation.NearestNDInterpolator(mesh.gridCC,model)
m2D = np.reshape(F(xyz2d),[mesh2d.nCx,mesh2d.nCy]).T
#==============================================================================
# mesh2d = Mesh.TensorMesh([mesh.hx, mesh.hz], x0=(mesh.x0[0]-endl[0,0],mesh.x0[2]))
# m3D = np.reshape(model, (mesh.nCz, mesh.nCy, mesh.nCx))
# m2D = m3D[:,1,:]
#==============================================================================
plt.figure()
axs = plt.subplot(2,1,1)
plt.xlim([0,nc*dx])
plt.ylim([mesh2d.vectorNy[-1]-dl_len,mesh2d.vectorNy[-1]])
plt.gca().set_aspect('equal', adjustable='box')
plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(m2D),alpha=0.5, cmap='gray')#axes = [mesh2d.vectorNx[0],mesh2d.vectorNx[-1],mesh2d.vectorNy[0],mesh2d.vectorNy[-1]])
#mesh2d.plotImage(mkvc(m2D), grid=True, ax=axs)
#%% Plot pseudo section
plot_pseudoSection(Tx2d,Rx2d,data,nz[-1],stype)
plt.colorbar
plt.show()
#%% Create dcin2d inversion files and run
inv_dir = home_dir + '\Inv2D'
if not os.path.exists(inv_dir):
os.makedirs(inv_dir)
mshfile2d = 'Mesh_2D.msh'
modfile2d = 'MtIsa_2D.con'
obsfile2d = 'FWR_3D_2_2D.dat'
inp_file = 'dcinv2d.inp'
# Export 2D mesh
fid = open(inv_dir + dsep + mshfile2d,'w')
fid.write('%i\n'% mesh2d.nCx)
fid.write('%f %f 1\n'% (mesh2d.vectorNx[0],mesh2d.vectorNx[1]))
np.savetxt(fid, np.c_[mesh2d.vectorNx[2:],np.ones(mesh2d.nCx-1)], fmt='\t %e %i',delimiter=' ',newline='\n')
fid.write('\n')
fid.write('%i\n'% mesh2d.nCy)
fid.write('%f %f 1\n'%( 0,mesh2d.hy[-1]))
np.savetxt(fid, np.c_[np.cumsum(mesh2d.hy[-2::-1])+mesh2d.hy[-1],np.ones(mesh2d.nCy-1)], fmt='\t %e %i',delimiter=' ',newline='\n')
fid.close()
# Export 2D model
fid = open(inv_dir + dsep + modfile2d,'w')
fid.write('%i %i\n'% (mesh2d.nCx,mesh2d.nCy))
np.savetxt(fid, mkvc(m2D[::-1,:].T), fmt='%e',delimiter=' ',newline='\n')
fid.close()
# Export data file
writeUBC_DCobs(inv_dir + dsep + obsfile2d,Tx2d,Rx2d,data,unct,'2D')
# Write input file
fid = open(inv_dir + dsep + inp_file,'w')
fid.write('OBS LOC_X %s \n'% obsfile2d)
fid.write('MESH FILE %s \n'% mshfile2d)
fid.write('CHIFACT 1 %f\n'% chifact)
fid.write('TOPO DEFAULT %s \n')
fid.write('INIT_MOD DEFAULT\n')
fid.write('REF_MOD VALUE %e\n'% ref_mod)
fid.write('ALPHA DEFAULT\n')
fid.write('WEIGHT DEFAULT\n')
fid.write('STORE_ALL_MODELS FALSE\n')
fid.write('INVMODE SVD\n')
fid.write('USE_MREF TRUE\n')
fid.close()
os.chdir(inv_dir)
os.system('dcinv2d ' + inp_file)
#%%
#Load model
minv = readUBC_DC2DModel(inv_dir + dsep + 'dcinv2d.con')
#plt.figure()
axs = plt.subplot(2,1,2)
plt.xlim([0,nc*dx])
plt.ylim([mesh2d.vectorNy[-1]-dl_len,mesh2d.vectorNy[-1]])
plt.gca().set_aspect('equal', adjustable='box')
minv = np.reshape(minv,(mesh2d.nCy,mesh2d.nCx))
plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(m2D),alpha=0.5, cmap='gray')
plt.pcolormesh(mesh2d.vectorNx,mesh2d.vectorNy,np.log10(minv),alpha=0.5, clim=(np.min(np.log10(m2D)),np.max(np.log10(m2D))))
cbar = plt.colorbar(format = '%.2f',fraction=0.02)
cmin,cmax = cbar.get_clim()
ticks = np.linspace(cmin,cmax,3)
cbar.set_ticks(ticks)
#%% Othrwise it is a gradient array, plot surface of apparent resisitivty
elif re.match(stype,'gradient'):
rC1P1 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,0],Rx[0].shape[0], 1) - Rx[0][:,0:2])**2, axis=1 ))
rC2P1 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,1],Rx[0].shape[0], 1) - Rx[0][:,0:2])**2, axis=1 ))
rC1P2 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,0],Rx[0].shape[0], 1) - Rx[0][:,3:5])**2, axis=1 ))
rC2P2 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,1],Rx[0].shape[0], 1) - Rx[0][:,3:5])**2, axis=1 ))
rC1C2 = np.sqrt( np.sum( (npm.repmat(Tx[0][0:2,0]-Tx[0][0:2,1],Rx[0].shape[0], 1) )**2, axis=1 ))
rP1P2 = np.sqrt( np.sum( (Rx[0][:,0:2] - Rx[0][:,3:5])**2, axis=1 ))
rho = np.abs(data[0]) *np.pi *2. / ( 1/rC1P1 - 1/rC2P1 - 1/rC1P2 + 1/rC2P2 )#*((rC1P1)**2 / rP1P2)#
Pmid = (Rx[0][:,0:2] + Rx[0][:,3:5])/2
# Grid points
grid_x, grid_z = np.mgrid[np.min(Rx[0][:,[0,3]]):np.max(Rx[0][:,[0,3]]):a/10, np.min(Rx[0][:,[1,4]]):np.max(Rx[0][:,[1,4]]):a/10]
grid_rho = griddata(np.c_[Pmid[:,0],Pmid[:,1]], (abs(rho.T)), (grid_x, grid_z), method='linear')
#plt.subplot(2,1,2)
plt.figure()
plt.imshow(grid_rho.T, extent = (np.min(grid_x),np.max(grid_x),np.min(grid_z),np.max(grid_z)) ,origin='lower')
var = 'Gradient Array - a-spacing: ' + str(a) + ' m'
plt.title(var)
plt.colorbar()
plt.contour(grid_x,grid_z,grid_rho, colors='k')
@@ -0,0 +1,245 @@
! GENERAL FORMAT
0.000000e+00 0.000000e+00 4.000000e+01 8.000000e+01 4.536103e-01 4.636103e-03
0.000000e+00 0.000000e+00 8.000000e+01 1.200000e+02 1.956283e-01 2.056283e-03
0.000000e+00 0.000000e+00 1.200000e+02 1.600000e+02 9.661533e-02 1.066153e-03
0.000000e+00 0.000000e+00 1.600000e+02 2.000000e+02 5.443205e-03 1.544321e-04
0.000000e+00 0.000000e+00 2.000000e+02 2.400000e+02 2.977518e-03 1.297752e-04
0.000000e+00 0.000000e+00 2.400000e+02 2.800000e+02 3.113318e-03 1.311332e-04
0.000000e+00 0.000000e+00 2.800000e+02 3.200000e+02 7.216380e-03 1.721638e-04
0.000000e+00 0.000000e+00 3.200000e+02 3.600000e+02 6.475000e-03 1.647500e-04
0.000000e+00 0.000000e+00 3.600000e+02 4.000000e+02 4.750858e-03 1.475086e-04
4.000000e+01 4.000000e+01 8.000000e+01 1.200000e+02 4.737093e-01 4.837093e-03
4.000000e+01 4.000000e+01 1.200000e+02 1.600000e+02 1.933017e-01 2.033017e-03
4.000000e+01 4.000000e+01 1.600000e+02 2.000000e+02 9.625111e-03 1.962511e-04
4.000000e+01 4.000000e+01 2.000000e+02 2.400000e+02 4.710170e-03 1.471017e-04
4.000000e+01 4.000000e+01 2.400000e+02 2.800000e+02 4.146907e-03 1.414691e-04
4.000000e+01 4.000000e+01 2.800000e+02 3.200000e+02 9.014465e-03 1.901446e-04
4.000000e+01 4.000000e+01 3.200000e+02 3.600000e+02 7.875920e-03 1.787592e-04
4.000000e+01 4.000000e+01 3.600000e+02 4.000000e+02 5.711976e-03 1.571198e-04
4.000000e+01 4.000000e+01 4.000000e+02 4.400000e+02 6.259850e-04 1.062599e-04
8.000000e+01 8.000000e+01 1.200000e+02 1.600000e+02 4.956306e-01 5.056306e-03
8.000000e+01 8.000000e+01 1.600000e+02 2.000000e+02 2.048511e-02 3.048511e-04
8.000000e+01 8.000000e+01 2.000000e+02 2.400000e+02 8.575637e-03 1.857564e-04
8.000000e+01 8.000000e+01 2.400000e+02 2.800000e+02 6.032524e-03 1.603252e-04
8.000000e+01 8.000000e+01 2.800000e+02 3.200000e+02 1.189394e-02 2.189394e-04
8.000000e+01 8.000000e+01 3.200000e+02 3.600000e+02 9.982800e-03 1.998280e-04
8.000000e+01 8.000000e+01 3.600000e+02 4.000000e+02 7.117008e-03 1.711701e-04
8.000000e+01 8.000000e+01 4.000000e+02 4.400000e+02 7.649935e-04 1.076499e-04
8.000000e+01 8.000000e+01 4.400000e+02 4.800000e+02 6.193333e-04 1.061933e-04
1.200000e+02 1.200000e+02 1.600000e+02 2.000000e+02 5.597631e-02 6.597631e-04
1.200000e+02 1.200000e+02 2.000000e+02 2.400000e+02 1.877787e-02 2.877787e-04
1.200000e+02 1.200000e+02 2.400000e+02 2.800000e+02 9.908609e-03 1.990861e-04
1.200000e+02 1.200000e+02 2.800000e+02 3.200000e+02 1.676287e-02 2.676287e-04
1.200000e+02 1.200000e+02 3.200000e+02 3.600000e+02 1.319428e-02 2.319428e-04
1.200000e+02 1.200000e+02 3.600000e+02 4.000000e+02 9.156663e-03 1.915666e-04
1.200000e+02 1.200000e+02 4.000000e+02 4.400000e+02 9.579451e-04 1.095795e-04
1.200000e+02 1.200000e+02 4.400000e+02 4.800000e+02 7.568666e-04 1.075687e-04
1.200000e+02 1.200000e+02 4.800000e+02 5.200000e+02 6.080823e-04 1.060808e-04
1.600000e+02 1.600000e+02 2.000000e+02 2.400000e+02 4.265271e-02 5.265271e-04
1.600000e+02 1.600000e+02 2.400000e+02 2.800000e+02 1.691741e-02 2.691741e-04
1.600000e+02 1.600000e+02 2.800000e+02 3.200000e+02 2.380462e-02 3.380462e-04
1.600000e+02 1.600000e+02 3.200000e+02 3.600000e+02 1.727048e-02 2.727048e-04
1.600000e+02 1.600000e+02 3.600000e+02 4.000000e+02 1.158363e-02 2.158363e-04
1.600000e+02 1.600000e+02 4.000000e+02 4.400000e+02 1.175287e-03 1.117529e-04
1.600000e+02 1.600000e+02 4.400000e+02 4.800000e+02 9.042510e-04 1.090425e-04
1.600000e+02 1.600000e+02 4.800000e+02 5.200000e+02 7.129196e-04 1.071292e-04
1.600000e+02 1.600000e+02 5.200000e+02 5.600000e+02 5.684553e-04 1.056846e-04
2.000000e+02 2.000000e+02 2.400000e+02 2.800000e+02 3.101272e-02 4.101272e-04
2.000000e+02 2.000000e+02 2.800000e+02 3.200000e+02 3.293247e-02 4.293247e-04
2.000000e+02 2.000000e+02 3.200000e+02 3.600000e+02 2.118536e-02 3.118536e-04
2.000000e+02 2.000000e+02 3.600000e+02 4.000000e+02 1.354928e-02 2.354928e-04
2.000000e+02 2.000000e+02 4.000000e+02 4.400000e+02 1.328240e-03 1.132824e-04
2.000000e+02 2.000000e+02 4.400000e+02 4.800000e+02 9.951781e-04 1.099518e-04
2.000000e+02 2.000000e+02 4.800000e+02 5.200000e+02 7.713268e-04 1.077133e-04
2.000000e+02 2.000000e+02 5.200000e+02 5.600000e+02 6.080769e-04 1.060808e-04
2.000000e+02 2.000000e+02 5.600000e+02 6.000000e+02 4.818454e-04 1.048185e-04
2.400000e+02 2.400000e+02 2.800000e+02 3.200000e+02 6.649140e-02 7.649140e-04
2.400000e+02 2.400000e+02 3.200000e+02 3.600000e+02 3.258335e-02 4.258335e-04
2.400000e+02 2.400000e+02 3.600000e+02 4.000000e+02 1.854898e-02 2.854898e-04
2.400000e+02 2.400000e+02 4.000000e+02 4.400000e+02 1.680085e-03 1.168008e-04
2.400000e+02 2.400000e+02 4.400000e+02 4.800000e+02 1.185559e-03 1.118556e-04
2.400000e+02 2.400000e+02 4.800000e+02 5.200000e+02 8.847441e-04 1.088474e-04
2.400000e+02 2.400000e+02 5.200000e+02 5.600000e+02 6.804673e-04 1.068047e-04
2.400000e+02 2.400000e+02 5.600000e+02 6.000000e+02 5.302990e-04 1.053030e-04
2.400000e+02 2.400000e+02 6.000000e+02 6.400000e+02 4.148104e-04 1.041481e-04
2.800000e+02 2.800000e+02 3.200000e+02 3.600000e+02 1.578256e-01 1.678256e-03
2.800000e+02 2.800000e+02 3.600000e+02 4.000000e+02 6.200859e-02 7.200859e-04
2.800000e+02 2.800000e+02 4.000000e+02 4.400000e+02 4.339120e-03 1.433912e-04
2.800000e+02 2.800000e+02 4.400000e+02 4.800000e+02 2.478341e-03 1.247834e-04
2.800000e+02 2.800000e+02 4.800000e+02 5.200000e+02 1.605665e-03 1.160567e-04
2.800000e+02 2.800000e+02 5.200000e+02 5.600000e+02 1.123502e-03 1.112350e-04
2.800000e+02 2.800000e+02 5.600000e+02 6.000000e+02 8.210704e-04 1.082107e-04
2.800000e+02 2.800000e+02 6.000000e+02 6.400000e+02 6.139691e-04 1.061397e-04
2.800000e+02 2.800000e+02 6.400000e+02 6.800000e+02 4.652759e-04 1.046528e-04
3.200000e+02 3.200000e+02 3.600000e+02 4.000000e+02 2.808898e-01 2.908898e-03
3.200000e+02 3.200000e+02 4.000000e+02 4.400000e+02 1.592369e-02 2.592369e-04
3.200000e+02 3.200000e+02 4.400000e+02 4.800000e+02 7.543011e-03 1.754301e-04
3.200000e+02 3.200000e+02 4.800000e+02 5.200000e+02 4.240833e-03 1.424083e-04
3.200000e+02 3.200000e+02 5.200000e+02 5.600000e+02 2.671738e-03 1.267174e-04
3.200000e+02 3.200000e+02 5.600000e+02 6.000000e+02 1.808136e-03 1.180814e-04
3.200000e+02 3.200000e+02 6.000000e+02 6.400000e+02 1.277382e-03 1.127738e-04
3.200000e+02 3.200000e+02 6.400000e+02 6.800000e+02 9.267469e-04 1.092675e-04
3.200000e+02 3.200000e+02 6.800000e+02 7.200000e+02 6.861838e-04 1.068618e-04
3.600000e+02 3.600000e+02 4.000000e+02 4.400000e+02 4.641363e-02 5.641363e-04
3.600000e+02 3.600000e+02 4.400000e+02 4.800000e+02 1.769581e-02 2.769581e-04
3.600000e+02 3.600000e+02 4.800000e+02 5.200000e+02 8.621103e-03 1.862110e-04
3.600000e+02 3.600000e+02 5.200000e+02 5.600000e+02 4.936600e-03 1.493660e-04
3.600000e+02 3.600000e+02 5.600000e+02 6.000000e+02 3.134506e-03 1.313451e-04
3.600000e+02 3.600000e+02 6.000000e+02 6.400000e+02 2.120500e-03 1.212050e-04
3.600000e+02 3.600000e+02 6.400000e+02 6.800000e+02 1.491948e-03 1.149195e-04
3.600000e+02 3.600000e+02 6.800000e+02 7.200000e+02 1.079403e-03 1.107940e-04
3.600000e+02 3.600000e+02 7.200000e+02 7.600000e+02 8.007966e-04 1.080080e-04
4.000000e+02 4.000000e+02 4.400000e+02 4.800000e+02 3.878789e-02 4.878789e-04
4.000000e+02 4.000000e+02 4.800000e+02 5.200000e+02 1.570287e-02 2.570287e-04
4.000000e+02 4.000000e+02 5.200000e+02 5.600000e+02 7.998542e-03 1.799854e-04
4.000000e+02 4.000000e+02 5.600000e+02 6.000000e+02 4.715645e-03 1.471565e-04
4.000000e+02 4.000000e+02 6.000000e+02 6.400000e+02 3.043004e-03 1.304300e-04
4.000000e+02 4.000000e+02 6.400000e+02 6.800000e+02 2.075749e-03 1.207575e-04
4.000000e+02 4.000000e+02 6.800000e+02 7.200000e+02 1.469917e-03 1.146992e-04
4.000000e+02 4.000000e+02 7.200000e+02 7.600000e+02 1.073330e-03 1.107333e-04
4.000000e+02 4.000000e+02 7.600000e+02 8.000000e+02 8.070689e-04 1.080707e-04
4.400000e+02 4.400000e+02 4.800000e+02 5.200000e+02 2.913833e-02 3.913833e-04
4.400000e+02 4.400000e+02 5.200000e+02 5.600000e+02 1.196402e-02 2.196402e-04
4.400000e+02 4.400000e+02 5.600000e+02 6.000000e+02 6.215752e-03 1.621575e-04
4.400000e+02 4.400000e+02 6.000000e+02 6.400000e+02 3.724292e-03 1.372429e-04
4.400000e+02 4.400000e+02 6.400000e+02 6.800000e+02 2.430992e-03 1.243099e-04
4.400000e+02 4.400000e+02 6.800000e+02 7.200000e+02 1.675270e-03 1.167527e-04
4.400000e+02 4.400000e+02 7.200000e+02 7.600000e+02 1.201692e-03 1.120169e-04
4.400000e+02 4.400000e+02 7.600000e+02 8.000000e+02 8.925612e-04 1.089256e-04
4.400000e+02 4.400000e+02 8.000000e+02 8.400000e+02 6.833048e-04 1.068330e-04
4.800000e+02 4.800000e+02 5.200000e+02 5.600000e+02 2.703944e-02 3.703944e-04
4.800000e+02 4.800000e+02 5.600000e+02 6.000000e+02 1.085234e-02 2.085234e-04
4.800000e+02 4.800000e+02 6.000000e+02 6.400000e+02 5.538480e-03 1.553848e-04
4.800000e+02 4.800000e+02 6.400000e+02 6.800000e+02 3.276154e-03 1.327615e-04
4.800000e+02 4.800000e+02 6.800000e+02 7.200000e+02 2.123985e-03 1.212398e-04
4.800000e+02 4.800000e+02 7.200000e+02 7.600000e+02 1.464765e-03 1.146476e-04
4.800000e+02 4.800000e+02 7.600000e+02 8.000000e+02 1.059450e-03 1.105945e-04
4.800000e+02 4.800000e+02 8.000000e+02 8.400000e+02 7.964537e-04 1.079645e-04
4.800000e+02 4.800000e+02 8.400000e+02 8.800000e+02 6.110337e-04 1.061103e-04
5.200000e+02 5.200000e+02 5.600000e+02 6.000000e+02 2.645607e-02 3.645607e-04
5.200000e+02 5.200000e+02 6.000000e+02 6.400000e+02 1.045640e-02 2.045640e-04
5.200000e+02 5.200000e+02 6.400000e+02 6.800000e+02 5.256994e-03 1.525699e-04
5.200000e+02 5.200000e+02 6.800000e+02 7.200000e+02 3.076076e-03 1.307608e-04
5.200000e+02 5.200000e+02 7.200000e+02 7.600000e+02 1.987042e-03 1.198704e-04
5.200000e+02 5.200000e+02 7.600000e+02 8.000000e+02 1.376699e-03 1.137670e-04
5.200000e+02 5.200000e+02 8.000000e+02 8.400000e+02 1.005689e-03 1.100569e-04
5.200000e+02 5.200000e+02 8.400000e+02 8.800000e+02 7.576795e-04 1.075768e-04
5.200000e+02 5.200000e+02 8.800000e+02 9.200000e+02 5.186000e-04 1.051860e-04
5.600000e+02 5.600000e+02 6.000000e+02 6.400000e+02 2.618374e-02 3.618374e-04
5.600000e+02 5.600000e+02 6.400000e+02 6.800000e+02 1.025489e-02 2.025489e-04
5.600000e+02 5.600000e+02 6.800000e+02 7.200000e+02 5.112650e-03 1.511265e-04
5.600000e+02 5.600000e+02 7.200000e+02 7.600000e+02 2.981344e-03 1.298134e-04
5.600000e+02 5.600000e+02 7.600000e+02 8.000000e+02 1.933940e-03 1.193394e-04
5.600000e+02 5.600000e+02 8.000000e+02 8.400000e+02 1.353895e-03 1.135390e-04
5.600000e+02 5.600000e+02 8.400000e+02 8.800000e+02 9.936591e-04 1.099366e-04
5.600000e+02 5.600000e+02 8.800000e+02 9.200000e+02 6.711771e-04 1.067118e-04
5.600000e+02 5.600000e+02 9.200000e+02 9.600000e+02 1.196590e-04 1.011966e-04
6.000000e+02 6.000000e+02 6.400000e+02 6.800000e+02 2.604130e-02 3.604130e-04
6.000000e+02 6.000000e+02 6.800000e+02 7.200000e+02 1.015618e-02 2.015618e-04
6.000000e+02 6.000000e+02 7.200000e+02 7.600000e+02 5.056610e-03 1.505661e-04
6.000000e+02 6.000000e+02 7.600000e+02 8.000000e+02 2.964264e-03 1.296426e-04
6.000000e+02 6.000000e+02 8.000000e+02 8.400000e+02 1.946604e-03 1.194660e-04
6.000000e+02 6.000000e+02 8.400000e+02 8.800000e+02 1.375056e-03 1.137506e-04
6.000000e+02 6.000000e+02 8.800000e+02 9.200000e+02 9.115939e-04 1.091159e-04
6.000000e+02 6.000000e+02 9.200000e+02 9.600000e+02 1.606589e-04 1.016066e-04
6.000000e+02 6.000000e+02 9.600000e+02 1.000000e+03 1.525385e-04 1.015254e-04
6.400000e+02 6.400000e+02 6.800000e+02 7.200000e+02 2.598448e-02 3.598448e-04
6.400000e+02 6.400000e+02 7.200000e+02 7.600000e+02 1.014015e-02 2.014015e-04
6.400000e+02 6.400000e+02 7.600000e+02 8.000000e+02 5.081253e-03 1.508125e-04
6.400000e+02 6.400000e+02 8.000000e+02 8.400000e+02 3.022289e-03 1.302229e-04
6.400000e+02 6.400000e+02 8.400000e+02 8.800000e+02 2.013954e-03 1.201395e-04
6.400000e+02 6.400000e+02 8.800000e+02 9.200000e+02 1.298628e-03 1.129863e-04
6.400000e+02 6.400000e+02 9.200000e+02 9.600000e+02 2.256474e-04 1.022565e-04
6.400000e+02 6.400000e+02 9.600000e+02 1.000000e+03 1.990072e-04 1.019901e-04
6.400000e+02 6.400000e+02 1.000000e+03 1.040000e+03 1.962003e-04 1.019620e-04
6.800000e+02 6.800000e+02 7.200000e+02 7.600000e+02 2.601381e-02 3.601381e-04
6.800000e+02 6.800000e+02 7.600000e+02 8.000000e+02 1.021743e-02 2.021743e-04
6.800000e+02 6.800000e+02 8.000000e+02 8.400000e+02 5.202320e-03 1.520232e-04
6.800000e+02 6.800000e+02 8.400000e+02 8.800000e+02 3.160360e-03 1.316036e-04
6.800000e+02 6.800000e+02 8.800000e+02 9.200000e+02 1.950870e-03 1.195087e-04
6.800000e+02 6.800000e+02 9.200000e+02 9.600000e+02 3.326250e-04 1.033263e-04
6.800000e+02 6.800000e+02 9.600000e+02 1.000000e+03 2.688421e-04 1.026884e-04
6.800000e+02 6.800000e+02 1.000000e+03 1.040000e+03 2.591515e-04 1.025915e-04
6.800000e+02 6.800000e+02 1.040000e+03 1.080000e+03 1.904861e-04 1.019049e-04
7.200000e+02 7.200000e+02 7.600000e+02 8.000000e+02 2.616280e-02 3.616280e-04
7.200000e+02 7.200000e+02 8.000000e+02 8.400000e+02 1.043353e-02 2.043353e-04
7.200000e+02 7.200000e+02 8.400000e+02 8.800000e+02 5.460042e-03 1.546004e-04
7.200000e+02 7.200000e+02 8.800000e+02 9.200000e+02 3.137251e-03 1.313725e-04
7.200000e+02 7.200000e+02 9.200000e+02 9.600000e+02 5.203728e-04 1.052037e-04
7.200000e+02 7.200000e+02 9.600000e+02 1.000000e+03 3.766559e-04 1.037666e-04
7.200000e+02 7.200000e+02 1.000000e+03 1.040000e+03 3.529782e-04 1.035298e-04
7.200000e+02 7.200000e+02 1.040000e+03 1.080000e+03 2.532919e-04 1.025329e-04
7.200000e+02 7.200000e+02 1.080000e+03 1.120000e+03 1.807361e-04 1.018074e-04
7.600000e+02 7.600000e+02 8.000000e+02 8.400000e+02 2.629864e-02 3.629864e-04
7.600000e+02 7.600000e+02 8.400000e+02 8.800000e+02 1.081983e-02 2.081983e-04
7.600000e+02 7.600000e+02 8.800000e+02 9.200000e+02 5.511974e-03 1.551197e-04
7.600000e+02 7.600000e+02 9.200000e+02 9.600000e+02 8.761073e-04 1.087611e-04
7.600000e+02 7.600000e+02 9.600000e+02 1.000000e+03 5.463970e-04 1.054640e-04
7.600000e+02 7.600000e+02 1.000000e+03 1.040000e+03 4.928757e-04 1.049288e-04
7.600000e+02 7.600000e+02 1.040000e+03 1.080000e+03 3.429987e-04 1.034300e-04
7.600000e+02 7.600000e+02 1.080000e+03 1.120000e+03 2.390966e-04 1.023910e-04
7.600000e+02 7.600000e+02 1.120000e+03 1.160000e+03 1.621222e-04 1.016212e-04
8.000000e+02 8.000000e+02 8.400000e+02 8.800000e+02 2.725269e-02 3.725269e-04
8.000000e+02 8.000000e+02 8.800000e+02 9.200000e+02 1.131742e-02 2.131742e-04
8.000000e+02 8.000000e+02 9.200000e+02 9.600000e+02 1.680339e-03 1.168034e-04
8.000000e+02 8.000000e+02 9.600000e+02 1.000000e+03 8.496814e-04 1.084968e-04
8.000000e+02 8.000000e+02 1.000000e+03 1.040000e+03 7.251771e-04 1.072518e-04
8.000000e+02 8.000000e+02 1.040000e+03 1.080000e+03 4.838564e-04 1.048386e-04
8.000000e+02 8.000000e+02 1.080000e+03 1.120000e+03 3.272610e-04 1.032726e-04
8.000000e+02 8.000000e+02 1.120000e+03 1.160000e+03 2.168282e-04 1.021683e-04
8.400000e+02 8.400000e+02 8.800000e+02 9.200000e+02 2.912738e-02 3.912738e-04
8.400000e+02 8.400000e+02 9.200000e+02 9.600000e+02 3.864081e-03 1.386408e-04
8.400000e+02 8.400000e+02 9.600000e+02 1.000000e+03 1.447001e-03 1.144700e-04
8.400000e+02 8.400000e+02 1.000000e+03 1.040000e+03 1.135173e-03 1.113517e-04
8.400000e+02 8.400000e+02 1.040000e+03 1.080000e+03 7.123625e-04 1.071236e-04
8.400000e+02 8.400000e+02 1.080000e+03 1.120000e+03 4.621593e-04 1.046216e-04
8.400000e+02 8.400000e+02 1.120000e+03 1.160000e+03 2.972157e-04 1.029722e-04
8.800000e+02 8.800000e+02 9.200000e+02 9.600000e+02 1.171587e-02 2.171587e-04
8.800000e+02 8.800000e+02 9.600000e+02 1.000000e+03 2.827625e-03 1.282763e-04
8.800000e+02 8.800000e+02 1.000000e+03 1.040000e+03 1.944627e-03 1.194463e-04
8.800000e+02 8.800000e+02 1.040000e+03 1.080000e+03 1.112595e-03 1.111259e-04
8.800000e+02 8.800000e+02 1.080000e+03 1.120000e+03 6.796523e-04 1.067965e-04
8.800000e+02 8.800000e+02 1.120000e+03 1.160000e+03 4.197216e-04 1.041972e-04
9.200000e+02 9.200000e+02 9.600000e+02 1.000000e+03 6.722928e-03 1.672293e-04
9.200000e+02 9.200000e+02 1.000000e+03 1.040000e+03 3.711820e-03 1.371182e-04
9.200000e+02 9.200000e+02 1.040000e+03 1.080000e+03 1.840319e-03 1.184032e-04
9.200000e+02 9.200000e+02 1.080000e+03 1.120000e+03 1.028874e-03 1.102887e-04
9.200000e+02 9.200000e+02 1.120000e+03 1.160000e+03 6.007261e-04 1.060073e-04
9.600000e+02 9.600000e+02 1.000000e+03 1.040000e+03 7.044588e-03 1.704459e-04
9.600000e+02 9.600000e+02 1.040000e+03 1.080000e+03 2.863830e-03 1.286383e-04
9.600000e+02 9.600000e+02 1.080000e+03 1.120000e+03 1.427305e-03 1.142730e-04
9.600000e+02 9.600000e+02 1.120000e+03 1.160000e+03 7.789635e-04 1.077896e-04
1.000000e+03 1.000000e+03 1.040000e+03 1.080000e+03 2.057350e-02 3.057350e-04
1.000000e+03 1.000000e+03 1.080000e+03 1.120000e+03 7.101947e-03 1.710195e-04
1.000000e+03 1.000000e+03 1.120000e+03 1.160000e+03 3.009493e-03 1.300949e-04
1.040000e+03 1.040000e+03 1.080000e+03 1.120000e+03 2.354771e-02 3.354771e-04
1.040000e+03 1.040000e+03 1.120000e+03 1.160000e+03 8.232986e-03 1.823299e-04
1.080000e+03 1.080000e+03 1.120000e+03 1.160000e+03 2.379402e-02 3.379402e-04
+133
View File
@@ -0,0 +1,133 @@
85
-7718.404778 -5496.003413 1
-3.908574e+03 1
-2.774696e+03 1
-1.964783e+03 1
-1.386273e+03 1
-9.730523e+02 1
-6.778945e+02 1
-4.670675e+02 1
-3.164768e+02 1
-2.089120e+02 1
-1.320800e+02 1
-7.720000e+01 1
-3.800000e+01 1
-1.000000e+01 1
1.000000e+01 1
3.000000e+01 1
5.000000e+01 1
7.000000e+01 1
9.000000e+01 1
1.100000e+02 1
1.300000e+02 1
1.500000e+02 1
1.700000e+02 1
1.900000e+02 1
2.100000e+02 1
2.300000e+02 1
2.500000e+02 1
2.700000e+02 1
2.900000e+02 1
3.100000e+02 1
3.300000e+02 1
3.500000e+02 1
3.700000e+02 1
3.900000e+02 1
4.100000e+02 1
4.300000e+02 1
4.500000e+02 1
4.700000e+02 1
4.900000e+02 1
5.100000e+02 1
5.300000e+02 1
5.500000e+02 1
5.700000e+02 1
5.900000e+02 1
6.100000e+02 1
6.300000e+02 1
6.500000e+02 1
6.700000e+02 1
6.900000e+02 1
7.100000e+02 1
7.300000e+02 1
7.500000e+02 1
7.700000e+02 1
7.900000e+02 1
8.100000e+02 1
8.300000e+02 1
8.500000e+02 1
8.700000e+02 1
8.900000e+02 1
9.100000e+02 1
9.300000e+02 1
9.500000e+02 1
9.700000e+02 1
9.900000e+02 1
1.010000e+03 1
1.030000e+03 1
1.050000e+03 1
1.070000e+03 1
1.090000e+03 1
1.110000e+03 1
1.130000e+03 1
1.158000e+03 1
1.197200e+03 1
1.252080e+03 1
1.328912e+03 1
1.436477e+03 1
1.587068e+03 1
1.797895e+03 1
2.093052e+03 1
2.506273e+03 1
3.084783e+03 1
3.894696e+03 1
5.028574e+03 1
6.616003e+03 1
8.838405e+03 1
45
0.000000 20.000000 1
4.000000e+01 1
6.000000e+01 1
8.000000e+01 1
1.000000e+02 1
1.200000e+02 1
1.400000e+02 1
1.600000e+02 1
1.800000e+02 1
2.000000e+02 1
2.200000e+02 1
2.400000e+02 1
2.600000e+02 1
2.800000e+02 1
3.000000e+02 1
3.200000e+02 1
3.400000e+02 1
3.600000e+02 1
3.800000e+02 1
4.000000e+02 1
4.200000e+02 1
4.400000e+02 1
4.600000e+02 1
4.800000e+02 1
5.000000e+02 1
5.200000e+02 1
5.400000e+02 1
5.600000e+02 1
5.800000e+02 1
6.000000e+02 1
6.240000e+02 1
6.540000e+02 1
6.890000e+02 1
7.290000e+02 1
7.790000e+02 1
8.390000e+02 1
9.110000e+02 1
9.970000e+02 1
1.100000e+03 1
1.250000e+03 1
1.425000e+03 1
1.625000e+03 1
1.875000e+03 1
2.175000e+03 1
2.525000e+03 1
File diff suppressed because it is too large. Load diff
+48
View File
@@ -0,0 +1,48 @@
Parallelized with OpenMP. # of threads: 4
DCIP2D - Version 5 (BETA) 20110811: DCIPF2D
Developed by University of British Columbia
Geophysical Inversion Facility (UBC-GIF)
(C) Copyright 1992 - 2011, UBC-GIF,
Department of Earth and Ocean Sciences, UBC
http://www.eos.ubc.ca/research/ubcgif/
Distributed by:
Mira Geoscience Ltd.
DCIPF2D started on:12/09/2015 17:56:14
Reading input file: dcipf2d.inp
----------------------------------------------
FWD DC
MESH FILE Mesh_2D.msh
LOC LOC_X FWR_3D_2_2D.dat
TOPO DEFAULT
COND FILE MtIsa_2D.con
----------------------------------------------
electrode locations were read from: FWR_3D_2_2D.dat
# of current locations: 28
# of data: 216
mesh was read from: Mesh_2D.msh
# of cells: 85 x 45
total # of cells: 3825
# of active cells: 3825
# of wave values: 13
2.5000E-04 4.9901E-04 9.9606E-04 1.9882E-03 3.9685E-03 7.9213E-03 1.5811E-02 3.1560E-02 6.2996E-02 1.2574E-01 2.5099E-01 5.0099E-01 1.0000E+00
conductivity was read from file: MtIsa_2D.con
dc fwd cpu time: 0:00:00.19
total cpu time: 0:00:00.19
DCIPF2D ended on:12/09/2015 17:56:14
+217
View File
@@ -0,0 +1,217 @@
! Predicted data ! GENERAL FORMAT Last column are apparent conductivities.
0.0000000E+00 0.0000000E+00 4.0000000E+01 8.0000000E+01 4.37963E-01 4.54248E-03
0.0000000E+00 0.0000000E+00 8.0000000E+01 1.2000000E+02 1.62622E-01 4.07785E-03
0.0000000E+00 0.0000000E+00 1.2000000E+02 1.6000000E+02 7.69824E-02 4.30712E-03
0.0000000E+00 0.0000000E+00 1.6000000E+02 2.0000000E+02 4.38528E-03 4.53662E-02
0.0000000E+00 0.0000000E+00 2.0000000E+02 2.4000000E+02 2.46637E-03 5.37751E-02
0.0000000E+00 0.0000000E+00 2.4000000E+02 2.8000000E+02 2.74581E-03 3.45017E-02
0.0000000E+00 0.0000000E+00 2.8000000E+02 3.2000000E+02 6.51619E-03 1.09038E-02
0.0000000E+00 0.0000000E+00 3.2000000E+02 3.6000000E+02 5.91274E-03 9.34628E-03
0.0000000E+00 0.0000000E+00 3.6000000E+02 4.0000000E+02 4.36195E-03 1.01353E-02
4.0000000E+01 4.0000000E+01 8.0000000E+01 1.2000000E+02 4.63636E-01 4.29095E-03
4.0000000E+01 4.0000000E+01 1.2000000E+02 1.6000000E+02 1.61950E-01 4.09476E-03
4.0000000E+01 4.0000000E+01 1.6000000E+02 2.0000000E+02 7.91654E-03 4.18836E-02
4.0000000E+01 4.0000000E+01 2.0000000E+02 2.4000000E+02 3.92652E-03 5.06667E-02
4.0000000E+01 4.0000000E+01 2.4000000E+02 2.8000000E+02 3.64355E-03 3.64011E-02
4.0000000E+01 4.0000000E+01 2.8000000E+02 3.2000000E+02 8.11826E-03 1.16694E-02
4.0000000E+01 4.0000000E+01 3.2000000E+02 3.6000000E+02 7.18120E-03 9.89407E-03
4.0000000E+01 4.0000000E+01 3.6000000E+02 4.0000000E+02 5.23964E-03 1.05469E-02
4.0000000E+01 4.0000000E+01 4.0000000E+02 4.4000000E+02 5.79728E-04 7.62594E-02
8.0000000E+01 8.0000000E+01 1.2000000E+02 1.6000000E+02 4.82045E-01 4.12707E-03
8.0000000E+01 8.0000000E+01 1.6000000E+02 2.0000000E+02 1.74835E-02 3.79299E-02
8.0000000E+01 8.0000000E+01 2.0000000E+02 2.4000000E+02 7.15442E-03 4.63451E-02
8.0000000E+01 8.0000000E+01 2.4000000E+02 2.8000000E+02 5.20669E-03 3.82092E-02
8.0000000E+01 8.0000000E+01 2.8000000E+02 3.2000000E+02 1.05211E-02 1.26060E-02
8.0000000E+01 8.0000000E+01 3.2000000E+02 3.6000000E+02 8.95319E-03 1.05812E-02
8.0000000E+01 8.0000000E+01 3.6000000E+02 4.0000000E+02 6.42718E-03 1.10548E-02
8.0000000E+01 8.0000000E+01 4.0000000E+02 4.4000000E+02 6.98004E-04 7.91716E-02
8.0000000E+01 8.0000000E+01 4.4000000E+02 4.8000000E+02 5.71181E-04 7.74005E-02
1.2000000E+02 1.2000000E+02 1.6000000E+02 2.0000000E+02 5.63584E-02 3.52997E-02
1.2000000E+02 1.2000000E+02 2.0000000E+02 2.4000000E+02 1.61965E-02 4.09437E-02
1.2000000E+02 1.2000000E+02 2.4000000E+02 2.8000000E+02 8.43582E-03 3.93053E-02
1.2000000E+02 1.2000000E+02 2.8000000E+02 3.2000000E+02 1.45236E-02 1.36979E-02
1.2000000E+02 1.2000000E+02 3.2000000E+02 3.6000000E+02 1.15992E-02 1.14344E-02
1.2000000E+02 1.2000000E+02 3.6000000E+02 4.0000000E+02 8.11343E-03 1.16763E-02
1.2000000E+02 1.2000000E+02 4.0000000E+02 4.4000000E+02 8.58536E-04 8.27587E-02
1.2000000E+02 1.2000000E+02 4.4000000E+02 4.8000000E+02 6.86451E-04 8.05041E-02
1.2000000E+02 1.2000000E+02 4.8000000E+02 5.2000000E+02 5.56629E-04 7.94241E-02
1.6000000E+02 1.6000000E+02 2.0000000E+02 2.4000000E+02 4.17530E-02 4.76478E-02
1.6000000E+02 1.6000000E+02 2.4000000E+02 2.8000000E+02 1.45259E-02 4.56525E-02
1.6000000E+02 1.6000000E+02 2.8000000E+02 3.2000000E+02 2.02746E-02 1.63541E-02
1.6000000E+02 1.6000000E+02 3.2000000E+02 3.6000000E+02 1.48931E-02 1.33581E-02
1.6000000E+02 1.6000000E+02 3.6000000E+02 4.0000000E+02 1.00734E-02 1.31663E-02
1.6000000E+02 1.6000000E+02 4.0000000E+02 4.4000000E+02 1.03480E-03 9.15490E-02
1.6000000E+02 1.6000000E+02 4.4000000E+02 4.8000000E+02 8.06769E-04 8.80689E-02
1.6000000E+02 1.6000000E+02 4.8000000E+02 5.2000000E+02 6.42732E-04 8.59801E-02
1.6000000E+02 1.6000000E+02 5.2000000E+02 5.6000000E+02 5.16345E-04 8.56205E-02
2.0000000E+02 2.0000000E+02 2.4000000E+02 2.8000000E+02 3.10109E-02 6.41528E-02
2.0000000E+02 2.0000000E+02 2.8000000E+02 3.2000000E+02 2.84303E-02 2.33253E-02
2.0000000E+02 2.0000000E+02 3.2000000E+02 3.6000000E+02 1.81787E-02 1.82396E-02
2.0000000E+02 2.0000000E+02 3.6000000E+02 4.0000000E+02 1.17012E-02 1.70020E-02
2.0000000E+02 2.0000000E+02 4.0000000E+02 4.4000000E+02 1.16142E-03 1.14196E-01
2.0000000E+02 2.0000000E+02 4.4000000E+02 4.8000000E+02 8.82426E-04 1.07358E-01
2.0000000E+02 2.0000000E+02 4.8000000E+02 5.2000000E+02 6.91684E-04 1.02722E-01
2.0000000E+02 2.0000000E+02 5.2000000E+02 5.6000000E+02 5.49788E-04 1.00515E-01
2.0000000E+02 2.0000000E+02 5.6000000E+02 6.0000000E+02 4.38101E-04 1.00912E-01
2.4000000E+02 2.4000000E+02 2.8000000E+02 3.2000000E+02 6.63054E-02 3.00041E-02
2.4000000E+02 2.4000000E+02 3.2000000E+02 3.6000000E+02 2.86962E-02 2.31092E-02
2.4000000E+02 2.4000000E+02 3.6000000E+02 4.0000000E+02 1.61554E-02 2.05239E-02
2.4000000E+02 2.4000000E+02 4.0000000E+02 4.4000000E+02 1.47767E-03 1.34634E-01
2.4000000E+02 2.4000000E+02 4.4000000E+02 4.8000000E+02 1.05797E-03 1.25361E-01
2.4000000E+02 2.4000000E+02 4.8000000E+02 5.2000000E+02 7.99625E-04 1.18474E-01
2.4000000E+02 2.4000000E+02 5.2000000E+02 5.6000000E+02 6.20964E-04 1.14421E-01
2.4000000E+02 2.4000000E+02 5.6000000E+02 6.0000000E+02 4.87210E-04 1.13426E-01
2.4000000E+02 2.4000000E+02 6.0000000E+02 6.4000000E+02 3.82964E-04 1.15441E-01
2.8000000E+02 2.8000000E+02 3.2000000E+02 3.6000000E+02 1.70137E-01 1.16932E-02
2.8000000E+02 2.8000000E+02 3.6000000E+02 4.0000000E+02 5.51339E-02 1.20279E-02
2.8000000E+02 2.8000000E+02 4.0000000E+02 4.4000000E+02 3.74082E-03 8.86365E-02
2.8000000E+02 2.8000000E+02 4.4000000E+02 4.8000000E+02 2.14407E-03 9.27878E-02
2.8000000E+02 2.8000000E+02 4.8000000E+02 5.2000000E+02 1.40564E-03 9.43551E-02
2.8000000E+02 2.8000000E+02 5.2000000E+02 5.6000000E+02 9.95293E-04 9.51831E-02
2.8000000E+02 2.8000000E+02 5.6000000E+02 6.0000000E+02 7.34406E-04 9.67466E-02
2.8000000E+02 2.8000000E+02 6.0000000E+02 6.4000000E+02 5.53238E-04 9.98885E-02
2.8000000E+02 2.8000000E+02 6.4000000E+02 6.8000000E+02 4.21795E-04 1.04813E-01
3.2000000E+02 3.2000000E+02 3.6000000E+02 4.0000000E+02 2.84337E-01 6.99676E-03
3.2000000E+02 3.2000000E+02 4.0000000E+02 4.4000000E+02 1.39919E-02 4.73949E-02
3.2000000E+02 3.2000000E+02 4.4000000E+02 4.8000000E+02 6.43218E-03 5.15490E-02
3.2000000E+02 3.2000000E+02 4.8000000E+02 5.2000000E+02 3.62113E-03 5.49396E-02
3.2000000E+02 3.2000000E+02 5.2000000E+02 5.6000000E+02 2.30061E-03 5.76495E-02
3.2000000E+02 3.2000000E+02 5.6000000E+02 6.0000000E+02 1.57121E-03 6.02942E-02
3.2000000E+02 3.2000000E+02 6.0000000E+02 6.4000000E+02 1.11891E-03 6.35005E-02
3.2000000E+02 3.2000000E+02 6.4000000E+02 6.8000000E+02 8.17331E-04 6.76129E-02
3.2000000E+02 3.2000000E+02 6.8000000E+02 7.2000000E+02 6.08827E-04 7.26146E-02
3.6000000E+02 3.6000000E+02 4.0000000E+02 4.4000000E+02 4.74032E-02 4.19684E-02
3.6000000E+02 3.6000000E+02 4.4000000E+02 4.8000000E+02 1.54783E-02 4.28435E-02
3.6000000E+02 3.6000000E+02 4.8000000E+02 5.2000000E+02 7.33839E-03 4.51833E-02
3.6000000E+02 3.6000000E+02 5.2000000E+02 5.6000000E+02 4.20683E-03 4.72907E-02
3.6000000E+02 3.6000000E+02 5.6000000E+02 6.0000000E+02 2.68996E-03 4.93053E-02
3.6000000E+02 3.6000000E+02 6.0000000E+02 6.4000000E+02 1.83372E-03 5.16629E-02
3.6000000E+02 3.6000000E+02 6.4000000E+02 6.8000000E+02 1.29930E-03 5.46843E-02
3.6000000E+02 3.6000000E+02 6.8000000E+02 7.2000000E+02 9.45999E-04 5.84167E-02
3.6000000E+02 3.6000000E+02 7.2000000E+02 7.6000000E+02 7.05763E-04 6.26410E-02
4.0000000E+02 4.0000000E+02 4.4000000E+02 4.8000000E+02 3.81851E-02 5.20998E-02
4.0000000E+02 4.0000000E+02 4.8000000E+02 5.2000000E+02 1.36233E-02 4.86774E-02
4.0000000E+02 4.0000000E+02 5.2000000E+02 5.6000000E+02 6.80313E-03 4.87383E-02
4.0000000E+02 4.0000000E+02 5.6000000E+02 6.0000000E+02 4.01999E-03 4.94886E-02
4.0000000E+02 4.0000000E+02 6.0000000E+02 6.4000000E+02 2.61132E-03 5.07900E-02
4.0000000E+02 4.0000000E+02 6.4000000E+02 6.8000000E+02 1.79405E-03 5.28052E-02
4.0000000E+02 4.0000000E+02 6.8000000E+02 7.2000000E+02 1.27904E-03 5.55507E-02
4.0000000E+02 4.0000000E+02 7.2000000E+02 7.6000000E+02 9.39590E-04 5.88152E-02
4.0000000E+02 4.0000000E+02 7.6000000E+02 8.0000000E+02 7.10076E-04 6.22605E-02
4.4000000E+02 4.4000000E+02 4.8000000E+02 5.2000000E+02 2.91377E-02 6.82771E-02
4.4000000E+02 4.4000000E+02 5.2000000E+02 5.6000000E+02 1.04151E-02 6.36715E-02
4.4000000E+02 4.4000000E+02 5.6000000E+02 6.0000000E+02 5.29883E-03 6.25747E-02
4.4000000E+02 4.4000000E+02 6.0000000E+02 6.4000000E+02 3.18206E-03 6.25204E-02
4.4000000E+02 4.4000000E+02 6.4000000E+02 6.8000000E+02 2.09086E-03 6.34329E-02
4.4000000E+02 4.4000000E+02 6.8000000E+02 7.2000000E+02 1.45130E-03 6.52762E-02
4.4000000E+02 4.4000000E+02 7.2000000E+02 7.6000000E+02 1.04806E-03 6.77931E-02
4.4000000E+02 4.4000000E+02 7.6000000E+02 8.0000000E+02 7.82930E-04 7.05837E-02
4.4000000E+02 4.4000000E+02 8.0000000E+02 8.4000000E+02 6.02044E-04 7.34326E-02
4.8000000E+02 4.8000000E+02 5.2000000E+02 5.6000000E+02 2.76526E-02 7.19439E-02
4.8000000E+02 4.8000000E+02 5.6000000E+02 6.0000000E+02 9.58946E-03 6.91536E-02
4.8000000E+02 4.8000000E+02 6.0000000E+02 6.4000000E+02 4.78028E-03 6.93627E-02
4.8000000E+02 4.8000000E+02 6.4000000E+02 6.8000000E+02 2.83237E-03 7.02394E-02
4.8000000E+02 4.8000000E+02 6.8000000E+02 7.2000000E+02 1.84884E-03 7.17363E-02
4.8000000E+02 4.8000000E+02 7.2000000E+02 7.6000000E+02 1.28476E-03 7.37377E-02
4.8000000E+02 4.8000000E+02 7.6000000E+02 8.0000000E+02 9.35719E-04 7.59323E-02
4.8000000E+02 4.8000000E+02 8.0000000E+02 8.4000000E+02 7.07359E-04 7.81246E-02
4.8000000E+02 4.8000000E+02 8.4000000E+02 8.8000000E+02 5.44824E-04 8.11450E-02
5.2000000E+02 5.2000000E+02 5.6000000E+02 6.0000000E+02 2.71482E-02 7.32807E-02
5.2000000E+02 5.2000000E+02 6.0000000E+02 6.4000000E+02 9.24381E-03 7.17394E-02
5.2000000E+02 5.2000000E+02 6.4000000E+02 6.8000000E+02 4.53338E-03 7.31403E-02
5.2000000E+02 5.2000000E+02 6.8000000E+02 7.2000000E+02 2.65663E-03 7.48858E-02
5.2000000E+02 5.2000000E+02 7.2000000E+02 7.6000000E+02 1.72839E-03 7.67354E-02
5.2000000E+02 5.2000000E+02 7.6000000E+02 8.0000000E+02 1.20700E-03 7.84879E-02
5.2000000E+02 5.2000000E+02 8.0000000E+02 8.4000000E+02 8.87817E-04 8.00292E-02
5.2000000E+02 5.2000000E+02 8.4000000E+02 8.8000000E+02 6.72287E-04 8.22002E-02
5.2000000E+02 5.2000000E+02 8.8000000E+02 9.2000000E+02 4.38246E-04 1.00879E-01
5.6000000E+02 5.6000000E+02 6.0000000E+02 6.4000000E+02 2.69080E-02 7.39347E-02
5.6000000E+02 5.6000000E+02 6.4000000E+02 6.8000000E+02 9.06610E-03 7.31457E-02
5.6000000E+02 5.6000000E+02 6.8000000E+02 7.2000000E+02 4.40651E-03 7.52461E-02
5.6000000E+02 5.6000000E+02 7.2000000E+02 7.6000000E+02 2.57356E-03 7.73028E-02
5.6000000E+02 5.6000000E+02 7.6000000E+02 8.0000000E+02 1.68174E-03 7.88643E-02
5.6000000E+02 5.6000000E+02 8.0000000E+02 8.4000000E+02 1.18662E-03 7.98363E-02
5.6000000E+02 5.6000000E+02 8.4000000E+02 8.8000000E+02 8.76426E-04 8.10694E-02
5.6000000E+02 5.6000000E+02 8.8000000E+02 9.2000000E+02 5.64302E-04 9.79301E-02
5.6000000E+02 5.6000000E+02 9.2000000E+02 9.6000000E+02 9.98730E-05 4.42659E-01
6.0000000E+02 6.0000000E+02 6.4000000E+02 6.8000000E+02 2.67823E-02 7.42819E-02
6.0000000E+02 6.0000000E+02 6.8000000E+02 7.2000000E+02 8.97982E-03 7.38484E-02
6.0000000E+02 6.0000000E+02 7.2000000E+02 7.6000000E+02 4.35803E-03 7.60831E-02
6.0000000E+02 6.0000000E+02 7.6000000E+02 8.0000000E+02 2.55907E-03 7.77407E-02
6.0000000E+02 6.0000000E+02 8.0000000E+02 8.4000000E+02 1.69286E-03 7.83462E-02
6.0000000E+02 6.0000000E+02 8.4000000E+02 8.8000000E+02 1.20453E-03 7.86487E-02
6.0000000E+02 6.0000000E+02 8.8000000E+02 9.2000000E+02 7.61995E-04 9.32438E-02
6.0000000E+02 6.0000000E+02 9.2000000E+02 9.6000000E+02 1.33150E-04 4.15038E-01
6.0000000E+02 6.0000000E+02 9.6000000E+02 1.0000000E+03 1.43991E-04 3.07032E-01
6.4000000E+02 6.4000000E+02 6.8000000E+02 7.2000000E+02 2.67335E-02 7.44175E-02
6.4000000E+02 6.4000000E+02 7.2000000E+02 7.6000000E+02 8.96712E-03 7.39530E-02
6.4000000E+02 6.4000000E+02 7.6000000E+02 8.0000000E+02 4.38069E-03 7.56896E-02
6.4000000E+02 6.4000000E+02 8.0000000E+02 8.4000000E+02 2.61036E-03 7.62132E-02
6.4000000E+02 6.4000000E+02 8.4000000E+02 8.8000000E+02 1.75149E-03 7.57235E-02
6.4000000E+02 6.4000000E+02 8.8000000E+02 9.2000000E+02 1.07880E-03 8.78156E-02
6.4000000E+02 6.4000000E+02 9.2000000E+02 9.6000000E+02 1.85635E-04 3.82747E-01
6.4000000E+02 6.4000000E+02 9.6000000E+02 1.0000000E+03 1.85002E-04 2.98711E-01
6.4000000E+02 6.4000000E+02 1.0000000E+03 1.0400000E+03 1.85777E-04 2.37972E-01
6.8000000E+02 6.8000000E+02 7.2000000E+02 7.6000000E+02 2.67613E-02 7.43402E-02
6.8000000E+02 6.8000000E+02 7.6000000E+02 8.0000000E+02 9.03659E-03 7.33845E-02
6.8000000E+02 6.8000000E+02 8.0000000E+02 8.4000000E+02 4.48785E-03 7.38824E-02
6.8000000E+02 6.8000000E+02 8.4000000E+02 8.8000000E+02 2.73166E-03 7.28288E-02
6.8000000E+02 6.8000000E+02 8.8000000E+02 9.2000000E+02 1.61137E-03 8.23085E-02
6.8000000E+02 6.8000000E+02 9.2000000E+02 9.6000000E+02 2.71744E-04 3.48619E-01
6.8000000E+02 6.8000000E+02 9.6000000E+02 1.0000000E+03 2.46275E-04 2.88504E-01
6.8000000E+02 6.8000000E+02 1.0000000E+03 1.0400000E+03 2.41460E-04 2.28867E-01
6.8000000E+02 6.8000000E+02 1.0400000E+03 1.0800000E+03 1.81915E-04 2.43024E-01
7.2000000E+02 7.2000000E+02 7.6000000E+02 8.0000000E+02 2.68947E-02 7.39714E-02
7.2000000E+02 7.2000000E+02 8.0000000E+02 8.4000000E+02 9.22857E-03 7.18579E-02
7.2000000E+02 7.2000000E+02 8.4000000E+02 8.8000000E+02 4.71676E-03 7.02968E-02
7.2000000E+02 7.2000000E+02 8.8000000E+02 9.2000000E+02 2.58276E-03 7.70276E-02
7.2000000E+02 7.2000000E+02 9.2000000E+02 9.6000000E+02 4.23001E-04 3.13543E-01
7.2000000E+02 7.2000000E+02 9.6000000E+02 1.0000000E+03 3.40352E-04 2.78345E-01
7.2000000E+02 7.2000000E+02 1.0000000E+03 1.0400000E+03 3.23938E-04 2.19336E-01
7.2000000E+02 7.2000000E+02 1.0400000E+03 1.0800000E+03 2.37881E-04 2.32310E-01
7.2000000E+02 7.2000000E+02 1.0800000E+03 1.1200000E+03 1.75459E-04 2.51965E-01
7.6000000E+02 7.6000000E+02 8.0000000E+02 8.4000000E+02 2.72284E-02 7.30647E-02
7.6000000E+02 7.6000000E+02 8.4000000E+02 8.8000000E+02 9.66569E-03 6.86082E-02
7.6000000E+02 7.6000000E+02 8.8000000E+02 9.2000000E+02 4.59764E-03 7.21180E-02
7.6000000E+02 7.6000000E+02 9.2000000E+02 9.6000000E+02 7.18689E-04 2.76815E-01
7.6000000E+02 7.6000000E+02 9.6000000E+02 1.0000000E+03 4.92200E-04 2.69462E-01
7.6000000E+02 7.6000000E+02 1.0000000E+03 1.0400000E+03 4.50063E-04 2.10493E-01
7.6000000E+02 7.6000000E+02 1.0400000E+03 1.0800000E+03 3.19985E-04 2.22045E-01
7.6000000E+02 7.6000000E+02 1.0800000E+03 1.1200000E+03 2.30214E-04 2.40047E-01
7.6000000E+02 7.6000000E+02 1.1200000E+03 1.1600000E+03 1.64278E-04 2.69115E-01
8.0000000E+02 8.0000000E+02 8.4000000E+02 8.8000000E+02 2.81224E-02 7.07421E-02
8.0000000E+02 8.0000000E+02 8.8000000E+02 9.2000000E+02 9.73736E-03 6.81032E-02
8.0000000E+02 8.0000000E+02 9.2000000E+02 9.6000000E+02 1.39849E-03 2.37094E-01
8.0000000E+02 8.0000000E+02 9.6000000E+02 1.0000000E+03 7.58522E-04 2.62278E-01
8.0000000E+02 8.0000000E+02 1.0000000E+03 1.0400000E+03 6.54056E-04 2.02779E-01
8.0000000E+02 8.0000000E+02 1.0400000E+03 1.0800000E+03 4.44836E-04 2.12966E-01
8.0000000E+02 8.0000000E+02 1.0800000E+03 1.1200000E+03 3.10020E-04 2.29183E-01
8.0000000E+02 8.0000000E+02 1.1200000E+03 1.1600000E+03 2.15819E-04 2.56057E-01
8.4000000E+02 8.4000000E+02 8.8000000E+02 9.2000000E+02 2.90585E-02 6.84630E-02
8.4000000E+02 8.4000000E+02 9.2000000E+02 9.6000000E+02 3.44112E-03 1.92712E-01
8.4000000E+02 8.4000000E+02 9.6000000E+02 1.0000000E+03 1.28993E-03 2.57048E-01
8.4000000E+02 8.4000000E+02 1.0000000E+03 1.0400000E+03 1.01463E-03 1.96075E-01
8.4000000E+02 8.4000000E+02 1.0400000E+03 1.0800000E+03 6.46364E-04 2.05193E-01
8.4000000E+02 8.4000000E+02 1.0800000E+03 1.1200000E+03 4.31094E-04 2.19755E-01
8.4000000E+02 8.4000000E+02 1.1200000E+03 1.1600000E+03 2.90763E-04 2.44361E-01
8.8000000E+02 8.8000000E+02 9.2000000E+02 9.6000000E+02 1.37818E-02 1.44352E-01
8.8000000E+02 8.8000000E+02 9.6000000E+02 1.0000000E+03 2.58571E-03 2.56466E-01
8.8000000E+02 8.8000000E+02 1.0000000E+03 1.0400000E+03 1.73659E-03 1.90933E-01
8.8000000E+02 8.8000000E+02 1.0400000E+03 1.0800000E+03 9.99448E-04 1.99054E-01
8.8000000E+02 8.8000000E+02 1.0800000E+03 1.1200000E+03 6.25061E-04 2.12186E-01
8.8000000E+02 8.8000000E+02 1.1200000E+03 1.1600000E+03 4.03769E-04 2.34627E-01
9.2000000E+02 9.2000000E+02 9.6000000E+02 1.0000000E+03 7.20306E-03 2.76193E-01
9.2000000E+02 9.2000000E+02 1.0000000E+03 1.0400000E+03 3.38580E-03 1.95861E-01
9.2000000E+02 9.2000000E+02 1.0400000E+03 1.0800000E+03 1.63263E-03 2.03091E-01
9.2000000E+02 9.2000000E+02 1.0800000E+03 1.1200000E+03 9.26167E-04 2.14803E-01
9.2000000E+02 9.2000000E+02 1.1200000E+03 1.1600000E+03 5.63508E-04 2.35363E-01
9.6000000E+02 9.6000000E+02 1.0000000E+03 1.0400000E+03 7.04738E-03 2.82295E-01
9.6000000E+02 9.6000000E+02 1.0400000E+03 1.0800000E+03 2.52957E-03 2.62158E-01
9.6000000E+02 9.6000000E+02 1.0800000E+03 1.1200000E+03 1.25737E-03 2.63704E-01
9.6000000E+02 9.6000000E+02 1.1200000E+03 1.1600000E+03 7.12741E-04 2.79125E-01
1.0000000E+03 1.0000000E+03 1.0400000E+03 1.0800000E+03 2.22317E-02 8.94866E-02
1.0000000E+03 1.0000000E+03 1.0800000E+03 1.1200000E+03 6.47719E-03 1.02382E-01
1.0000000E+03 1.0000000E+03 1.1200000E+03 1.1600000E+03 2.70624E-03 1.22522E-01
1.0400000E+03 1.0400000E+03 1.0800000E+03 1.1200000E+03 2.49914E-02 7.96048E-02
1.0400000E+03 1.0400000E+03 1.1200000E+03 1.1600000E+03 7.57627E-03 8.75293E-02
1.0800000E+03 1.0800000E+03 1.1200000E+03 1.1600000E+03 2.53783E-02 7.83913E-02
+5
View File
@@ -0,0 +1,5 @@
FWD DC
MESH FILE Mesh_2D.msh
LOC LOC_X FWR_3D_2_2D.dat
TOPO DEFAULT
COND FILE MtIsa_2D.con
+5
View File
@@ -0,0 +1,5 @@
104 21 45
-1565.00 10725 0
350 300 250 200 175 150 103.00 86.00 72.00 60.00 50.00 40.00 35.00 30.00 24.00 74*20.00 24.00 30.00 35.00 40.00 50.00 60.00 72.00 86.00 103.00 150 175 200 250 300 350
300 250 200 175 150 103.00 86.00 72.00 5*60 72.00 86.00 103.00 150 175 200 250 300
30*20 24.00 30.00 35.00 40.00 50.00 60.00 72.00 86.00 103.00 150 175 200 250 300 350
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,245 @@
! GENERAL FORMAT
0.000000e+00 0.000000e+00 4.000000e+01 8.000000e+01 3.134690e-01 4.636103e-03
0.000000e+00 0.000000e+00 8.000000e+01 1.200000e+02 1.388270e-01 2.056283e-03
0.000000e+00 0.000000e+00 1.200000e+02 1.600000e+02 7.065850e-02 1.066153e-03
0.000000e+00 0.000000e+00 1.600000e+02 2.000000e+02 4.188140e-03 1.544321e-04
0.000000e+00 0.000000e+00 2.000000e+02 2.400000e+02 2.415160e-03 1.297752e-04
0.000000e+00 0.000000e+00 2.400000e+02 2.800000e+02 2.739890e-03 1.311332e-04
0.000000e+00 0.000000e+00 2.800000e+02 3.200000e+02 6.530410e-03 1.721638e-04
0.000000e+00 0.000000e+00 3.200000e+02 3.600000e+02 5.932600e-03 1.647500e-04
0.000000e+00 0.000000e+00 3.600000e+02 4.000000e+02 4.378410e-03 1.475086e-04
4.000000e+01 4.000000e+01 8.000000e+01 1.200000e+02 3.311530e-01 4.837093e-03
4.000000e+01 4.000000e+01 1.200000e+02 1.600000e+02 1.346040e-01 2.033017e-03
4.000000e+01 4.000000e+01 1.600000e+02 2.000000e+02 7.114680e-03 1.962511e-04
4.000000e+01 4.000000e+01 2.000000e+02 2.400000e+02 3.712820e-03 1.471017e-04
4.000000e+01 4.000000e+01 2.400000e+02 2.800000e+02 3.590020e-03 1.414691e-04
4.000000e+01 4.000000e+01 2.800000e+02 3.200000e+02 8.088730e-03 1.901446e-04
4.000000e+01 4.000000e+01 3.200000e+02 3.600000e+02 7.176080e-03 1.787592e-04
4.000000e+01 4.000000e+01 3.600000e+02 4.000000e+02 5.240720e-03 1.571198e-04
4.000000e+01 4.000000e+01 4.000000e+02 4.400000e+02 5.803160e-04 1.062599e-04
8.000000e+01 8.000000e+01 1.200000e+02 1.600000e+02 3.387770e-01 5.056306e-03
8.000000e+01 8.000000e+01 1.600000e+02 2.000000e+02 1.417790e-02 3.048511e-04
8.000000e+01 8.000000e+01 2.000000e+02 2.400000e+02 6.363520e-03 1.857564e-04
8.000000e+01 8.000000e+01 2.400000e+02 2.800000e+02 5.008630e-03 1.603252e-04
8.000000e+01 8.000000e+01 2.800000e+02 3.200000e+02 1.039040e-02 2.189394e-04
8.000000e+01 8.000000e+01 3.200000e+02 3.600000e+02 8.905940e-03 1.998280e-04
8.000000e+01 8.000000e+01 3.600000e+02 4.000000e+02 6.407310e-03 1.711701e-04
8.000000e+01 8.000000e+01 4.000000e+02 4.400000e+02 6.967590e-04 1.076499e-04
8.000000e+01 8.000000e+01 4.400000e+02 4.800000e+02 5.706700e-04 1.061933e-04
1.200000e+02 1.200000e+02 1.600000e+02 2.000000e+02 3.847470e-02 6.597631e-04
1.200000e+02 1.200000e+02 2.000000e+02 2.400000e+02 1.295120e-02 2.877787e-04
1.200000e+02 1.200000e+02 2.400000e+02 2.800000e+02 7.717090e-03 1.990861e-04
1.200000e+02 1.200000e+02 2.800000e+02 3.200000e+02 1.408500e-02 2.676287e-04
1.200000e+02 1.200000e+02 3.200000e+02 3.600000e+02 1.144910e-02 2.319428e-04
1.200000e+02 1.200000e+02 3.600000e+02 4.000000e+02 8.052980e-03 1.915666e-04
1.200000e+02 1.200000e+02 4.000000e+02 4.400000e+02 8.545430e-04 1.095795e-04
1.200000e+02 1.200000e+02 4.400000e+02 4.800000e+02 6.842970e-04 1.075687e-04
1.200000e+02 1.200000e+02 4.800000e+02 5.200000e+02 5.552720e-04 1.060808e-04
1.600000e+02 1.600000e+02 2.000000e+02 2.400000e+02 2.893830e-02 5.265271e-04
1.600000e+02 1.600000e+02 2.400000e+02 2.800000e+02 1.227910e-02 2.691741e-04
1.600000e+02 1.600000e+02 2.800000e+02 3.200000e+02 1.906980e-02 3.380462e-04
1.600000e+02 1.600000e+02 3.200000e+02 3.600000e+02 1.451740e-02 2.727048e-04
1.600000e+02 1.600000e+02 3.600000e+02 4.000000e+02 9.935060e-03 2.158363e-04
1.600000e+02 1.600000e+02 4.000000e+02 4.400000e+02 1.026530e-03 1.117529e-04
1.600000e+02 1.600000e+02 4.400000e+02 4.800000e+02 8.026950e-04 1.090425e-04
1.600000e+02 1.600000e+02 4.800000e+02 5.200000e+02 6.402360e-04 1.071292e-04
1.600000e+02 1.600000e+02 5.200000e+02 5.600000e+02 5.145720e-04 1.056846e-04
2.000000e+02 2.000000e+02 2.400000e+02 2.800000e+02 2.209580e-02 4.101272e-04
2.000000e+02 2.000000e+02 2.800000e+02 3.200000e+02 2.501490e-02 4.293247e-04
2.000000e+02 2.000000e+02 3.200000e+02 3.600000e+02 1.726610e-02 3.118536e-04
2.000000e+02 2.000000e+02 3.600000e+02 4.000000e+02 1.139970e-02 2.354928e-04
2.000000e+02 2.000000e+02 4.000000e+02 4.400000e+02 1.145600e-03 1.132824e-04
2.000000e+02 2.000000e+02 4.400000e+02 4.800000e+02 8.759600e-04 1.099518e-04
2.000000e+02 2.000000e+02 4.800000e+02 5.200000e+02 6.883230e-04 1.077133e-04
2.000000e+02 2.000000e+02 5.200000e+02 5.600000e+02 5.476180e-04 1.060808e-04
2.000000e+02 2.000000e+02 5.600000e+02 6.000000e+02 4.364850e-04 1.048185e-04
2.400000e+02 2.400000e+02 2.800000e+02 3.200000e+02 4.885300e-02 7.649140e-04
2.400000e+02 2.400000e+02 3.200000e+02 3.600000e+02 2.527390e-02 4.258335e-04
2.400000e+02 2.400000e+02 3.600000e+02 4.000000e+02 1.518430e-02 2.854898e-04
2.400000e+02 2.400000e+02 4.000000e+02 4.400000e+02 1.432570e-03 1.168008e-04
2.400000e+02 2.400000e+02 4.400000e+02 4.800000e+02 1.042790e-03 1.118556e-04
2.400000e+02 2.400000e+02 4.800000e+02 5.200000e+02 7.934300e-04 1.088474e-04
2.400000e+02 2.400000e+02 5.200000e+02 5.600000e+02 6.177110e-04 1.068047e-04
2.400000e+02 2.400000e+02 5.600000e+02 6.000000e+02 4.850580e-04 1.053030e-04
2.400000e+02 2.400000e+02 6.000000e+02 6.400000e+02 3.813010e-04 1.041481e-04
2.800000e+02 2.800000e+02 3.200000e+02 3.600000e+02 1.141790e-01 1.678256e-03
2.800000e+02 2.800000e+02 3.600000e+02 4.000000e+02 4.444100e-02 7.200859e-04
2.800000e+02 2.800000e+02 4.000000e+02 4.400000e+02 3.327290e-03 1.433912e-04
2.800000e+02 2.800000e+02 4.400000e+02 4.800000e+02 2.028060e-03 1.247834e-04
2.800000e+02 2.800000e+02 4.800000e+02 5.200000e+02 1.369420e-03 1.160567e-04
2.800000e+02 2.800000e+02 5.200000e+02 5.600000e+02 9.822340e-04 1.112350e-04
2.800000e+02 2.800000e+02 5.600000e+02 6.000000e+02 7.284700e-04 1.082107e-04
2.800000e+02 2.800000e+02 6.000000e+02 6.400000e+02 5.496900e-04 1.061397e-04
2.800000e+02 2.800000e+02 6.400000e+02 6.800000e+02 4.191740e-04 1.046528e-04
3.200000e+02 3.200000e+02 3.600000e+02 4.000000e+02 1.962910e-01 2.908898e-03
3.200000e+02 3.200000e+02 4.000000e+02 4.400000e+02 1.127790e-02 2.592369e-04
3.200000e+02 3.200000e+02 4.400000e+02 4.800000e+02 5.753480e-03 1.754301e-04
3.200000e+02 3.200000e+02 4.800000e+02 5.200000e+02 3.426860e-03 1.424083e-04
3.200000e+02 3.200000e+02 5.200000e+02 5.600000e+02 2.238850e-03 1.267174e-04
3.200000e+02 3.200000e+02 5.600000e+02 6.000000e+02 1.548240e-03 1.180814e-04
3.200000e+02 3.200000e+02 6.000000e+02 6.400000e+02 1.107970e-03 1.127738e-04
3.200000e+02 3.200000e+02 6.400000e+02 6.800000e+02 8.105190e-04 1.092675e-04
3.200000e+02 3.200000e+02 6.800000e+02 7.200000e+02 6.037130e-04 1.068618e-04
3.600000e+02 3.600000e+02 4.000000e+02 4.400000e+02 3.262940e-02 5.641363e-04
3.600000e+02 3.600000e+02 4.400000e+02 4.800000e+02 1.268600e-02 2.769581e-04
3.600000e+02 3.600000e+02 4.800000e+02 5.200000e+02 6.634070e-03 1.862110e-04
3.600000e+02 3.600000e+02 5.200000e+02 5.600000e+02 4.002550e-03 1.493660e-04
3.600000e+02 3.600000e+02 5.600000e+02 6.000000e+02 2.623140e-03 1.313451e-04
3.600000e+02 3.600000e+02 6.000000e+02 6.400000e+02 1.807470e-03 1.212050e-04
3.600000e+02 3.600000e+02 6.400000e+02 6.800000e+02 1.285890e-03 1.149195e-04
3.600000e+02 3.600000e+02 6.800000e+02 7.200000e+02 9.371730e-04 1.107940e-04
3.600000e+02 3.600000e+02 7.200000e+02 7.600000e+02 6.989270e-04 1.080080e-04
4.000000e+02 4.000000e+02 4.400000e+02 4.800000e+02 2.729790e-02 4.878789e-04
4.000000e+02 4.000000e+02 4.800000e+02 5.200000e+02 1.146310e-02 2.570287e-04
4.000000e+02 4.000000e+02 5.200000e+02 5.600000e+02 6.243480e-03 1.799854e-04
4.000000e+02 4.000000e+02 5.600000e+02 6.000000e+02 3.853410e-03 1.471565e-04
4.000000e+02 4.000000e+02 6.000000e+02 6.400000e+02 2.554350e-03 1.304300e-04
4.000000e+02 4.000000e+02 6.400000e+02 6.800000e+02 1.769940e-03 1.207575e-04
4.000000e+02 4.000000e+02 6.800000e+02 7.200000e+02 1.265610e-03 1.146992e-04
4.000000e+02 4.000000e+02 7.200000e+02 7.600000e+02 9.301620e-04 1.107333e-04
4.000000e+02 4.000000e+02 7.600000e+02 8.000000e+02 7.024960e-04 1.080707e-04
4.400000e+02 4.400000e+02 4.800000e+02 5.200000e+02 2.082870e-02 3.913833e-04
4.400000e+02 4.400000e+02 5.200000e+02 5.600000e+02 8.821230e-03 2.196402e-04
4.400000e+02 4.400000e+02 5.600000e+02 6.000000e+02 4.889580e-03 1.621575e-04
4.400000e+02 4.400000e+02 6.000000e+02 6.400000e+02 3.059170e-03 1.372429e-04
4.400000e+02 4.400000e+02 6.400000e+02 6.800000e+02 2.047550e-03 1.243099e-04
4.400000e+02 4.400000e+02 6.800000e+02 7.200000e+02 1.431960e-03 1.167527e-04
4.400000e+02 4.400000e+02 7.200000e+02 7.600000e+02 1.036630e-03 1.120169e-04
4.400000e+02 4.400000e+02 7.600000e+02 8.000000e+02 7.745150e-04 1.089256e-04
4.400000e+02 4.400000e+02 8.000000e+02 8.400000e+02 5.950870e-04 1.068330e-04
4.800000e+02 4.800000e+02 5.200000e+02 5.600000e+02 1.949380e-02 3.703944e-04
4.800000e+02 4.800000e+02 5.600000e+02 6.000000e+02 8.039150e-03 2.085234e-04
4.800000e+02 4.800000e+02 6.000000e+02 6.400000e+02 4.384660e-03 1.553848e-04
4.800000e+02 4.800000e+02 6.400000e+02 6.800000e+02 2.714300e-03 1.327615e-04
4.800000e+02 4.800000e+02 6.800000e+02 7.200000e+02 1.807600e-03 1.212398e-04
4.800000e+02 4.800000e+02 7.200000e+02 7.600000e+02 1.266500e-03 1.146476e-04
4.800000e+02 4.800000e+02 7.600000e+02 8.000000e+02 9.249070e-04 1.105945e-04
4.800000e+02 4.800000e+02 8.000000e+02 8.400000e+02 6.993340e-04 1.079645e-04
4.800000e+02 4.800000e+02 8.400000e+02 8.800000e+02 5.382050e-04 1.061103e-04
5.200000e+02 5.200000e+02 5.600000e+02 6.000000e+02 1.900290e-02 3.645607e-04
5.200000e+02 5.200000e+02 6.000000e+02 6.400000e+02 7.698270e-03 2.045640e-04
5.200000e+02 5.200000e+02 6.400000e+02 6.800000e+02 4.139850e-03 1.525699e-04
5.200000e+02 5.200000e+02 6.800000e+02 7.200000e+02 2.539690e-03 1.307608e-04
5.200000e+02 5.200000e+02 7.200000e+02 7.600000e+02 1.687820e-03 1.198704e-04
5.200000e+02 5.200000e+02 7.600000e+02 8.000000e+02 1.189110e-03 1.137670e-04
5.200000e+02 5.200000e+02 8.000000e+02 8.400000e+02 8.771970e-04 1.100569e-04
5.200000e+02 5.200000e+02 8.400000e+02 8.800000e+02 6.644400e-04 1.075768e-04
5.200000e+02 5.200000e+02 8.800000e+02 9.200000e+02 4.327750e-04 1.051860e-04
5.600000e+02 5.600000e+02 6.000000e+02 6.400000e+02 1.876480e-02 3.618374e-04
5.600000e+02 5.600000e+02 6.400000e+02 6.800000e+02 7.521690e-03 2.025489e-04
5.600000e+02 5.600000e+02 6.800000e+02 7.200000e+02 4.013680e-03 1.511265e-04
5.600000e+02 5.600000e+02 7.200000e+02 7.600000e+02 2.457010e-03 1.298134e-04
5.600000e+02 5.600000e+02 7.600000e+02 8.000000e+02 1.641300e-03 1.193394e-04
5.600000e+02 5.600000e+02 8.000000e+02 8.400000e+02 1.168710e-03 1.135390e-04
5.600000e+02 5.600000e+02 8.400000e+02 8.800000e+02 8.657950e-04 1.099366e-04
5.600000e+02 5.600000e+02 8.800000e+02 9.200000e+02 5.575880e-04 1.067118e-04
5.600000e+02 5.600000e+02 9.200000e+02 9.600000e+02 9.830600e-05 1.011966e-04
6.000000e+02 6.000000e+02 6.400000e+02 6.800000e+02 1.863960e-02 3.604130e-04
6.000000e+02 6.000000e+02 6.800000e+02 7.200000e+02 7.435780e-03 2.015618e-04
6.000000e+02 6.000000e+02 7.200000e+02 7.600000e+02 3.965310e-03 1.505661e-04
6.000000e+02 6.000000e+02 7.600000e+02 8.000000e+02 2.442400e-03 1.296426e-04
6.000000e+02 6.000000e+02 8.000000e+02 8.400000e+02 1.652150e-03 1.194660e-04
6.000000e+02 6.000000e+02 8.400000e+02 8.800000e+02 1.186320e-03 1.137506e-04
6.000000e+02 6.000000e+02 8.800000e+02 9.200000e+02 7.524330e-04 1.091159e-04
6.000000e+02 6.000000e+02 9.200000e+02 9.600000e+02 1.311600e-04 1.016066e-04
6.000000e+02 6.000000e+02 9.600000e+02 1.000000e+03 1.370860e-04 1.015254e-04
6.400000e+02 6.400000e+02 6.800000e+02 7.200000e+02 1.859090e-02 3.598448e-04
6.400000e+02 6.400000e+02 7.200000e+02 7.600000e+02 7.422920e-03 2.014015e-04
6.400000e+02 6.400000e+02 7.600000e+02 8.000000e+02 3.987550e-03 1.508125e-04
6.400000e+02 6.400000e+02 8.000000e+02 8.400000e+02 2.493010e-03 1.302229e-04
6.400000e+02 6.400000e+02 8.400000e+02 8.800000e+02 1.709810e-03 1.201395e-04
6.400000e+02 6.400000e+02 8.800000e+02 9.200000e+02 1.061310e-03 1.129863e-04
6.400000e+02 6.400000e+02 9.200000e+02 9.600000e+02 1.825910e-04 1.022565e-04
6.400000e+02 6.400000e+02 9.600000e+02 1.000000e+03 1.772200e-04 1.019901e-04
6.400000e+02 6.400000e+02 1.000000e+03 1.040000e+03 1.758080e-04 1.019620e-04
6.800000e+02 6.800000e+02 7.200000e+02 7.600000e+02 1.861820e-02 3.601381e-04
6.800000e+02 6.800000e+02 7.600000e+02 8.000000e+02 7.491490e-03 2.021743e-04
6.800000e+02 6.800000e+02 8.000000e+02 8.400000e+02 4.093150e-03 1.520232e-04
6.800000e+02 6.800000e+02 8.400000e+02 8.800000e+02 2.611450e-03 1.316036e-04
6.800000e+02 6.800000e+02 8.800000e+02 9.200000e+02 1.569020e-03 1.195087e-04
6.800000e+02 6.800000e+02 9.200000e+02 9.600000e+02 2.655830e-04 1.033263e-04
6.800000e+02 6.800000e+02 9.600000e+02 1.000000e+03 2.370450e-04 1.026884e-04
6.800000e+02 6.800000e+02 1.000000e+03 1.040000e+03 2.300430e-04 1.025915e-04
6.800000e+02 6.800000e+02 1.040000e+03 1.080000e+03 1.703430e-04 1.019049e-04
7.200000e+02 7.200000e+02 7.600000e+02 8.000000e+02 1.874970e-02 3.616280e-04
7.200000e+02 7.200000e+02 8.000000e+02 8.400000e+02 7.679470e-03 2.043353e-04
7.200000e+02 7.200000e+02 8.400000e+02 8.800000e+02 4.313090e-03 1.546004e-04
7.200000e+02 7.200000e+02 8.800000e+02 9.200000e+02 2.456700e-03 1.313725e-04
7.200000e+02 7.200000e+02 9.200000e+02 9.600000e+02 4.067210e-04 1.052037e-04
7.200000e+02 7.200000e+02 9.600000e+02 1.000000e+03 3.281940e-04 1.037666e-04
7.200000e+02 7.200000e+02 1.000000e+03 1.040000e+03 3.102060e-04 1.035298e-04
7.200000e+02 7.200000e+02 1.040000e+03 1.080000e+03 2.243930e-04 1.025329e-04
7.200000e+02 7.200000e+02 1.080000e+03 1.120000e+03 1.613910e-04 1.018074e-04
7.600000e+02 7.600000e+02 8.000000e+02 8.400000e+02 1.907180e-02 3.629864e-04
7.600000e+02 7.600000e+02 8.400000e+02 8.800000e+02 8.087110e-03 2.081983e-04
7.600000e+02 7.600000e+02 8.800000e+02 9.200000e+02 4.169100e-03 1.551197e-04
7.600000e+02 7.600000e+02 9.200000e+02 9.600000e+02 6.673730e-04 1.087611e-04
7.600000e+02 7.600000e+02 9.600000e+02 1.000000e+03 4.726200e-04 1.054640e-04
7.600000e+02 7.600000e+02 1.000000e+03 1.040000e+03 4.318260e-04 1.049288e-04
7.600000e+02 7.600000e+02 1.040000e+03 1.080000e+03 3.035780e-04 1.034300e-04
7.600000e+02 7.600000e+02 1.080000e+03 1.120000e+03 2.134420e-04 1.023910e-04
7.600000e+02 7.600000e+02 1.120000e+03 1.160000e+03 1.459980e-04 1.016212e-04
8.000000e+02 8.000000e+02 8.400000e+02 8.800000e+02 1.986530e-02 3.725269e-04
8.000000e+02 8.000000e+02 8.800000e+02 9.200000e+02 8.060720e-03 2.131742e-04
8.000000e+02 8.000000e+02 9.200000e+02 9.600000e+02 1.214790e-03 1.168034e-04
8.000000e+02 8.000000e+02 9.600000e+02 1.000000e+03 7.165130e-04 1.084968e-04
8.000000e+02 8.000000e+02 1.000000e+03 1.040000e+03 6.247460e-04 1.072518e-04
8.000000e+02 8.000000e+02 1.040000e+03 1.080000e+03 4.231240e-04 1.048386e-04
8.000000e+02 8.000000e+02 1.080000e+03 1.120000e+03 2.892700e-04 1.032726e-04
8.000000e+02 8.000000e+02 1.120000e+03 1.160000e+03 1.934370e-04 1.021683e-04
8.400000e+02 8.400000e+02 8.800000e+02 9.200000e+02 2.038510e-02 3.912738e-04
8.400000e+02 8.400000e+02 9.200000e+02 9.600000e+02 2.654280e-03 1.386408e-04
8.400000e+02 8.400000e+02 9.600000e+02 1.000000e+03 1.170870e-03 1.144700e-04
8.400000e+02 8.400000e+02 1.000000e+03 1.040000e+03 9.524550e-04 1.113517e-04
8.400000e+02 8.400000e+02 1.040000e+03 1.080000e+03 6.124800e-04 1.071236e-04
8.400000e+02 8.400000e+02 1.080000e+03 1.120000e+03 4.035790e-04 1.046216e-04
8.400000e+02 8.400000e+02 1.120000e+03 1.160000e+03 2.624710e-04 1.029722e-04
8.800000e+02 8.800000e+02 9.200000e+02 9.600000e+02 8.804060e-03 2.171587e-04
8.800000e+02 8.800000e+02 9.600000e+02 1.000000e+03 2.158930e-03 1.282763e-04
8.800000e+02 8.800000e+02 1.000000e+03 1.040000e+03 1.563470e-03 1.194463e-04
8.800000e+02 8.800000e+02 1.040000e+03 1.080000e+03 9.314900e-04 1.111259e-04
8.800000e+02 8.800000e+02 1.080000e+03 1.120000e+03 5.834130e-04 1.067965e-04
8.800000e+02 8.800000e+02 1.120000e+03 1.160000e+03 3.660430e-04 1.041972e-04
9.200000e+02 9.200000e+02 9.600000e+02 1.000000e+03 5.100800e-03 1.672293e-04
9.200000e+02 9.200000e+02 1.000000e+03 1.040000e+03 2.798410e-03 1.371182e-04
9.200000e+02 9.200000e+02 1.040000e+03 1.080000e+03 1.463010e-03 1.184032e-04
9.200000e+02 9.200000e+02 1.080000e+03 1.120000e+03 8.516570e-04 1.102887e-04
9.200000e+02 9.200000e+02 1.120000e+03 1.160000e+03 5.099430e-04 1.060073e-04
9.600000e+02 9.600000e+02 1.000000e+03 1.040000e+03 5.065130e-03 1.704459e-04
9.600000e+02 9.600000e+02 1.040000e+03 1.080000e+03 2.120460e-03 1.286383e-04
9.600000e+02 9.600000e+02 1.080000e+03 1.120000e+03 1.122450e-03 1.142730e-04
9.600000e+02 9.600000e+02 1.120000e+03 1.160000e+03 6.382340e-04 1.077896e-04
1.000000e+03 1.000000e+03 1.040000e+03 1.080000e+03 1.460590e-02 3.057350e-04
1.000000e+03 1.000000e+03 1.080000e+03 1.120000e+03 5.002950e-03 1.710195e-04
1.000000e+03 1.000000e+03 1.120000e+03 1.160000e+03 2.257870e-03 1.300949e-04
1.040000e+03 1.040000e+03 1.080000e+03 1.120000e+03 1.670000e-02 3.354771e-04
1.040000e+03 1.040000e+03 1.120000e+03 1.160000e+03 5.840630e-03 1.823299e-04
1.080000e+03 1.080000e+03 1.120000e+03 1.160000e+03 1.688390e-02 3.379402e-04
@@ -0,0 +1,301 @@
! GENERAL FORMAT
5.100000e+02 1.215100e+04 0.000000e+00 5.100000e+02 1.215100e+04 0.000000e+00 9
5.500000e+02 1.215100e+04 0.000000e+00 5.900000e+02 1.215100e+04 0.000000e+00 4.536103e-01 4.636103e-03
5.900000e+02 1.215100e+04 0.000000e+00 6.300000e+02 1.215100e+04 0.000000e+00 1.956283e-01 2.056283e-03
6.300000e+02 1.215100e+04 0.000000e+00 6.700000e+02 1.215100e+04 0.000000e+00 9.661533e-02 1.066153e-03
6.700000e+02 1.215100e+04 0.000000e+00 7.100000e+02 1.215100e+04 0.000000e+00 5.443205e-03 1.544321e-04
7.100000e+02 1.215100e+04 0.000000e+00 7.500000e+02 1.215100e+04 0.000000e+00 2.977518e-03 1.297752e-04
7.500000e+02 1.215100e+04 0.000000e+00 7.900000e+02 1.215100e+04 0.000000e+00 3.113318e-03 1.311332e-04
7.900000e+02 1.215100e+04 0.000000e+00 8.300000e+02 1.215100e+04 0.000000e+00 7.216380e-03 1.721638e-04
8.300000e+02 1.215100e+04 0.000000e+00 8.700000e+02 1.215100e+04 0.000000e+00 6.475000e-03 1.647500e-04
8.700000e+02 1.215100e+04 0.000000e+00 9.100000e+02 1.215100e+04 0.000000e+00 4.750858e-03 1.475086e-04
5.500000e+02 1.215100e+04 0.000000e+00 5.500000e+02 1.215100e+04 0.000000e+00 9
5.900000e+02 1.215100e+04 0.000000e+00 6.300000e+02 1.215100e+04 0.000000e+00 4.737093e-01 4.837093e-03
6.300000e+02 1.215100e+04 0.000000e+00 6.700000e+02 1.215100e+04 0.000000e+00 1.933017e-01 2.033017e-03
6.700000e+02 1.215100e+04 0.000000e+00 7.100000e+02 1.215100e+04 0.000000e+00 9.625111e-03 1.962511e-04
7.100000e+02 1.215100e+04 0.000000e+00 7.500000e+02 1.215100e+04 0.000000e+00 4.710170e-03 1.471017e-04
7.500000e+02 1.215100e+04 0.000000e+00 7.900000e+02 1.215100e+04 0.000000e+00 4.146907e-03 1.414691e-04
7.900000e+02 1.215100e+04 0.000000e+00 8.300000e+02 1.215100e+04 0.000000e+00 9.014465e-03 1.901446e-04
8.300000e+02 1.215100e+04 0.000000e+00 8.700000e+02 1.215100e+04 0.000000e+00 7.875920e-03 1.787592e-04
8.700000e+02 1.215100e+04 0.000000e+00 9.100000e+02 1.215100e+04 0.000000e+00 5.711976e-03 1.571198e-04
9.100000e+02 1.215100e+04 0.000000e+00 9.500000e+02 1.215100e+04 0.000000e+00 6.259850e-04 1.062599e-04
5.900000e+02 1.215100e+04 0.000000e+00 5.900000e+02 1.215100e+04 0.000000e+00 9
6.300000e+02 1.215100e+04 0.000000e+00 6.700000e+02 1.215100e+04 0.000000e+00 4.956306e-01 5.056306e-03
6.700000e+02 1.215100e+04 0.000000e+00 7.100000e+02 1.215100e+04 0.000000e+00 2.048511e-02 3.048511e-04
7.100000e+02 1.215100e+04 0.000000e+00 7.500000e+02 1.215100e+04 0.000000e+00 8.575637e-03 1.857564e-04
7.500000e+02 1.215100e+04 0.000000e+00 7.900000e+02 1.215100e+04 0.000000e+00 6.032524e-03 1.603252e-04
7.900000e+02 1.215100e+04 0.000000e+00 8.300000e+02 1.215100e+04 0.000000e+00 1.189394e-02 2.189394e-04
8.300000e+02 1.215100e+04 0.000000e+00 8.700000e+02 1.215100e+04 0.000000e+00 9.982800e-03 1.998280e-04
8.700000e+02 1.215100e+04 0.000000e+00 9.100000e+02 1.215100e+04 0.000000e+00 7.117008e-03 1.711701e-04
9.100000e+02 1.215100e+04 0.000000e+00 9.500000e+02 1.215100e+04 0.000000e+00 7.649935e-04 1.076499e-04
9.500000e+02 1.215100e+04 0.000000e+00 9.900000e+02 1.215100e+04 0.000000e+00 6.193333e-04 1.061933e-04
6.300000e+02 1.215100e+04 0.000000e+00 6.300000e+02 1.215100e+04 0.000000e+00 9
6.700000e+02 1.215100e+04 0.000000e+00 7.100000e+02 1.215100e+04 0.000000e+00 5.597631e-02 6.597631e-04
7.100000e+02 1.215100e+04 0.000000e+00 7.500000e+02 1.215100e+04 0.000000e+00 1.877787e-02 2.877787e-04
7.500000e+02 1.215100e+04 0.000000e+00 7.900000e+02 1.215100e+04 0.000000e+00 9.908609e-03 1.990861e-04
7.900000e+02 1.215100e+04 0.000000e+00 8.300000e+02 1.215100e+04 0.000000e+00 1.676287e-02 2.676287e-04
8.300000e+02 1.215100e+04 0.000000e+00 8.700000e+02 1.215100e+04 0.000000e+00 1.319428e-02 2.319428e-04
8.700000e+02 1.215100e+04 0.000000e+00 9.100000e+02 1.215100e+04 0.000000e+00 9.156663e-03 1.915666e-04
9.100000e+02 1.215100e+04 0.000000e+00 9.500000e+02 1.215100e+04 0.000000e+00 9.579451e-04 1.095795e-04
9.500000e+02 1.215100e+04 0.000000e+00 9.900000e+02 1.215100e+04 0.000000e+00 7.568666e-04 1.075687e-04
9.900000e+02 1.215100e+04 0.000000e+00 1.030000e+03 1.215100e+04 0.000000e+00 6.080823e-04 1.060808e-04
6.700000e+02 1.215100e+04 0.000000e+00 6.700000e+02 1.215100e+04 0.000000e+00 9
7.100000e+02 1.215100e+04 0.000000e+00 7.500000e+02 1.215100e+04 0.000000e+00 4.265271e-02 5.265271e-04
7.500000e+02 1.215100e+04 0.000000e+00 7.900000e+02 1.215100e+04 0.000000e+00 1.691741e-02 2.691741e-04
7.900000e+02 1.215100e+04 0.000000e+00 8.300000e+02 1.215100e+04 0.000000e+00 2.380462e-02 3.380462e-04
8.300000e+02 1.215100e+04 0.000000e+00 8.700000e+02 1.215100e+04 0.000000e+00 1.727048e-02 2.727048e-04
8.700000e+02 1.215100e+04 0.000000e+00 9.100000e+02 1.215100e+04 0.000000e+00 1.158363e-02 2.158363e-04
9.100000e+02 1.215100e+04 0.000000e+00 9.500000e+02 1.215100e+04 0.000000e+00 1.175287e-03 1.117529e-04
9.500000e+02 1.215100e+04 0.000000e+00 9.900000e+02 1.215100e+04 0.000000e+00 9.042510e-04 1.090425e-04
9.900000e+02 1.215100e+04 0.000000e+00 1.030000e+03 1.215100e+04 0.000000e+00 7.129196e-04 1.071292e-04
1.030000e+03 1.215100e+04 0.000000e+00 1.070000e+03 1.215100e+04 0.000000e+00 5.684553e-04 1.056846e-04
7.100000e+02 1.215100e+04 0.000000e+00 7.100000e+02 1.215100e+04 0.000000e+00 9
7.500000e+02 1.215100e+04 0.000000e+00 7.900000e+02 1.215100e+04 0.000000e+00 3.101272e-02 4.101272e-04
7.900000e+02 1.215100e+04 0.000000e+00 8.300000e+02 1.215100e+04 0.000000e+00 3.293247e-02 4.293247e-04
8.300000e+02 1.215100e+04 0.000000e+00 8.700000e+02 1.215100e+04 0.000000e+00 2.118536e-02 3.118536e-04
8.700000e+02 1.215100e+04 0.000000e+00 9.100000e+02 1.215100e+04 0.000000e+00 1.354928e-02 2.354928e-04
9.100000e+02 1.215100e+04 0.000000e+00 9.500000e+02 1.215100e+04 0.000000e+00 1.328240e-03 1.132824e-04
9.500000e+02 1.215100e+04 0.000000e+00 9.900000e+02 1.215100e+04 0.000000e+00 9.951781e-04 1.099518e-04
9.900000e+02 1.215100e+04 0.000000e+00 1.030000e+03 1.215100e+04 0.000000e+00 7.713268e-04 1.077133e-04
1.030000e+03 1.215100e+04 0.000000e+00 1.070000e+03 1.215100e+04 0.000000e+00 6.080769e-04 1.060808e-04
1.070000e+03 1.215100e+04 0.000000e+00 1.110000e+03 1.215100e+04 0.000000e+00 4.818454e-04 1.048185e-04
7.500000e+02 1.215100e+04 0.000000e+00 7.500000e+02 1.215100e+04 0.000000e+00 9
7.900000e+02 1.215100e+04 0.000000e+00 8.300000e+02 1.215100e+04 0.000000e+00 6.649140e-02 7.649140e-04
8.300000e+02 1.215100e+04 0.000000e+00 8.700000e+02 1.215100e+04 0.000000e+00 3.258335e-02 4.258335e-04
8.700000e+02 1.215100e+04 0.000000e+00 9.100000e+02 1.215100e+04 0.000000e+00 1.854898e-02 2.854898e-04
9.100000e+02 1.215100e+04 0.000000e+00 9.500000e+02 1.215100e+04 0.000000e+00 1.680085e-03 1.168008e-04
9.500000e+02 1.215100e+04 0.000000e+00 9.900000e+02 1.215100e+04 0.000000e+00 1.185559e-03 1.118556e-04
9.900000e+02 1.215100e+04 0.000000e+00 1.030000e+03 1.215100e+04 0.000000e+00 8.847441e-04 1.088474e-04
1.030000e+03 1.215100e+04 0.000000e+00 1.070000e+03 1.215100e+04 0.000000e+00 6.804673e-04 1.068047e-04
1.070000e+03 1.215100e+04 0.000000e+00 1.110000e+03 1.215100e+04 0.000000e+00 5.302990e-04 1.053030e-04
1.110000e+03 1.215100e+04 0.000000e+00 1.150000e+03 1.215100e+04 0.000000e+00 4.148104e-04 1.041481e-04
7.900000e+02 1.215100e+04 0.000000e+00 7.900000e+02 1.215100e+04 0.000000e+00 9
8.300000e+02 1.215100e+04 0.000000e+00 8.700000e+02 1.215100e+04 0.000000e+00 1.578256e-01 1.678256e-03
8.700000e+02 1.215100e+04 0.000000e+00 9.100000e+02 1.215100e+04 0.000000e+00 6.200859e-02 7.200859e-04
9.100000e+02 1.215100e+04 0.000000e+00 9.500000e+02 1.215100e+04 0.000000e+00 4.339120e-03 1.433912e-04
9.500000e+02 1.215100e+04 0.000000e+00 9.900000e+02 1.215100e+04 0.000000e+00 2.478341e-03 1.247834e-04
9.900000e+02 1.215100e+04 0.000000e+00 1.030000e+03 1.215100e+04 0.000000e+00 1.605665e-03 1.160567e-04
1.030000e+03 1.215100e+04 0.000000e+00 1.070000e+03 1.215100e+04 0.000000e+00 1.123502e-03 1.112350e-04
1.070000e+03 1.215100e+04 0.000000e+00 1.110000e+03 1.215100e+04 0.000000e+00 8.210704e-04 1.082107e-04
1.110000e+03 1.215100e+04 0.000000e+00 1.150000e+03 1.215100e+04 0.000000e+00 6.139691e-04 1.061397e-04
1.150000e+03 1.215100e+04 0.000000e+00 1.190000e+03 1.215100e+04 0.000000e+00 4.652759e-04 1.046528e-04
8.300000e+02 1.215100e+04 0.000000e+00 8.300000e+02 1.215100e+04 0.000000e+00 9
8.700000e+02 1.215100e+04 0.000000e+00 9.100000e+02 1.215100e+04 0.000000e+00 2.808898e-01 2.908898e-03
9.100000e+02 1.215100e+04 0.000000e+00 9.500000e+02 1.215100e+04 0.000000e+00 1.592369e-02 2.592369e-04
9.500000e+02 1.215100e+04 0.000000e+00 9.900000e+02 1.215100e+04 0.000000e+00 7.543011e-03 1.754301e-04
9.900000e+02 1.215100e+04 0.000000e+00 1.030000e+03 1.215100e+04 0.000000e+00 4.240833e-03 1.424083e-04
1.030000e+03 1.215100e+04 0.000000e+00 1.070000e+03 1.215100e+04 0.000000e+00 2.671738e-03 1.267174e-04
1.070000e+03 1.215100e+04 0.000000e+00 1.110000e+03 1.215100e+04 0.000000e+00 1.808136e-03 1.180814e-04
1.110000e+03 1.215100e+04 0.000000e+00 1.150000e+03 1.215100e+04 0.000000e+00 1.277382e-03 1.127738e-04
1.150000e+03 1.215100e+04 0.000000e+00 1.190000e+03 1.215100e+04 0.000000e+00 9.267469e-04 1.092675e-04
1.190000e+03 1.215100e+04 0.000000e+00 1.230000e+03 1.215100e+04 0.000000e+00 6.861838e-04 1.068618e-04
8.700000e+02 1.215100e+04 0.000000e+00 8.700000e+02 1.215100e+04 0.000000e+00 9
9.100000e+02 1.215100e+04 0.000000e+00 9.500000e+02 1.215100e+04 0.000000e+00 4.641363e-02 5.641363e-04
9.500000e+02 1.215100e+04 0.000000e+00 9.900000e+02 1.215100e+04 0.000000e+00 1.769581e-02 2.769581e-04
9.900000e+02 1.215100e+04 0.000000e+00 1.030000e+03 1.215100e+04 0.000000e+00 8.621103e-03 1.862110e-04
1.030000e+03 1.215100e+04 0.000000e+00 1.070000e+03 1.215100e+04 0.000000e+00 4.936600e-03 1.493660e-04
1.070000e+03 1.215100e+04 0.000000e+00 1.110000e+03 1.215100e+04 0.000000e+00 3.134506e-03 1.313451e-04
1.110000e+03 1.215100e+04 0.000000e+00 1.150000e+03 1.215100e+04 0.000000e+00 2.120500e-03 1.212050e-04
1.150000e+03 1.215100e+04 0.000000e+00 1.190000e+03 1.215100e+04 0.000000e+00 1.491948e-03 1.149195e-04
1.190000e+03 1.215100e+04 0.000000e+00 1.230000e+03 1.215100e+04 0.000000e+00 1.079403e-03 1.107940e-04
1.230000e+03 1.215100e+04 0.000000e+00 1.270000e+03 1.215100e+04 0.000000e+00 8.007966e-04 1.080080e-04
9.100000e+02 1.215100e+04 0.000000e+00 9.100000e+02 1.215100e+04 0.000000e+00 9
9.500000e+02 1.215100e+04 0.000000e+00 9.900000e+02 1.215100e+04 0.000000e+00 3.878789e-02 4.878789e-04
9.900000e+02 1.215100e+04 0.000000e+00 1.030000e+03 1.215100e+04 0.000000e+00 1.570287e-02 2.570287e-04
1.030000e+03 1.215100e+04 0.000000e+00 1.070000e+03 1.215100e+04 0.000000e+00 7.998542e-03 1.799854e-04
1.070000e+03 1.215100e+04 0.000000e+00 1.110000e+03 1.215100e+04 0.000000e+00 4.715645e-03 1.471565e-04
1.110000e+03 1.215100e+04 0.000000e+00 1.150000e+03 1.215100e+04 0.000000e+00 3.043004e-03 1.304300e-04
1.150000e+03 1.215100e+04 0.000000e+00 1.190000e+03 1.215100e+04 0.000000e+00 2.075749e-03 1.207575e-04
1.190000e+03 1.215100e+04 0.000000e+00 1.230000e+03 1.215100e+04 0.000000e+00 1.469917e-03 1.146992e-04
1.230000e+03 1.215100e+04 0.000000e+00 1.270000e+03 1.215100e+04 0.000000e+00 1.073330e-03 1.107333e-04
1.270000e+03 1.215100e+04 0.000000e+00 1.310000e+03 1.215100e+04 0.000000e+00 8.070689e-04 1.080707e-04
9.500000e+02 1.215100e+04 0.000000e+00 9.500000e+02 1.215100e+04 0.000000e+00 9
9.900000e+02 1.215100e+04 0.000000e+00 1.030000e+03 1.215100e+04 0.000000e+00 2.913833e-02 3.913833e-04
1.030000e+03 1.215100e+04 0.000000e+00 1.070000e+03 1.215100e+04 0.000000e+00 1.196402e-02 2.196402e-04
1.070000e+03 1.215100e+04 0.000000e+00 1.110000e+03 1.215100e+04 0.000000e+00 6.215752e-03 1.621575e-04
1.110000e+03 1.215100e+04 0.000000e+00 1.150000e+03 1.215100e+04 0.000000e+00 3.724292e-03 1.372429e-04
1.150000e+03 1.215100e+04 0.000000e+00 1.190000e+03 1.215100e+04 0.000000e+00 2.430992e-03 1.243099e-04
1.190000e+03 1.215100e+04 0.000000e+00 1.230000e+03 1.215100e+04 0.000000e+00 1.675270e-03 1.167527e-04
1.230000e+03 1.215100e+04 0.000000e+00 1.270000e+03 1.215100e+04 0.000000e+00 1.201692e-03 1.120169e-04
1.270000e+03 1.215100e+04 0.000000e+00 1.310000e+03 1.215100e+04 0.000000e+00 8.925612e-04 1.089256e-04
1.310000e+03 1.215100e+04 0.000000e+00 1.350000e+03 1.215100e+04 0.000000e+00 6.833048e-04 1.068330e-04
9.900000e+02 1.215100e+04 0.000000e+00 9.900000e+02 1.215100e+04 0.000000e+00 9
1.030000e+03 1.215100e+04 0.000000e+00 1.070000e+03 1.215100e+04 0.000000e+00 2.703944e-02 3.703944e-04
1.070000e+03 1.215100e+04 0.000000e+00 1.110000e+03 1.215100e+04 0.000000e+00 1.085234e-02 2.085234e-04
1.110000e+03 1.215100e+04 0.000000e+00 1.150000e+03 1.215100e+04 0.000000e+00 5.538480e-03 1.553848e-04
1.150000e+03 1.215100e+04 0.000000e+00 1.190000e+03 1.215100e+04 0.000000e+00 3.276154e-03 1.327615e-04
1.190000e+03 1.215100e+04 0.000000e+00 1.230000e+03 1.215100e+04 0.000000e+00 2.123985e-03 1.212398e-04
1.230000e+03 1.215100e+04 0.000000e+00 1.270000e+03 1.215100e+04 0.000000e+00 1.464765e-03 1.146476e-04
1.270000e+03 1.215100e+04 0.000000e+00 1.310000e+03 1.215100e+04 0.000000e+00 1.059450e-03 1.105945e-04
1.310000e+03 1.215100e+04 0.000000e+00 1.350000e+03 1.215100e+04 0.000000e+00 7.964537e-04 1.079645e-04
1.350000e+03 1.215100e+04 0.000000e+00 1.390000e+03 1.215100e+04 0.000000e+00 6.110337e-04 1.061103e-04
1.030000e+03 1.215100e+04 0.000000e+00 1.030000e+03 1.215100e+04 0.000000e+00 9
1.070000e+03 1.215100e+04 0.000000e+00 1.110000e+03 1.215100e+04 0.000000e+00 2.645607e-02 3.645607e-04
1.110000e+03 1.215100e+04 0.000000e+00 1.150000e+03 1.215100e+04 0.000000e+00 1.045640e-02 2.045640e-04
1.150000e+03 1.215100e+04 0.000000e+00 1.190000e+03 1.215100e+04 0.000000e+00 5.256994e-03 1.525699e-04
1.190000e+03 1.215100e+04 0.000000e+00 1.230000e+03 1.215100e+04 0.000000e+00 3.076076e-03 1.307608e-04
1.230000e+03 1.215100e+04 0.000000e+00 1.270000e+03 1.215100e+04 0.000000e+00 1.987042e-03 1.198704e-04
1.270000e+03 1.215100e+04 0.000000e+00 1.310000e+03 1.215100e+04 0.000000e+00 1.376699e-03 1.137670e-04
1.310000e+03 1.215100e+04 0.000000e+00 1.350000e+03 1.215100e+04 0.000000e+00 1.005689e-03 1.100569e-04
1.350000e+03 1.215100e+04 0.000000e+00 1.390000e+03 1.215100e+04 0.000000e+00 7.576795e-04 1.075768e-04
1.390000e+03 1.215100e+04 0.000000e+00 1.430000e+03 1.215100e+04 0.000000e+00 5.186000e-04 1.051860e-04
1.070000e+03 1.215100e+04 0.000000e+00 1.070000e+03 1.215100e+04 0.000000e+00 9
1.110000e+03 1.215100e+04 0.000000e+00 1.150000e+03 1.215100e+04 0.000000e+00 2.618374e-02 3.618374e-04
1.150000e+03 1.215100e+04 0.000000e+00 1.190000e+03 1.215100e+04 0.000000e+00 1.025489e-02 2.025489e-04
1.190000e+03 1.215100e+04 0.000000e+00 1.230000e+03 1.215100e+04 0.000000e+00 5.112650e-03 1.511265e-04
1.230000e+03 1.215100e+04 0.000000e+00 1.270000e+03 1.215100e+04 0.000000e+00 2.981344e-03 1.298134e-04
1.270000e+03 1.215100e+04 0.000000e+00 1.310000e+03 1.215100e+04 0.000000e+00 1.933940e-03 1.193394e-04
1.310000e+03 1.215100e+04 0.000000e+00 1.350000e+03 1.215100e+04 0.000000e+00 1.353895e-03 1.135390e-04
1.350000e+03 1.215100e+04 0.000000e+00 1.390000e+03 1.215100e+04 0.000000e+00 9.936591e-04 1.099366e-04
1.390000e+03 1.215100e+04 0.000000e+00 1.430000e+03 1.215100e+04 0.000000e+00 6.711771e-04 1.067118e-04
1.430000e+03 1.215100e+04 0.000000e+00 1.470000e+03 1.215100e+04 0.000000e+00 1.196590e-04 1.011966e-04
1.110000e+03 1.215100e+04 0.000000e+00 1.110000e+03 1.215100e+04 0.000000e+00 9
1.150000e+03 1.215100e+04 0.000000e+00 1.190000e+03 1.215100e+04 0.000000e+00 2.604130e-02 3.604130e-04
1.190000e+03 1.215100e+04 0.000000e+00 1.230000e+03 1.215100e+04 0.000000e+00 1.015618e-02 2.015618e-04
1.230000e+03 1.215100e+04 0.000000e+00 1.270000e+03 1.215100e+04 0.000000e+00 5.056610e-03 1.505661e-04
1.270000e+03 1.215100e+04 0.000000e+00 1.310000e+03 1.215100e+04 0.000000e+00 2.964264e-03 1.296426e-04
1.310000e+03 1.215100e+04 0.000000e+00 1.350000e+03 1.215100e+04 0.000000e+00 1.946604e-03 1.194660e-04
1.350000e+03 1.215100e+04 0.000000e+00 1.390000e+03 1.215100e+04 0.000000e+00 1.375056e-03 1.137506e-04
1.390000e+03 1.215100e+04 0.000000e+00 1.430000e+03 1.215100e+04 0.000000e+00 9.115939e-04 1.091159e-04
1.430000e+03 1.215100e+04 0.000000e+00 1.470000e+03 1.215100e+04 0.000000e+00 1.606589e-04 1.016066e-04
1.470000e+03 1.215100e+04 0.000000e+00 1.510000e+03 1.215100e+04 0.000000e+00 1.525385e-04 1.015254e-04
1.150000e+03 1.215100e+04 0.000000e+00 1.150000e+03 1.215100e+04 0.000000e+00 9
1.190000e+03 1.215100e+04 0.000000e+00 1.230000e+03 1.215100e+04 0.000000e+00 2.598448e-02 3.598448e-04
1.230000e+03 1.215100e+04 0.000000e+00 1.270000e+03 1.215100e+04 0.000000e+00 1.014015e-02 2.014015e-04
1.270000e+03 1.215100e+04 0.000000e+00 1.310000e+03 1.215100e+04 0.000000e+00 5.081253e-03 1.508125e-04
1.310000e+03 1.215100e+04 0.000000e+00 1.350000e+03 1.215100e+04 0.000000e+00 3.022289e-03 1.302229e-04
1.350000e+03 1.215100e+04 0.000000e+00 1.390000e+03 1.215100e+04 0.000000e+00 2.013954e-03 1.201395e-04
1.390000e+03 1.215100e+04 0.000000e+00 1.430000e+03 1.215100e+04 0.000000e+00 1.298628e-03 1.129863e-04
1.430000e+03 1.215100e+04 0.000000e+00 1.470000e+03 1.215100e+04 0.000000e+00 2.256474e-04 1.022565e-04
1.470000e+03 1.215100e+04 0.000000e+00 1.510000e+03 1.215100e+04 0.000000e+00 1.990072e-04 1.019901e-04
1.510000e+03 1.215100e+04 0.000000e+00 1.550000e+03 1.215100e+04 0.000000e+00 1.962003e-04 1.019620e-04
1.190000e+03 1.215100e+04 0.000000e+00 1.190000e+03 1.215100e+04 0.000000e+00 9
1.230000e+03 1.215100e+04 0.000000e+00 1.270000e+03 1.215100e+04 0.000000e+00 2.601381e-02 3.601381e-04
1.270000e+03 1.215100e+04 0.000000e+00 1.310000e+03 1.215100e+04 0.000000e+00 1.021743e-02 2.021743e-04
1.310000e+03 1.215100e+04 0.000000e+00 1.350000e+03 1.215100e+04 0.000000e+00 5.202320e-03 1.520232e-04
1.350000e+03 1.215100e+04 0.000000e+00 1.390000e+03 1.215100e+04 0.000000e+00 3.160360e-03 1.316036e-04
1.390000e+03 1.215100e+04 0.000000e+00 1.430000e+03 1.215100e+04 0.000000e+00 1.950870e-03 1.195087e-04
1.430000e+03 1.215100e+04 0.000000e+00 1.470000e+03 1.215100e+04 0.000000e+00 3.326250e-04 1.033263e-04
1.470000e+03 1.215100e+04 0.000000e+00 1.510000e+03 1.215100e+04 0.000000e+00 2.688421e-04 1.026884e-04
1.510000e+03 1.215100e+04 0.000000e+00 1.550000e+03 1.215100e+04 0.000000e+00 2.591515e-04 1.025915e-04
1.550000e+03 1.215100e+04 0.000000e+00 1.590000e+03 1.215100e+04 0.000000e+00 1.904861e-04 1.019049e-04
1.230000e+03 1.215100e+04 0.000000e+00 1.230000e+03 1.215100e+04 0.000000e+00 9
1.270000e+03 1.215100e+04 0.000000e+00 1.310000e+03 1.215100e+04 0.000000e+00 2.616280e-02 3.616280e-04
1.310000e+03 1.215100e+04 0.000000e+00 1.350000e+03 1.215100e+04 0.000000e+00 1.043353e-02 2.043353e-04
1.350000e+03 1.215100e+04 0.000000e+00 1.390000e+03 1.215100e+04 0.000000e+00 5.460042e-03 1.546004e-04
1.390000e+03 1.215100e+04 0.000000e+00 1.430000e+03 1.215100e+04 0.000000e+00 3.137251e-03 1.313725e-04
1.430000e+03 1.215100e+04 0.000000e+00 1.470000e+03 1.215100e+04 0.000000e+00 5.203728e-04 1.052037e-04
1.470000e+03 1.215100e+04 0.000000e+00 1.510000e+03 1.215100e+04 0.000000e+00 3.766559e-04 1.037666e-04
1.510000e+03 1.215100e+04 0.000000e+00 1.550000e+03 1.215100e+04 0.000000e+00 3.529782e-04 1.035298e-04
1.550000e+03 1.215100e+04 0.000000e+00 1.590000e+03 1.215100e+04 0.000000e+00 2.532919e-04 1.025329e-04
1.590000e+03 1.215100e+04 0.000000e+00 1.630000e+03 1.215100e+04 0.000000e+00 1.807361e-04 1.018074e-04
1.270000e+03 1.215100e+04 0.000000e+00 1.270000e+03 1.215100e+04 0.000000e+00 9
1.310000e+03 1.215100e+04 0.000000e+00 1.350000e+03 1.215100e+04 0.000000e+00 2.629864e-02 3.629864e-04
1.350000e+03 1.215100e+04 0.000000e+00 1.390000e+03 1.215100e+04 0.000000e+00 1.081983e-02 2.081983e-04
1.390000e+03 1.215100e+04 0.000000e+00 1.430000e+03 1.215100e+04 0.000000e+00 5.511974e-03 1.551197e-04
1.430000e+03 1.215100e+04 0.000000e+00 1.470000e+03 1.215100e+04 0.000000e+00 8.761073e-04 1.087611e-04
1.470000e+03 1.215100e+04 0.000000e+00 1.510000e+03 1.215100e+04 0.000000e+00 5.463970e-04 1.054640e-04
1.510000e+03 1.215100e+04 0.000000e+00 1.550000e+03 1.215100e+04 0.000000e+00 4.928757e-04 1.049288e-04
1.550000e+03 1.215100e+04 0.000000e+00 1.590000e+03 1.215100e+04 0.000000e+00 3.429987e-04 1.034300e-04
1.590000e+03 1.215100e+04 0.000000e+00 1.630000e+03 1.215100e+04 0.000000e+00 2.390966e-04 1.023910e-04
1.630000e+03 1.215100e+04 0.000000e+00 1.670000e+03 1.215100e+04 0.000000e+00 1.621222e-04 1.016212e-04
1.310000e+03 1.215100e+04 0.000000e+00 1.310000e+03 1.215100e+04 0.000000e+00 8
1.350000e+03 1.215100e+04 0.000000e+00 1.390000e+03 1.215100e+04 0.000000e+00 2.725269e-02 3.725269e-04
1.390000e+03 1.215100e+04 0.000000e+00 1.430000e+03 1.215100e+04 0.000000e+00 1.131742e-02 2.131742e-04
1.430000e+03 1.215100e+04 0.000000e+00 1.470000e+03 1.215100e+04 0.000000e+00 1.680339e-03 1.168034e-04
1.470000e+03 1.215100e+04 0.000000e+00 1.510000e+03 1.215100e+04 0.000000e+00 8.496814e-04 1.084968e-04
1.510000e+03 1.215100e+04 0.000000e+00 1.550000e+03 1.215100e+04 0.000000e+00 7.251771e-04 1.072518e-04
1.550000e+03 1.215100e+04 0.000000e+00 1.590000e+03 1.215100e+04 0.000000e+00 4.838564e-04 1.048386e-04
1.590000e+03 1.215100e+04 0.000000e+00 1.630000e+03 1.215100e+04 0.000000e+00 3.272610e-04 1.032726e-04
1.630000e+03 1.215100e+04 0.000000e+00 1.670000e+03 1.215100e+04 0.000000e+00 2.168282e-04 1.021683e-04
1.350000e+03 1.215100e+04 0.000000e+00 1.350000e+03 1.215100e+04 0.000000e+00 7
1.390000e+03 1.215100e+04 0.000000e+00 1.430000e+03 1.215100e+04 0.000000e+00 2.912738e-02 3.912738e-04
1.430000e+03 1.215100e+04 0.000000e+00 1.470000e+03 1.215100e+04 0.000000e+00 3.864081e-03 1.386408e-04
1.470000e+03 1.215100e+04 0.000000e+00 1.510000e+03 1.215100e+04 0.000000e+00 1.447001e-03 1.144700e-04
1.510000e+03 1.215100e+04 0.000000e+00 1.550000e+03 1.215100e+04 0.000000e+00 1.135173e-03 1.113517e-04
1.550000e+03 1.215100e+04 0.000000e+00 1.590000e+03 1.215100e+04 0.000000e+00 7.123625e-04 1.071236e-04
1.590000e+03 1.215100e+04 0.000000e+00 1.630000e+03 1.215100e+04 0.000000e+00 4.621593e-04 1.046216e-04
1.630000e+03 1.215100e+04 0.000000e+00 1.670000e+03 1.215100e+04 0.000000e+00 2.972157e-04 1.029722e-04
1.390000e+03 1.215100e+04 0.000000e+00 1.390000e+03 1.215100e+04 0.000000e+00 6
1.430000e+03 1.215100e+04 0.000000e+00 1.470000e+03 1.215100e+04 0.000000e+00 1.171587e-02 2.171587e-04
1.470000e+03 1.215100e+04 0.000000e+00 1.510000e+03 1.215100e+04 0.000000e+00 2.827625e-03 1.282763e-04
1.510000e+03 1.215100e+04 0.000000e+00 1.550000e+03 1.215100e+04 0.000000e+00 1.944627e-03 1.194463e-04
1.550000e+03 1.215100e+04 0.000000e+00 1.590000e+03 1.215100e+04 0.000000e+00 1.112595e-03 1.111259e-04
1.590000e+03 1.215100e+04 0.000000e+00 1.630000e+03 1.215100e+04 0.000000e+00 6.796523e-04 1.067965e-04
1.630000e+03 1.215100e+04 0.000000e+00 1.670000e+03 1.215100e+04 0.000000e+00 4.197216e-04 1.041972e-04
1.430000e+03 1.215100e+04 0.000000e+00 1.430000e+03 1.215100e+04 0.000000e+00 5
1.470000e+03 1.215100e+04 0.000000e+00 1.510000e+03 1.215100e+04 0.000000e+00 6.722928e-03 1.672293e-04
1.510000e+03 1.215100e+04 0.000000e+00 1.550000e+03 1.215100e+04 0.000000e+00 3.711820e-03 1.371182e-04
1.550000e+03 1.215100e+04 0.000000e+00 1.590000e+03 1.215100e+04 0.000000e+00 1.840319e-03 1.184032e-04
1.590000e+03 1.215100e+04 0.000000e+00 1.630000e+03 1.215100e+04 0.000000e+00 1.028874e-03 1.102887e-04
1.630000e+03 1.215100e+04 0.000000e+00 1.670000e+03 1.215100e+04 0.000000e+00 6.007261e-04 1.060073e-04
1.470000e+03 1.215100e+04 0.000000e+00 1.470000e+03 1.215100e+04 0.000000e+00 4
1.510000e+03 1.215100e+04 0.000000e+00 1.550000e+03 1.215100e+04 0.000000e+00 7.044588e-03 1.704459e-04
1.550000e+03 1.215100e+04 0.000000e+00 1.590000e+03 1.215100e+04 0.000000e+00 2.863830e-03 1.286383e-04
1.590000e+03 1.215100e+04 0.000000e+00 1.630000e+03 1.215100e+04 0.000000e+00 1.427305e-03 1.142730e-04
1.630000e+03 1.215100e+04 0.000000e+00 1.670000e+03 1.215100e+04 0.000000e+00 7.789635e-04 1.077896e-04
1.510000e+03 1.215100e+04 0.000000e+00 1.510000e+03 1.215100e+04 0.000000e+00 3
1.550000e+03 1.215100e+04 0.000000e+00 1.590000e+03 1.215100e+04 0.000000e+00 2.057350e-02 3.057350e-04
1.590000e+03 1.215100e+04 0.000000e+00 1.630000e+03 1.215100e+04 0.000000e+00 7.101947e-03 1.710195e-04
1.630000e+03 1.215100e+04 0.000000e+00 1.670000e+03 1.215100e+04 0.000000e+00 3.009493e-03 1.300949e-04
1.550000e+03 1.215100e+04 0.000000e+00 1.550000e+03 1.215100e+04 0.000000e+00 2
1.590000e+03 1.215100e+04 0.000000e+00 1.630000e+03 1.215100e+04 0.000000e+00 2.354771e-02 3.354771e-04
1.630000e+03 1.215100e+04 0.000000e+00 1.670000e+03 1.215100e+04 0.000000e+00 8.232986e-03 1.823299e-04
1.590000e+03 1.215100e+04 0.000000e+00 1.590000e+03 1.215100e+04 0.000000e+00 1
1.630000e+03 1.215100e+04 0.000000e+00 1.670000e+03 1.215100e+04 0.000000e+00 2.379402e-02 3.379402e-04
+273
View File
@@ -0,0 +1,273 @@
! dc data
5.100000E+02 1.215100E+04 0.000000E+00 5.100000E+02 1.215100E+04 0.000000E+00 9
5.500000E+02 1.215100E+04 0.000000E+00 5.900000E+02 1.215100E+04 0.000000E+00 3.13469E-01 6.34653E-03
5.900000E+02 1.215100E+04 0.000000E+00 6.300000E+02 1.215100E+04 0.000000E+00 1.38827E-01 4.77678E-03
6.300000E+02 1.215100E+04 0.000000E+00 6.700000E+02 1.215100E+04 0.000000E+00 7.06585E-02 4.69261E-03
6.700000E+02 1.215100E+04 0.000000E+00 7.100000E+02 1.215100E+04 0.000000E+00 4.18814E-03 4.75017E-02
7.100000E+02 1.215100E+04 0.000000E+00 7.500000E+02 1.215100E+04 0.000000E+00 2.41516E-03 5.49152E-02
7.500000E+02 1.215100E+04 0.000000E+00 7.900000E+02 1.215100E+04 0.000000E+00 2.73989E-03 3.45762E-02
7.900000E+02 1.215100E+04 0.000000E+00 8.300000E+02 1.215100E+04 0.000000E+00 6.53041E-03 1.08801E-02
8.300000E+02 1.215100E+04 0.000000E+00 8.700000E+02 1.215100E+04 0.000000E+00 5.93260E-03 9.31499E-03
8.700000E+02 1.215100E+04 0.000000E+00 9.100000E+02 1.215100E+04 0.000000E+00 4.37841E-03 1.00972E-02
5.500000E+02 1.215100E+04 0.000000E+00 5.500000E+02 1.215100E+04 0.000000E+00 9
5.900000E+02 1.215100E+04 0.000000E+00 6.300000E+02 1.215100E+04 0.000000E+00 3.31153E-01 6.00761E-03
6.300000E+02 1.215100E+04 0.000000E+00 6.700000E+02 1.215100E+04 0.000000E+00 1.34604E-01 4.92665E-03
6.700000E+02 1.215100E+04 0.000000E+00 7.100000E+02 1.215100E+04 0.000000E+00 7.11468E-03 4.66040E-02
7.100000E+02 1.215100E+04 0.000000E+00 7.500000E+02 1.215100E+04 0.000000E+00 3.71282E-03 5.35829E-02
7.500000E+02 1.215100E+04 0.000000E+00 7.900000E+02 1.215100E+04 0.000000E+00 3.59002E-03 3.69439E-02
7.900000E+02 1.215100E+04 0.000000E+00 8.300000E+02 1.215100E+04 0.000000E+00 8.08873E-03 1.17120E-02
8.300000E+02 1.215100E+04 0.000000E+00 8.700000E+02 1.215100E+04 0.000000E+00 7.17608E-03 9.90113E-03
8.700000E+02 1.215100E+04 0.000000E+00 9.100000E+02 1.215100E+04 0.000000E+00 5.24072E-03 1.05448E-02
9.100000E+02 1.215100E+04 0.000000E+00 9.500000E+02 1.215100E+04 0.000000E+00 5.80316E-04 7.61821E-02
5.900000E+02 1.215100E+04 0.000000E+00 5.900000E+02 1.215100E+04 0.000000E+00 9
6.300000E+02 1.215100E+04 0.000000E+00 6.700000E+02 1.215100E+04 0.000000E+00 3.38777E-01 5.87241E-03
6.700000E+02 1.215100E+04 0.000000E+00 7.100000E+02 1.215100E+04 0.000000E+00 1.41779E-02 4.67732E-02
7.100000E+02 1.215100E+04 0.000000E+00 7.500000E+02 1.215100E+04 0.000000E+00 6.36352E-03 5.21052E-02
7.500000E+02 1.215100E+04 0.000000E+00 7.900000E+02 1.215100E+04 0.000000E+00 5.00863E-03 3.97201E-02
7.900000E+02 1.215100E+04 0.000000E+00 8.300000E+02 1.215100E+04 0.000000E+00 1.03904E-02 1.27645E-02
8.300000E+02 1.215100E+04 0.000000E+00 8.700000E+02 1.215100E+04 0.000000E+00 8.90594E-03 1.06373E-02
8.700000E+02 1.215100E+04 0.000000E+00 9.100000E+02 1.215100E+04 0.000000E+00 6.40731E-03 1.10891E-02
9.100000E+02 1.215100E+04 0.000000E+00 9.500000E+02 1.215100E+04 0.000000E+00 6.96759E-04 7.93131E-02
9.500000E+02 1.215100E+04 0.000000E+00 9.900000E+02 1.215100E+04 0.000000E+00 5.70670E-04 7.74698E-02
6.300000E+02 1.215100E+04 0.000000E+00 6.300000E+02 1.215100E+04 0.000000E+00 9
6.700000E+02 1.215100E+04 0.000000E+00 7.100000E+02 1.215100E+04 0.000000E+00 3.84747E-02 5.17076E-02
7.100000E+02 1.215100E+04 0.000000E+00 7.500000E+02 1.215100E+04 0.000000E+00 1.29512E-02 5.12036E-02
7.500000E+02 1.215100E+04 0.000000E+00 7.900000E+02 1.215100E+04 0.000000E+00 7.71709E-03 4.29660E-02
7.900000E+02 1.215100E+04 0.000000E+00 8.300000E+02 1.215100E+04 0.000000E+00 1.40850E-02 1.41245E-02
8.300000E+02 1.215100E+04 0.000000E+00 8.700000E+02 1.215100E+04 0.000000E+00 1.14491E-02 1.15842E-02
8.700000E+02 1.215100E+04 0.000000E+00 9.100000E+02 1.215100E+04 0.000000E+00 8.05298E-03 1.17640E-02
9.100000E+02 1.215100E+04 0.000000E+00 9.500000E+02 1.215100E+04 0.000000E+00 8.54543E-04 8.31454E-02
9.500000E+02 1.215100E+04 0.000000E+00 9.900000E+02 1.215100E+04 0.000000E+00 6.84297E-04 8.07575E-02
9.900000E+02 1.215100E+04 0.000000E+00 1.030000E+03 1.215100E+04 0.000000E+00 5.55272E-04 7.96181E-02
6.700000E+02 1.215100E+04 0.000000E+00 6.700000E+02 1.215100E+04 0.000000E+00 9
7.100000E+02 1.215100E+04 0.000000E+00 7.500000E+02 1.215100E+04 0.000000E+00 2.89383E-02 6.87475E-02
7.500000E+02 1.215100E+04 0.000000E+00 7.900000E+02 1.215100E+04 0.000000E+00 1.22791E-02 5.40059E-02
7.900000E+02 1.215100E+04 0.000000E+00 8.300000E+02 1.215100E+04 0.000000E+00 1.90698E-02 1.73873E-02
8.300000E+02 1.215100E+04 0.000000E+00 8.700000E+02 1.215100E+04 0.000000E+00 1.45174E-02 1.37038E-02
8.700000E+02 1.215100E+04 0.000000E+00 9.100000E+02 1.215100E+04 0.000000E+00 9.93506E-03 1.33496E-02
9.100000E+02 1.215100E+04 0.000000E+00 9.500000E+02 1.215100E+04 0.000000E+00 1.02653E-03 9.22863E-02
9.500000E+02 1.215100E+04 0.000000E+00 9.900000E+02 1.215100E+04 0.000000E+00 8.02695E-04 8.85160E-02
9.900000E+02 1.215100E+04 0.000000E+00 1.030000E+03 1.215100E+04 0.000000E+00 6.40236E-04 8.63153E-02
1.030000E+03 1.215100E+04 0.000000E+00 1.070000E+03 1.215100E+04 0.000000E+00 5.14572E-04 8.59154E-02
7.100000E+02 1.215100E+04 0.000000E+00 7.100000E+02 1.215100E+04 0.000000E+00 9
7.500000E+02 1.215100E+04 0.000000E+00 7.900000E+02 1.215100E+04 0.000000E+00 2.20958E-02 9.00369E-02
7.900000E+02 1.215100E+04 0.000000E+00 8.300000E+02 1.215100E+04 0.000000E+00 2.50149E-02 2.65100E-02
8.300000E+02 1.215100E+04 0.000000E+00 8.700000E+02 1.215100E+04 0.000000E+00 1.72661E-02 1.92037E-02
8.700000E+02 1.215100E+04 0.000000E+00 9.100000E+02 1.215100E+04 0.000000E+00 1.13997E-02 1.74516E-02
9.100000E+02 1.215100E+04 0.000000E+00 9.500000E+02 1.215100E+04 0.000000E+00 1.14560E-03 1.15773E-01
9.500000E+02 1.215100E+04 0.000000E+00 9.900000E+02 1.215100E+04 0.000000E+00 8.75960E-04 1.08150E-01
9.900000E+02 1.215100E+04 0.000000E+00 1.030000E+03 1.215100E+04 0.000000E+00 6.88323E-04 1.03224E-01
1.030000E+03 1.215100E+04 0.000000E+00 1.070000E+03 1.215100E+04 0.000000E+00 5.47618E-04 1.00914E-01
1.070000E+03 1.215100E+04 0.000000E+00 1.110000E+03 1.215100E+04 0.000000E+00 4.36485E-04 1.01286E-01
7.500000E+02 1.215100E+04 0.000000E+00 7.500000E+02 1.215100E+04 0.000000E+00 9
7.900000E+02 1.215100E+04 0.000000E+00 8.300000E+02 1.215100E+04 0.000000E+00 4.88530E-02 4.07229E-02
8.300000E+02 1.215100E+04 0.000000E+00 8.700000E+02 1.215100E+04 0.000000E+00 2.52739E-02 2.62384E-02
8.700000E+02 1.215100E+04 0.000000E+00 9.100000E+02 1.215100E+04 0.000000E+00 1.51843E-02 2.18366E-02
9.100000E+02 1.215100E+04 0.000000E+00 9.500000E+02 1.215100E+04 0.000000E+00 1.43257E-03 1.38872E-01
9.500000E+02 1.215100E+04 0.000000E+00 9.900000E+02 1.215100E+04 0.000000E+00 1.04279E-03 1.27187E-01
9.900000E+02 1.215100E+04 0.000000E+00 1.030000E+03 1.215100E+04 0.000000E+00 7.93430E-04 1.19399E-01
1.030000E+03 1.215100E+04 0.000000E+00 1.070000E+03 1.215100E+04 0.000000E+00 6.17711E-04 1.15024E-01
1.070000E+03 1.215100E+04 0.000000E+00 1.110000E+03 1.215100E+04 0.000000E+00 4.85058E-04 1.13929E-01
1.110000E+03 1.215100E+04 0.000000E+00 1.150000E+03 1.215100E+04 0.000000E+00 3.81301E-04 1.15944E-01
7.900000E+02 1.215100E+04 0.000000E+00 7.900000E+02 1.215100E+04 0.000000E+00 9
8.300000E+02 1.215100E+04 0.000000E+00 8.700000E+02 1.215100E+04 0.000000E+00 1.14179E-01 1.74239E-02
8.700000E+02 1.215100E+04 0.000000E+00 9.100000E+02 1.215100E+04 0.000000E+00 4.44410E-02 1.49219E-02
9.100000E+02 1.215100E+04 0.000000E+00 9.500000E+02 1.215100E+04 0.000000E+00 3.32729E-03 9.96524E-02
9.500000E+02 1.215100E+04 0.000000E+00 9.900000E+02 1.215100E+04 0.000000E+00 2.02806E-03 9.80958E-02
9.900000E+02 1.215100E+04 0.000000E+00 1.030000E+03 1.215100E+04 0.000000E+00 1.36942E-03 9.68503E-02
1.030000E+03 1.215100E+04 0.000000E+00 1.070000E+03 1.215100E+04 0.000000E+00 9.82234E-04 9.64486E-02
1.070000E+03 1.215100E+04 0.000000E+00 1.110000E+03 1.215100E+04 0.000000E+00 7.28470E-04 9.75350E-02
1.110000E+03 1.215100E+04 0.000000E+00 1.150000E+03 1.215100E+04 0.000000E+00 5.49690E-04 1.00533E-01
1.150000E+03 1.215100E+04 0.000000E+00 1.190000E+03 1.215100E+04 0.000000E+00 4.19174E-04 1.05469E-01
8.300000E+02 1.215100E+04 0.000000E+00 8.300000E+02 1.215100E+04 0.000000E+00 9
8.700000E+02 1.215100E+04 0.000000E+00 9.100000E+02 1.215100E+04 0.000000E+00 1.96291E-01 1.01351E-02
9.100000E+02 1.215100E+04 0.000000E+00 9.500000E+02 1.215100E+04 0.000000E+00 1.12779E-02 5.88004E-02
9.500000E+02 1.215100E+04 0.000000E+00 9.900000E+02 1.215100E+04 0.000000E+00 5.75348E-03 5.76300E-02
9.900000E+02 1.215100E+04 0.000000E+00 1.030000E+03 1.215100E+04 0.000000E+00 3.42686E-03 5.80543E-02
1.030000E+03 1.215100E+04 0.000000E+00 1.070000E+03 1.215100E+04 0.000000E+00 2.23885E-03 5.92398E-02
1.070000E+03 1.215100E+04 0.000000E+00 1.110000E+03 1.215100E+04 0.000000E+00 1.54824E-03 6.11890E-02
1.110000E+03 1.215100E+04 0.000000E+00 1.150000E+03 1.215100E+04 0.000000E+00 1.10797E-03 6.41277E-02
1.150000E+03 1.215100E+04 0.000000E+00 1.190000E+03 1.215100E+04 0.000000E+00 8.10519E-04 6.81811E-02
1.190000E+03 1.215100E+04 0.000000E+00 1.230000E+03 1.215100E+04 0.000000E+00 6.03713E-04 7.32297E-02
8.700000E+02 1.215100E+04 0.000000E+00 8.700000E+02 1.215100E+04 0.000000E+00 9
9.100000E+02 1.215100E+04 0.000000E+00 9.500000E+02 1.215100E+04 0.000000E+00 3.26294E-02 6.09707E-02
9.500000E+02 1.215100E+04 0.000000E+00 9.900000E+02 1.215100E+04 0.000000E+00 1.26860E-02 5.22739E-02
9.900000E+02 1.215100E+04 0.000000E+00 1.030000E+03 1.215100E+04 0.000000E+00 6.63407E-03 4.99803E-02
1.030000E+03 1.215100E+04 0.000000E+00 1.070000E+03 1.215100E+04 0.000000E+00 4.00255E-03 4.97042E-02
1.070000E+03 1.215100E+04 0.000000E+00 1.110000E+03 1.215100E+04 0.000000E+00 2.62314E-03 5.05612E-02
1.110000E+03 1.215100E+04 0.000000E+00 1.150000E+03 1.215100E+04 0.000000E+00 1.80747E-03 5.24131E-02
1.150000E+03 1.215100E+04 0.000000E+00 1.190000E+03 1.215100E+04 0.000000E+00 1.28589E-03 5.52546E-02
1.190000E+03 1.215100E+04 0.000000E+00 1.230000E+03 1.215100E+04 0.000000E+00 9.37173E-04 5.89668E-02
1.230000E+03 1.215100E+04 0.000000E+00 1.270000E+03 1.215100E+04 0.000000E+00 6.98927E-04 6.32537E-02
9.100000E+02 1.215100E+04 0.000000E+00 9.100000E+02 1.215100E+04 0.000000E+00 9
9.500000E+02 1.215100E+04 0.000000E+00 9.900000E+02 1.215100E+04 0.000000E+00 2.72979E-02 7.28789E-02
9.900000E+02 1.215100E+04 0.000000E+00 1.030000E+03 1.215100E+04 0.000000E+00 1.14631E-02 5.78506E-02
1.030000E+03 1.215100E+04 0.000000E+00 1.070000E+03 1.215100E+04 0.000000E+00 6.24348E-03 5.31070E-02
1.070000E+03 1.215100E+04 0.000000E+00 1.110000E+03 1.215100E+04 0.000000E+00 3.85341E-03 5.16280E-02
1.110000E+03 1.215100E+04 0.000000E+00 1.150000E+03 1.215100E+04 0.000000E+00 2.55435E-03 5.19228E-02
1.150000E+03 1.215100E+04 0.000000E+00 1.190000E+03 1.215100E+04 0.000000E+00 1.76994E-03 5.35246E-02
1.190000E+03 1.215100E+04 0.000000E+00 1.230000E+03 1.215100E+04 0.000000E+00 1.26561E-03 5.61399E-02
1.230000E+03 1.215100E+04 0.000000E+00 1.270000E+03 1.215100E+04 0.000000E+00 9.30162E-04 5.94113E-02
1.270000E+03 1.215100E+04 0.000000E+00 1.310000E+03 1.215100E+04 0.000000E+00 7.02496E-04 6.29323E-02
9.500000E+02 1.215100E+04 0.000000E+00 9.500000E+02 1.215100E+04 0.000000E+00 9
9.900000E+02 1.215100E+04 0.000000E+00 1.030000E+03 1.215100E+04 0.000000E+00 2.08287E-02 9.55143E-02
1.030000E+03 1.215100E+04 0.000000E+00 1.070000E+03 1.215100E+04 0.000000E+00 8.82123E-03 7.51761E-02
1.070000E+03 1.215100E+04 0.000000E+00 1.110000E+03 1.215100E+04 0.000000E+00 4.88958E-03 6.78121E-02
1.110000E+03 1.215100E+04 0.000000E+00 1.150000E+03 1.215100E+04 0.000000E+00 3.05917E-03 6.50320E-02
1.150000E+03 1.215100E+04 0.000000E+00 1.190000E+03 1.215100E+04 0.000000E+00 2.04755E-03 6.47746E-02
1.190000E+03 1.215100E+04 0.000000E+00 1.230000E+03 1.215100E+04 0.000000E+00 1.43196E-03 6.61574E-02
1.230000E+03 1.215100E+04 0.000000E+00 1.270000E+03 1.215100E+04 0.000000E+00 1.03663E-03 6.85408E-02
1.270000E+03 1.215100E+04 0.000000E+00 1.310000E+03 1.215100E+04 0.000000E+00 7.74515E-04 7.13507E-02
1.310000E+03 1.215100E+04 0.000000E+00 1.350000E+03 1.215100E+04 0.000000E+00 5.95087E-04 7.42912E-02
9.900000E+02 1.215100E+04 0.000000E+00 9.900000E+02 1.215100E+04 0.000000E+00 9
1.030000E+03 1.215100E+04 0.000000E+00 1.070000E+03 1.215100E+04 0.000000E+00 1.94938E-02 1.02055E-01
1.070000E+03 1.215100E+04 0.000000E+00 1.110000E+03 1.215100E+04 0.000000E+00 8.03915E-03 8.24895E-02
1.110000E+03 1.215100E+04 0.000000E+00 1.150000E+03 1.215100E+04 0.000000E+00 4.38466E-03 7.56212E-02
1.150000E+03 1.215100E+04 0.000000E+00 1.190000E+03 1.215100E+04 0.000000E+00 2.71430E-03 7.32947E-02
1.190000E+03 1.215100E+04 0.000000E+00 1.230000E+03 1.215100E+04 0.000000E+00 1.80760E-03 7.33730E-02
1.230000E+03 1.215100E+04 0.000000E+00 1.270000E+03 1.215100E+04 0.000000E+00 1.26650E-03 7.48008E-02
1.270000E+03 1.215100E+04 0.000000E+00 1.310000E+03 1.215100E+04 0.000000E+00 9.24907E-04 7.68200E-02
1.310000E+03 1.215100E+04 0.000000E+00 1.350000E+03 1.215100E+04 0.000000E+00 6.99334E-04 7.90211E-02
1.350000E+03 1.215100E+04 0.000000E+00 1.390000E+03 1.215100E+04 0.000000E+00 5.38205E-04 8.21428E-02
1.030000E+03 1.215100E+04 0.000000E+00 1.030000E+03 1.215100E+04 0.000000E+00 9
1.070000E+03 1.215100E+04 0.000000E+00 1.110000E+03 1.215100E+04 0.000000E+00 1.90029E-02 1.04691E-01
1.110000E+03 1.215100E+04 0.000000E+00 1.150000E+03 1.215100E+04 0.000000E+00 7.69827E-03 8.61421E-02
1.150000E+03 1.215100E+04 0.000000E+00 1.190000E+03 1.215100E+04 0.000000E+00 4.13985E-03 8.00929E-02
1.190000E+03 1.215100E+04 0.000000E+00 1.230000E+03 1.215100E+04 0.000000E+00 2.53969E-03 7.83338E-02
1.230000E+03 1.215100E+04 0.000000E+00 1.270000E+03 1.215100E+04 0.000000E+00 1.68782E-03 7.85803E-02
1.270000E+03 1.215100E+04 0.000000E+00 1.310000E+03 1.215100E+04 0.000000E+00 1.18911E-03 7.96688E-02
1.310000E+03 1.215100E+04 0.000000E+00 1.350000E+03 1.215100E+04 0.000000E+00 8.77197E-04 8.09981E-02
1.350000E+03 1.215100E+04 0.000000E+00 1.390000E+03 1.215100E+04 0.000000E+00 6.64440E-04 8.31710E-02
1.390000E+03 1.215100E+04 0.000000E+00 1.430000E+03 1.215100E+04 0.000000E+00 4.32775E-04 1.02154E-01
1.070000E+03 1.215100E+04 0.000000E+00 1.070000E+03 1.215100E+04 0.000000E+00 9
1.110000E+03 1.215100E+04 0.000000E+00 1.150000E+03 1.215100E+04 0.000000E+00 1.87648E-02 1.06020E-01
1.150000E+03 1.215100E+04 0.000000E+00 1.190000E+03 1.215100E+04 0.000000E+00 7.52169E-03 8.81645E-02
1.190000E+03 1.215100E+04 0.000000E+00 1.230000E+03 1.215100E+04 0.000000E+00 4.01368E-03 8.26108E-02
1.230000E+03 1.215100E+04 0.000000E+00 1.270000E+03 1.215100E+04 0.000000E+00 2.45701E-03 8.09700E-02
1.270000E+03 1.215100E+04 0.000000E+00 1.310000E+03 1.215100E+04 0.000000E+00 1.64130E-03 8.08075E-02
1.310000E+03 1.215100E+04 0.000000E+00 1.350000E+03 1.215100E+04 0.000000E+00 1.16871E-03 8.10595E-02
1.350000E+03 1.215100E+04 0.000000E+00 1.390000E+03 1.215100E+04 0.000000E+00 8.65795E-04 8.20648E-02
1.390000E+03 1.215100E+04 0.000000E+00 1.430000E+03 1.215100E+04 0.000000E+00 5.57588E-04 9.91092E-02
1.430000E+03 1.215100E+04 0.000000E+00 1.470000E+03 1.215100E+04 0.000000E+00 9.83060E-05 4.49715E-01
1.110000E+03 1.215100E+04 0.000000E+00 1.110000E+03 1.215100E+04 0.000000E+00 9
1.150000E+03 1.215100E+04 0.000000E+00 1.190000E+03 1.215100E+04 0.000000E+00 1.86396E-02 1.06731E-01
1.190000E+03 1.215100E+04 0.000000E+00 1.230000E+03 1.215100E+04 0.000000E+00 7.43578E-03 8.91830E-02
1.230000E+03 1.215100E+04 0.000000E+00 1.270000E+03 1.215100E+04 0.000000E+00 3.96531E-03 8.36183E-02
1.270000E+03 1.215100E+04 0.000000E+00 1.310000E+03 1.215100E+04 0.000000E+00 2.44240E-03 8.14543E-02
1.310000E+03 1.215100E+04 0.000000E+00 1.350000E+03 1.215100E+04 0.000000E+00 1.65215E-03 8.02768E-02
1.350000E+03 1.215100E+04 0.000000E+00 1.390000E+03 1.215100E+04 0.000000E+00 1.18632E-03 7.98562E-02
1.390000E+03 1.215100E+04 0.000000E+00 1.430000E+03 1.215100E+04 0.000000E+00 7.52433E-04 9.44288E-02
1.430000E+03 1.215100E+04 0.000000E+00 1.470000E+03 1.215100E+04 0.000000E+00 1.31160E-04 4.21332E-01
1.470000E+03 1.215100E+04 0.000000E+00 1.510000E+03 1.215100E+04 0.000000E+00 1.37086E-04 3.22496E-01
1.150000E+03 1.215100E+04 0.000000E+00 1.150000E+03 1.215100E+04 0.000000E+00 9
1.190000E+03 1.215100E+04 0.000000E+00 1.230000E+03 1.215100E+04 0.000000E+00 1.85909E-02 1.07011E-01
1.230000E+03 1.215100E+04 0.000000E+00 1.270000E+03 1.215100E+04 0.000000E+00 7.42292E-03 8.93375E-02
1.270000E+03 1.215100E+04 0.000000E+00 1.310000E+03 1.215100E+04 0.000000E+00 3.98755E-03 8.31520E-02
1.310000E+03 1.215100E+04 0.000000E+00 1.350000E+03 1.215100E+04 0.000000E+00 2.49301E-03 7.98006E-02
1.350000E+03 1.215100E+04 0.000000E+00 1.390000E+03 1.215100E+04 0.000000E+00 1.70981E-03 7.75693E-02
1.390000E+03 1.215100E+04 0.000000E+00 1.430000E+03 1.215100E+04 0.000000E+00 1.06131E-03 8.92623E-02
1.430000E+03 1.215100E+04 0.000000E+00 1.470000E+03 1.215100E+04 0.000000E+00 1.82591E-04 3.89129E-01
1.470000E+03 1.215100E+04 0.000000E+00 1.510000E+03 1.215100E+04 0.000000E+00 1.77220E-04 3.11828E-01
1.510000E+03 1.215100E+04 0.000000E+00 1.550000E+03 1.215100E+04 0.000000E+00 1.75808E-04 2.51466E-01
1.190000E+03 1.215100E+04 0.000000E+00 1.190000E+03 1.215100E+04 0.000000E+00 9
1.230000E+03 1.215100E+04 0.000000E+00 1.270000E+03 1.215100E+04 0.000000E+00 1.86182E-02 1.06854E-01
1.270000E+03 1.215100E+04 0.000000E+00 1.310000E+03 1.215100E+04 0.000000E+00 7.49149E-03 8.85198E-02
1.310000E+03 1.215100E+04 0.000000E+00 1.350000E+03 1.215100E+04 0.000000E+00 4.09315E-03 8.10067E-02
1.350000E+03 1.215100E+04 0.000000E+00 1.390000E+03 1.215100E+04 0.000000E+00 2.61145E-03 7.61812E-02
1.390000E+03 1.215100E+04 0.000000E+00 1.430000E+03 1.215100E+04 0.000000E+00 1.56902E-03 8.45298E-02
1.430000E+03 1.215100E+04 0.000000E+00 1.470000E+03 1.215100E+04 0.000000E+00 2.65583E-04 3.56706E-01
1.470000E+03 1.215100E+04 0.000000E+00 1.510000E+03 1.215100E+04 0.000000E+00 2.37045E-04 2.99738E-01
1.510000E+03 1.215100E+04 0.000000E+00 1.550000E+03 1.215100E+04 0.000000E+00 2.30043E-04 2.40225E-01
1.550000E+03 1.215100E+04 0.000000E+00 1.590000E+03 1.215100E+04 0.000000E+00 1.70343E-04 2.59534E-01
1.230000E+03 1.215100E+04 0.000000E+00 1.230000E+03 1.215100E+04 0.000000E+00 9
1.270000E+03 1.215100E+04 0.000000E+00 1.310000E+03 1.215100E+04 0.000000E+00 1.87497E-02 1.06105E-01
1.310000E+03 1.215100E+04 0.000000E+00 1.350000E+03 1.215100E+04 0.000000E+00 7.67947E-03 8.63531E-02
1.350000E+03 1.215100E+04 0.000000E+00 1.390000E+03 1.215100E+04 0.000000E+00 4.31309E-03 7.68759E-02
1.390000E+03 1.215100E+04 0.000000E+00 1.430000E+03 1.215100E+04 0.000000E+00 2.45670E-03 8.09801E-02
1.430000E+03 1.215100E+04 0.000000E+00 1.470000E+03 1.215100E+04 0.000000E+00 4.06721E-04 3.26093E-01
1.470000E+03 1.215100E+04 0.000000E+00 1.510000E+03 1.215100E+04 0.000000E+00 3.28194E-04 2.88656E-01
1.510000E+03 1.215100E+04 0.000000E+00 1.550000E+03 1.215100E+04 0.000000E+00 3.10206E-04 2.29046E-01
1.550000E+03 1.215100E+04 0.000000E+00 1.590000E+03 1.215100E+04 0.000000E+00 2.24393E-04 2.46273E-01
1.590000E+03 1.215100E+04 0.000000E+00 1.630000E+03 1.215100E+04 0.000000E+00 1.61391E-04 2.73929E-01
1.270000E+03 1.215100E+04 0.000000E+00 1.270000E+03 1.215100E+04 0.000000E+00 9
1.310000E+03 1.215100E+04 0.000000E+00 1.350000E+03 1.215100E+04 0.000000E+00 1.90718E-02 1.04313E-01
1.350000E+03 1.215100E+04 0.000000E+00 1.390000E+03 1.215100E+04 0.000000E+00 8.08711E-03 8.20003E-02
1.390000E+03 1.215100E+04 0.000000E+00 1.430000E+03 1.215100E+04 0.000000E+00 4.16910E-03 7.95310E-02
1.430000E+03 1.215100E+04 0.000000E+00 1.470000E+03 1.215100E+04 0.000000E+00 6.67373E-04 2.98100E-01
1.470000E+03 1.215100E+04 0.000000E+00 1.510000E+03 1.215100E+04 0.000000E+00 4.72620E-04 2.80625E-01
1.510000E+03 1.215100E+04 0.000000E+00 1.550000E+03 1.215100E+04 0.000000E+00 4.31826E-04 2.19383E-01
1.550000E+03 1.215100E+04 0.000000E+00 1.590000E+03 1.215100E+04 0.000000E+00 3.03578E-04 2.34046E-01
1.590000E+03 1.215100E+04 0.000000E+00 1.630000E+03 1.215100E+04 0.000000E+00 2.13442E-04 2.58909E-01
1.630000E+03 1.215100E+04 0.000000E+00 1.670000E+03 1.215100E+04 0.000000E+00 1.45998E-04 3.02811E-01
1.310000E+03 1.215100E+04 0.000000E+00 1.310000E+03 1.215100E+04 0.000000E+00 8
1.350000E+03 1.215100E+04 0.000000E+00 1.390000E+03 1.215100E+04 0.000000E+00 1.98653E-02 1.00147E-01
1.390000E+03 1.215100E+04 0.000000E+00 1.430000E+03 1.215100E+04 0.000000E+00 8.06072E-03 8.22687E-02
1.430000E+03 1.215100E+04 0.000000E+00 1.470000E+03 1.215100E+04 0.000000E+00 1.21479E-03 2.72946E-01
1.470000E+03 1.215100E+04 0.000000E+00 1.510000E+03 1.215100E+04 0.000000E+00 7.16513E-04 2.77655E-01
1.510000E+03 1.215100E+04 0.000000E+00 1.550000E+03 1.215100E+04 0.000000E+00 6.24746E-04 2.12293E-01
1.550000E+03 1.215100E+04 0.000000E+00 1.590000E+03 1.215100E+04 0.000000E+00 4.23124E-04 2.23894E-01
1.590000E+03 1.215100E+04 0.000000E+00 1.630000E+03 1.215100E+04 0.000000E+00 2.89270E-04 2.45622E-01
1.630000E+03 1.215100E+04 0.000000E+00 1.670000E+03 1.215100E+04 0.000000E+00 1.93437E-04 2.85686E-01
1.350000E+03 1.215100E+04 0.000000E+00 1.350000E+03 1.215100E+04 0.000000E+00 7
1.390000E+03 1.215100E+04 0.000000E+00 1.430000E+03 1.215100E+04 0.000000E+00 2.03851E-02 9.75925E-02
1.430000E+03 1.215100E+04 0.000000E+00 1.470000E+03 1.215100E+04 0.000000E+00 2.65428E-03 2.49840E-01
1.470000E+03 1.215100E+04 0.000000E+00 1.510000E+03 1.215100E+04 0.000000E+00 1.17087E-03 2.83186E-01
1.510000E+03 1.215100E+04 0.000000E+00 1.550000E+03 1.215100E+04 0.000000E+00 9.52455E-04 2.08875E-01
1.550000E+03 1.215100E+04 0.000000E+00 1.590000E+03 1.215100E+04 0.000000E+00 6.12480E-04 2.16545E-01
1.590000E+03 1.215100E+04 0.000000E+00 1.630000E+03 1.215100E+04 0.000000E+00 4.03579E-04 2.34738E-01
1.630000E+03 1.215100E+04 0.000000E+00 1.670000E+03 1.215100E+04 0.000000E+00 2.62471E-04 2.70702E-01
1.390000E+03 1.215100E+04 0.000000E+00 1.390000E+03 1.215100E+04 0.000000E+00 6
1.430000E+03 1.215100E+04 0.000000E+00 1.470000E+03 1.215100E+04 0.000000E+00 8.80406E-03 2.25968E-01
1.470000E+03 1.215100E+04 0.000000E+00 1.510000E+03 1.215100E+04 0.000000E+00 2.15893E-03 3.07164E-01
1.510000E+03 1.215100E+04 0.000000E+00 1.550000E+03 1.215100E+04 0.000000E+00 1.56347E-03 2.12075E-01
1.550000E+03 1.215100E+04 0.000000E+00 1.590000E+03 1.215100E+04 0.000000E+00 9.31490E-04 2.13576E-01
1.590000E+03 1.215100E+04 0.000000E+00 1.630000E+03 1.215100E+04 0.000000E+00 5.83413E-04 2.27333E-01
1.630000E+03 1.215100E+04 0.000000E+00 1.670000E+03 1.215100E+04 0.000000E+00 3.66043E-04 2.58809E-01
1.430000E+03 1.215100E+04 0.000000E+00 1.430000E+03 1.215100E+04 0.000000E+00 5
1.470000E+03 1.215100E+04 0.000000E+00 1.510000E+03 1.215100E+04 0.000000E+00 5.10080E-03 3.90025E-01
1.510000E+03 1.215100E+04 0.000000E+00 1.550000E+03 1.215100E+04 0.000000E+00 2.79841E-03 2.36972E-01
1.550000E+03 1.215100E+04 0.000000E+00 1.590000E+03 1.215100E+04 0.000000E+00 1.46301E-03 2.26638E-01
1.590000E+03 1.215100E+04 0.000000E+00 1.630000E+03 1.215100E+04 0.000000E+00 8.51657E-04 2.33596E-01
1.630000E+03 1.215100E+04 0.000000E+00 1.670000E+03 1.215100E+04 0.000000E+00 5.09943E-04 2.60086E-01
1.470000E+03 1.215100E+04 0.000000E+00 1.470000E+03 1.215100E+04 0.000000E+00 4
1.510000E+03 1.215100E+04 0.000000E+00 1.550000E+03 1.215100E+04 0.000000E+00 5.06513E-03 3.92771E-01
1.550000E+03 1.215100E+04 0.000000E+00 1.590000E+03 1.215100E+04 0.000000E+00 2.12046E-03 3.12736E-01
1.590000E+03 1.215100E+04 0.000000E+00 1.630000E+03 1.215100E+04 0.000000E+00 1.12245E-03 2.95402E-01
1.630000E+03 1.215100E+04 0.000000E+00 1.670000E+03 1.215100E+04 0.000000E+00 6.38234E-04 3.11709E-01
1.510000E+03 1.215100E+04 0.000000E+00 1.510000E+03 1.215100E+04 0.000000E+00 3
1.550000E+03 1.215100E+04 0.000000E+00 1.590000E+03 1.215100E+04 0.000000E+00 1.46059E-02 1.36208E-01
1.590000E+03 1.215100E+04 0.000000E+00 1.630000E+03 1.215100E+04 0.000000E+00 5.00295E-03 1.32551E-01
1.630000E+03 1.215100E+04 0.000000E+00 1.670000E+03 1.215100E+04 0.000000E+00 2.25787E-03 1.46852E-01
1.550000E+03 1.215100E+04 0.000000E+00 1.550000E+03 1.215100E+04 0.000000E+00 2
1.590000E+03 1.215100E+04 0.000000E+00 1.630000E+03 1.215100E+04 0.000000E+00 1.67000E-02 1.19128E-01
1.630000E+03 1.215100E+04 0.000000E+00 1.670000E+03 1.215100E+04 0.000000E+00 5.84063E-03 1.13540E-01
1.590000E+03 1.215100E+04 0.000000E+00 1.590000E+03 1.215100E+04 0.000000E+00 1
1.630000E+03 1.215100E+04 0.000000E+00 1.670000E+03 1.215100E+04 0.000000E+00 1.68839E-02 1.17831E-01
+9
View File
@@ -0,0 +1,9 @@
dc
Mesh_20m.msh
OBS_LOC_3D.dat
MtIsa_3D.con
VALUE 0.0
null
0
1e-5
-1
+55
View File
@@ -0,0 +1,55 @@
! GENERAL FORMAT
0.000000e+00 0.000000e+00 2.000000e+02 3.000000e+02 8.353735e-02 9.353735e-04
0.000000e+00 0.000000e+00 3.000000e+02 4.000000e+02 4.392504e-03 1.439250e-04
0.000000e+00 0.000000e+00 4.000000e+02 5.000000e+02 1.243627e-02 2.243627e-04
0.000000e+00 0.000000e+00 5.000000e+02 6.000000e+02 2.058920e-03 1.205892e-04
0.000000e+00 0.000000e+00 6.000000e+02 7.000000e+02 6.812879e-04 1.068129e-04
0.000000e+00 0.000000e+00 7.000000e+02 8.000000e+02 4.313826e-04 1.043138e-04
0.000000e+00 0.000000e+00 8.000000e+02 9.000000e+02 2.625458e-04 1.026255e-04
0.000000e+00 0.000000e+00 9.000000e+02 1.000000e+03 1.651300e-04 1.016513e-04
0.000000e+00 0.000000e+00 1.000000e+03 1.100000e+03 5.231997e-05 1.005232e-04
1.000000e+02 1.000000e+02 3.000000e+02 4.000000e+02 8.045914e-03 1.804591e-04
1.000000e+02 1.000000e+02 4.000000e+02 5.000000e+02 1.749001e-02 2.749001e-04
1.000000e+02 1.000000e+02 5.000000e+02 6.000000e+02 2.785547e-03 1.278555e-04
1.000000e+02 1.000000e+02 6.000000e+02 7.000000e+02 8.714611e-04 1.087146e-04
1.000000e+02 1.000000e+02 7.000000e+02 8.000000e+02 5.383535e-04 1.053835e-04
1.000000e+02 1.000000e+02 8.000000e+02 9.000000e+02 3.220988e-04 1.032210e-04
1.000000e+02 1.000000e+02 9.000000e+02 1.000000e+03 2.004558e-04 1.020046e-04
1.000000e+02 1.000000e+02 1.000000e+03 1.100000e+03 6.438889e-05 1.006439e-04
2.000000e+02 2.000000e+02 4.000000e+02 5.000000e+02 2.987416e-02 3.987416e-04
2.000000e+02 2.000000e+02 5.000000e+02 6.000000e+02 4.374492e-03 1.437449e-04
2.000000e+02 2.000000e+02 6.000000e+02 7.000000e+02 1.244707e-03 1.124471e-04
2.000000e+02 2.000000e+02 7.000000e+02 8.000000e+02 7.390806e-04 1.073908e-04
2.000000e+02 2.000000e+02 8.000000e+02 9.000000e+02 4.306959e-04 1.043070e-04
2.000000e+02 2.000000e+02 9.000000e+02 1.000000e+03 2.629704e-04 1.026297e-04
2.000000e+02 2.000000e+02 1.000000e+03 1.100000e+03 8.356921e-05 1.008357e-04
3.000000e+02 3.000000e+02 5.000000e+02 6.000000e+02 7.102682e-03 1.710268e-04
3.000000e+02 3.000000e+02 6.000000e+02 7.000000e+02 1.756322e-03 1.175632e-04
3.000000e+02 3.000000e+02 7.000000e+02 8.000000e+02 9.969346e-04 1.099693e-04
3.000000e+02 3.000000e+02 8.000000e+02 9.000000e+02 5.678287e-04 1.056783e-04
3.000000e+02 3.000000e+02 9.000000e+02 1.000000e+03 3.423076e-04 1.034231e-04
3.000000e+02 3.000000e+02 1.000000e+03 1.100000e+03 1.100753e-04 1.011008e-04
4.000000e+02 4.000000e+02 6.000000e+02 7.000000e+02 3.330609e-03 1.333061e-04
4.000000e+02 4.000000e+02 7.000000e+02 8.000000e+02 1.534079e-03 1.153408e-04
4.000000e+02 4.000000e+02 8.000000e+02 9.000000e+02 7.882245e-04 1.078822e-04
4.000000e+02 4.000000e+02 9.000000e+02 1.000000e+03 4.439992e-04 1.044400e-04
4.000000e+02 4.000000e+02 1.000000e+03 1.100000e+03 1.345726e-04 1.013457e-04
5.000000e+02 5.000000e+02 7.000000e+02 8.000000e+02 6.629023e-03 1.662902e-04
5.000000e+02 5.000000e+02 8.000000e+02 9.000000e+02 2.814898e-03 1.281490e-04
5.000000e+02 5.000000e+02 9.000000e+02 1.000000e+03 1.424089e-03 1.142409e-04
5.000000e+02 5.000000e+02 1.000000e+03 1.100000e+03 4.141629e-04 1.041416e-04
6.000000e+02 6.000000e+02 8.000000e+02 9.000000e+02 4.338127e-03 1.433813e-04
6.000000e+02 6.000000e+02 9.000000e+02 1.000000e+03 1.980291e-03 1.198029e-04
6.000000e+02 6.000000e+02 1.000000e+03 1.100000e+03 5.550423e-04 1.055504e-04
7.000000e+02 7.000000e+02 9.000000e+02 1.000000e+03 3.989883e-03 1.398988e-04
7.000000e+02 7.000000e+02 1.000000e+03 1.100000e+03 1.014215e-03 1.101421e-04
8.000000e+02 8.000000e+02 1.000000e+03 1.100000e+03 2.476501e-03 1.247650e-04
+73
View File
@@ -0,0 +1,73 @@
! GENERAL FORMAT
3.900000e+02 1.221100e+04 0.000000e+00 3.900000e+02 1.221100e+04 0.000000e+00 9
5.900000e+02 1.221100e+04 0.000000e+00 6.900000e+02 1.221100e+04 0.000000e+00 8.353735e-02 9.353735e-04
6.900000e+02 1.221100e+04 0.000000e+00 7.900000e+02 1.221100e+04 0.000000e+00 4.392504e-03 1.439250e-04
7.900000e+02 1.221100e+04 0.000000e+00 8.900000e+02 1.221100e+04 0.000000e+00 1.243627e-02 2.243627e-04
8.900000e+02 1.221100e+04 0.000000e+00 9.900000e+02 1.221100e+04 0.000000e+00 2.058920e-03 1.205892e-04
9.900000e+02 1.221100e+04 0.000000e+00 1.090000e+03 1.221100e+04 0.000000e+00 6.812879e-04 1.068129e-04
1.090000e+03 1.221100e+04 0.000000e+00 1.190000e+03 1.221100e+04 0.000000e+00 4.313826e-04 1.043138e-04
1.190000e+03 1.221100e+04 0.000000e+00 1.290000e+03 1.221100e+04 0.000000e+00 2.625458e-04 1.026255e-04
1.290000e+03 1.221100e+04 0.000000e+00 1.390000e+03 1.221100e+04 0.000000e+00 1.651300e-04 1.016513e-04
1.390000e+03 1.221100e+04 0.000000e+00 1.490000e+03 1.221100e+04 0.000000e+00 5.231997e-05 1.005232e-04
4.900000e+02 1.221100e+04 0.000000e+00 4.900000e+02 1.221100e+04 0.000000e+00 8
6.900000e+02 1.221100e+04 0.000000e+00 7.900000e+02 1.221100e+04 0.000000e+00 8.045914e-03 1.804591e-04
7.900000e+02 1.221100e+04 0.000000e+00 8.900000e+02 1.221100e+04 0.000000e+00 1.749001e-02 2.749001e-04
8.900000e+02 1.221100e+04 0.000000e+00 9.900000e+02 1.221100e+04 0.000000e+00 2.785547e-03 1.278555e-04
9.900000e+02 1.221100e+04 0.000000e+00 1.090000e+03 1.221100e+04 0.000000e+00 8.714611e-04 1.087146e-04
1.090000e+03 1.221100e+04 0.000000e+00 1.190000e+03 1.221100e+04 0.000000e+00 5.383535e-04 1.053835e-04
1.190000e+03 1.221100e+04 0.000000e+00 1.290000e+03 1.221100e+04 0.000000e+00 3.220988e-04 1.032210e-04
1.290000e+03 1.221100e+04 0.000000e+00 1.390000e+03 1.221100e+04 0.000000e+00 2.004558e-04 1.020046e-04
1.390000e+03 1.221100e+04 0.000000e+00 1.490000e+03 1.221100e+04 0.000000e+00 6.438889e-05 1.006439e-04
5.900000e+02 1.221100e+04 0.000000e+00 5.900000e+02 1.221100e+04 0.000000e+00 7
7.900000e+02 1.221100e+04 0.000000e+00 8.900000e+02 1.221100e+04 0.000000e+00 2.987416e-02 3.987416e-04
8.900000e+02 1.221100e+04 0.000000e+00 9.900000e+02 1.221100e+04 0.000000e+00 4.374492e-03 1.437449e-04
9.900000e+02 1.221100e+04 0.000000e+00 1.090000e+03 1.221100e+04 0.000000e+00 1.244707e-03 1.124471e-04
1.090000e+03 1.221100e+04 0.000000e+00 1.190000e+03 1.221100e+04 0.000000e+00 7.390806e-04 1.073908e-04
1.190000e+03 1.221100e+04 0.000000e+00 1.290000e+03 1.221100e+04 0.000000e+00 4.306959e-04 1.043070e-04
1.290000e+03 1.221100e+04 0.000000e+00 1.390000e+03 1.221100e+04 0.000000e+00 2.629704e-04 1.026297e-04
1.390000e+03 1.221100e+04 0.000000e+00 1.490000e+03 1.221100e+04 0.000000e+00 8.356921e-05 1.008357e-04
6.900000e+02 1.221100e+04 0.000000e+00 6.900000e+02 1.221100e+04 0.000000e+00 6
8.900000e+02 1.221100e+04 0.000000e+00 9.900000e+02 1.221100e+04 0.000000e+00 7.102682e-03 1.710268e-04
9.900000e+02 1.221100e+04 0.000000e+00 1.090000e+03 1.221100e+04 0.000000e+00 1.756322e-03 1.175632e-04
1.090000e+03 1.221100e+04 0.000000e+00 1.190000e+03 1.221100e+04 0.000000e+00 9.969346e-04 1.099693e-04
1.190000e+03 1.221100e+04 0.000000e+00 1.290000e+03 1.221100e+04 0.000000e+00 5.678287e-04 1.056783e-04
1.290000e+03 1.221100e+04 0.000000e+00 1.390000e+03 1.221100e+04 0.000000e+00 3.423076e-04 1.034231e-04
1.390000e+03 1.221100e+04 0.000000e+00 1.490000e+03 1.221100e+04 0.000000e+00 1.100753e-04 1.011008e-04
7.900000e+02 1.221100e+04 0.000000e+00 7.900000e+02 1.221100e+04 0.000000e+00 5
9.900000e+02 1.221100e+04 0.000000e+00 1.090000e+03 1.221100e+04 0.000000e+00 3.330609e-03 1.333061e-04
1.090000e+03 1.221100e+04 0.000000e+00 1.190000e+03 1.221100e+04 0.000000e+00 1.534079e-03 1.153408e-04
1.190000e+03 1.221100e+04 0.000000e+00 1.290000e+03 1.221100e+04 0.000000e+00 7.882245e-04 1.078822e-04
1.290000e+03 1.221100e+04 0.000000e+00 1.390000e+03 1.221100e+04 0.000000e+00 4.439992e-04 1.044400e-04
1.390000e+03 1.221100e+04 0.000000e+00 1.490000e+03 1.221100e+04 0.000000e+00 1.345726e-04 1.013457e-04
8.900000e+02 1.221100e+04 0.000000e+00 8.900000e+02 1.221100e+04 0.000000e+00 4
1.090000e+03 1.221100e+04 0.000000e+00 1.190000e+03 1.221100e+04 0.000000e+00 6.629023e-03 1.662902e-04
1.190000e+03 1.221100e+04 0.000000e+00 1.290000e+03 1.221100e+04 0.000000e+00 2.814898e-03 1.281490e-04
1.290000e+03 1.221100e+04 0.000000e+00 1.390000e+03 1.221100e+04 0.000000e+00 1.424089e-03 1.142409e-04
1.390000e+03 1.221100e+04 0.000000e+00 1.490000e+03 1.221100e+04 0.000000e+00 4.141629e-04 1.041416e-04
9.900000e+02 1.221100e+04 0.000000e+00 9.900000e+02 1.221100e+04 0.000000e+00 3
1.190000e+03 1.221100e+04 0.000000e+00 1.290000e+03 1.221100e+04 0.000000e+00 4.338127e-03 1.433813e-04
1.290000e+03 1.221100e+04 0.000000e+00 1.390000e+03 1.221100e+04 0.000000e+00 1.980291e-03 1.198029e-04
1.390000e+03 1.221100e+04 0.000000e+00 1.490000e+03 1.221100e+04 0.000000e+00 5.550423e-04 1.055504e-04
1.090000e+03 1.221100e+04 0.000000e+00 1.090000e+03 1.221100e+04 0.000000e+00 2
1.290000e+03 1.221100e+04 0.000000e+00 1.390000e+03 1.221100e+04 0.000000e+00 3.989883e-03 1.398988e-04
1.390000e+03 1.221100e+04 0.000000e+00 1.490000e+03 1.221100e+04 0.000000e+00 1.014215e-03 1.101421e-04
1.190000e+03 1.221100e+04 0.000000e+00 1.190000e+03 1.221100e+04 0.000000e+00 1
1.390000e+03 1.221100e+04 0.000000e+00 1.490000e+03 1.221100e+04 0.000000e+00 2.476501e-03 1.247650e-04
+55
View File
@@ -0,0 +1,55 @@
! GENERAL FORMAT
0.000000e+00 0.000000e+00 2.000000e+02 3.000000e+02 8.353735e-02 9.353735e-04
0.000000e+00 0.000000e+00 3.000000e+02 4.000000e+02 4.392504e-03 1.439250e-04
0.000000e+00 0.000000e+00 4.000000e+02 5.000000e+02 1.243627e-02 2.243627e-04
0.000000e+00 0.000000e+00 5.000000e+02 6.000000e+02 2.058920e-03 1.205892e-04
0.000000e+00 0.000000e+00 6.000000e+02 7.000000e+02 6.812879e-04 1.068129e-04
0.000000e+00 0.000000e+00 7.000000e+02 8.000000e+02 4.313826e-04 1.043138e-04
0.000000e+00 0.000000e+00 8.000000e+02 9.000000e+02 2.625458e-04 1.026255e-04
0.000000e+00 0.000000e+00 9.000000e+02 1.000000e+03 1.651300e-04 1.016513e-04
0.000000e+00 0.000000e+00 1.000000e+03 1.100000e+03 5.231997e-05 1.005232e-04
1.000000e+02 1.000000e+02 3.000000e+02 4.000000e+02 8.045914e-03 1.804591e-04
1.000000e+02 1.000000e+02 4.000000e+02 5.000000e+02 1.749001e-02 2.749001e-04
1.000000e+02 1.000000e+02 5.000000e+02 6.000000e+02 2.785547e-03 1.278555e-04
1.000000e+02 1.000000e+02 6.000000e+02 7.000000e+02 8.714611e-04 1.087146e-04
1.000000e+02 1.000000e+02 7.000000e+02 8.000000e+02 5.383535e-04 1.053835e-04
1.000000e+02 1.000000e+02 8.000000e+02 9.000000e+02 3.220988e-04 1.032210e-04
1.000000e+02 1.000000e+02 9.000000e+02 1.000000e+03 2.004558e-04 1.020046e-04
1.000000e+02 1.000000e+02 1.000000e+03 1.100000e+03 6.438889e-05 1.006439e-04
2.000000e+02 2.000000e+02 4.000000e+02 5.000000e+02 2.987416e-02 3.987416e-04
2.000000e+02 2.000000e+02 5.000000e+02 6.000000e+02 4.374492e-03 1.437449e-04
2.000000e+02 2.000000e+02 6.000000e+02 7.000000e+02 1.244707e-03 1.124471e-04
2.000000e+02 2.000000e+02 7.000000e+02 8.000000e+02 7.390806e-04 1.073908e-04
2.000000e+02 2.000000e+02 8.000000e+02 9.000000e+02 4.306959e-04 1.043070e-04
2.000000e+02 2.000000e+02 9.000000e+02 1.000000e+03 2.629704e-04 1.026297e-04
2.000000e+02 2.000000e+02 1.000000e+03 1.100000e+03 8.356921e-05 1.008357e-04
3.000000e+02 3.000000e+02 5.000000e+02 6.000000e+02 7.102682e-03 1.710268e-04
3.000000e+02 3.000000e+02 6.000000e+02 7.000000e+02 1.756322e-03 1.175632e-04
3.000000e+02 3.000000e+02 7.000000e+02 8.000000e+02 9.969346e-04 1.099693e-04
3.000000e+02 3.000000e+02 8.000000e+02 9.000000e+02 5.678287e-04 1.056783e-04
3.000000e+02 3.000000e+02 9.000000e+02 1.000000e+03 3.423076e-04 1.034231e-04
3.000000e+02 3.000000e+02 1.000000e+03 1.100000e+03 1.100753e-04 1.011008e-04
4.000000e+02 4.000000e+02 6.000000e+02 7.000000e+02 3.330609e-03 1.333061e-04
4.000000e+02 4.000000e+02 7.000000e+02 8.000000e+02 1.534079e-03 1.153408e-04
4.000000e+02 4.000000e+02 8.000000e+02 9.000000e+02 7.882245e-04 1.078822e-04
4.000000e+02 4.000000e+02 9.000000e+02 1.000000e+03 4.439992e-04 1.044400e-04
4.000000e+02 4.000000e+02 1.000000e+03 1.100000e+03 1.345726e-04 1.013457e-04
5.000000e+02 5.000000e+02 7.000000e+02 8.000000e+02 6.629023e-03 1.662902e-04
5.000000e+02 5.000000e+02 8.000000e+02 9.000000e+02 2.814898e-03 1.281490e-04
5.000000e+02 5.000000e+02 9.000000e+02 1.000000e+03 1.424089e-03 1.142409e-04
5.000000e+02 5.000000e+02 1.000000e+03 1.100000e+03 4.141629e-04 1.041416e-04
6.000000e+02 6.000000e+02 8.000000e+02 9.000000e+02 4.338127e-03 1.433813e-04
6.000000e+02 6.000000e+02 9.000000e+02 1.000000e+03 1.980291e-03 1.198029e-04
6.000000e+02 6.000000e+02 1.000000e+03 1.100000e+03 5.550423e-04 1.055504e-04
7.000000e+02 7.000000e+02 9.000000e+02 1.000000e+03 3.989883e-03 1.398988e-04
7.000000e+02 7.000000e+02 1.000000e+03 1.100000e+03 1.014215e-03 1.101421e-04
8.000000e+02 8.000000e+02 1.000000e+03 1.100000e+03 2.476501e-03 1.247650e-04
+129
View File
@@ -0,0 +1,129 @@
81
-7718.404778 -5496.003413 1
-3.908574e+03 1
-2.774696e+03 1
-1.964783e+03 1
-1.386273e+03 1
-9.730523e+02 1
-6.778945e+02 1
-4.670675e+02 1
-3.164768e+02 1
-2.089120e+02 1
-1.320800e+02 1
-7.720000e+01 1
-3.800000e+01 1
-1.000000e+01 1
1.000000e+01 1
3.000000e+01 1
5.000000e+01 1
7.000000e+01 1
9.000000e+01 1
1.100000e+02 1
1.300000e+02 1
1.500000e+02 1
1.700000e+02 1
1.900000e+02 1
2.100000e+02 1
2.300000e+02 1
2.500000e+02 1
2.700000e+02 1
2.900000e+02 1
3.100000e+02 1
3.300000e+02 1
3.500000e+02 1
3.700000e+02 1
3.900000e+02 1
4.100000e+02 1
4.300000e+02 1
4.500000e+02 1
4.700000e+02 1
4.900000e+02 1
5.100000e+02 1
5.300000e+02 1
5.500000e+02 1
5.700000e+02 1
5.900000e+02 1
6.100000e+02 1
6.300000e+02 1
6.500000e+02 1
6.700000e+02 1
6.900000e+02 1
7.100000e+02 1
7.300000e+02 1
7.500000e+02 1
7.700000e+02 1
7.900000e+02 1
8.100000e+02 1
8.300000e+02 1
8.500000e+02 1
8.700000e+02 1
8.900000e+02 1
9.100000e+02 1
9.300000e+02 1
9.500000e+02 1
9.700000e+02 1
9.900000e+02 1
1.010000e+03 1
1.030000e+03 1
1.050000e+03 1
1.078000e+03 1
1.117200e+03 1
1.172080e+03 1
1.248912e+03 1
1.356477e+03 1
1.507068e+03 1
1.717895e+03 1
2.013052e+03 1
2.426273e+03 1
3.004783e+03 1
3.814696e+03 1
4.948574e+03 1
6.536003e+03 1
8.758405e+03 1
45
0.000000 20.000000 1
4.000000e+01 1
6.000000e+01 1
8.000000e+01 1
1.000000e+02 1
1.200000e+02 1
1.400000e+02 1
1.600000e+02 1
1.800000e+02 1
2.000000e+02 1
2.200000e+02 1
2.400000e+02 1
2.600000e+02 1
2.800000e+02 1
3.000000e+02 1
3.200000e+02 1
3.400000e+02 1
3.600000e+02 1
3.800000e+02 1
4.000000e+02 1
4.200000e+02 1
4.400000e+02 1
4.600000e+02 1
4.800000e+02 1
5.000000e+02 1
5.200000e+02 1
5.400000e+02 1
5.600000e+02 1
5.800000e+02 1
6.000000e+02 1
6.240000e+02 1
6.540000e+02 1
6.890000e+02 1
7.290000e+02 1
7.790000e+02 1
8.390000e+02 1
9.110000e+02 1
9.970000e+02 1
1.100000e+03 1
1.250000e+03 1
1.425000e+03 1
1.625000e+03 1
1.875000e+03 1
2.175000e+03 1
2.525000e+03 1
File diff suppressed because it is too large. Load diff
+46
View File
@@ -0,0 +1,46 @@
81 45
1.00032E-02 1.00043E-02 1.00076E-02 1.00170E-02 1.00422E-02 1.01036E-02 1.02324E-02 1.04313E-02 1.05054E-02 9.84770E-03 7.88758E-03 5.21056E-03 3.16670E-03 2.48044E-03 4.75998E-03 8.77166E-03 1.15206E-02 1.31677E-02 1.39808E-02 1.43267E-02 1.45905E-02 1.40787E-02 1.25439E-02 9.39334E-03 4.25422E-03 1.94679E-03 3.74368E-03 9.57644E-03 2.12550E-02 2.66451E-02 2.18952E-02 1.83729E-02 1.30285E-02 8.01519E-03 4.19143E-03 1.75255E-03 1.06087E-03 1.20231E-03 2.65494E-03 9.73502E-03 1.56866E-02 1.41785E-02 1.32011E-02 1.92029E-02 6.02855E-02 1.15763E-01 8.41411E-02 3.94050E-02 2.42574E-02 7.98561E-02 1.75843E-01 1.64939E-01 1.09164E-01 7.05542E-02 9.83501E-02 1.72424E-01 2.07011E-01 2.15154E-01 1.99924E-01 1.48401E-01 1.24690E-01 1.34185E-01 1.41765E-01 1.43873E-01 1.43735E-01 1.58018E-01 1.52491E-01 1.19719E-01 4.71725E-02 2.31558E-03 1.58827E-03 3.30763E-03 6.13008E-03 8.30077E-03 9.35467E-03 9.77369E-03 9.92676E-03 9.97879E-03 9.99530E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00076E-02 1.00170E-02 1.00422E-02 1.01035E-02 1.02323E-02 1.04314E-02 1.05094E-02 9.87256E-03 7.96995E-03 5.37823E-03 3.41942E-03 2.79696E-03 3.94421E-03 5.76043E-03 7.56965E-03 8.90061E-03 9.58321E-03 9.67705E-03 9.29751E-03 8.32677E-03 6.73106E-03 4.74795E-03 3.01345E-03 2.42512E-03 4.49935E-03 1.05101E-02 2.20729E-02 3.25799E-02 3.31792E-02 2.74602E-02 1.83159E-02 1.04396E-02 5.20156E-03 2.37644E-03 1.45881E-03 1.60773E-03 3.22847E-03 8.60311E-03 1.46341E-02 1.58886E-02 1.65150E-02 2.37386E-02 5.24371E-02 9.00341E-02 8.25175E-02 4.98898E-02 3.41591E-02 5.47403E-02 8.43579E-02 9.22769E-02 7.65582E-02 5.95454E-02 6.32497E-02 8.12883E-02 9.90527E-02 1.09008E-01 1.09162E-01 1.02647E-01 1.01153E-01 1.07025E-01 1.11720E-01 1.14580E-01 1.18622E-01 1.20448E-01 1.04621E-01 7.01147E-02 2.51409E-02 2.48372E-03 1.67636E-03 3.36908E-03 6.15785E-03 8.30813E-03 9.35617E-03 9.77398E-03 9.92682E-03 9.97880E-03 9.99531E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00076E-02 1.00170E-02 1.00421E-02 1.01034E-02 1.02319E-02 1.04315E-02 1.05172E-02 9.92060E-03 8.12690E-03 5.68973E-03 3.84958E-03 3.20542E-03 3.62160E-03 4.34385E-03 5.14488E-03 5.77386E-03 6.06720E-03 5.98219E-03 5.56410E-03 4.87831E-03 4.04280E-03 3.27009E-03 2.85106E-03 3.27915E-03 5.99386E-03 1.29046E-02 2.62345E-02 4.26231E-02 5.00437E-02 4.24503E-02 2.71828E-02 1.45784E-02 7.11443E-03 3.49180E-03 2.21726E-03 2.30495E-03 3.91320E-03 8.14376E-03 1.38028E-02 1.76511E-02 2.08780E-02 2.92305E-02 5.06542E-02 7.80191E-02 8.31830E-02 6.39127E-02 4.79202E-02 5.01202E-02 5.63749E-02 5.76996E-02 5.19335E-02 4.44732E-02 4.25197E-02 4.62284E-02 5.25981E-02 5.89998E-02 6.43205E-02 6.92673E-02 7.51651E-02 8.14398E-02 8.61647E-02 8.90957E-02 8.97058E-02 8.31005E-02 6.58880E-02 4.08223E-02 1.51413E-02 2.71282E-03 1.84397E-03 3.48862E-03 6.21228E-03 8.32284E-03 9.35912E-03 9.77452E-03 9.92693E-03 9.97882E-03 9.99531E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00076E-02 1.00170E-02 1.00421E-02 1.01032E-02 1.02315E-02 1.04317E-02 1.05284E-02 9.98882E-03 8.34606E-03 6.11522E-03 4.41055E-03 3.70443E-03 3.70021E-03 3.89851E-03 4.15980E-03 4.35676E-03 4.40075E-03 4.26392E-03 3.97902E-03 3.61869E-03 3.28779E-03 3.13645E-03 3.41053E-03 4.67680E-03 8.35227E-03 1.66857E-02 3.23497E-02 5.33561E-02 6.60063E-02 5.73923E-02 3.66617E-02 1.94846E-02 9.69018E-03 5.06710E-03 3.32848E-03 3.24595E-03 4.67593E-03 8.09652E-03 1.31668E-02 1.84597E-02 2.41469E-02 3.36487E-02 5.13026E-02 7.33718E-02 8.44052E-02 7.64492E-02 6.26642E-02 5.56927E-02 5.22465E-02 4.86043E-02 4.35455E-02 3.84742E-02 3.58061E-02 3.62296E-02 3.90283E-02 4.33280E-02 4.86337E-02 5.47805E-02 6.12618E-02 6.68866E-02 7.04434E-02 7.11191E-02 6.76281E-02 5.81469E-02 4.38469E-02 2.69140E-02 1.11222E-02 3.02076E-03 2.08821E-03 3.66153E-03 6.29123E-03 8.34424E-03 9.36342E-03 9.77529E-03 9.92706E-03 9.97884E-03 9.99532E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00076E-02 1.00170E-02 1.00421E-02 1.01031E-02 1.02310E-02 1.04321E-02 1.05426E-02 1.00731E-02 8.61209E-03 6.62391E-03 5.07010E-03 4.31177E-03 4.06871E-03 3.99615E-03 3.98354E-03 3.96444E-03 3.89480E-03 3.76551E-03 3.60537E-03 3.47609E-03 3.47289E-03 3.75148E-03 4.61502E-03 6.74035E-03 1.15528E-02 2.13426E-02 3.85482E-02 6.09741E-02 7.48449E-02 6.61016E-02 4.34827E-02 2.39896E-02 1.25667E-02 7.01237E-03 4.76000E-03 4.40724E-03 5.55694E-03 8.34941E-03 1.27724E-02 1.84308E-02 2.54865E-02 3.57314E-02 5.14013E-02 7.05388E-02 8.43420E-02 8.49130E-02 7.59841E-02 6.63556E-02 5.85195E-02 5.18964E-02 4.59561E-02 4.10566E-02 3.80662E-02 3.73936E-02 3.88248E-02 4.19434E-02 4.63404E-02 5.14932E-02 5.64771E-02 6.00389E-02 6.10776E-02 5.88106E-02 5.27295E-02 4.31222E-02 3.19370E-02 2.01237E-02 9.41626E-03 3.41505E-03 2.40768E-03 3.88212E-03 6.39199E-03 8.37204E-03 9.36900E-03 9.77624E-03 9.92720E-03 9.97886E-03 9.99532E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00076E-02 1.00170E-02 1.00420E-02 1.01029E-02 1.02304E-02 1.04324E-02 1.05590E-02 1.01690E-02 8.90920E-03 7.18604E-03 5.80045E-03 5.02893E-03 4.66196E-03 4.44973E-03 4.29913E-03 4.17890E-03 4.07100E-03 3.97943E-03 3.93552E-03 4.00184E-03 4.28498E-03 4.97573E-03 6.44542E-03 9.43588E-03 1.53029E-02 2.60229E-02 4.31270E-02 6.35477E-02 7.52159E-02 6.70881E-02 4.62937E-02 2.72878E-02 1.53798E-02 9.19795E-03 6.46712E-03 5.78934E-03 6.61902E-03 8.90632E-03 1.27323E-02 1.81534E-02 2.54918E-02 3.57639E-02 5.00799E-02 6.73238E-02 8.23422E-02 8.88972E-02 8.61132E-02 7.85103E-02 6.99882E-02 6.21293E-02 5.53779E-02 5.00568E-02 4.65622E-02 4.50918E-02 4.55085E-02 4.74478E-02 5.03909E-02 5.35965E-02 5.60529E-02 5.67043E-02 5.47981E-02 5.00755E-02 4.28388E-02 3.40737E-02 2.52902E-02 1.65912E-02 8.70498E-03 3.88545E-03 2.79846E-03 4.14435E-03 6.51142E-03 8.40543E-03 9.37588E-03 9.77747E-03 9.92740E-03 9.97889E-03 9.99532E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00076E-02 1.00169E-02 1.00419E-02 1.01025E-02 1.02296E-02 1.04326E-02 1.05767E-02 1.02715E-02 9.22169E-03 7.77338E-03 6.57366E-03 5.83821E-03 5.42943E-03 5.16058E-03 4.95458E-03 4.80321E-03 4.70655E-03 4.68081E-03 4.76550E-03 5.03402E-03 5.61355E-03 6.73008E-03 8.79386E-03 1.25309E-02 1.90929E-02 2.98627E-02 4.52485E-02 6.16697E-02 6.99022E-02 6.29041E-02 4.58497E-02 2.92255E-02 1.78919E-02 1.14975E-02 8.40488E-03 7.40563E-03 7.91827E-03 9.79567E-03 1.31147E-02 1.80784E-02 2.50782E-02 3.47906E-02 4.78087E-02 6.34527E-02 7.86542E-02 8.89513E-02 9.18993E-02 8.87807E-02 8.24996E-02 7.53521E-02 6.86345E-02 6.30373E-02 5.89648E-02 5.65620E-02 5.56814E-02 5.59247E-02 5.66820E-02 5.71731E-02 5.65587E-02 5.41715E-02 4.97544E-02 4.35205E-02 3.61061E-02 2.84221E-02 2.13884E-02 1.46581E-02 8.48199E-03 4.41336E-03 3.25226E-03 4.44140E-03 6.64631E-03 8.44402E-03 9.38402E-03 9.77898E-03 9.92767E-03 9.97894E-03 9.99533E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00076E-02 1.00169E-02 1.00418E-02 1.01022E-02 1.02286E-02 1.04326E-02 1.05949E-02 1.03762E-02 9.53575E-03 8.36085E-03 7.36097E-03 6.70779E-03 6.31881E-03 6.05347E-03 5.85202E-03 5.72174E-03 5.67720E-03 5.74662E-03 5.98079E-03 6.46619E-03 7.34752E-03 8.86726E-03 1.14271E-02 1.56533E-02 2.23827E-02 3.23366E-02 4.50550E-02 5.71501E-02 6.23431E-02 5.66804E-02 4.36253E-02 3.00887E-02 2.00179E-02 1.38102E-02 1.05257E-02 9.25934E-03 9.48860E-03 1.10286E-02 1.39288E-02 1.84015E-02 2.48147E-02 3.36645E-02 4.53108E-02 5.93364E-02 7.38838E-02 8.59446E-02 9.30045E-02 9.45862E-02 9.20212E-02 8.71824E-02 8.15896E-02 7.62533E-02 7.17447E-02 6.82797E-02 6.57594E-02 6.38185E-02 6.19215E-02 5.94732E-02 5.59680E-02 5.11634E-02 4.51569E-02 3.83545E-02 3.13402E-02 2.47229E-02 1.89796E-02 1.35713E-02 8.52171E-03 4.97821E-03 3.75628E-03 4.76614E-03 6.79336E-03 8.48683E-03 9.39329E-03 9.78076E-03 9.92800E-03 9.97900E-03 9.99534E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00076E-02 1.00169E-02 1.00417E-02 1.01017E-02 1.02275E-02 1.04323E-02 1.06127E-02 1.04790E-02 9.83934E-03 8.92706E-03 8.13423E-03 7.59861E-03 7.27390E-03 7.05567E-03 6.90344E-03 6.83497E-03 6.87567E-03 7.06429E-03 7.46120E-03 8.16229E-03 9.31756E-03 1.11602E-02 1.40375E-02 1.84184E-02 2.48017E-02 3.33678E-02 4.32362E-02 5.16739E-02 5.47430E-02 5.03905E-02 4.07900E-02 3.02629E-02 2.17608E-02 1.60538E-02 1.27676E-02 1.13258E-02 1.13232E-02 1.25857E-02 1.51325E-02 1.91399E-02 2.49065E-02 3.27921E-02 4.30287E-02 5.53493E-02 6.86094E-02 8.08274E-02 8.99631E-02 9.49107E-02 9.58523E-02 9.38116E-02 9.00126E-02 8.54568E-02 8.08122E-02 7.64119E-02 7.22829E-02 6.82316E-02 6.39433E-02 5.91226E-02 5.36034E-02 4.74179E-02 4.08099E-02 3.41456E-02 2.78238E-02 2.21784E-02 1.74195E-02 1.29556E-02 8.70582E-03 5.55922E-03 4.29439E-03 5.11085E-03 6.94946E-03 8.53335E-03 9.40355E-03 9.78270E-03 9.92835E-03 9.97906E-03 9.99535E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00076E-02 1.00169E-02 1.00416E-02 1.01013E-02 1.02263E-02 1.04317E-02 1.06296E-02 1.05767E-02 1.01234E-02 9.45515E-03 8.86760E-03 8.47064E-03 8.23818E-03 8.09533E-03 8.02198E-03 8.04211E-03 8.18832E-03 8.50630E-03 9.06181E-03 9.95154E-03 1.13166E-02 1.33563E-02 1.63358E-02 2.05541E-02 2.62257E-02 3.32034E-02 4.05448E-02 4.62780E-02 4.80603E-02 4.48512E-02 3.79704E-02 3.00407E-02 2.31503E-02 1.81495E-02 1.50412E-02 1.35370E-02 1.33706E-02 1.44039E-02 1.66428E-02 2.02125E-02 2.53315E-02 3.22456E-02 4.10890E-02 5.16672E-02 6.32364E-02 7.44947E-02 8.39378E-02 9.04324E-02 9.35961E-02 9.37709E-02 9.16708E-02 8.80832E-02 8.36311E-02 7.87137E-02 7.35185E-02 6.80596E-02 6.22866E-02 5.61691E-02 4.97565E-02 4.32069E-02 3.67522E-02 3.06514E-02 2.51296E-02 2.03420E-02 1.63586E-02 1.26083E-02 8.96441E-03 6.13751E-03 4.84882E-03 5.46774E-03 7.11155E-03 8.58255E-03 9.41463E-03 9.78481E-03 9.92870E-03 9.97911E-03 9.99536E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00076E-02 1.00169E-02 1.00415E-02 1.01009E-02 1.02250E-02 1.04308E-02 1.06451E-02 1.06666E-02 1.03812E-02 9.93313E-03 9.54051E-03 9.28861E-03 9.16080E-03 9.10684E-03 9.12633E-03 9.24626E-03 9.50232E-03 9.94270E-03 1.06322E-02 1.16600E-02 1.31459E-02 1.52434E-02 1.81284E-02 2.19543E-02 2.67461E-02 3.22141E-02 3.75527E-02 4.14357E-02 4.25056E-02 4.02395E-02 3.54097E-02 2.95893E-02 2.41992E-02 2.00129E-02 1.72326E-02 1.57804E-02 1.55223E-02 1.63736E-02 1.83322E-02 2.14831E-02 2.59664E-02 3.19296E-02 3.94291E-02 4.82934E-02 5.80055E-02 6.76818E-02 7.62584E-02 8.27959E-02 8.67556E-02 8.80957E-02 8.71518E-02 8.44177E-02 8.03929E-02 7.54876E-02 6.99843E-02 6.40672E-02 5.78608E-02 5.14962E-02 4.51260E-02 3.89211E-02 3.30674E-02 2.77200E-02 2.29951E-02 1.89521E-02 1.55980E-02 1.24125E-02 9.25169E-03 6.69593E-03 5.40229E-03 5.82915E-03 7.27699E-03 8.63405E-03 9.42649E-03 9.78708E-03 9.92908E-03 9.97917E-03 9.99536E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00076E-02 1.00168E-02 1.00414E-02 1.01004E-02 1.02236E-02 1.04294E-02 1.06588E-02 1.07471E-02 1.06086E-02 1.03531E-02 1.01375E-02 1.00250E-02 1.00016E-02 1.00371E-02 1.01492E-02 1.03653E-02 1.07204E-02 1.12608E-02 1.20452E-02 1.31488E-02 1.46643E-02 1.66959E-02 1.93432E-02 2.26575E-02 2.65622E-02 3.07503E-02 3.46058E-02 3.72782E-02 3.79870E-02 3.64600E-02 3.31478E-02 2.89832E-02 2.49118E-02 2.15606E-02 1.92082E-02 1.79103E-02 1.76337E-02 1.83428E-02 2.00432E-02 2.27823E-02 2.66419E-02 3.16902E-02 3.79190E-02 4.51633E-02 5.30346E-02 6.09171E-02 6.80600E-02 7.37568E-02 7.75120E-02 7.91451E-02 7.87529E-02 7.66394E-02 7.31646E-02 6.86805E-02 6.35022E-02 5.78797E-02 5.20265E-02 4.61284E-02 4.03577E-02 3.48735E-02 2.98049E-02 2.52483E-02 2.12593E-02 1.78555E-02 1.50206E-02 1.22967E-02 9.53773E-03 7.22108E-03 5.93943E-03 6.18788E-03 7.44327E-03 8.68698E-03 9.43907E-03 9.78959E-03 9.92954E-03 9.97924E-03 9.99538E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00076E-02 1.00168E-02 1.00412E-02 1.00998E-02 1.02219E-02 1.04276E-02 1.06700E-02 1.08167E-02 1.08037E-02 1.07122E-02 1.06505E-02 1.06623E-02 1.07329E-02 1.08492E-02 1.10433E-02 1.13406E-02 1.17732E-02 1.23817E-02 1.32159E-02 1.43339E-02 1.58008E-02 1.76794E-02 2.00123E-02 2.27901E-02 2.59003E-02 2.90747E-02 3.18774E-02 3.37725E-02 3.43122E-02 3.33505E-02 3.11447E-02 2.82523E-02 2.52865E-02 2.27265E-02 2.08497E-02 1.97748E-02 1.95378E-02 2.01443E-02 2.16029E-02 2.39430E-02 2.71952E-02 3.13747E-02 3.64330E-02 4.22056E-02 4.83886E-02 5.45375E-02 6.01286E-02 6.46540E-02 6.77228E-02 6.91407E-02 6.89206E-02 6.72223E-02 6.43042E-02 6.04523E-02 5.59421E-02 5.10286E-02 4.59262E-02 4.08253E-02 3.58863E-02 3.12356E-02 2.69725E-02 2.31556E-02 1.98165E-02 1.69567E-02 1.45563E-02 1.22196E-02 9.80291E-03 7.70254E-03 6.44814E-03 6.53776E-03 7.60847E-03 8.74114E-03 9.45232E-03 9.79230E-03 9.93004E-03 9.97934E-03 9.99539E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00076E-02 1.00167E-02 1.00410E-02 1.00991E-02 1.02201E-02 1.04251E-02 1.06787E-02 1.08752E-02 1.09661E-02 1.10095E-02 1.10761E-02 1.11923E-02 1.13414E-02 1.15233E-02 1.17819E-02 1.21397E-02 1.26236E-02 1.32666E-02 1.41080E-02 1.51896E-02 1.65531E-02 1.82296E-02 2.02266E-02 2.25059E-02 2.49541E-02 2.73620E-02 2.94309E-02 3.08303E-02 3.12978E-02 3.07539E-02 2.93482E-02 2.74087E-02 2.53354E-02 2.34748E-02 2.20672E-02 2.12499E-02 2.10912E-02 2.16224E-02 2.28612E-02 2.48172E-02 2.74976E-02 3.08774E-02 3.48846E-02 3.93693E-02 4.40887E-02 4.87206E-02 5.28946E-02 5.62592E-02 5.85356E-02 5.95638E-02 5.93206E-02 5.79108E-02 5.55057E-02 5.23166E-02 4.85705E-02 4.44807E-02 4.02410E-02 3.60084E-02 3.19168E-02 2.80722E-02 2.45448E-02 2.13805E-02 1.85980E-02 1.61981E-02 1.41634E-02 1.21543E-02 1.00356E-02 8.13434E-03 6.91963E-03 6.87340E-03 7.77064E-03 8.79570E-03 9.46607E-03 9.79519E-03 9.93058E-03 9.97943E-03 9.99541E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00075E-02 1.00167E-02 1.00409E-02 1.00985E-02 1.02181E-02 1.04221E-02 1.06846E-02 1.09221E-02 1.10968E-02 1.12481E-02 1.14169E-02 1.16147E-02 1.18235E-02 1.20546E-02 1.23582E-02 1.27537E-02 1.32623E-02 1.39093E-02 1.47242E-02 1.57347E-02 1.69640E-02 1.84230E-02 2.00995E-02 2.19471E-02 2.38687E-02 2.57097E-02 2.72722E-02 2.83497E-02 2.87900E-02 2.85455E-02 2.77053E-02 2.64697E-02 2.50897E-02 2.38106E-02 2.28250E-02 2.22619E-02 2.21984E-02 2.26758E-02 2.37133E-02 2.53178E-02 2.74717E-02 3.01391E-02 3.32406E-02 3.66414E-02 4.01520E-02 4.35374E-02 4.65410E-02 4.89217E-02 5.04889E-02 5.11255E-02 5.08128E-02 4.96074E-02 4.76368E-02 4.50529E-02 4.20202E-02 3.87106E-02 3.52738E-02 3.18387E-02 2.85111E-02 2.53724E-02 2.24807E-02 1.98697E-02 1.75571E-02 1.55431E-02 1.38164E-02 1.20886E-02 1.02307E-02 8.51341E-03 7.34876E-03 7.19100E-03 7.92842E-03 8.85047E-03 9.48022E-03 9.79816E-03 9.93112E-03 9.97951E-03 9.99542E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00075E-02 1.00167E-02 1.00407E-02 1.00978E-02 1.02161E-02 1.04187E-02 1.06879E-02 1.09581E-02 1.11979E-02 1.14316E-02 1.16781E-02 1.19359E-02 1.21864E-02 1.24491E-02 1.27792E-02 1.31916E-02 1.37026E-02 1.43303E-02 1.50946E-02 1.60130E-02 1.70969E-02 1.83454E-02 1.97382E-02 2.12300E-02 2.27439E-02 2.41704E-02 2.53794E-02 2.62435E-02 2.66694E-02 2.66336E-02 2.61888E-02 2.54538E-02 2.45929E-02 2.37730E-02 2.31399E-02 2.28000E-02 2.28252E-02 2.32600E-02 2.41230E-02 2.54114E-02 2.71083E-02 2.91638E-02 3.15067E-02 3.40280E-02 3.65792E-02 3.89909E-02 4.10841E-02 4.26964E-02 4.37026E-02 4.40237E-02 4.36451E-02 4.26091E-02 4.09954E-02 3.89150E-02 3.64891E-02 3.38411E-02 3.10894E-02 2.83289E-02 2.56428E-02 2.30960E-02 2.07316E-02 1.85813E-02 1.66583E-02 1.49673E-02 1.35019E-02 1.20147E-02 1.03866E-02 8.84007E-03 7.73310E-03 7.48732E-03 8.08041E-03 8.90474E-03 9.49465E-03 9.80127E-03 9.93169E-03 9.97960E-03 9.99543E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00075E-02 1.00166E-02 1.00405E-02 1.00971E-02 1.02139E-02 1.04147E-02 1.06884E-02 1.09835E-02 1.12722E-02 1.15662E-02 1.18676E-02 1.21655E-02 1.24417E-02 1.27214E-02 1.30614E-02 1.34733E-02 1.39696E-02 1.45616E-02 1.52623E-02 1.60817E-02 1.70229E-02 1.80796E-02 1.92304E-02 2.04363E-02 2.16389E-02 2.27625E-02 2.37221E-02 2.44375E-02 2.48538E-02 2.49544E-02 2.47745E-02 2.43906E-02 2.39033E-02 2.34260E-02 2.30645E-02 2.29052E-02 2.30049E-02 2.33999E-02 2.41083E-02 2.51293E-02 2.64364E-02 2.79904E-02 2.97231E-02 3.15505E-02 3.33648E-02 3.50419E-02 3.64578E-02 3.75036E-02 3.80992E-02 3.81931E-02 3.77761E-02 3.68740E-02 3.55498E-02 3.38757E-02 3.19365E-02 2.98254E-02 2.76267E-02 2.54153E-02 2.32512E-02 2.11849E-02 1.92528E-02 1.74793E-02 1.58796E-02 1.44575E-02 1.32112E-02 1.19312E-02 1.05057E-02 9.11675E-03 8.07288E-03 7.76106E-03 8.22584E-03 8.95848E-03 9.50937E-03 9.80452E-03 9.93231E-03 9.97971E-03 9.99545E-03 1.00003E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00075E-02 1.00166E-02 1.00403E-02 1.00963E-02 1.02116E-02 1.04102E-02 1.06864E-02 1.09995E-02 1.13226E-02 1.16576E-02 1.19950E-02 1.23160E-02 1.26038E-02 1.28888E-02 1.32265E-02 1.36250E-02 1.40937E-02 1.46408E-02 1.52724E-02 1.59937E-02 1.68033E-02 1.76931E-02 1.86440E-02 1.96235E-02 2.05891E-02 2.14890E-02 2.22679E-02 2.28755E-02 2.32759E-02 2.34623E-02 2.34561E-02 2.33066E-02 2.30788E-02 2.28455E-02 2.26827E-02 2.26535E-02 2.28036E-02 2.31617E-02 2.37408E-02 2.45361E-02 2.55290E-02 2.66785E-02 2.79369E-02 2.92370E-02 3.04992E-02 3.16373E-02 3.25659E-02 3.32106E-02 3.35185E-02 3.34598E-02 3.30302E-02 3.22482E-02 3.11498E-02 2.97949E-02 2.82421E-02 2.65530E-02 2.47915E-02 2.30128E-02 2.12650E-02 1.95843E-02 1.80001E-02 1.65350E-02 1.52002E-02 1.40015E-02 1.29414E-02 1.18392E-02 1.05917E-02 9.34715E-03 8.36968E-03 8.01095E-03 8.36395E-03 9.01120E-03 9.52428E-03 9.80792E-03 9.93298E-03 9.97983E-03 9.99547E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00075E-02 1.00165E-02 1.00401E-02 1.00955E-02 1.02091E-02 1.04051E-02 1.06818E-02 1.10067E-02 1.13525E-02 1.17124E-02 1.20691E-02 1.24004E-02 1.26898E-02 1.29703E-02 1.32961E-02 1.36731E-02 1.41079E-02 1.46053E-02 1.51678E-02 1.57969E-02 1.64897E-02 1.72375E-02 1.80252E-02 1.88273E-02 1.96120E-02 2.03450E-02 2.09893E-02 2.15126E-02 2.18937E-02 2.21279E-02 2.22296E-02 2.22298E-02 2.21718E-02 2.21051E-02 2.20774E-02 2.21356E-02 2.23134E-02 2.26329E-02 2.31030E-02 2.37183E-02 2.44602E-02 2.53018E-02 2.61966E-02 2.71022E-02 2.79621E-02 2.87132E-02 2.92978E-02 2.96653E-02 2.97809E-02 2.96292E-02 2.92056E-02 2.85241E-02 2.76131E-02 2.65062E-02 2.52511E-02 2.38917E-02 2.24715E-02 2.10353E-02 1.96156E-02 1.82424E-02 1.69395E-02 1.57231E-02 1.46058E-02 1.35936E-02 1.26898E-02 1.17401E-02 1.06489E-02 9.53613E-03 8.62666E-03 8.23762E-03 8.49439E-03 9.06287E-03 9.53933E-03 9.81140E-03 9.93366E-03 9.97995E-03 9.99549E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00075E-02 1.00165E-02 1.00399E-02 1.00947E-02 1.02065E-02 1.03994E-02 1.06749E-02 1.10062E-02 1.13647E-02 1.17370E-02 1.21003E-02 1.24307E-02 1.27140E-02 1.29841E-02 1.32920E-02 1.36424E-02 1.40393E-02 1.44864E-02 1.49840E-02 1.55307E-02 1.61224E-02 1.67515E-02 1.74058E-02 1.80671E-02 1.87130E-02 1.93187E-02 1.98598E-02 2.03162E-02 2.06739E-02 2.09293E-02 2.10913E-02 2.11837E-02 2.12328E-02 2.12695E-02 2.13280E-02 2.14388E-02 2.16284E-02 2.19090E-02 2.22866E-02 2.27577E-02 2.33076E-02 2.39120E-02 2.45433E-02 2.51603E-02 2.57296E-02 2.62083E-02 2.65549E-02 2.67369E-02 2.67303E-02 2.65256E-02 2.61209E-02 2.55263E-02 2.47591E-02 2.38501E-02 2.28273E-02 2.17233E-02 2.05708E-02 1.94014E-02 1.82426E-02 1.71145E-02 1.60369E-02 1.50241E-02 1.40858E-02 1.32283E-02 1.24561E-02 1.16367E-02 1.06825E-02 9.68864E-03 8.84716E-03 8.44118E-03 8.61690E-03 9.11307E-03 9.55440E-03 9.81497E-03 9.93435E-03 9.98007E-03 9.99550E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00075E-02 1.00164E-02 1.00397E-02 1.00938E-02 1.02038E-02 1.03934E-02 1.06660E-02 1.09990E-02 1.13624E-02 1.17365E-02 1.20965E-02 1.24190E-02 1.26904E-02 1.29459E-02 1.32329E-02 1.35546E-02 1.39130E-02 1.43112E-02 1.47488E-02 1.52222E-02 1.57283E-02 1.62597E-02 1.68066E-02 1.73565E-02 1.78933E-02 1.83999E-02 1.88598E-02 1.92590E-02 1.95892E-02 1.98486E-02 2.00434E-02 2.01849E-02 2.02946E-02 2.03942E-02 2.05025E-02 2.06400E-02 2.08246E-02 2.10688E-02 2.13725E-02 2.17302E-02 2.21325E-02 2.25633E-02 2.29983E-02 2.34139E-02 2.37775E-02 2.40656E-02 2.42522E-02 2.43124E-02 2.42294E-02 2.39992E-02 2.36213E-02 2.31020E-02 2.24549E-02 2.16975E-02 2.08575E-02 1.99537E-02 1.90096E-02 1.80501E-02 1.70953E-02 1.61630E-02 1.52674E-02 1.44194E-02 1.36279E-02 1.29001E-02 1.22394E-02 1.15315E-02 1.06964E-02 9.80976E-03 9.03534E-03 8.62321E-03 8.73136E-03 9.16180E-03 9.56946E-03 9.81860E-03 9.93507E-03 9.98019E-03 9.99552E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00075E-02 1.00164E-02 1.00394E-02 1.00929E-02 1.02010E-02 1.03869E-02 1.06553E-02 1.09861E-02 1.13479E-02 1.17169E-02 1.20661E-02 1.23748E-02 1.26321E-02 1.28700E-02 1.31340E-02 1.34269E-02 1.37493E-02 1.41015E-02 1.44845E-02 1.48943E-02 1.53274E-02 1.57784E-02 1.62386E-02 1.66993E-02 1.71501E-02 1.75782E-02 1.79721E-02 1.83219E-02 1.86235E-02 1.88755E-02 1.90807E-02 1.92464E-02 1.93856E-02 1.95156E-02 1.96498E-02 1.97968E-02 1.99699E-02 2.01766E-02 2.04183E-02 2.06905E-02 2.09838E-02 2.12860E-02 2.15832E-02 2.18512E-02 2.20748E-02 2.22331E-02 2.23103E-02 2.22928E-02 2.21680E-02 2.19297E-02 2.15812E-02 2.11268E-02 2.05769E-02 1.99453E-02 1.92443E-02 1.84970E-02 1.77190E-02 1.69253E-02 1.61339E-02 1.53583E-02 1.46095E-02 1.38957E-02 1.32255E-02 1.26063E-02 1.20390E-02 1.14259E-02 1.06950E-02 9.90451E-03 9.19489E-03 8.78479E-03 8.83787E-03 9.20879E-03 9.58447E-03 9.82234E-03 9.93585E-03 9.98033E-03 9.99555E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00075E-02 1.00163E-02 1.00391E-02 1.00919E-02 1.01981E-02 1.03800E-02 1.06429E-02 1.09683E-02 1.13239E-02 1.16818E-02 1.20158E-02 1.23070E-02 1.25470E-02 1.27674E-02 1.30087E-02 1.32727E-02 1.35609E-02 1.38725E-02 1.42067E-02 1.45622E-02 1.49342E-02 1.53179E-02 1.57074E-02 1.60961E-02 1.64771E-02 1.68413E-02 1.71805E-02 1.74892E-02 1.77621E-02 1.79985E-02 1.82009E-02 1.83739E-02 1.85260E-02 1.86654E-02 1.88049E-02 1.89529E-02 1.91108E-02 1.92837E-02 1.94728E-02 1.96776E-02 1.98907E-02 2.01010E-02 2.02972E-02 2.04669E-02 2.05914E-02 2.06642E-02 2.06703E-02 2.06036E-02 2.04582E-02 2.02247E-02 1.99056E-02 1.95067E-02 1.90354E-02 1.85007E-02 1.79158E-02 1.72916E-02 1.66440E-02 1.59834E-02 1.53228E-02 1.46740E-02 1.40434E-02 1.34409E-02 1.28729E-02 1.23430E-02 1.18542E-02 1.13226E-02 1.06813E-02 9.97747E-03 9.32953E-03 8.92772E-03 8.93653E-03 9.25407E-03 9.59938E-03 9.82614E-03 9.93664E-03 9.98048E-03 9.99557E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00075E-02 1.00163E-02 1.00389E-02 1.00909E-02 1.01950E-02 1.03727E-02 1.06292E-02 1.09466E-02 1.12922E-02 1.16355E-02 1.19509E-02 1.22229E-02 1.24440E-02 1.26462E-02 1.28664E-02 1.31036E-02 1.33598E-02 1.36348E-02 1.39265E-02 1.42345E-02 1.45553E-02 1.48838E-02 1.52162E-02 1.55470E-02 1.58703E-02 1.61814E-02 1.64748E-02 1.67454E-02 1.69904E-02 1.72083E-02 1.74004E-02 1.75706E-02 1.77229E-02 1.78633E-02 1.79978E-02 1.81347E-02 1.82755E-02 1.84195E-02 1.85694E-02 1.87215E-02 1.88732E-02 1.90172E-02 1.91421E-02 1.92413E-02 1.93050E-02 1.93189E-02 1.92831E-02 1.91876E-02 1.90299E-02 1.88080E-02 1.85198E-02 1.81696E-02 1.77636E-02 1.73091E-02 1.68144E-02 1.62918E-02 1.57472E-02 1.51925E-02 1.46366E-02 1.40884E-02 1.35561E-02 1.30456E-02 1.25609E-02 1.21059E-02 1.16841E-02 1.12216E-02 1.06588E-02 1.00326E-02 9.44263E-03 9.05369E-03 9.02772E-03 9.29753E-03 9.61414E-03 9.82997E-03 9.93744E-03 9.98062E-03 9.99559E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00075E-02 1.00162E-02 1.00386E-02 1.00899E-02 1.01919E-02 1.03651E-02 1.06144E-02 1.09218E-02 1.12548E-02 1.15810E-02 1.18769E-02 1.21282E-02 1.23310E-02 1.25147E-02 1.27136E-02 1.29276E-02 1.31551E-02 1.33972E-02 1.36522E-02 1.39191E-02 1.41956E-02 1.44786E-02 1.47641E-02 1.50477E-02 1.53249E-02 1.55920E-02 1.58451E-02 1.60814E-02 1.62991E-02 1.64970E-02 1.66748E-02 1.68357E-02 1.69811E-02 1.71154E-02 1.72417E-02 1.73623E-02 1.74829E-02 1.76032E-02 1.77211E-02 1.78359E-02 1.79418E-02 1.80362E-02 1.81124E-02 1.81628E-02 1.81829E-02 1.81656E-02 1.81018E-02 1.79927E-02 1.78319E-02 1.76222E-02 1.73629E-02 1.70564E-02 1.67058E-02 1.63175E-02 1.58983E-02 1.54529E-02 1.49933E-02 1.45250E-02 1.40540E-02 1.35890E-02 1.31369E-02 1.27013E-02 1.22859E-02 1.18933E-02 1.15283E-02 1.11249E-02 1.06302E-02 1.00739E-02 9.53716E-03 9.16460E-03 9.11161E-03 9.33904E-03 9.62867E-03 9.83381E-03 9.93825E-03 9.98076E-03 9.99561E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00074E-02 1.00161E-02 1.00383E-02 1.00889E-02 1.01888E-02 1.03573E-02 1.05986E-02 1.08944E-02 1.12128E-02 1.15206E-02 1.17967E-02 1.20279E-02 1.22122E-02 1.23786E-02 1.25570E-02 1.27484E-02 1.29513E-02 1.31645E-02 1.33885E-02 1.36205E-02 1.38596E-02 1.41034E-02 1.43491E-02 1.45933E-02 1.48326E-02 1.50630E-02 1.52823E-02 1.54890E-02 1.56811E-02 1.58578E-02 1.60201E-02 1.61676E-02 1.63026E-02 1.64264E-02 1.65408E-02 1.66479E-02 1.67488E-02 1.68465E-02 1.69385E-02 1.70228E-02 1.70971E-02 1.71558E-02 1.71978E-02 1.72163E-02 1.72075E-02 1.71681E-02 1.70928E-02 1.69765E-02 1.68217E-02 1.66262E-02 1.63919E-02 1.61212E-02 1.58173E-02 1.54830E-02 1.51242E-02 1.47462E-02 1.43534E-02 1.39556E-02 1.35568E-02 1.31609E-02 1.27743E-02 1.24007E-02 1.20430E-02 1.17044E-02 1.13861E-02 1.10338E-02 1.05988E-02 1.01032E-02 9.61567E-03 9.26197E-03 9.18875E-03 9.37873E-03 9.64298E-03 9.83770E-03 9.93909E-03 9.98092E-03 9.99564E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00074E-02 1.00161E-02 1.00380E-02 1.00878E-02 1.01855E-02 1.03492E-02 1.05821E-02 1.08654E-02 1.11677E-02 1.14565E-02 1.17123E-02 1.19239E-02 1.20912E-02 1.22407E-02 1.24008E-02 1.25708E-02 1.27510E-02 1.29401E-02 1.31369E-02 1.33400E-02 1.35475E-02 1.37583E-02 1.39701E-02 1.41808E-02 1.43871E-02 1.45870E-02 1.47782E-02 1.49590E-02 1.51281E-02 1.52853E-02 1.54307E-02 1.55639E-02 1.56861E-02 1.57975E-02 1.58995E-02 1.59929E-02 1.60786E-02 1.61559E-02 1.62262E-02 1.62867E-02 1.63358E-02 1.63712E-02 1.63883E-02 1.63863E-02 1.63595E-02 1.63062E-02 1.62238E-02 1.61102E-02 1.59627E-02 1.57839E-02 1.55737E-02 1.53334E-02 1.50670E-02 1.47782E-02 1.44690E-02 1.41457E-02 1.38118E-02 1.34701E-02 1.31292E-02 1.27910E-02 1.24583E-02 1.21363E-02 1.18273E-02 1.15336E-02 1.12569E-02 1.09483E-02 1.05645E-02 1.01233E-02 9.68082E-03 9.34766E-03 9.25922E-03 9.41633E-03 9.65704E-03 9.84163E-03 9.93997E-03 9.98108E-03 9.99567E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00074E-02 1.00160E-02 1.00377E-02 1.00867E-02 1.01821E-02 1.03410E-02 1.05651E-02 1.08352E-02 1.11205E-02 1.13904E-02 1.16261E-02 1.18191E-02 1.19705E-02 1.21049E-02 1.22481E-02 1.23996E-02 1.25593E-02 1.27267E-02 1.28996E-02 1.30775E-02 1.32589E-02 1.34422E-02 1.36258E-02 1.38077E-02 1.39862E-02 1.41596E-02 1.43262E-02 1.44842E-02 1.46333E-02 1.47724E-02 1.49010E-02 1.50197E-02 1.51281E-02 1.52268E-02 1.53164E-02 1.53969E-02 1.54685E-02 1.55308E-02 1.55835E-02 1.56261E-02 1.56568E-02 1.56741E-02 1.56756E-02 1.56583E-02 1.56212E-02 1.55602E-02 1.54755E-02 1.53651E-02 1.52293E-02 1.50656E-02 1.48784E-02 1.46671E-02 1.44338E-02 1.41822E-02 1.39162E-02 1.36373E-02 1.33502E-02 1.30584E-02 1.27629E-02 1.24707E-02 1.21833E-02 1.19039E-02 1.16353E-02 1.13797E-02 1.11384E-02 1.08681E-02 1.05295E-02 1.01357E-02 9.73468E-03 9.42281E-03 9.32381E-03 9.45226E-03 9.67085E-03 9.84557E-03 9.94085E-03 9.98125E-03 9.99570E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00074E-02 1.00159E-02 1.00374E-02 1.00856E-02 1.01787E-02 1.03325E-02 1.05477E-02 1.08043E-02 1.10722E-02 1.13236E-02 1.15402E-02 1.17160E-02 1.18526E-02 1.19741E-02 1.21021E-02 1.22374E-02 1.23791E-02 1.25264E-02 1.26785E-02 1.28344E-02 1.29932E-02 1.31532E-02 1.33129E-02 1.34708E-02 1.36256E-02 1.37763E-02 1.39211E-02 1.40596E-02 1.41901E-02 1.43123E-02 1.44254E-02 1.45296E-02 1.46246E-02 1.47110E-02 1.47883E-02 1.48570E-02 1.49163E-02 1.49665E-02 1.50064E-02 1.50357E-02 1.50534E-02 1.50578E-02 1.50478E-02 1.50215E-02 1.49770E-02 1.49136E-02 1.48293E-02 1.47245E-02 1.45980E-02 1.44517E-02 1.42834E-02 1.40983E-02 1.38950E-02 1.36764E-02 1.34452E-02 1.32049E-02 1.29562E-02 1.27035E-02 1.24494E-02 1.21948E-02 1.19450E-02 1.17012E-02 1.14667E-02 1.12428E-02 1.10315E-02 1.07937E-02 1.04944E-02 1.01428E-02 9.77938E-03 9.48900E-03 9.38238E-03 9.48600E-03 9.68433E-03 9.84950E-03 9.94174E-03 9.98141E-03 9.99572E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00074E-02 1.00159E-02 1.00371E-02 1.00844E-02 1.01753E-02 1.03240E-02 1.05299E-02 1.07732E-02 1.10239E-02 1.12570E-02 1.14558E-02 1.16155E-02 1.17397E-02 1.18490E-02 1.19641E-02 1.20847E-02 1.22102E-02 1.23400E-02 1.24737E-02 1.26105E-02 1.27493E-02 1.28890E-02 1.30281E-02 1.31656E-02 1.33006E-02 1.34316E-02 1.35581E-02 1.36787E-02 1.37929E-02 1.38995E-02 1.39986E-02 1.40893E-02 1.41722E-02 1.42465E-02 1.43130E-02 1.43706E-02 1.44199E-02 1.44596E-02 1.44898E-02 1.45093E-02 1.45176E-02 1.45135E-02 1.44958E-02 1.44638E-02 1.44160E-02 1.43519E-02 1.42708E-02 1.41720E-02 1.40562E-02 1.39230E-02 1.37744E-02 1.36090E-02 1.34318E-02 1.32413E-02 1.30402E-02 1.28308E-02 1.26161E-02 1.23963E-02 1.21754E-02 1.19556E-02 1.17376E-02 1.15248E-02 1.13190E-02 1.11224E-02 1.09360E-02 1.07266E-02 1.04602E-02 1.01457E-02 9.81714E-03 9.54717E-03 9.43602E-03 9.51819E-03 9.69748E-03 9.85342E-03 9.94264E-03 9.98158E-03 9.99575E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00074E-02 1.00158E-02 1.00368E-02 1.00832E-02 1.01715E-02 1.03145E-02 1.05104E-02 1.07389E-02 1.09712E-02 1.11851E-02 1.13653E-02 1.15097E-02 1.16207E-02 1.17181E-02 1.18201E-02 1.19263E-02 1.20360E-02 1.21492E-02 1.22653E-02 1.23838E-02 1.25035E-02 1.26236E-02 1.27431E-02 1.28615E-02 1.29776E-02 1.30906E-02 1.31993E-02 1.33031E-02 1.34011E-02 1.34929E-02 1.35779E-02 1.36560E-02 1.37265E-02 1.37897E-02 1.38450E-02 1.38926E-02 1.39318E-02 1.39624E-02 1.39837E-02 1.39951E-02 1.39959E-02 1.39854E-02 1.39629E-02 1.39275E-02 1.38789E-02 1.38162E-02 1.37395E-02 1.36484E-02 1.35431E-02 1.34240E-02 1.32917E-02 1.31476E-02 1.29914E-02 1.28272E-02 1.26538E-02 1.24739E-02 1.22888E-02 1.21015E-02 1.19117E-02 1.17228E-02 1.15365E-02 1.13536E-02 1.11753E-02 1.10045E-02 1.08423E-02 1.06587E-02 1.04256E-02 1.01462E-02 9.85122E-03 9.60321E-03 9.48903E-03 9.55114E-03 9.71154E-03 9.85773E-03 9.94365E-03 9.98178E-03 9.99578E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00073E-02 1.00157E-02 1.00363E-02 1.00816E-02 1.01667E-02 1.03028E-02 1.04863E-02 1.06973E-02 1.09084E-02 1.10997E-02 1.12595E-02 1.13860E-02 1.14826E-02 1.15669E-02 1.16546E-02 1.17453E-02 1.18387E-02 1.19345E-02 1.20324E-02 1.21317E-02 1.22318E-02 1.23318E-02 1.24316E-02 1.25303E-02 1.26270E-02 1.27209E-02 1.28113E-02 1.28975E-02 1.29789E-02 1.30551E-02 1.31256E-02 1.31900E-02 1.32479E-02 1.32991E-02 1.33432E-02 1.33802E-02 1.34095E-02 1.34310E-02 1.34439E-02 1.34481E-02 1.34427E-02 1.34276E-02 1.34019E-02 1.33655E-02 1.33180E-02 1.32591E-02 1.31887E-02 1.31069E-02 1.30138E-02 1.29097E-02 1.27953E-02 1.26714E-02 1.25392E-02 1.23989E-02 1.22537E-02 1.21027E-02 1.19484E-02 1.17917E-02 1.16347E-02 1.14772E-02 1.13212E-02 1.11688E-02 1.10210E-02 1.08767E-02 1.07393E-02 1.05839E-02 1.03844E-02 1.01440E-02 9.88613E-03 9.66231E-03 9.54766E-03 9.58917E-03 9.72824E-03 9.86298E-03 9.94492E-03 9.98203E-03 9.99583E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00073E-02 1.00155E-02 1.00358E-02 1.00796E-02 1.01609E-02 1.02888E-02 1.04577E-02 1.06484E-02 1.08359E-02 1.10026E-02 1.11401E-02 1.12476E-02 1.13291E-02 1.13998E-02 1.14729E-02 1.15482E-02 1.16254E-02 1.17041E-02 1.17841E-02 1.18649E-02 1.19459E-02 1.20271E-02 1.21077E-02 1.21871E-02 1.22648E-02 1.23401E-02 1.24124E-02 1.24813E-02 1.25464E-02 1.26070E-02 1.26630E-02 1.27138E-02 1.27591E-02 1.27985E-02 1.28318E-02 1.28586E-02 1.28789E-02 1.28921E-02 1.28982E-02 1.28966E-02 1.28870E-02 1.28690E-02 1.28424E-02 1.28070E-02 1.27627E-02 1.27094E-02 1.26471E-02 1.25758E-02 1.24959E-02 1.24076E-02 1.23115E-02 1.22082E-02 1.20985E-02 1.19833E-02 1.18631E-02 1.17402E-02 1.16142E-02 1.14871E-02 1.13595E-02 1.12322E-02 1.11060E-02 1.09815E-02 1.08607E-02 1.07449E-02 1.06321E-02 1.05035E-02 1.03390E-02 1.01375E-02 9.91664E-03 9.72027E-03 9.60799E-03 9.63053E-03 9.74740E-03 9.86923E-03 9.94645E-03 9.98234E-03 9.99588E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00043E-02 1.00073E-02 1.00154E-02 1.00351E-02 1.00773E-02 1.01542E-02 1.02727E-02 1.04256E-02 1.05943E-02 1.07568E-02 1.08989E-02 1.10140E-02 1.11031E-02 1.11701E-02 1.12279E-02 1.12874E-02 1.13484E-02 1.14104E-02 1.14734E-02 1.15371E-02 1.16012E-02 1.16654E-02 1.17293E-02 1.17925E-02 1.18545E-02 1.19149E-02 1.19733E-02 1.20293E-02 1.20825E-02 1.21324E-02 1.21788E-02 1.22212E-02 1.22595E-02 1.22932E-02 1.23220E-02 1.23456E-02 1.23638E-02 1.23763E-02 1.23832E-02 1.23840E-02 1.23785E-02 1.23665E-02 1.23477E-02 1.23221E-02 1.22894E-02 1.22498E-02 1.22032E-02 1.21498E-02 1.20896E-02 1.20229E-02 1.19500E-02 1.18713E-02 1.17873E-02 1.16986E-02 1.16058E-02 1.15096E-02 1.14107E-02 1.13104E-02 1.12087E-02 1.11072E-02 1.10062E-02 1.09058E-02 1.08073E-02 1.07106E-02 1.06171E-02 1.05284E-02 1.04256E-02 1.02913E-02 1.01273E-02 9.94341E-03 9.77445E-03 9.66790E-03 9.67364E-03 9.76827E-03 9.87631E-03 9.94823E-03 9.98269E-03 9.99594E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00042E-02 1.00073E-02 1.00152E-02 1.00343E-02 1.00745E-02 1.01462E-02 1.02538E-02 1.03887E-02 1.05336E-02 1.06697E-02 1.07863E-02 1.08792E-02 1.09503E-02 1.10034E-02 1.10489E-02 1.10955E-02 1.11428E-02 1.11907E-02 1.12391E-02 1.12878E-02 1.13366E-02 1.13852E-02 1.14333E-02 1.14806E-02 1.15268E-02 1.15715E-02 1.16145E-02 1.16556E-02 1.16944E-02 1.17306E-02 1.17639E-02 1.17940E-02 1.18208E-02 1.18440E-02 1.18633E-02 1.18785E-02 1.18893E-02 1.18957E-02 1.18975E-02 1.18945E-02 1.18867E-02 1.18739E-02 1.18558E-02 1.18325E-02 1.18039E-02 1.17701E-02 1.17312E-02 1.16872E-02 1.16383E-02 1.15848E-02 1.15269E-02 1.14649E-02 1.13991E-02 1.13300E-02 1.12580E-02 1.11837E-02 1.11075E-02 1.10300E-02 1.09519E-02 1.08733E-02 1.07958E-02 1.07190E-02 1.06429E-02 1.05689E-02 1.04966E-02 1.04267E-02 1.03476E-02 1.02439E-02 1.01138E-02 9.96562E-03 9.82401E-03 9.72618E-03 9.71877E-03 9.79152E-03 9.88457E-03 9.95040E-03 9.98314E-03 9.99601E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00042E-02 1.00072E-02 1.00149E-02 1.00333E-02 1.00710E-02 1.01366E-02 1.02316E-02 1.03466E-02 1.04661E-02 1.05754E-02 1.06666E-02 1.07382E-02 1.07923E-02 1.08324E-02 1.08665E-02 1.09010E-02 1.09358E-02 1.09710E-02 1.10063E-02 1.10416E-02 1.10768E-02 1.11115E-02 1.11456E-02 1.11790E-02 1.12113E-02 1.12425E-02 1.12722E-02 1.13003E-02 1.13266E-02 1.13510E-02 1.13731E-02 1.13928E-02 1.14099E-02 1.14242E-02 1.14356E-02 1.14440E-02 1.14491E-02 1.14509E-02 1.14492E-02 1.14440E-02 1.14352E-02 1.14228E-02 1.14067E-02 1.13868E-02 1.13632E-02 1.13358E-02 1.13048E-02 1.12703E-02 1.12324E-02 1.11915E-02 1.11475E-02 1.11008E-02 1.10516E-02 1.10001E-02 1.09467E-02 1.08917E-02 1.08355E-02 1.07784E-02 1.07208E-02 1.06631E-02 1.06055E-02 1.05489E-02 1.04932E-02 1.04382E-02 1.03849E-02 1.03331E-02 1.02729E-02 1.01948E-02 1.00970E-02 9.98313E-03 9.86856E-03 9.78355E-03 9.76574E-03 9.81732E-03 9.89432E-03 9.95308E-03 9.98372E-03 9.99612E-03 1.00004E-02 1.00019E-02
1.00032E-02 1.00042E-02 1.00071E-02 1.00146E-02 1.00320E-02 1.00668E-02 1.01252E-02 1.02065E-02 1.03009E-02 1.03953E-02 1.04788E-02 1.05469E-02 1.05993E-02 1.06383E-02 1.06669E-02 1.06910E-02 1.07152E-02 1.07395E-02 1.07639E-02 1.07882E-02 1.08123E-02 1.08362E-02 1.08595E-02 1.08823E-02 1.09043E-02 1.09255E-02 1.09458E-02 1.09649E-02 1.09828E-02 1.09993E-02 1.10143E-02 1.10277E-02 1.10393E-02 1.10490E-02 1.10566E-02 1.10622E-02 1.10657E-02 1.10670E-02 1.10659E-02 1.10623E-02 1.10561E-02 1.10475E-02 1.10365E-02 1.10230E-02 1.10071E-02 1.09886E-02 1.09675E-02 1.09440E-02 1.09182E-02 1.08902E-02 1.08602E-02 1.08284E-02 1.07947E-02 1.07594E-02 1.07227E-02 1.06848E-02 1.06459E-02 1.06061E-02 1.05658E-02 1.05252E-02 1.04845E-02 1.04439E-02 1.04035E-02 1.03640E-02 1.03252E-02 1.02872E-02 1.02505E-02 1.02075E-02 1.01503E-02 1.00785E-02 9.99358E-03 9.90581E-03 9.83472E-03 9.81174E-03 9.84465E-03 9.90536E-03 9.95628E-03 9.98443E-03 9.99625E-03 1.00005E-02 1.00019E-02
1.00032E-02 1.00042E-02 1.00070E-02 1.00142E-02 1.00305E-02 1.00619E-02 1.01123E-02 1.01792E-02 1.02533E-02 1.03241E-02 1.03846E-02 1.04326E-02 1.04687E-02 1.04952E-02 1.05143E-02 1.05302E-02 1.05462E-02 1.05622E-02 1.05780E-02 1.05937E-02 1.06090E-02 1.06241E-02 1.06387E-02 1.06528E-02 1.06663E-02 1.06792E-02 1.06913E-02 1.07026E-02 1.07129E-02 1.07223E-02 1.07306E-02 1.07378E-02 1.07437E-02 1.07483E-02 1.07516E-02 1.07534E-02 1.07538E-02 1.07527E-02 1.07502E-02 1.07459E-02 1.07400E-02 1.07325E-02 1.07234E-02 1.07128E-02 1.07007E-02 1.06869E-02 1.06715E-02 1.06546E-02 1.06362E-02 1.06165E-02 1.05956E-02 1.05735E-02 1.05503E-02 1.05262E-02 1.05012E-02 1.04755E-02 1.04491E-02 1.04222E-02 1.03950E-02 1.03676E-02 1.03401E-02 1.03127E-02 1.02854E-02 1.02585E-02 1.02321E-02 1.02062E-02 1.01810E-02 1.01518E-02 1.01125E-02 1.00617E-02 1.00010E-02 9.93539E-03 9.88003E-03 9.85493E-03 9.87252E-03 9.91755E-03 9.96003E-03 9.98529E-03 9.99640E-03 1.00005E-02 1.00019E-02
1.00032E-02 1.00042E-02 1.00069E-02 1.00138E-02 1.00287E-02 1.00562E-02 1.00981E-02 1.01507E-02 1.02058E-02 1.02559E-02 1.02972E-02 1.03287E-02 1.03519E-02 1.03687E-02 1.03806E-02 1.03905E-02 1.04003E-02 1.04100E-02 1.04195E-02 1.04288E-02 1.04379E-02 1.04466E-02 1.04550E-02 1.04631E-02 1.04706E-02 1.04777E-02 1.04842E-02 1.04901E-02 1.04955E-02 1.05001E-02 1.05041E-02 1.05072E-02 1.05096E-02 1.05112E-02 1.05118E-02 1.05116E-02 1.05105E-02 1.05084E-02 1.05055E-02 1.05015E-02 1.04965E-02 1.04905E-02 1.04835E-02 1.04756E-02 1.04669E-02 1.04572E-02 1.04466E-02 1.04350E-02 1.04226E-02 1.04093E-02 1.03954E-02 1.03808E-02 1.03656E-02 1.03499E-02 1.03336E-02 1.03169E-02 1.02998E-02 1.02825E-02 1.02649E-02 1.02472E-02 1.02295E-02 1.02118E-02 1.01941E-02 1.01767E-02 1.01595E-02 1.01426E-02 1.01261E-02 1.01068E-02 1.00811E-02 1.00473E-02 1.00056E-02 9.95936E-03 9.91671E-03 9.89317E-03 9.89963E-03 9.93050E-03 9.96432E-03 9.98633E-03 9.99660E-03 1.00005E-02 1.00019E-02
1.00031E-02 1.00042E-02 1.00068E-02 1.00131E-02 1.00262E-02 1.00489E-02 1.00812E-02 1.01188E-02 1.01555E-02 1.01869E-02 1.02114E-02 1.02294E-02 1.02423E-02 1.02513E-02 1.02577E-02 1.02629E-02 1.02679E-02 1.02729E-02 1.02777E-02 1.02823E-02 1.02867E-02 1.02908E-02 1.02947E-02 1.02984E-02 1.03018E-02 1.03048E-02 1.03075E-02 1.03099E-02 1.03119E-02 1.03135E-02 1.03147E-02 1.03154E-02 1.03156E-02 1.03155E-02 1.03148E-02 1.03137E-02 1.03121E-02 1.03099E-02 1.03073E-02 1.03042E-02 1.03005E-02 1.02963E-02 1.02916E-02 1.02864E-02 1.02808E-02 1.02747E-02 1.02682E-02 1.02612E-02 1.02537E-02 1.02458E-02 1.02375E-02 1.02289E-02 1.02201E-02 1.02109E-02 1.02015E-02 1.01918E-02 1.01820E-02 1.01720E-02 1.01619E-02 1.01517E-02 1.01415E-02 1.01313E-02 1.01211E-02 1.01110E-02 1.01010E-02 1.00911E-02 1.00814E-02 1.00700E-02 1.00546E-02 1.00343E-02 1.00087E-02 9.97899E-03 9.94948E-03 9.92927E-03 9.92751E-03 9.94529E-03 9.96971E-03 9.98774E-03 9.99689E-03 1.00006E-02 1.00019E-02
1.00031E-02 1.00041E-02 1.00066E-02 1.00122E-02 1.00231E-02 1.00405E-02 1.00631E-02 1.00872E-02 1.01089E-02 1.01263E-02 1.01391E-02 1.01481E-02 1.01543E-02 1.01585E-02 1.01614E-02 1.01637E-02 1.01659E-02 1.01680E-02 1.01701E-02 1.01720E-02 1.01737E-02 1.01754E-02 1.01768E-02 1.01781E-02 1.01793E-02 1.01803E-02 1.01810E-02 1.01816E-02 1.01820E-02 1.01822E-02 1.01822E-02 1.01819E-02 1.01814E-02 1.01807E-02 1.01797E-02 1.01786E-02 1.01772E-02 1.01755E-02 1.01735E-02 1.01714E-02 1.01691E-02 1.01664E-02 1.01635E-02 1.01604E-02 1.01570E-02 1.01535E-02 1.01499E-02 1.01460E-02 1.01418E-02 1.01374E-02 1.01329E-02 1.01282E-02 1.01234E-02 1.01185E-02 1.01135E-02 1.01083E-02 1.01031E-02 1.00978E-02 1.00924E-02 1.00869E-02 1.00815E-02 1.00761E-02 1.00706E-02 1.00652E-02 1.00598E-02 1.00545E-02 1.00492E-02 1.00430E-02 1.00345E-02 1.00233E-02 1.00087E-02 9.99129E-03 9.97280E-03 9.95771E-03 9.95250E-03 9.96044E-03 9.97595E-03 9.98954E-03 9.99727E-03 1.00006E-02 1.00019E-02
1.00031E-02 1.00041E-02 1.00063E-02 1.00111E-02 1.00197E-02 1.00322E-02 1.00469E-02 1.00612E-02 1.00730E-02 1.00818E-02 1.00879E-02 1.00919E-02 1.00946E-02 1.00964E-02 1.00975E-02 1.00984E-02 1.00993E-02 1.01001E-02 1.01008E-02 1.01015E-02 1.01021E-02 1.01026E-02 1.01030E-02 1.01033E-02 1.01035E-02 1.01037E-02 1.01038E-02 1.01037E-02 1.01035E-02 1.01033E-02 1.01030E-02 1.01025E-02 1.01019E-02 1.01012E-02 1.01005E-02 1.00996E-02 1.00986E-02 1.00974E-02 1.00962E-02 1.00948E-02 1.00934E-02 1.00919E-02 1.00902E-02 1.00884E-02 1.00865E-02 1.00846E-02 1.00826E-02 1.00805E-02 1.00782E-02 1.00758E-02 1.00734E-02 1.00710E-02 1.00685E-02 1.00659E-02 1.00632E-02 1.00606E-02 1.00578E-02 1.00551E-02 1.00523E-02 1.00495E-02 1.00466E-02 1.00438E-02 1.00410E-02 1.00382E-02 1.00353E-02 1.00325E-02 1.00298E-02 1.00265E-02 1.00220E-02 1.00159E-02 1.00080E-02 9.99809E-03 9.98699E-03 9.97679E-03 9.97120E-03 9.97338E-03 9.98205E-03 9.99151E-03 9.99772E-03 1.00007E-02 1.00019E-02
1.00031E-02 1.00040E-02 1.00060E-02 1.00099E-02 1.00162E-02 1.00243E-02 1.00328E-02 1.00402E-02 1.00458E-02 1.00497E-02 1.00521E-02 1.00537E-02 1.00546E-02 1.00552E-02 1.00556E-02 1.00559E-02 1.00561E-02 1.00563E-02 1.00565E-02 1.00566E-02 1.00567E-02 1.00568E-02 1.00568E-02 1.00568E-02 1.00567E-02 1.00567E-02 1.00565E-02 1.00563E-02 1.00561E-02 1.00558E-02 1.00555E-02 1.00551E-02 1.00547E-02 1.00542E-02 1.00537E-02 1.00532E-02 1.00526E-02 1.00519E-02 1.00512E-02 1.00505E-02 1.00497E-02 1.00489E-02 1.00480E-02 1.00471E-02 1.00461E-02 1.00451E-02 1.00441E-02 1.00431E-02 1.00420E-02 1.00408E-02 1.00396E-02 1.00384E-02 1.00372E-02 1.00359E-02 1.00346E-02 1.00333E-02 1.00320E-02 1.00307E-02 1.00293E-02 1.00280E-02 1.00266E-02 1.00252E-02 1.00239E-02 1.00225E-02 1.00211E-02 1.00197E-02 1.00184E-02 1.00168E-02 1.00145E-02 1.00114E-02 1.00074E-02 1.00021E-02 9.99590E-03 9.98953E-03 9.98484E-03 9.98408E-03 9.98784E-03 9.99362E-03 9.99826E-03 1.00008E-02 1.00019E-02
1.00031E-02 1.00039E-02 1.00056E-02 1.00086E-02 1.00126E-02 1.00170E-02 1.00210E-02 1.00241E-02 1.00261E-02 1.00274E-02 1.00281E-02 1.00285E-02 1.00288E-02 1.00289E-02 1.00289E-02 1.00290E-02 1.00290E-02 1.00290E-02 1.00290E-02 1.00290E-02 1.00290E-02 1.00289E-02 1.00289E-02 1.00288E-02 1.00287E-02 1.00286E-02 1.00285E-02 1.00283E-02 1.00282E-02 1.00280E-02 1.00278E-02 1.00276E-02 1.00274E-02 1.00271E-02 1.00269E-02 1.00266E-02 1.00263E-02 1.00260E-02 1.00257E-02 1.00253E-02 1.00250E-02 1.00247E-02 1.00243E-02 1.00238E-02 1.00234E-02 1.00230E-02 1.00226E-02 1.00221E-02 1.00217E-02 1.00212E-02 1.00207E-02 1.00202E-02 1.00197E-02 1.00191E-02 1.00186E-02 1.00180E-02 1.00175E-02 1.00169E-02 1.00164E-02 1.00158E-02 1.00152E-02 1.00147E-02 1.00141E-02 1.00135E-02 1.00129E-02 1.00123E-02 1.00117E-02 1.00110E-02 1.00100E-02 1.00087E-02 1.00068E-02 1.00044E-02 1.00013E-02 9.99777E-03 9.99449E-03 9.99262E-03 9.99320E-03 9.99588E-03 9.99890E-03 1.00010E-02 1.00020E-02
1.00031E-02 1.00038E-02 1.00053E-02 1.00074E-02 1.00099E-02 1.00120E-02 1.00136E-02 1.00146E-02 1.00152E-02 1.00155E-02 1.00156E-02 1.00156E-02 1.00157E-02 1.00157E-02 1.00156E-02 1.00156E-02 1.00156E-02 1.00156E-02 1.00156E-02 1.00155E-02 1.00155E-02 1.00155E-02 1.00154E-02 1.00154E-02 1.00153E-02 1.00152E-02 1.00152E-02 1.00151E-02 1.00150E-02 1.00149E-02 1.00149E-02 1.00148E-02 1.00147E-02 1.00146E-02 1.00145E-02 1.00144E-02 1.00143E-02 1.00142E-02 1.00140E-02 1.00139E-02 1.00138E-02 1.00136E-02 1.00135E-02 1.00133E-02 1.00132E-02 1.00130E-02 1.00129E-02 1.00127E-02 1.00125E-02 1.00123E-02 1.00122E-02 1.00120E-02 1.00118E-02 1.00116E-02 1.00114E-02 1.00112E-02 1.00110E-02 1.00108E-02 1.00106E-02 1.00103E-02 1.00101E-02 1.00099E-02 1.00097E-02 1.00094E-02 1.00092E-02 1.00090E-02 1.00087E-02 1.00084E-02 1.00080E-02 1.00075E-02 1.00067E-02 1.00056E-02 1.00040E-02 1.00021E-02 9.99987E-03 9.99783E-03 9.99688E-03 9.99765E-03 9.99947E-03 1.00011E-02 1.00020E-02
+11
View File
@@ -0,0 +1,11 @@
OBS LOC_X FWR_3D_2_2D.dat
MESH FILE Mesh_2D.msh
CHIFACT 1 100.000000
TOPO DEFAULT %s
INIT_MOD DEFAULT
REF_MOD VALUE 1.000000e-02
ALPHA DEFAULT
WEIGHT DEFAULT
STORE_ALL_MODELS FALSE
INVMODE SVD
USE_MREF TRUE
+410
View File
@@ -0,0 +1,410 @@
Parallelized with OpenMP. # of threads: 4
DCIP2D - Version 5 (BETA) 20110811: DCINV2D
Developed by University of British Columbia
Geophysical Inversion Facility (UBC-GIF)
(C) Copyright 1992 - 2011, UBC-GIF,
Department of Earth and Ocean Sciences, UBC
http://www.eos.ubc.ca/research/ubcgif/
Distributed by:
Mira Geoscience Ltd.
DCINV2D started on: 1/12/2016 21:07:02
Reading input file: dcinv2d.inp
----------------------------------------------
OBS LOC_X FWR_3D_2_2D.dat
MESH FILE Mesh_2D.msh
CHIFACT 1 100.000000
TOPO DEFAULT %s
INIT_MOD DEFAULT
REF_MOD VALUE 1.000000e-02
ALPHA DEFAULT
WEIGHT DEFAULT
STORE_ALL_MODELS FALSE
INVMODE SVD
USE_MREF TRUE
----------------------------------------------
maximum # of iterations: 100
data were read from: FWR_3D_2_2D.dat
# of current locations: 9
# of data: 45
chifact: 1.00000E+00
target misfit: 4.50000E+01
mesh was read from: Mesh_2D.msh
# of cells: 81 x 45
total # of cells: 3645
# of active cells: 3645
# of unique data locations: 9
# of wave values: 13
2.5000E-04 4.9901E-04 9.9606E-04 1.9882E-03 3.9685E-03 7.9213E-03 1.5811E-02 3.1560E-02 6.2996E-02 1.2574E-01 2.5099E-01 5.0099E-01 1.0000E+00
reference conductivity model is set to a constant: 1.000000E-02
initial model is set to the reference model.
using default length scales (Lx, Lz): ( 8.00000E+01, 8.00000E+01)
corresponding alpha (a_s, a_x, a_z): ( 1.56250E-04, 1.0000E+00, 1.0000E+00)
Using basis vectors and SVD.
reference model will be used in the derivative terms.
number of basis vectors: 17 + 3 + 1 = 21
init cpu time: 0:00:00.18
initial misfit = 2.57080E+05
init. model norm = 0.00000E+00
norm comp Ws = 0.00000E+00
norm comp Wx = 0.00000E+00
norm comp Wz = 0.00000E+00
Iteration 1
beta vs. misfit:
beta misfit
1.11493E+03 4.74485E+04
2.22985E+03 5.68364E+04
5.57463E+03 8.02516E+04
1.39366E+04 1.21526E+05
1.57750E+04 1.28279E+05
1.58488E+04 1.28536E+05
1.58499E+04 1.28540E+05
3.96247E+04 1.79392E+05
chosen beta = 1.58499E+04
target misfit = 1.28540E+05
achieved misfit = 1.28540E+05
model norm = 3.63297E+00
misfit change = 5.00000E-01
model norm change = 0.00000E+00
norm comp Ws = 2.88514E+00
norm comp Wx = 3.70226E-01
norm comp Wz = 3.77603E-01
iter cpu time: 0:00:01.81
Iteration 2
beta vs. misfit:
beta misfit
3.96247E+03 6.15053E+04
7.92494E+03 9.46707E+04
chosen beta = 4.25263E+03
target misfit = 6.42701E+04
achieved misfit = 6.42774E+04
model norm = 1.37169E+01
misfit change = 4.99943E-01
model norm change = 2.77567E+00
norm comp Ws = 1.06979E+01
norm comp Wx = 1.61088E+00
norm comp Wz = 1.40814E+00
iter cpu time: 0:00:00.83
Iteration 3
beta vs. misfit:
beta misfit
1.06316E+03 2.49833E+04
2.12631E+03 4.10044E+04
chosen beta = 1.51222E+03
target misfit = 3.21387E+04
achieved misfit = 3.17674E+04
model norm = 2.91306E+01
misfit change = 5.05777E-01
model norm change = 1.12370E+00
norm comp Ws = 2.19928E+01
norm comp Wx = 4.11507E+00
norm comp Wz = 3.02271E+00
iter cpu time: 0:00:00.64
Iteration 4
beta vs. misfit:
beta misfit
3.78054E+02 1.14051E+04
7.56108E+02 1.87488E+04
chosen beta = 6.00000E+02
target misfit = 1.58837E+04
achieved misfit = 1.56569E+04
model norm = 4.84312E+01
misfit change = 5.07137E-01
model norm change = 6.62554E-01
norm comp Ws = 3.49213E+01
norm comp Wx = 8.32898E+00
norm comp Wz = 5.18098E+00
iter cpu time: 0:00:01.47
Iteration 5
beta vs. misfit:
beta misfit
1.50000E+02 5.05151E+03
3.00000E+02 8.76679E+03
chosen beta = 2.60199E+02
target misfit = 7.82847E+03
achieved misfit = 7.79602E+03
model norm = 6.97577E+01
misfit change = 5.02073E-01
model norm change = 4.40344E-01
norm comp Ws = 4.74916E+01
norm comp Wx = 1.43993E+01
norm comp Wz = 7.86671E+00
iter cpu time: 0:00:01.41
Iteration 6
beta vs. misfit:
beta misfit
6.50498E+01 1.83324E+03
1.30100E+02 3.68412E+03
1.37599E+02 3.90387E+03
chosen beta = 1.37400E+02
target misfit = 3.89801E+03
achieved misfit = 3.89800E+03
model norm = 8.95751E+01
misfit change = 5.00001E-01
model norm change = 2.84090E-01
norm comp Ws = 5.75580E+01
norm comp Wx = 2.11440E+01
norm comp Wz = 1.08731E+01
iter cpu time: 0:00:01.02
Iteration 7
beta vs. misfit:
beta misfit
3.43499E+01 8.99667E+02
6.86999E+01 1.65819E+03
8.25106E+01 2.00613E+03
chosen beta = 8.02499E+01
target misfit = 1.94900E+03
achieved misfit = 1.94758E+03
model norm = 1.06566E+02
misfit change = 5.00364E-01
model norm change = 1.89686E-01
norm comp Ws = 6.57720E+01
norm comp Wx = 2.69488E+01
norm comp Wz = 1.38454E+01
iter cpu time: 0:00:01.00
Iteration 8
beta vs. misfit:
beta misfit
2.00625E+01 5.63946E+02
4.01250E+01 9.43655E+02
4.18598E+01 9.78372E+02
chosen beta = 4.16303E+01
target misfit = 9.73791E+02
achieved misfit = 9.73755E+02
model norm = 1.22904E+02
misfit change = 5.00019E-01
model norm change = 1.53314E-01
norm comp Ws = 7.39851E+01
norm comp Wx = 3.20341E+01
norm comp Wz = 1.68852E+01
iter cpu time: 0:00:01.08
Iteration 9
beta vs. misfit:
beta misfit
1.04076E+01 3.54740E+02
2.08152E+01 5.47348E+02
chosen beta = 1.72632E+01
target misfit = 4.86877E+02
achieved misfit = 4.81217E+02
model norm = 1.41185E+02
misfit change = 5.05813E-01
model norm change = 1.48742E-01
norm comp Ws = 8.27069E+01
norm comp Wx = 3.78831E+01
norm comp Wz = 2.05954E+01
iter cpu time: 0:00:00.62
Iteration 10
beta vs. misfit:
beta misfit
4.31579E+00 2.09965E+02
8.63158E+00 2.93092E+02
chosen beta = 5.72809E+00
target misfit = 2.40608E+02
achieved misfit = 2.34998E+02
model norm = 1.66836E+02
misfit change = 5.11659E-01
model norm change = 1.81682E-01
norm comp Ws = 9.43748E+01
norm comp Wx = 4.67077E+01
norm comp Wz = 2.57538E+01
iter cpu time: 0:00:01.14
Iteration 11
beta vs. misfit:
beta misfit
1.43202E+00 1.08765E+02
2.86405E+00 1.48776E+02
chosen beta = 1.69894E+00
target misfit = 1.17499E+02
achieved misfit = 1.13855E+02
model norm = 2.07214E+02
misfit change = 5.15505E-01
model norm change = 2.42021E-01
norm comp Ws = 1.10709E+02
norm comp Wx = 6.50107E+01
norm comp Wz = 3.14941E+01
iter cpu time: 0:00:01.18
Iteration 12
beta vs. misfit:
beta misfit
4.24735E-01 4.69288E+01
8.49470E-01 5.82083E+01
chosen beta = 7.90778E-01
target misfit = 5.69276E+01
achieved misfit = 5.61534E+01
model norm = 2.39426E+02
misfit change = 5.06799E-01
model norm change = 1.55454E-01
norm comp Ws = 1.22208E+02
norm comp Wx = 7.90861E+01
norm comp Wz = 3.81319E+01
iter cpu time: 0:00:01.10
Iteration 13
beta vs. misfit:
beta misfit
5.07840E-01 2.85576E+01
6.33710E-01 3.23824E+01
1.13145E+00 5.17204E+01
chosen beta = 9.52357E-01
target misfit = 4.50000E+01
achieved misfit = 4.40177E+01
model norm = 2.37754E+02
misfit change = 2.16117E-01
model norm change = -6.98309E-03
norm comp Ws = 1.26074E+02
norm comp Wx = 7.63269E+01
norm comp Wz = 3.53536E+01
iter cpu time: 0:00:00.88
Iteration 14
beta vs. misfit:
beta misfit
9.73609E-01 3.64390E+01
9.95336E-01 3.71506E+01
1.23871E+00 4.57613E+01
chosen beta = 1.21709E+00
target misfit = 4.50000E+01
achieved misfit = 4.49504E+01
model norm = 2.30537E+02
misfit change = -2.11895E-02
model norm change = -3.03571E-02
norm comp Ws = 1.26466E+02
norm comp Wx = 7.21243E+01
norm comp Wz = 3.19461E+01
iter cpu time: 0:00:00.89
Target misfit achieved. Minimizing model norm.
Iteration 15
beta vs. misfit:
beta misfit
1.21843E+00 3.86348E+01
1.21978E+00 3.86736E+01
1.44018E+00 4.53382E+01
chosen beta = 1.42896E+00
target misfit = 4.50000E+01
achieved misfit = 4.49850E+01
model norm = 2.28950E+02
misfit change = -7.69307E-04
model norm change = -6.88525E-03
norm comp Ws = 1.25759E+02
norm comp Wx = 6.90749E+01
norm comp Wz = 3.41159E+01
iter cpu time: 0:00:00.95
Exit at convergence.
Iterations performed: 15
total cpu time: 0:00:16.25
DCINV2D ended on: 1/12/2016 21:07:18
+19
View File
@@ -0,0 +1,19 @@
15 iter data misfit model norm beta
0 2.57080E+05 0.00000E+00 0.00000E+00
1 1.28540E+05 3.63297E+00 1.58499E+04
2 6.42774E+04 1.37169E+01 4.25263E+03
3 3.17674E+04 2.91306E+01 1.51222E+03
4 1.56569E+04 4.84312E+01 6.00000E+02
5 7.79602E+03 6.97577E+01 2.60199E+02
6 3.89800E+03 8.95751E+01 1.37400E+02
7 1.94758E+03 1.06566E+02 8.02499E+01
8 9.73755E+02 1.22904E+02 4.16303E+01
9 4.81217E+02 1.41185E+02 1.72632E+01
10 2.34998E+02 1.66836E+02 5.72809E+00
11 1.13855E+02 2.07214E+02 1.69894E+00
12 5.61534E+01 2.39426E+02 7.90778E-01
13 4.40177E+01 2.37754E+02 9.52357E-01
14 4.49504E+01 2.30537E+02 1.21709E+00
15 4.49850E+01 2.28950E+02 1.42896E+00
4.50000E+01 target misfit
45 number of data
+46
View File
@@ -0,0 +1,46 @@
! Predicted data ! GENERAL FORMAT
0.0000000E+00 0.0000000E+00 2.0000000E+02 3.0000000E+02 8.31819E-02
0.0000000E+00 0.0000000E+00 3.0000000E+02 4.0000000E+02 4.41288E-03
0.0000000E+00 0.0000000E+00 4.0000000E+02 5.0000000E+02 1.23515E-02
0.0000000E+00 0.0000000E+00 5.0000000E+02 6.0000000E+02 2.09881E-03
0.0000000E+00 0.0000000E+00 6.0000000E+02 7.0000000E+02 7.28316E-04
0.0000000E+00 0.0000000E+00 7.0000000E+02 8.0000000E+02 5.24885E-04
0.0000000E+00 0.0000000E+00 8.0000000E+02 9.0000000E+02 3.56979E-04
0.0000000E+00 0.0000000E+00 9.0000000E+02 1.0000000E+03 2.71240E-04
0.0000000E+00 0.0000000E+00 1.0000000E+03 1.1000000E+03 1.71849E-04
1.0000000E+02 1.0000000E+02 3.0000000E+02 4.0000000E+02 8.00012E-03
1.0000000E+02 1.0000000E+02 4.0000000E+02 5.0000000E+02 1.75080E-02
1.0000000E+02 1.0000000E+02 5.0000000E+02 6.0000000E+02 2.81046E-03
1.0000000E+02 1.0000000E+02 6.0000000E+02 7.0000000E+02 9.20650E-04
1.0000000E+02 1.0000000E+02 7.0000000E+02 8.0000000E+02 6.40887E-04
1.0000000E+02 1.0000000E+02 8.0000000E+02 9.0000000E+02 4.28101E-04
1.0000000E+02 1.0000000E+02 9.0000000E+02 1.0000000E+03 3.19325E-04
1.0000000E+02 1.0000000E+02 1.0000000E+03 1.1000000E+03 1.97133E-04
2.0000000E+02 2.0000000E+02 4.0000000E+02 5.0000000E+02 3.00094E-02
2.0000000E+02 2.0000000E+02 5.0000000E+02 6.0000000E+02 4.17179E-03
2.0000000E+02 2.0000000E+02 6.0000000E+02 7.0000000E+02 1.23020E-03
2.0000000E+02 2.0000000E+02 7.0000000E+02 8.0000000E+02 8.09705E-04
2.0000000E+02 2.0000000E+02 8.0000000E+02 9.0000000E+02 5.26566E-04
2.0000000E+02 2.0000000E+02 9.0000000E+02 1.0000000E+03 3.82914E-04
2.0000000E+02 2.0000000E+02 1.0000000E+03 1.1000000E+03 2.28587E-04
3.0000000E+02 3.0000000E+02 5.0000000E+02 6.0000000E+02 7.27481E-03
3.0000000E+02 3.0000000E+02 6.0000000E+02 7.0000000E+02 1.78177E-03
3.0000000E+02 3.0000000E+02 7.0000000E+02 8.0000000E+02 1.07707E-03
3.0000000E+02 3.0000000E+02 8.0000000E+02 9.0000000E+02 6.74696E-04
3.0000000E+02 3.0000000E+02 9.0000000E+02 1.0000000E+03 4.74671E-04
3.0000000E+02 3.0000000E+02 1.0000000E+03 1.1000000E+03 2.71808E-04
4.0000000E+02 4.0000000E+02 6.0000000E+02 7.0000000E+02 3.37547E-03
4.0000000E+02 4.0000000E+02 7.0000000E+02 8.0000000E+02 1.52487E-03
4.0000000E+02 4.0000000E+02 8.0000000E+02 9.0000000E+02 8.67080E-04
4.0000000E+02 4.0000000E+02 9.0000000E+02 1.0000000E+03 5.71693E-04
4.0000000E+02 4.0000000E+02 1.0000000E+03 1.1000000E+03 3.07672E-04
5.0000000E+02 5.0000000E+02 7.0000000E+02 8.0000000E+02 6.64946E-03
5.0000000E+02 5.0000000E+02 8.0000000E+02 9.0000000E+02 2.83925E-03
5.0000000E+02 5.0000000E+02 9.0000000E+02 1.0000000E+03 1.50341E-03
5.0000000E+02 5.0000000E+02 1.0000000E+03 1.1000000E+03 6.31242E-04
6.0000000E+02 6.0000000E+02 8.0000000E+02 9.0000000E+02 4.28770E-03
6.0000000E+02 6.0000000E+02 9.0000000E+02 1.0000000E+03 2.02291E-03
6.0000000E+02 6.0000000E+02 1.0000000E+03 1.1000000E+03 7.75855E-04
7.0000000E+02 7.0000000E+02 9.0000000E+02 1.0000000E+03 3.85090E-03
7.0000000E+02 7.0000000E+02 1.0000000E+03 1.1000000E+03 1.15357E-03
8.0000000E+02 8.0000000E+02 1.0000000E+03 1.1000000E+03 2.22667E-03
+46
View File
@@ -0,0 +1,46 @@
! Predicted data ! GENERAL FORMAT Last column are apparent conductivities.
0.0000000E+00 0.0000000E+00 2.0000000E+02 3.0000000E+02 2.63497E-02 1.00668E-02
0.0000000E+00 0.0000000E+00 3.0000000E+02 4.0000000E+02 1.31837E-02 1.00601E-02
0.0000000E+00 0.0000000E+00 4.0000000E+02 5.0000000E+02 7.93784E-03 1.00251E-02
0.0000000E+00 0.0000000E+00 5.0000000E+02 6.0000000E+02 5.30187E-03 1.00062E-02
0.0000000E+00 0.0000000E+00 6.0000000E+02 7.0000000E+02 3.79075E-03 9.99646E-03
0.0000000E+00 0.0000000E+00 7.0000000E+02 8.0000000E+02 2.84529E-03 9.98863E-03
0.0000000E+00 0.0000000E+00 8.0000000E+02 9.0000000E+02 2.21518E-03 9.97881E-03
0.0000000E+00 0.0000000E+00 9.0000000E+02 1.0000000E+03 1.77462E-03 9.96491E-03
0.0000000E+00 0.0000000E+00 1.0000000E+03 1.1000000E+03 1.45107E-03 9.97103E-03
1.0000000E+02 1.0000000E+02 3.0000000E+02 4.0000000E+02 2.64919E-02 1.00128E-02
1.0000000E+02 1.0000000E+02 4.0000000E+02 5.0000000E+02 1.32352E-02 1.00209E-02
1.0000000E+02 1.0000000E+02 5.0000000E+02 6.0000000E+02 7.96229E-03 9.99429E-03
1.0000000E+02 1.0000000E+02 6.0000000E+02 7.0000000E+02 5.31543E-03 9.98068E-03
1.0000000E+02 1.0000000E+02 7.0000000E+02 8.0000000E+02 3.79921E-03 9.97417E-03
1.0000000E+02 1.0000000E+02 8.0000000E+02 9.0000000E+02 2.85122E-03 9.96784E-03
1.0000000E+02 1.0000000E+02 9.0000000E+02 1.0000000E+03 2.21994E-03 9.95742E-03
1.0000000E+02 1.0000000E+02 1.0000000E+03 1.1000000E+03 1.77401E-03 9.96831E-03
2.0000000E+02 2.0000000E+02 4.0000000E+02 5.0000000E+02 2.65164E-02 1.00036E-02
2.0000000E+02 2.0000000E+02 5.0000000E+02 6.0000000E+02 1.32488E-02 1.00106E-02
2.0000000E+02 2.0000000E+02 6.0000000E+02 7.0000000E+02 7.97076E-03 9.98368E-03
2.0000000E+02 2.0000000E+02 7.0000000E+02 8.0000000E+02 5.32136E-03 9.96956E-03
2.0000000E+02 2.0000000E+02 8.0000000E+02 9.0000000E+02 3.80396E-03 9.96173E-03
2.0000000E+02 2.0000000E+02 9.0000000E+02 1.0000000E+03 2.85567E-03 9.95231E-03
2.0000000E+02 2.0000000E+02 1.0000000E+03 1.1000000E+03 2.21779E-03 9.96706E-03
3.0000000E+02 3.0000000E+02 5.0000000E+02 6.0000000E+02 2.65249E-02 1.00004E-02
3.0000000E+02 3.0000000E+02 6.0000000E+02 7.0000000E+02 1.32547E-02 1.00062E-02
3.0000000E+02 3.0000000E+02 7.0000000E+02 8.0000000E+02 7.97549E-03 9.97775E-03
3.0000000E+02 3.0000000E+02 8.0000000E+02 9.0000000E+02 5.32580E-03 9.96125E-03
3.0000000E+02 3.0000000E+02 9.0000000E+02 1.0000000E+03 3.80888E-03 9.94888E-03
3.0000000E+02 3.0000000E+02 1.0000000E+03 1.1000000E+03 2.85172E-03 9.96611E-03
4.0000000E+02 4.0000000E+02 6.0000000E+02 7.0000000E+02 2.65296E-02 9.99858E-03
4.0000000E+02 4.0000000E+02 7.0000000E+02 8.0000000E+02 1.32592E-02 1.00028E-02
4.0000000E+02 4.0000000E+02 8.0000000E+02 9.0000000E+02 7.98040E-03 9.97162E-03
4.0000000E+02 4.0000000E+02 9.0000000E+02 1.0000000E+03 5.33212E-03 9.94944E-03
4.0000000E+02 4.0000000E+02 1.0000000E+03 1.1000000E+03 3.80236E-03 9.96593E-03
5.0000000E+02 5.0000000E+02 7.0000000E+02 8.0000000E+02 2.65345E-02 9.99673E-03
5.0000000E+02 5.0000000E+02 8.0000000E+02 9.0000000E+02 1.32655E-02 9.99807E-03
5.0000000E+02 5.0000000E+02 9.0000000E+02 1.0000000E+03 7.98964E-03 9.96008E-03
5.0000000E+02 5.0000000E+02 1.0000000E+03 1.1000000E+03 5.32134E-03 9.96960E-03
6.0000000E+02 6.0000000E+02 8.0000000E+02 9.0000000E+02 2.65437E-02 9.99326E-03
6.0000000E+02 6.0000000E+02 9.0000000E+02 1.0000000E+03 1.32806E-02 9.98668E-03
6.0000000E+02 6.0000000E+02 1.0000000E+03 1.1000000E+03 7.97063E-03 9.98384E-03
7.0000000E+02 7.0000000E+02 9.0000000E+02 1.0000000E+03 2.65717E-02 9.98273E-03
7.0000000E+02 7.0000000E+02 1.0000000E+03 1.1000000E+03 1.32427E-02 1.00153E-02
8.0000000E+02 8.0000000E+02 1.0000000E+03 1.1000000E+03 2.64774E-02 1.00183E-02
+46
View File
@@ -0,0 +1,46 @@
81 45
1.00411E-13 3.10408E-13 9.74717E-13 3.09564E-12 9.68504E-12 2.91605E-11 8.35615E-11 2.28263E-10 6.04123E-10 1.61401E-09 4.67374E-09 1.58647E-08 6.23317E-08 2.35358E-07 1.71041E-08 2.08590E-07 1.56029E-07 1.46650E-07 1.72752E-07 1.54926E-07 1.77390E-07 2.03028E-07 2.69140E-07 4.10395E-07 1.29687E-07 7.93598E-07 2.97657E-07 1.28094E-07 7.80834E-08 7.94358E-08 1.06544E-07 6.15537E-08 7.23303E-08 1.38411E-07 8.59111E-08 1.68916E-07 1.64240E-07 1.58717E-07 1.44871E-07 1.00497E-07 1.53571E-07 1.14875E-07 1.03632E-07 9.31407E-08 4.54508E-08 5.91715E-08 3.66679E-08 6.10459E-08 1.23422E-07 6.11907E-08 8.25315E-08 6.19628E-08 8.25261E-08 1.49285E-07 7.23998E-08 1.14387E-07 8.11571E-08 6.93066E-08 7.27982E-08 5.00166E-08 1.01158E-07 5.96975E-08 4.37654E-08 4.14493E-08 3.33156E-08 6.30583E-08 3.86673E-08 2.63025E-08 1.28371E-08 7.03143E-09 2.55569E-09 6.86395E-10 2.47006E-10 1.07284E-10 4.64772E-11 1.87670E-11 6.99064E-12 2.43083E-12 8.12035E-13 2.70167E-13 9.04729E-14
1.00408E-13 3.10389E-13 9.74598E-13 3.09493E-12 9.68107E-12 2.91394E-11 8.34535E-11 2.27725E-10 6.01411E-10 1.59939E-09 4.58076E-09 1.50821E-08 5.37357E-08 1.45015E-07 9.49187E-08 3.64320E-08 2.63448E-08 4.94770E-08 6.85655E-08 7.00921E-08 5.92742E-08 6.09382E-08 4.59596E-08 9.87180E-08 2.28836E-07 4.66832E-07 1.96472E-07 6.17388E-08 3.68928E-08 7.81857E-08 6.83590E-08 3.70845E-08 2.61880E-08 3.78832E-08 3.43796E-08 8.14050E-08 1.25510E-07 1.28215E-07 8.53512E-08 2.97777E-08 6.74204E-08 7.99932E-08 7.90362E-08 5.79363E-08 2.71734E-08 3.44196E-08 2.90110E-08 4.29354E-08 7.81656E-08 3.22896E-08 2.56389E-08 2.96368E-08 4.22860E-08 6.50714E-08 3.97379E-08 3.15747E-08 3.02920E-08 2.68593E-08 2.63743E-08 3.31479E-08 4.64930E-08 3.35157E-08 2.40778E-08 1.98269E-08 2.25180E-08 2.99855E-08 2.16250E-08 1.19611E-08 3.79368E-09 5.30861E-09 2.42064E-09 6.74309E-10 2.45568E-10 1.07010E-10 4.64139E-11 1.87527E-11 6.98765E-12 2.43026E-12 8.11935E-13 2.70151E-13 9.04706E-14
1.00403E-13 3.10352E-13 9.74361E-13 3.09352E-12 9.67313E-12 2.90971E-11 8.32379E-11 2.26652E-10 5.96028E-10 1.57061E-09 4.40228E-09 1.37248E-08 4.29042E-08 9.30852E-08 9.29476E-08 7.55456E-08 5.93963E-08 4.76051E-08 4.12935E-08 3.65352E-08 3.71970E-08 5.21912E-08 8.02057E-08 1.21892E-07 1.86496E-07 2.35135E-07 1.04732E-07 4.22783E-08 4.65762E-08 7.58073E-08 7.79331E-08 5.75407E-08 3.61509E-08 2.56255E-08 3.04573E-08 5.36578E-08 9.24811E-08 9.80266E-08 6.17923E-08 2.36365E-08 3.82806E-08 5.03284E-08 5.12491E-08 3.73919E-08 2.34194E-08 2.60215E-08 2.90466E-08 2.45768E-08 3.72154E-08 2.46155E-08 1.95316E-08 1.83760E-08 1.99613E-08 2.36885E-08 2.06672E-08 1.50154E-08 1.45427E-08 1.58183E-08 1.70564E-08 1.86277E-08 2.16690E-08 1.97339E-08 1.67292E-08 1.43288E-08 1.38128E-08 1.49270E-08 1.10184E-08 5.71202E-09 3.08046E-09 4.21637E-09 2.22842E-09 6.53757E-10 2.42850E-10 1.06473E-10 4.62878E-11 1.87241E-11 6.98166E-12 2.42911E-12 8.11735E-13 2.70119E-13 9.04659E-14
1.00395E-13 3.10297E-13 9.74007E-13 3.09140E-12 9.66126E-12 2.90340E-11 8.29162E-11 2.25056E-10 5.88072E-10 1.52870E-09 4.15246E-09 1.20281E-08 3.25763E-08 6.12733E-08 7.24227E-08 7.24351E-08 6.89739E-08 6.44213E-08 6.06043E-08 5.88049E-08 6.12468E-08 7.02526E-08 8.55137E-08 1.01379E-07 1.17435E-07 1.10049E-07 5.93222E-08 3.57569E-08 4.43427E-08 6.79194E-08 7.87981E-08 6.57704E-08 4.31389E-08 2.76129E-08 2.75646E-08 4.19311E-08 6.75913E-08 7.21313E-08 4.69404E-08 2.17775E-08 2.38212E-08 3.41662E-08 3.39607E-08 2.71160E-08 2.20754E-08 2.36058E-08 2.62335E-08 2.39947E-08 2.08291E-08 1.86009E-08 1.69637E-08 1.56636E-08 1.45648E-08 1.45218E-08 1.31646E-08 1.11608E-08 1.04547E-08 1.10253E-08 1.18592E-08 1.22029E-08 1.25574E-08 1.22845E-08 1.09972E-08 9.27076E-09 8.52098E-09 8.26660E-09 6.25092E-09 3.63958E-09 2.74981E-09 3.36581E-09 2.00653E-09 6.28282E-10 2.39092E-10 1.05685E-10 4.60999E-11 1.86812E-11 6.97267E-12 2.42739E-12 8.11435E-13 2.70071E-13 9.04589E-14
1.00384E-13 3.10223E-13 9.73535E-13 3.08858E-12 9.64549E-12 2.89501E-11 8.24901E-11 2.22953E-10 5.77686E-10 1.47517E-09 3.85028E-09 1.02301E-08 2.40819E-08 4.09946E-08 5.15113E-08 5.66371E-08 5.89699E-08 5.94047E-08 5.89331E-08 5.84650E-08 5.93855E-08 6.22206E-08 6.78377E-08 7.13474E-08 6.93776E-08 5.69048E-08 3.70412E-08 2.95279E-08 3.94982E-08 5.92464E-08 7.22061E-08 6.40885E-08 4.40738E-08 2.78255E-08 2.51527E-08 3.40307E-08 4.93936E-08 5.18882E-08 3.56867E-08 2.04985E-08 1.83801E-08 2.24585E-08 2.41321E-08 2.17185E-08 1.94928E-08 2.06288E-08 2.24118E-08 2.28724E-08 2.02549E-08 1.76004E-08 1.56231E-08 1.40811E-08 1.27921E-08 1.17500E-08 1.06340E-08 9.42140E-09 8.66731E-09 8.58213E-09 8.57312E-09 8.46942E-09 8.19420E-09 7.86826E-09 7.17032E-09 5.95046E-09 5.55749E-09 5.19157E-09 4.13317E-09 2.91236E-09 2.33485E-09 2.69307E-09 1.77544E-09 6.00266E-10 2.34548E-10 1.04670E-10 4.58521E-11 1.86242E-11 6.96069E-12 2.42509E-12 8.11034E-13 2.70007E-13 9.04495E-14
1.00371E-13 3.10131E-13 9.72945E-13 3.08506E-12 9.62578E-12 2.88456E-11 8.19609E-11 2.20358E-10 5.65059E-10 1.41203E-09 3.51764E-09 8.52308E-09 1.76652E-08 2.78171E-08 3.52435E-08 4.02390E-08 4.36436E-08 4.55593E-08 4.62885E-08 4.61935E-08 4.58570E-08 4.59609E-08 4.64599E-08 4.56144E-08 4.14404E-08 3.34164E-08 2.49965E-08 2.53810E-08 3.47950E-08 5.06486E-08 6.17827E-08 5.69160E-08 4.16721E-08 2.78329E-08 2.33998E-08 2.81598E-08 3.63162E-08 3.71243E-08 2.70011E-08 1.91329E-08 1.63397E-08 1.47793E-08 1.66401E-08 1.65319E-08 1.60060E-08 1.71740E-08 1.88635E-08 1.96484E-08 1.89244E-08 1.69428E-08 1.49295E-08 1.32093E-08 1.17339E-08 1.04676E-08 9.36066E-09 8.39593E-09 7.61931E-09 7.12654E-09 6.73969E-09 6.24094E-09 5.73430E-09 5.35322E-09 4.79423E-09 4.16788E-09 3.88162E-09 3.63303E-09 3.07894E-09 2.47285E-09 2.04204E-09 2.17776E-09 1.55221E-09 5.71028E-10 2.29430E-10 1.03448E-10 4.55470E-11 1.85534E-11 6.94577E-12 2.42222E-12 8.10534E-13 2.69927E-13 9.04378E-14
1.00355E-13 3.10020E-13 9.72237E-13 3.08084E-12 9.60217E-12 2.87206E-11 8.13304E-11 2.17294E-10 5.50419E-10 1.34158E-09 3.17567E-09 7.02033E-09 1.30320E-08 1.92181E-08 2.39653E-08 2.75259E-08 3.02282E-08 3.19461E-08 3.27113E-08 3.26200E-08 3.18885E-08 3.12732E-08 3.00593E-08 2.86405E-08 2.56339E-08 2.14299E-08 1.89580E-08 2.23895E-08 3.04660E-08 4.24723E-08 5.07654E-08 4.80954E-08 3.77129E-08 2.73072E-08 2.24444E-08 2.34653E-08 2.72261E-08 2.68281E-08 2.14528E-08 1.75685E-08 1.46768E-08 1.25037E-08 1.15821E-08 1.20603E-08 1.24725E-08 1.36978E-08 1.52171E-08 1.60684E-08 1.62655E-08 1.53328E-08 1.38668E-08 1.23503E-08 1.09593E-08 9.72435E-09 8.63431E-09 7.70079E-09 6.89380E-09 6.18921E-09 5.61042E-09 4.95624E-09 4.26757E-09 3.87139E-09 3.35373E-09 3.04604E-09 2.88718E-09 2.74890E-09 2.46405E-09 2.14088E-09 1.79987E-09 1.78719E-09 1.34762E-09 5.41150E-10 2.23890E-10 1.02046E-10 4.51874E-11 1.84692E-11 6.92794E-12 2.41879E-12 8.09934E-13 2.69832E-13 9.04238E-14
1.00336E-13 3.09891E-13 9.71411E-13 3.07592E-12 9.57467E-12 2.85754E-11 8.06014E-11 2.13788E-10 5.34038E-10 1.26628E-09 2.84198E-09 5.76246E-09 9.75193E-09 1.35929E-08 1.65370E-08 1.88158E-08 2.06103E-08 2.17898E-08 2.23262E-08 2.22280E-08 2.16421E-08 2.09737E-08 1.99993E-08 1.85755E-08 1.69017E-08 1.55254E-08 1.60218E-08 1.99564E-08 2.63817E-08 3.50897E-08 4.09329E-08 3.97264E-08 3.32442E-08 2.60457E-08 2.20879E-08 2.11235E-08 2.17143E-08 2.10861E-08 1.89413E-08 1.58676E-08 1.32122E-08 1.10786E-08 9.92740E-09 9.16885E-09 9.39976E-09 1.05910E-08 1.19192E-08 1.28577E-08 1.32372E-08 1.30813E-08 1.22734E-08 1.11880E-08 1.00543E-08 8.97649E-09 7.98457E-09 7.07801E-09 6.25073E-09 5.47228E-09 4.73144E-09 4.05594E-09 3.31529E-09 2.91552E-09 2.49766E-09 2.34118E-09 2.25926E-09 2.19007E-09 2.04976E-09 1.86300E-09 1.58773E-09 1.48800E-09 1.16650E-09 5.10906E-10 2.18020E-10 1.00482E-10 4.47762E-11 1.83718E-11 6.90724E-12 2.41479E-12 8.09235E-13 2.69720E-13 9.04074E-14
1.00315E-13 3.09744E-13 9.70468E-13 3.07030E-12 9.54335E-12 2.84104E-11 7.97777E-11 2.09874E-10 5.16211E-10 1.18845E-09 2.52886E-09 4.74199E-09 7.43801E-09 9.88357E-09 1.17194E-08 1.31381E-08 1.42687E-08 1.50239E-08 1.53761E-08 1.53246E-08 1.49611E-08 1.44268E-08 1.38754E-08 1.31625E-08 1.25099E-08 1.25153E-08 1.42032E-08 1.77108E-08 2.25450E-08 2.87233E-08 3.28039E-08 3.25220E-08 2.87805E-08 2.41115E-08 2.10786E-08 1.99955E-08 1.96202E-08 1.88015E-08 1.69023E-08 1.43791E-08 1.19100E-08 9.99141E-09 8.80203E-09 7.93100E-09 7.52789E-09 8.03339E-09 9.16535E-09 1.00388E-08 1.04709E-08 1.06486E-08 1.03459E-08 9.69202E-09 8.87536E-09 8.01173E-09 7.15691E-09 6.32868E-09 5.52258E-09 4.73767E-09 3.97730E-09 3.31611E-09 2.64651E-09 2.27377E-09 1.98071E-09 1.87590E-09 1.83679E-09 1.80374E-09 1.74085E-09 1.62303E-09 1.40967E-09 1.25413E-09 1.00964E-09 4.80491E-10 2.11866E-10 9.87771E-11 4.43161E-11 1.82615E-11 6.88365E-12 2.41023E-12 8.08437E-13 2.69592E-13 9.03887E-14
1.00291E-13 3.09578E-13 9.69410E-13 3.06400E-12 9.50825E-12 2.82261E-11 7.88633E-11 2.05589E-10 4.97255E-10 1.11022E-09 2.24351E-09 3.92819E-09 5.79462E-09 7.40172E-09 8.57749E-09 9.47480E-09 1.01960E-08 1.06898E-08 1.09436E-08 1.09611E-08 1.07838E-08 1.05014E-08 1.01811E-08 9.97381E-09 1.01025E-08 1.08935E-08 1.26925E-08 1.55304E-08 1.90388E-08 2.33962E-08 2.62872E-08 2.65280E-08 2.45516E-08 2.16871E-08 1.94958E-08 1.82962E-08 1.75802E-08 1.65498E-08 1.49138E-08 1.28468E-08 1.07956E-08 9.17292E-09 7.92457E-09 6.97593E-09 6.48324E-09 6.38049E-09 6.97941E-09 7.72720E-09 8.17911E-09 8.37416E-09 8.36571E-09 8.03001E-09 7.48958E-09 6.84088E-09 6.14292E-09 5.42532E-09 4.69983E-09 3.97609E-09 3.28197E-09 2.69547E-09 2.13889E-09 1.82781E-09 1.61833E-09 1.54897E-09 1.53551E-09 1.51804E-09 1.49590E-09 1.41467E-09 1.25122E-09 1.06965E-09 8.75561E-10 4.50144E-10 2.05449E-10 9.69446E-11 4.38100E-11 1.81387E-11 6.85724E-12 2.40511E-12 8.07539E-13 2.69449E-13 9.03676E-14
1.00264E-13 3.09394E-13 9.68235E-13 3.05701E-12 9.46940E-12 2.80228E-11 7.78626E-11 2.00972E-10 4.77474E-10 1.03329E-09 1.98872E-09 3.28355E-09 4.61204E-09 5.70746E-09 6.49127E-09 7.08355E-09 7.56782E-09 7.91602E-09 8.12506E-09 8.20427E-09 8.18490E-09 8.11897E-09 8.10282E-09 8.23862E-09 8.70148E-09 9.65782E-09 1.12540E-08 1.34364E-08 1.59350E-08 1.90174E-08 2.11029E-08 2.15927E-08 2.06728E-08 1.90121E-08 1.74964E-08 1.64047E-08 1.54991E-08 1.44452E-08 1.30365E-08 1.13886E-08 9.78750E-09 8.35347E-09 7.15316E-09 6.23515E-09 5.66962E-09 5.41845E-09 5.41438E-09 5.91097E-09 6.31390E-09 6.48802E-09 6.56321E-09 6.41865E-09 6.07875E-09 5.61103E-09 5.06617E-09 4.47755E-09 3.86579E-09 3.24910E-09 2.66522E-09 2.18779E-09 1.75174E-09 1.50842E-09 1.35579E-09 1.30950E-09 1.30952E-09 1.29623E-09 1.29472E-09 1.23407E-09 1.10881E-09 9.38027E-10 7.61766E-10 4.20166E-10 1.98781E-10 9.50008E-11 4.32612E-11 1.80038E-11 6.82805E-12 2.39944E-12 8.06543E-13 2.69289E-13 9.03442E-14
1.00235E-13 3.09192E-13 9.66943E-13 3.04934E-12 9.42683E-12 2.78009E-11 7.67795E-11 1.96064E-10 4.57164E-10 9.58990E-10 1.76439E-09 2.77256E-09 3.74623E-09 4.52289E-09 5.07087E-09 5.48475E-09 5.83364E-09 6.10339E-09 6.29388E-09 6.42125E-09 6.50841E-09 6.60258E-09 6.76419E-09 7.07637E-09 7.64147E-09 8.55714E-09 9.86160E-09 1.14924E-08 1.32588E-08 1.54522E-08 1.69788E-08 1.75410E-08 1.72095E-08 1.63021E-08 1.52743E-08 1.44030E-08 1.35638E-08 1.25885E-08 1.14083E-08 1.00855E-08 8.73594E-09 7.49606E-09 6.41313E-09 5.59220E-09 5.01660E-09 4.67212E-09 4.49966E-09 4.52794E-09 4.85228E-09 5.01107E-09 5.05876E-09 5.01417E-09 4.80398E-09 4.47401E-09 4.06323E-09 3.60170E-09 3.11249E-09 2.61681E-09 2.15325E-09 1.78634E-09 1.45530E-09 1.27314E-09 1.15976E-09 1.12687E-09 1.13279E-09 1.12049E-09 1.12614E-09 1.08168E-09 9.85176E-10 8.28335E-10 6.65411E-10 3.90865E-10 1.91875E-10 9.29542E-11 4.26729E-11 1.78574E-11 6.79615E-12 2.39322E-12 8.05450E-13 2.69114E-13 9.03185E-14
1.00203E-13 3.08971E-13 9.65535E-13 3.04098E-12 9.38057E-12 2.75610E-11 7.56192E-11 1.90906E-10 4.36587E-10 8.88210E-10 1.56849E-09 2.36518E-09 3.09987E-09 3.67261E-09 4.07488E-09 4.38208E-09 4.65169E-09 4.87756E-09 5.06189E-09 5.21752E-09 5.36814E-09 5.54625E-09 5.79563E-09 6.17211E-09 6.73426E-09 7.52470E-09 8.54700E-09 9.74660E-09 1.09967E-08 1.25647E-08 1.36900E-08 1.42270E-08 1.41921E-08 1.37297E-08 1.30633E-08 1.23661E-08 1.16457E-08 1.08207E-08 9.84599E-09 8.76721E-09 7.65914E-09 6.61084E-09 5.71147E-09 4.98918E-09 4.44565E-09 4.06794E-09 3.80772E-09 3.62931E-09 3.73638E-09 3.86980E-09 3.89297E-09 3.87626E-09 3.74773E-09 3.51730E-09 3.21441E-09 2.86403E-09 2.48676E-09 2.10369E-09 1.75199E-09 1.47614E-09 1.22918E-09 1.09455E-09 1.00815E-09 9.82379E-10 9.89847E-10 9.79359E-10 9.83115E-10 9.53396E-10 8.73028E-10 7.33349E-10 5.83774E-10 3.62555E-10 1.84760E-10 9.08184E-11 4.20483E-11 1.77000E-11 6.76159E-12 2.38645E-12 8.04259E-13 2.68923E-13 9.02905E-14
1.00168E-13 3.08733E-13 9.64012E-13 3.03196E-12 9.33072E-12 2.73036E-11 7.43870E-11 1.85541E-10 4.15982E-10 8.21522E-10 1.39817E-09 2.03742E-09 2.60712E-09 3.04531E-09 3.35431E-09 3.59470E-09 3.81484E-09 4.01301E-09 4.19243E-09 4.36345E-09 4.54408E-09 4.75822E-09 5.03651E-09 5.41168E-09 5.91420E-09 6.56080E-09 7.34406E-09 8.22083E-09 9.11269E-09 1.02332E-08 1.10631E-08 1.15274E-08 1.16224E-08 1.14070E-08 1.09838E-08 1.04535E-08 9.84755E-09 9.15475E-09 8.36350E-09 7.49511E-09 6.61228E-09 5.77709E-09 5.03408E-09 4.40694E-09 3.91684E-09 3.54052E-09 3.25045E-09 3.02482E-09 2.91338E-09 3.00252E-09 3.01630E-09 2.99737E-09 2.91922E-09 2.75949E-09 2.53942E-09 2.27838E-09 1.99349E-09 1.70371E-09 1.44640E-09 1.23856E-09 1.05492E-09 9.54876E-10 8.87081E-10 8.64440E-10 8.71160E-10 8.63043E-10 8.60880E-10 8.40253E-10 7.72680E-10 6.53785E-10 5.14391E-10 3.35476E-10 1.77469E-10 8.85993E-11 4.13898E-11 1.75318E-11 6.72442E-12 2.37915E-12 8.02971E-13 2.68717E-13 9.02601E-14
1.00131E-13 3.08476E-13 9.62376E-13 3.02227E-12 9.27735E-12 2.70295E-11 7.30894E-11 1.80011E-10 3.95551E-10 7.59203E-10 1.25020E-09 1.77082E-09 2.22355E-09 2.56965E-09 2.81602E-09 3.01205E-09 3.19844E-09 3.37553E-09 3.54694E-09 3.72056E-09 3.90925E-09 4.12952E-09 4.40051E-09 4.74116E-09 5.16598E-09 5.68015E-09 6.27300E-09 6.91279E-09 7.55555E-09 8.35302E-09 8.96360E-09 9.34049E-09 9.47377E-09 9.38587E-09 9.12079E-09 8.72900E-09 8.24827E-09 7.68482E-09 7.04786E-09 6.36176E-09 5.66313E-09 4.99296E-09 4.38132E-09 3.85876E-09 3.42278E-09 3.06740E-09 2.77797E-09 2.53646E-09 2.35148E-09 2.35197E-09 2.36268E-09 2.33965E-09 2.29046E-09 2.17989E-09 2.02100E-09 1.82839E-09 1.61520E-09 1.39816E-09 1.21198E-09 1.05555E-09 9.18129E-10 8.42170E-10 7.87454E-10 7.65657E-10 7.70645E-10 7.65023E-10 7.56063E-10 7.40965E-10 6.86452E-10 5.84095E-10 4.56131E-10 3.09830E-10 1.70049E-10 8.63080E-11 4.07002E-11 1.73534E-11 6.68467E-12 2.37131E-12 8.01585E-13 2.68494E-13 9.02274E-14
1.00091E-13 3.08201E-13 9.60625E-13 3.01192E-12 9.22051E-12 2.67393E-11 7.17319E-11 1.74358E-10 3.75467E-10 7.01326E-10 1.12151E-09 1.55131E-09 1.91876E-09 2.19937E-09 2.40150E-09 2.56576E-09 2.72673E-09 2.88543E-09 3.04512E-09 3.21164E-09 3.39371E-09 3.60202E-09 3.84807E-09 4.14216E-09 4.49060E-09 4.89297E-09 5.33897E-09 5.80644E-09 6.26763E-09 6.83848E-09 7.28444E-09 7.57712E-09 7.70594E-09 7.67634E-09 7.50746E-09 7.22450E-09 6.85116E-09 6.40367E-09 5.89919E-09 5.35764E-09 4.80626E-09 4.27232E-09 3.77922E-09 3.34023E-09 2.96209E-09 2.64096E-09 2.36898E-09 2.13569E-09 1.94155E-09 1.86582E-09 1.87430E-09 1.85354E-09 1.81980E-09 1.74374E-09 1.62912E-09 1.48708E-09 1.32770E-09 1.16531E-09 1.03076E-09 9.12434E-10 8.08715E-10 7.48712E-10 7.03601E-10 6.82418E-10 6.84224E-10 6.80173E-10 6.67920E-10 6.54012E-10 6.10523E-10 5.23054E-10 4.08932E-10 2.85724E-10 1.62548E-10 8.39506E-11 3.99820E-11 1.71654E-11 6.64244E-12 2.36295E-12 8.00104E-13 2.68256E-13 9.01924E-14
1.00049E-13 3.07908E-13 9.58761E-13 3.00092E-12 9.16025E-12 2.64337E-11 7.03205E-11 1.68619E-10 3.55863E-10 6.47805E-10 1.00925E-09 1.36844E-09 1.67185E-09 1.90401E-09 2.07319E-09 2.21320E-09 2.35335E-09 2.49484E-09 2.64030E-09 2.79376E-09 2.96092E-09 3.14841E-09 3.36274E-09 3.60914E-09 3.88966E-09 4.20161E-09 4.53638E-09 4.87866E-09 5.20814E-09 5.61770E-09 5.94168E-09 6.16093E-09 6.26707E-09 6.26042E-09 6.14719E-09 5.94087E-09 5.65587E-09 5.30831E-09 4.91302E-09 4.48820E-09 4.05271E-09 3.62691E-09 3.22766E-09 2.86376E-09 2.54056E-09 2.25890E-09 2.01370E-09 1.80005E-09 1.61726E-09 1.51270E-09 1.50802E-09 1.49162E-09 1.46845E-09 1.41592E-09 1.33308E-09 1.22798E-09 1.10815E-09 9.86825E-10 8.88201E-10 7.98019E-10 7.17945E-10 6.69720E-10 6.32972E-10 6.11457E-10 6.09119E-10 6.05815E-10 5.93127E-10 5.78000E-10 5.42851E-10 4.68814E-10 3.69217E-10 2.63234E-10 1.55025E-10 8.15386E-11 3.92381E-11 1.69682E-11 6.59778E-12 2.35406E-12 7.98528E-13 2.68003E-13 9.01550E-14
1.00003E-13 3.07597E-13 9.56783E-13 2.98926E-12 9.09666E-12 2.61134E-11 6.88611E-11 1.62830E-10 3.36844E-10 5.98458E-10 9.10936E-10 1.21425E-09 1.46833E-09 1.66325E-09 1.80671E-09 1.92714E-09 2.04944E-09 2.17455E-09 2.30451E-09 2.44207E-09 2.59062E-09 2.75414E-09 2.93599E-09 3.13850E-09 3.36178E-09 3.60243E-09 3.85355E-09 4.10472E-09 4.34215E-09 4.63330E-09 4.86652E-09 5.02647E-09 5.10606E-09 5.10408E-09 5.02308E-09 4.86874E-09 4.65142E-09 4.38252E-09 4.07454E-09 3.74155E-09 3.39849E-09 3.05918E-09 2.73525E-09 2.43527E-09 2.16396E-09 1.92147E-09 1.70676E-09 1.51720E-09 1.35204E-09 1.24382E-09 1.23139E-09 1.21968E-09 1.20429E-09 1.16813E-09 1.10764E-09 1.02923E-09 9.38448E-10 8.47099E-10 7.73889E-10 7.04315E-10 6.41048E-10 6.01283E-10 5.71545E-10 5.49579E-10 5.43325E-10 5.40327E-10 5.28649E-10 5.11748E-10 4.82863E-10 4.20166E-10 3.33825E-10 2.42354E-10 1.47533E-10 7.90800E-11 3.84710E-11 1.67624E-11 6.55078E-12 2.34467E-12 7.96857E-13 2.67734E-13 9.01153E-14
9.99556E-14 3.07268E-13 9.54694E-13 2.97697E-12 9.02984E-12 2.57792E-11 6.73601E-11 1.57025E-10 3.18484E-10 5.53041E-10 8.24468E-10 1.08286E-09 1.29787E-09 1.46333E-09 1.58598E-09 1.68997E-09 1.79646E-09 1.90621E-09 2.02058E-09 2.14139E-09 2.27054E-09 2.41015E-09 2.56186E-09 2.72631E-09 2.90268E-09 3.08785E-09 3.27636E-09 3.46094E-09 3.63247E-09 3.83790E-09 4.00472E-09 4.11828E-09 4.17377E-09 4.16933E-09 4.10604E-09 3.98753E-09 3.81943E-09 3.61025E-09 3.36960E-09 3.10844E-09 2.83742E-09 2.56708E-09 2.30579E-09 2.06012E-09 1.83353E-09 1.62818E-09 1.44390E-09 1.27926E-09 1.13436E-09 1.03660E-09 1.02007E-09 1.01281E-09 1.00309E-09 9.77987E-10 9.33607E-10 8.74407E-10 8.04798E-10 7.35369E-10 6.80112E-10 6.25850E-10 5.75006E-10 5.41521E-10 5.16509E-10 4.95121E-10 4.86209E-10 4.82504E-10 4.72483E-10 4.54965E-10 4.29854E-10 3.76732E-10 3.02141E-10 2.23063E-10 1.40127E-10 7.65861E-11 3.76830E-11 1.65484E-11 6.50148E-12 2.33476E-12 7.95092E-13 2.67449E-13 9.00733E-14
9.99052E-14 3.06921E-13 9.52494E-13 2.96405E-12 8.95987E-12 2.54320E-11 6.58239E-11 1.51233E-10 3.00841E-10 5.11282E-10 7.48055E-10 9.69775E-10 1.15326E-09 1.29466E-09 1.40005E-09 1.48995E-09 1.58240E-09 1.67793E-09 1.77740E-09 1.88190E-09 1.99246E-09 2.11005E-09 2.23517E-09 2.36768E-09 2.50638E-09 2.64860E-09 2.79025E-09 2.92603E-09 3.04971E-09 3.19393E-09 3.31226E-09 3.39108E-09 3.42658E-09 3.41788E-09 3.36528E-09 3.27074E-09 3.13853E-09 2.97440E-09 2.78567E-09 2.57977E-09 2.36485E-09 2.14868E-09 1.93770E-09 1.73673E-09 1.54945E-09 1.37726E-09 1.22096E-09 1.07991E-09 9.54922E-10 8.71828E-10 8.56381E-10 8.52938E-10 8.47336E-10 8.29767E-10 7.96630E-10 7.51505E-10 6.97646E-10 6.44078E-10 6.01609E-10 5.58706E-10 5.17495E-10 4.88313E-10 4.66815E-10 4.46501E-10 4.35678E-10 4.31304E-10 4.22618E-10 4.05940E-10 3.83107E-10 3.38796E-10 2.73771E-10 2.05291E-10 1.32853E-10 7.40656E-11 3.68765E-11 1.63267E-11 6.44997E-12 2.32436E-12 7.93233E-13 2.67149E-13 9.00290E-14
9.98521E-14 3.06557E-13 9.50183E-13 2.95051E-12 8.88685E-12 2.50726E-11 6.42584E-11 1.45482E-10 2.83946E-10 4.72901E-10 6.80235E-10 8.71597E-10 1.02910E-09 1.15060E-09 1.24134E-09 1.31903E-09 1.39901E-09 1.48165E-09 1.56736E-09 1.65678E-09 1.75042E-09 1.84844E-09 1.95091E-09 2.05718E-09 2.16594E-09 2.27512E-09 2.38159E-09 2.48145E-09 2.57042E-09 2.67104E-09 2.75417E-09 2.80738E-09 2.82813E-09 2.81513E-09 2.76930E-09 2.69218E-09 2.58615E-09 2.45553E-09 2.30560E-09 2.14229E-09 1.97113E-09 1.79772E-09 1.62708E-09 1.46317E-09 1.30857E-09 1.16525E-09 1.03357E-09 9.13598E-10 8.07038E-10 7.40119E-10 7.27680E-10 7.27128E-10 7.24478E-10 7.12025E-10 6.87039E-10 6.52027E-10 6.10086E-10 5.68063E-10 5.34735E-10 5.00419E-10 4.66470E-10 4.40945E-10 4.21826E-10 4.03108E-10 3.91128E-10 3.85915E-10 3.78327E-10 3.63250E-10 3.41899E-10 3.04907E-10 2.48358E-10 1.88963E-10 1.25752E-10 7.15300E-11 3.60540E-11 1.60980E-11 6.39631E-12 2.31348E-12 7.91282E-13 2.66834E-13 8.99824E-14
9.97963E-14 3.06174E-13 9.47762E-13 2.93636E-12 8.81084E-12 2.47019E-11 6.26693E-11 1.39795E-10 2.67821E-10 4.37624E-10 6.19771E-10 7.85716E-10 9.21536E-10 1.02622E-09 1.10452E-09 1.17153E-09 1.24048E-09 1.31158E-09 1.38500E-09 1.46089E-09 1.53954E-09 1.62075E-09 1.70421E-09 1.78922E-09 1.87442E-09 1.95814E-09 2.03818E-09 2.11157E-09 2.17525E-09 2.24500E-09 2.30277E-09 2.33752E-09 2.34747E-09 2.33180E-09 2.29080E-09 2.22622E-09 2.14007E-09 2.03483E-09 1.91453E-09 1.78353E-09 1.64623E-09 1.50660E-09 1.36823E-09 1.23422E-09 1.10690E-09 9.87476E-10 8.76972E-10 7.75313E-10 6.85182E-10 6.34491E-10 6.25972E-10 6.26315E-10 6.25672E-10 6.16694E-10 5.97544E-10 5.70171E-10 5.36964E-10 5.03644E-10 4.76927E-10 4.49169E-10 4.20883E-10 3.98317E-10 3.81042E-10 3.64677E-10 3.52169E-10 3.45600E-10 3.38972E-10 3.25844E-10 3.05749E-10 2.74619E-10 2.25801E-10 1.73982E-10 1.18859E-10 6.89887E-11 3.52178E-11 1.58626E-11 6.34062E-12 2.30211E-12 7.89239E-13 2.66503E-13 8.99334E-14
9.97380E-14 3.05774E-13 9.45232E-13 2.92160E-12 8.73196E-12 2.43207E-11 6.10625E-11 1.34194E-10 2.52467E-10 4.05188E-10 5.65665E-10 7.10086E-10 8.27622E-10 9.18015E-10 9.85529E-10 1.04332E-09 1.10261E-09 1.16349E-09 1.22601E-09 1.29013E-09 1.35577E-09 1.42277E-09 1.49056E-09 1.55838E-09 1.62514E-09 1.68938E-09 1.74944E-09 1.80322E-09 1.84848E-09 1.89655E-09 1.93614E-09 1.95775E-09 1.96022E-09 1.94301E-09 1.90643E-09 1.85141E-09 1.78006E-09 1.69453E-09 1.59713E-09 1.49120E-09 1.37999E-09 1.26670E-09 1.15399E-09 1.04410E-09 9.38844E-10 8.39508E-10 7.46572E-10 6.60536E-10 5.84583E-10 5.48079E-10 5.43141E-10 5.44113E-10 5.44792E-10 5.38183E-10 5.23267E-10 5.01507E-10 4.75028E-10 4.48214E-10 4.26358E-10 4.03701E-10 3.79883E-10 3.59794E-10 3.44265E-10 3.30142E-10 3.17639E-10 3.09758E-10 3.03975E-10 2.92748E-10 2.74230E-10 2.47583E-10 2.05552E-10 1.60256E-10 1.12201E-10 6.64524E-11 3.43704E-11 1.56212E-11 6.28294E-12 2.29027E-12 7.87105E-13 2.66157E-13 8.98821E-14
9.96770E-14 3.05357E-13 9.42595E-13 2.90626E-12 8.65034E-12 2.39299E-11 5.94435E-11 1.28696E-10 2.37883E-10 3.75348E-10 5.17071E-10 6.43133E-10 7.45087E-10 8.23268E-10 8.81473E-10 9.31196E-10 9.82123E-10 1.03407E-09 1.08710E-09 1.14106E-09 1.19568E-09 1.25073E-09 1.30568E-09 1.35973E-09 1.41202E-09 1.46138E-09 1.50636E-09 1.54558E-09 1.57743E-09 1.61030E-09 1.63692E-09 1.64940E-09 1.64687E-09 1.62912E-09 1.59636E-09 1.54942E-09 1.48960E-09 1.41898E-09 1.33947E-09 1.25311E-09 1.16248E-09 1.06980E-09 9.77317E-10 8.86753E-10 7.99416E-10 7.16408E-10 6.38327E-10 5.65807E-10 5.05191E-10 4.76622E-10 4.74551E-10 4.76265E-10 4.77483E-10 4.72519E-10 4.60728E-10 4.43240E-10 4.21774E-10 4.00021E-10 3.81815E-10 3.63152E-10 3.42937E-10 3.25212E-10 3.11059E-10 2.98664E-10 2.86609E-10 2.78429E-10 2.72861E-10 2.63243E-10 2.46562E-10 2.23449E-10 1.87296E-10 1.47685E-10 1.05800E-10 6.39307E-11 3.35138E-11 1.53741E-11 6.22335E-12 2.27797E-12 7.84881E-13 2.65796E-13 8.98286E-14
9.96135E-14 3.04922E-13 9.39851E-13 2.89033E-12 8.56608E-12 2.35306E-11 5.78176E-11 1.23316E-10 2.24052E-10 3.47882E-10 4.73293E-10 5.83576E-10 6.72196E-10 7.39840E-10 7.90043E-10 8.32786E-10 8.76354E-10 9.20664E-10 9.65497E-10 1.01076E-09 1.05613E-09 1.10128E-09 1.14571E-09 1.18880E-09 1.22974E-09 1.26760E-09 1.30132E-09 1.32976E-09 1.35181E-09 1.37404E-09 1.39150E-09 1.39767E-09 1.39201E-09 1.37442E-09 1.34513E-09 1.30482E-09 1.25455E-09 1.19561E-09 1.12987E-09 1.05892E-09 9.84417E-10 9.08201E-10 8.31764E-10 7.56618E-10 6.83819E-10 6.14137E-10 5.48172E-10 4.87163E-10 4.39392E-10 4.16884E-10 4.17036E-10 4.19215E-10 4.20601E-10 4.16816E-10 4.07374E-10 3.93166E-10 3.75634E-10 3.57687E-10 3.42341E-10 3.26878E-10 3.09601E-10 2.93924E-10 2.81226E-10 2.70040E-10 2.58870E-10 2.50698E-10 2.45162E-10 2.36939E-10 2.22128E-10 2.01907E-10 1.70930E-10 1.36285E-10 9.96674E-11 6.14323E-11 3.26505E-11 1.51220E-11 6.16193E-12 2.26521E-12 7.82568E-13 2.65419E-13 8.97727E-14
9.95473E-14 3.04469E-13 9.37001E-13 2.87383E-12 8.47928E-12 2.31236E-11 5.61897E-11 1.18067E-10 2.10959E-10 3.22583E-10 4.33747E-10 5.30402E-10 6.07541E-10 6.66109E-10 7.09378E-10 7.46105E-10 7.83341E-10 8.21005E-10 8.58897E-10 8.96755E-10 9.34411E-10 9.71394E-10 1.00731E-09 1.04162E-09 1.07366E-09 1.10268E-09 1.12788E-09 1.14837E-09 1.16332E-09 1.17817E-09 1.18914E-09 1.19103E-09 1.18355E-09 1.16661E-09 1.14049E-09 1.10574E-09 1.06317E-09 1.01385E-09 9.58985E-10 9.00063E-10 8.38335E-10 7.75094E-10 7.11605E-10 6.48838E-10 5.87786E-10 5.29031E-10 4.73044E-10 4.21445E-10 3.84062E-10 3.66396E-10 3.68226E-10 3.70620E-10 3.72003E-10 3.69022E-10 3.61385E-10 3.49725E-10 3.35248E-10 3.20374E-10 3.07200E-10 2.94290E-10 2.79490E-10 2.65593E-10 2.54178E-10 2.44079E-10 2.33892E-10 2.26032E-10 2.20482E-10 2.13464E-10 2.00521E-10 1.82652E-10 1.56140E-10 1.25898E-10 9.38149E-11 5.89664E-11 3.17826E-11 1.48652E-11 6.09879E-12 2.25202E-12 7.80166E-13 2.65028E-13 8.97146E-14
9.94785E-14 3.04000E-13 9.34046E-13 2.85677E-12 8.39004E-12 2.27096E-11 5.45644E-11 1.12958E-10 1.98580E-10 2.99267E-10 3.97937E-10 4.82785E-10 5.49994E-10 6.00716E-10 6.38028E-10 6.69538E-10 7.01363E-10 7.33328E-10 7.65277E-10 7.96976E-10 8.28139E-10 8.58445E-10 8.87468E-10 9.14785E-10 9.39836E-10 9.62050E-10 9.80772E-10 9.95368E-10 1.00523E-09 1.01495E-09 1.02138E-09 1.02047E-09 1.01203E-09 9.96056E-10 9.72819E-10 9.42749E-10 9.06521E-10 8.64946E-10 8.18978E-10 7.69632E-10 7.18053E-10 6.65191E-10 6.11998E-10 5.59312E-10 5.07763E-10 4.57966E-10 4.10243E-10 3.66510E-10 3.37123E-10 3.24341E-10 3.26674E-10 3.28787E-10 3.30106E-10 3.27712E-10 3.21427E-10 3.11792E-10 2.99709E-10 2.87275E-10 2.75957E-10 2.65011E-10 2.52411E-10 2.40145E-10 2.29906E-10 2.20659E-10 2.11773E-10 2.04083E-10 1.98585E-10 1.92516E-10 1.81284E-10 1.65440E-10 1.42748E-10 1.16394E-10 8.82445E-11 5.65398E-11 3.09124E-11 1.46044E-11 6.03401E-12 2.23839E-12 7.77678E-13 2.64622E-13 8.96541E-14
9.94071E-14 3.03513E-13 9.30987E-13 2.83917E-12 8.29851E-12 2.22898E-11 5.29460E-11 1.07999E-10 1.86888E-10 2.77764E-10 3.65446E-10 4.40025E-10 4.98623E-10 5.42572E-10 5.74736E-10 6.01767E-10 6.28938E-10 6.56067E-10 6.82983E-10 7.09487E-10 7.35278E-10 7.60079E-10 7.83551E-10 8.05288E-10 8.24874E-10 8.41813E-10 8.55640E-10 8.65862E-10 8.72026E-10 8.78249E-10 8.81532E-10 8.78845E-10 8.70045E-10 8.55222E-10 8.34569E-10 8.08486E-10 7.77491E-10 7.42231E-10 7.03449E-10 6.61940E-10 6.18519E-10 5.74025E-10 5.29156E-10 4.84584E-10 4.40851E-10 3.98372E-10 3.57781E-10 3.20463E-10 2.97135E-10 2.88629E-10 2.90654E-10 2.92437E-10 2.93652E-10 2.91727E-10 2.86520E-10 2.78456E-10 2.68320E-10 2.57837E-10 2.48004E-10 2.38746E-10 2.28020E-10 2.17202E-10 2.07955E-10 1.99608E-10 1.91779E-10 1.84558E-10 1.79130E-10 1.73803E-10 1.64218E-10 1.50089E-10 1.30616E-10 1.07704E-10 8.29590E-11 5.41606E-11 3.00419E-11 1.43400E-11 5.96766E-12 2.22434E-12 7.75103E-13 2.64201E-13 8.95914E-14
9.93331E-14 3.03009E-13 9.27827E-13 2.82104E-12 8.20481E-12 2.18649E-11 5.13385E-11 1.03194E-10 1.75857E-10 2.57922E-10 3.35912E-10 4.01539E-10 4.52657E-10 4.90752E-10 5.18460E-10 5.41666E-10 5.64840E-10 5.87857E-10 6.10535E-10 6.32661E-10 6.54007E-10 6.74308E-10 6.93279E-10 7.10587E-10 7.25864E-10 7.38755E-10 7.48864E-10 7.55856E-10 7.59348E-10 7.63189E-10 7.64319E-10 7.60550E-10 7.51813E-10 7.38190E-10 7.19868E-10 6.97178E-10 6.70535E-10 6.40463E-10 6.07538E-10 5.72391E-10 5.35653E-10 4.97949E-10 4.59879E-10 4.21942E-10 3.84601E-10 3.48204E-10 3.13552E-10 2.81510E-10 2.63209E-10 2.57451E-10 2.59135E-10 2.60684E-10 2.61712E-10 2.60155E-10 2.55824E-10 2.49063E-10 2.40461E-10 2.31611E-10 2.22995E-10 2.15098E-10 2.06029E-10 1.96581E-10 1.88116E-10 1.80679E-10 1.73694E-10 1.67032E-10 1.61942E-10 1.57060E-10 1.48898E-10 1.36382E-10 1.19614E-10 9.97244E-11 7.79528E-11 5.18332E-11 2.91733E-11 1.40725E-11 5.89982E-12 2.20988E-12 7.72443E-13 2.63765E-13 8.95263E-14
9.92565E-14 3.02488E-13 9.24565E-13 2.80239E-12 8.10905E-12 2.14359E-11 4.97457E-11 9.85486E-11 1.65457E-10 2.39601E-10 3.09035E-10 3.66824E-10 4.11452E-10 4.44469E-10 4.68369E-10 4.88261E-10 5.08037E-10 5.27555E-10 5.46648E-10 5.65121E-10 5.82785E-10 5.99410E-10 6.14741E-10 6.28504E-10 6.40413E-10 6.50164E-10 6.57484E-10 6.62064E-10 6.63681E-10 6.65881E-10 6.65567E-10 6.61195E-10 6.52772E-10 6.40341E-10 6.24104E-10 6.04307E-10 5.81314E-10 5.55526E-10 5.27417E-10 4.97471E-10 4.66196E-10 4.34080E-10 4.01585E-10 3.69136E-10 3.37084E-10 3.05739E-10 2.76028E-10 2.49756E-10 2.34575E-10 2.30069E-10 2.31478E-10 2.32745E-10 2.33664E-10 2.32328E-10 2.28722E-10 2.23031E-10 2.15718E-10 2.08175E-10 2.00620E-10 1.93853E-10 1.86141E-10 1.77938E-10 1.70327E-10 1.63658E-10 1.57349E-10 1.51343E-10 1.46579E-10 1.42083E-10 1.35134E-10 1.24137E-10 1.09632E-10 9.23720E-11 7.32234E-11 4.95644E-11 2.83082E-11 1.38023E-11 5.83059E-12 2.19502E-12 7.69699E-13 2.63315E-13 8.94590E-14
9.91690E-14 3.01894E-13 9.20856E-13 2.78127E-12 8.00152E-12 2.09609E-11 4.80191E-11 9.36425E-11 1.54751E-10 2.21112E-10 2.82275E-10 3.32565E-10 3.71016E-10 3.99253E-10 4.19552E-10 4.36347E-10 4.52953E-10 4.69226E-10 4.85016E-10 5.00169E-10 5.14511E-10 5.27849E-10 5.39969E-10 5.50649E-10 5.59663E-10 5.66790E-10 5.71798E-10 5.74483E-10 5.74657E-10 5.75662E-10 5.74324E-10 5.69712E-10 5.61807E-10 5.50692E-10 5.36501E-10 5.19461E-10 4.99841E-10 4.77972E-10 4.54213E-10 4.28948E-10 4.02566E-10 3.75452E-10 3.47969E-10 3.20446E-10 2.93179E-10 2.66407E-10 2.41151E-10 2.19795E-10 2.07242E-10 2.03713E-10 2.04841E-10 2.05866E-10 2.06613E-10 2.05540E-10 2.02516E-10 1.97799E-10 1.91647E-10 1.85308E-10 1.78699E-10 1.72998E-10 1.66535E-10 1.59478E-10 1.52769E-10 1.46860E-10 1.41301E-10 1.35908E-10 1.31605E-10 1.27473E-10 1.21633E-10 1.12120E-10 9.97410E-11 8.50137E-11 6.83587E-11 4.71517E-11 2.73660E-11 1.35030E-11 5.75294E-12 2.17821E-12 7.66580E-13 2.62801E-13 8.93822E-14
9.90573E-14 3.01137E-13 9.16138E-13 2.75453E-12 7.86666E-12 2.03746E-11 4.59382E-11 8.78987E-11 1.42564E-10 2.00525E-10 2.52932E-10 2.95373E-10 3.27439E-10 3.50751E-10 3.67368E-10 3.81023E-10 3.94418E-10 4.07435E-10 4.19949E-10 4.31833E-10 4.42936E-10 4.53107E-10 4.62176E-10 4.69973E-10 4.76336E-10 4.81097E-10 4.84091E-10 4.85179E-10 4.84231E-10 4.84324E-10 4.82285E-10 4.77684E-10 4.70530E-10 4.60886E-10 4.48866E-10 4.34636E-10 4.18404E-10 4.00418E-10 3.80944E-10 3.60269E-10 3.38681E-10 3.16468E-10 2.93902E-10 2.71240E-10 2.48703E-10 2.26548E-10 2.05631E-10 1.88777E-10 1.78630E-10 1.75859E-10 1.76705E-10 1.77477E-10 1.78053E-10 1.77211E-10 1.74813E-10 1.71004E-10 1.65998E-10 1.60843E-10 1.55416E-10 1.50546E-10 1.45355E-10 1.39494E-10 1.33781E-10 1.28780E-10 1.23988E-10 1.19400E-10 1.15481E-10 1.11834E-10 1.07066E-10 9.91961E-11 8.89609E-11 7.68661E-11 6.28252E-11 4.43063E-11 2.62237E-11 1.31333E-11 5.65567E-12 2.15696E-12 7.62616E-13 2.62147E-13 8.92840E-14
9.89167E-14 3.00186E-13 9.10229E-13 2.72124E-12 7.70047E-12 1.96656E-11 4.34913E-11 8.13688E-11 1.29150E-10 1.78428E-10 2.22002E-10 2.56651E-10 2.82455E-10 3.00979E-10 3.14057E-10 3.24702E-10 3.35052E-10 3.45009E-10 3.54478E-10 3.63347E-10 3.71507E-10 3.78836E-10 3.85214E-10 3.90521E-10 3.94637E-10 3.97444E-10 3.98836E-10 3.98720E-10 3.97049E-10 3.96535E-10 3.94113E-10 3.89761E-10 3.83500E-10 3.75381E-10 3.65493E-10 3.53953E-10 3.40917E-10 3.26556E-10 3.11066E-10 2.94648E-10 2.77510E-10 2.59854E-10 2.41881E-10 2.23772E-10 2.05700E-10 1.88021E-10 1.71189E-10 1.58113E-10 1.50041E-10 1.47765E-10 1.48341E-10 1.48866E-10 1.49271E-10 1.48652E-10 1.46823E-10 1.43894E-10 1.39982E-10 1.35880E-10 1.31597E-10 1.27531E-10 1.23508E-10 1.18875E-10 1.14232E-10 1.10042E-10 1.06133E-10 1.02332E-10 9.89400E-11 9.58565E-11 9.20343E-11 8.58117E-11 7.76670E-11 6.81623E-11 5.67322E-11 4.10420E-11 2.48712E-11 1.26858E-11 5.53599E-12 2.13053E-12 7.57653E-13 2.61325E-13 8.91604E-14
9.87461E-14 2.99035E-13 9.03105E-13 2.68137E-12 7.50420E-12 1.88474E-11 4.07601E-11 7.43565E-11 1.15251E-10 1.56155E-10 1.91423E-10 2.18897E-10 2.39004E-10 2.53236E-10 2.63166E-10 2.71161E-10 2.78854E-10 2.86172E-10 2.93035E-10 2.99364E-10 3.05076E-10 3.10083E-10 3.14304E-10 3.17654E-10 3.20049E-10 3.21414E-10 3.21681E-10 3.20796E-10 3.19042E-10 3.17939E-10 3.15429E-10 3.11509E-10 3.06197E-10 2.99537E-10 2.91593E-10 2.82451E-10 2.72214E-10 2.61005E-10 2.48955E-10 2.36207E-10 2.22902E-10 2.09183E-10 1.95187E-10 1.81046E-10 1.66881E-10 1.53088E-10 1.39858E-10 1.29785E-10 1.23354E-10 1.21334E-10 1.21671E-10 1.21980E-10 1.22222E-10 1.21802E-10 1.20466E-10 1.18293E-10 1.15365E-10 1.12146E-10 1.08867E-10 1.05614E-10 1.02536E-10 9.90650E-11 9.54406E-11 9.20215E-11 8.88868E-11 8.58771E-11 8.30726E-11 8.05091E-11 7.75148E-11 7.28267E-11 6.65665E-11 5.94308E-11 5.04293E-11 3.75074E-11 2.33492E-11 1.21683E-11 5.39483E-12 2.09892E-12 7.51674E-13 2.60330E-13 8.90104E-14
9.85290E-14 2.97576E-13 8.94124E-13 2.63162E-12 7.26366E-12 1.78738E-11 3.76378E-11 6.66855E-11 1.00625E-10 1.33392E-10 1.60813E-10 1.81649E-10 1.96581E-10 2.06968E-10 2.14110E-10 2.19785E-10 2.25178E-10 2.30229E-10 2.34887E-10 2.39097E-10 2.42801E-10 2.45941E-10 2.48461E-10 2.50307E-10 2.51428E-10 2.51779E-10 2.51319E-10 2.50019E-10 2.48331E-10 2.46964E-10 2.44608E-10 2.41266E-10 2.36953E-10 2.31701E-10 2.25555E-10 2.18571E-10 2.10818E-10 2.02373E-10 1.93324E-10 1.83762E-10 1.73783E-10 1.63481E-10 1.52947E-10 1.42273E-10 1.31541E-10 1.21124E-10 1.11057E-10 1.03353E-10 9.82055E-11 9.62554E-11 9.63874E-11 9.65126E-11 9.66144E-11 9.63741E-11 9.54724E-11 9.39593E-11 9.18903E-11 8.94950E-11 8.70891E-11 8.45571E-11 8.23082E-11 7.98607E-11 7.71886E-11 7.45538E-11 7.22056E-11 6.99059E-11 6.76809E-11 6.56747E-11 6.34419E-11 6.01055E-11 5.55396E-11 5.05472E-11 4.38281E-11 3.36189E-11 2.15953E-11 1.15509E-11 5.22201E-12 2.05954E-12 7.44143E-13 2.59070E-13 8.88195E-14
9.82463E-14 2.95685E-13 8.82552E-13 2.56825E-12 6.96387E-12 1.67020E-11 3.40506E-11 5.83022E-11 8.53214E-11 1.10350E-10 1.30569E-10 1.45475E-10 1.55889E-10 1.62977E-10 1.67764E-10 1.71503E-10 1.74995E-10 1.78205E-10 1.81099E-10 1.83640E-10 1.85793E-10 1.87521E-10 1.88789E-10 1.89567E-10 1.89826E-10 1.89541E-10 1.88692E-10 1.87263E-10 1.85762E-10 1.84367E-10 1.82313E-10 1.79605E-10 1.76254E-10 1.72282E-10 1.67717E-10 1.62596E-10 1.56962E-10 1.50861E-10 1.44346E-10 1.37475E-10 1.30305E-10 1.22897E-10 1.15310E-10 1.07600E-10 9.98228E-11 9.22850E-11 8.49465E-11 7.91393E-11 7.50287E-11 7.30825E-11 7.30559E-11 7.30352E-11 7.30190E-11 7.29232E-11 7.23754E-11 7.14059E-11 7.00487E-11 6.83915E-11 6.67409E-11 6.49858E-11 6.33189E-11 6.16696E-11 5.98274E-11 5.80042E-11 5.62788E-11 5.46657E-11 5.30839E-11 5.15254E-11 4.99954E-11 4.78326E-11 4.47483E-11 4.15852E-11 3.69491E-11 2.93414E-11 1.95612E-11 1.08052E-11 5.00684E-12 2.00947E-12 7.34450E-13 2.57437E-13 8.85710E-14
9.78819E-14 2.93262E-13 8.67847E-13 2.48897E-12 6.59922E-12 1.53374E-11 3.00989E-11 4.95772E-11 7.01394E-11 8.83045E-11 1.02385E-10 1.12401E-10 1.19184E-10 1.23679E-10 1.26645E-10 1.28907E-10 1.30975E-10 1.32828E-10 1.34442E-10 1.35797E-10 1.36871E-10 1.37645E-10 1.38099E-10 1.38217E-10 1.37985E-10 1.37389E-10 1.36421E-10 1.35074E-10 1.33811E-10 1.32552E-10 1.30875E-10 1.28786E-10 1.26292E-10 1.23406E-10 1.20145E-10 1.16532E-10 1.12591E-10 1.08352E-10 1.03842E-10 9.90961E-11 9.41480E-11 8.90335E-11 8.37883E-11 7.84469E-11 7.30432E-11 6.77996E-11 6.26579E-11 5.83120E-11 5.50300E-11 5.34055E-11 5.29755E-11 5.29159E-11 5.28504E-11 5.27637E-11 5.24773E-11 5.19157E-11 5.10981E-11 5.00457E-11 4.89525E-11 4.78152E-11 4.66595E-11 4.56012E-11 4.44813E-11 4.32984E-11 4.21304E-11 4.10822E-11 4.00388E-11 3.89027E-11 3.79095E-11 3.66340E-11 3.47793E-11 3.30504E-11 3.01604E-11 2.48716E-11 1.72995E-11 9.93254E-12 4.74524E-12 1.94695E-12 7.22147E-13 2.55345E-13 8.82505E-14
9.74101E-14 2.90149E-13 8.49164E-13 2.39027E-12 6.16106E-12 1.37821E-11 2.58747E-11 4.08183E-11 5.56653E-11 6.80912E-11 7.72716E-11 8.35284E-11 8.76057E-11 9.02150E-11 9.18830E-11 9.31152E-11 9.42055E-11 9.51414E-11 9.59106E-11 9.65014E-11 9.69029E-11 9.71051E-11 9.70987E-11 9.68753E-11 9.64283E-11 9.57523E-11 9.48440E-11 9.37014E-11 9.26813E-11 9.16426E-11 9.03526E-11 8.88147E-11 8.70344E-11 8.50191E-11 8.27788E-11 8.03258E-11 7.76745E-11 7.48404E-11 7.18402E-11 6.86917E-11 6.54140E-11 6.20271E-11 5.85514E-11 5.50069E-11 5.14133E-11 4.79098E-11 4.44512E-11 4.12415E-11 3.89822E-11 3.74683E-11 3.67294E-11 3.66300E-11 3.65187E-11 3.64046E-11 3.62898E-11 3.60055E-11 3.55619E-11 3.49701E-11 3.42833E-11 3.36184E-11 3.29028E-11 3.22326E-11 3.15669E-11 3.08723E-11 3.01831E-11 2.95184E-11 2.89063E-11 2.81975E-11 2.75621E-11 2.69120E-11 2.59717E-11 2.52548E-11 2.37272E-11 2.03732E-11 1.48602E-11 8.93202E-12 4.43078E-12 1.86925E-12 7.06535E-13 2.52658E-13 8.78354E-14
9.67954E-14 2.86136E-13 8.25433E-13 2.26817E-12 5.64280E-12 1.20557E-11 2.15158E-11 3.23754E-11 4.24575E-11 5.03912E-11 5.59325E-11 5.95158E-11 6.17371E-11 6.30912E-11 6.39170E-11 6.44950E-11 6.49769E-11 6.53563E-11 6.56272E-11 6.57838E-11 6.58209E-11 6.57340E-11 6.55190E-11 6.51725E-11 6.46915E-11 6.40744E-11 6.33201E-11 6.24286E-11 6.16342E-11 6.08391E-11 5.99002E-11 5.88199E-11 5.76019E-11 5.62504E-11 5.47708E-11 5.31696E-11 5.14544E-11 4.96335E-11 4.77160E-11 4.57111E-11 4.36288E-11 4.14796E-11 3.92743E-11 3.70239E-11 3.47393E-11 3.24922E-11 3.02597E-11 2.81016E-11 2.64803E-11 2.51406E-11 2.44148E-11 2.41525E-11 2.40547E-11 2.39713E-11 2.38789E-11 2.37625E-11 2.35530E-11 2.32557E-11 2.28767E-11 2.24940E-11 2.21028E-11 2.17027E-11 2.13416E-11 2.09601E-11 2.05958E-11 2.02350E-11 1.98970E-11 1.95079E-11 1.91277E-11 1.88866E-11 1.85338E-11 1.84627E-11 1.78929E-11 1.60375E-11 1.23240E-11 7.81380E-12 4.05832E-12 1.77328E-12 6.86734E-13 2.49196E-13 8.72946E-14
9.58839E-14 2.80293E-13 7.91737E-13 2.10183E-12 4.98034E-12 1.00232E-11 1.68067E-11 2.39038E-11 2.99328E-11 3.42920E-11 3.70977E-11 3.87690E-11 3.97184E-11 4.02437E-11 4.05308E-11 4.07035E-11 4.08200E-11 4.08777E-11 4.08744E-11 4.08080E-11 4.06765E-11 4.04784E-11 4.02124E-11 3.98776E-11 3.94733E-11 3.89990E-11 3.84548E-11 3.78412E-11 3.72416E-11 3.67037E-11 3.60948E-11 3.54162E-11 3.46696E-11 3.38573E-11 3.29816E-11 3.20455E-11 3.10522E-11 3.00054E-11 2.89091E-11 2.77677E-11 2.65853E-11 2.53668E-11 2.41169E-11 2.28408E-11 2.15434E-11 2.02363E-11 1.89620E-11 1.76951E-11 1.64574E-11 1.56028E-11 1.48611E-11 1.44316E-11 1.42477E-11 1.41781E-11 1.41204E-11 1.40565E-11 1.40025E-11 1.39031E-11 1.37606E-11 1.35773E-11 1.34008E-11 1.32200E-11 1.30392E-11 1.28748E-11 1.26993E-11 1.25560E-11 1.24137E-11 1.22520E-11 1.20784E-11 1.20205E-11 1.20131E-11 1.23052E-11 1.23939E-11 1.17070E-11 9.57610E-12 6.48913E-12 3.58096E-12 1.64266E-12 6.58659E-13 2.44158E-13 8.64923E-14
9.45853E-14 2.72125E-13 7.45882E-13 1.88587E-12 4.18208E-12 7.79999E-12 1.21503E-11 1.62390E-11 1.93759E-11 2.14256E-11 2.26089E-11 2.32274E-11 2.35214E-11 2.36446E-11 2.36846E-11 2.36824E-11 2.36510E-11 2.35896E-11 2.34974E-11 2.33739E-11 2.32184E-11 2.30306E-11 2.28102E-11 2.25570E-11 2.22711E-11 2.19526E-11 2.16015E-11 2.12185E-11 2.08098E-11 2.04768E-11 2.01119E-11 1.97157E-11 1.92889E-11 1.88326E-11 1.83480E-11 1.78363E-11 1.72988E-11 1.67370E-11 1.61527E-11 1.55476E-11 1.49235E-11 1.42823E-11 1.36260E-11 1.29566E-11 1.22763E-11 1.15871E-11 1.09034E-11 1.02289E-11 9.56282E-12 8.93731E-12 8.47900E-12 8.08176E-12 7.84549E-12 7.69854E-12 7.65803E-12 7.62033E-12 7.58228E-12 7.55754E-12 7.51848E-12 7.46030E-12 7.38393E-12 7.31582E-12 7.24615E-12 7.17996E-12 7.11762E-12 7.06398E-12 7.01976E-12 6.97063E-12 6.92949E-12 6.95132E-12 7.06851E-12 7.44475E-12 7.81153E-12 7.79631E-12 6.84191E-12 5.02678E-12 3.00325E-12 1.47319E-12 6.20516E-13 2.37118E-13 8.53487E-14
9.29105E-14 2.61903E-13 6.90857E-13 1.64355E-12 3.36904E-12 5.77987E-12 8.35514E-12 1.05216E-11 1.20107E-11 1.28718E-11 1.32952E-11 1.34641E-11 1.35040E-11 1.34871E-11 1.34506E-11 1.34024E-11 1.33400E-11 1.32630E-11 1.31712E-11 1.30646E-11 1.29431E-11 1.28064E-11 1.26547E-11 1.24880E-11 1.23064E-11 1.21100E-11 1.18991E-11 1.16737E-11 1.14343E-11 1.12059E-11 1.09970E-11 1.07744E-11 1.05384E-11 1.02894E-11 1.00281E-11 9.75498E-12 9.47048E-12 9.17526E-12 8.87002E-12 8.55550E-12 8.23245E-12 7.90159E-12 7.56370E-12 7.21963E-12 6.87023E-12 6.51634E-12 6.15882E-12 5.80525E-12 5.45640E-12 5.10952E-12 4.77615E-12 4.53732E-12 4.30485E-12 4.17421E-12 4.04644E-12 4.01937E-12 3.99302E-12 3.97821E-12 3.95837E-12 3.94710E-12 3.92761E-12 3.90021E-12 3.87555E-12 3.85423E-12 3.83325E-12 3.81803E-12 3.80569E-12 3.79848E-12 3.79650E-12 3.84150E-12 3.95655E-12 4.26273E-12 4.64846E-12 4.89623E-12 4.61056E-12 3.68796E-12 2.41122E-12 1.28282E-12 5.74791E-13 2.28312E-13 8.38727E-14
9.06671E-14 2.48805E-13 6.24443E-13 1.37534E-12 2.56476E-12 4.00741E-12 5.35705E-12 6.35734E-12 6.95622E-12 7.24368E-12 7.34172E-12 7.34416E-12 7.30730E-12 7.26003E-12 7.21523E-12 7.16992E-12 7.11836E-12 7.06049E-12 6.99628E-12 6.92573E-12 6.84883E-12 6.76561E-12 6.67607E-12 6.58027E-12 6.47830E-12 6.37025E-12 6.25618E-12 6.13622E-12 6.01050E-12 5.87921E-12 5.74374E-12 5.62936E-12 5.50959E-12 5.38460E-12 5.25460E-12 5.11977E-12 4.98031E-12 4.83645E-12 4.68844E-12 4.53655E-12 4.38104E-12 4.22217E-12 4.06024E-12 3.89553E-12 3.72835E-12 3.55900E-12 3.38781E-12 3.21509E-12 3.04115E-12 2.87034E-12 2.70128E-12 2.53193E-12 2.37434E-12 2.25785E-12 2.14781E-12 2.07037E-12 2.00737E-12 1.96590E-12 1.95374E-12 1.94469E-12 1.93651E-12 1.92894E-12 1.92424E-12 1.91643E-12 1.91099E-12 1.90857E-12 1.90707E-12 1.90928E-12 1.91667E-12 1.94195E-12 2.01744E-12 2.19623E-12 2.49199E-12 2.79163E-12 2.84879E-12 2.50718E-12 1.82182E-12 1.07161E-12 5.19628E-13 2.17034E-13 8.18944E-14
8.76274E-14 2.32052E-13 5.45719E-13 1.08871E-12 1.80554E-12 2.52935E-12 3.10601E-12 3.47319E-12 3.65506E-12 3.71442E-12 3.70935E-12 3.67777E-12 3.63984E-12 3.60461E-12 3.57520E-12 3.54764E-12 3.51773E-12 3.48549E-12 3.45089E-12 3.41395E-12 3.37468E-12 3.33309E-12 3.28920E-12 3.24301E-12 3.19457E-12 3.14392E-12 3.09106E-12 3.03606E-12 2.97895E-12 2.91978E-12 2.85862E-12 2.79551E-12 2.73051E-12 2.66370E-12 2.60454E-12 2.54603E-12 2.48580E-12 2.42392E-12 2.36046E-12 2.29551E-12 2.22913E-12 2.16141E-12 2.09243E-12 2.02228E-12 1.95106E-12 1.87886E-12 1.80576E-12 1.73188E-12 1.65730E-12 1.58213E-12 1.50647E-12 1.43040E-12 1.35405E-12 1.27941E-12 1.20552E-12 1.13158E-12 1.06482E-12 1.01509E-12 9.68017E-13 9.24674E-13 8.96954E-13 8.72307E-13 8.54023E-13 8.48478E-13 8.45922E-13 8.42764E-13 8.39459E-13 8.38982E-13 8.44741E-13 8.55990E-13 8.83681E-13 9.55281E-13 1.10925E-12 1.33704E-12 1.52295E-12 1.51613E-12 1.26106E-12 8.44907E-13 4.54188E-13 2.02613E-13 7.92114E-14
8.36871E-14 2.11997E-13 4.60601E-13 8.15381E-13 1.17142E-12 1.43328E-12 1.58758E-12 1.66071E-12 1.68239E-12 1.67669E-12 1.65967E-12 1.64019E-12 1.62233E-12 1.60750E-12 1.59582E-12 1.58528E-12 1.57415E-12 1.56245E-12 1.55015E-12 1.53727E-12 1.52380E-12 1.50973E-12 1.49507E-12 1.47981E-12 1.46395E-12 1.44749E-12 1.43044E-12 1.41279E-12 1.39454E-12 1.37571E-12 1.35628E-12 1.33627E-12 1.31567E-12 1.29450E-12 1.27277E-12 1.25046E-12 1.22761E-12 1.20420E-12 1.18027E-12 1.15580E-12 1.13082E-12 1.10534E-12 1.07936E-12 1.05292E-12 1.02601E-12 1.00195E-12 9.78502E-13 9.54632E-13 9.30349E-13 9.05668E-13 8.80605E-13 8.55175E-13 8.29397E-13 8.03290E-13 7.76874E-13 7.50167E-13 7.23191E-13 6.95967E-13 6.68518E-13 6.40865E-13 6.13031E-13 5.85039E-13 5.56915E-13 5.28682E-13 5.00433E-13 4.73117E-13 4.45755E-13 4.13820E-13 3.84114E-13 3.45355E-13 3.18491E-13 3.24929E-13 3.61710E-13 4.47700E-13 6.15733E-13 7.72106E-13 7.87687E-13 6.27249E-13 3.83284E-13 1.85351E-13 7.57304E-14
@@ -0,0 +1,92 @@
from .html_writer import HTMLWriter
from matplotlib.animation import Animation
import matplotlib.pyplot as plt
import tempfile
import random
import os
__all__ = ['anim_to_html', 'display_animation']
class _NameOnlyTemporaryFile(object):
"""A context-managed temporary file which is not opened.
The file should be accessible by name on any system.
Parameters
----------
suffix : string
The suffix of the temporary file (default = '')
prefix : string
The prefix of the temporary file (default = '_tmp_')
hash_length : string
The length of the random hash. The size of the hash space will
be 16 ** hash_length (default=8)
seed : integer
the seed for the random number generator. If not specified, the
system time will be used as a seed.
absolute : boolean
If true, return an absolute path to a temporary file in the current
working directory.
Example
-------
>>> with _NameOnlyTemporaryFile(seed=0, absolute=False) as f:
... print(f)
...
_tmp_d82c07cd
>>> os.path.exists('_tmp_d82c07cd') # file removed after context
False
"""
def __init__(self, prefix='_tmp_', suffix='', hash_length=8,
seed=None, absolute=True):
rng = random.Random(seed)
self.name = '%s%0*x%s' % (prefix, hash_length,
rng.getrandbits(4 * hash_length), suffix)
if absolute:
self.name = os.path.abspath(self.name)
def __enter__(self):
return self
def __exit__(self, *exc_info):
if os.path.exists(self.name):
os.remove(self.name)
def anim_to_html(anim, fps=None, embed_frames=True, default_mode='loop'):
"""Generate HTML representation of the animation"""
if fps is None and hasattr(anim, '_interval'):
# Convert interval in ms to frames per second
fps = 1000. / anim._interval
plt.close(anim._fig)
if hasattr(anim, "_html_representation"):
return anim._html_representation
else:
# tempfile can't be used here: we need a filename, and this
# fails on windows. Instead, we use a custom filename generator
#with tempfile.NamedTemporaryFile(suffix='.html') as f:
with _NameOnlyTemporaryFile(suffix='.html') as f:
anim.save(f.name, writer=HTMLWriter(fps=fps,
embed_frames=embed_frames,
default_mode=default_mode))
html = open(f.name).read()
anim._html_representation = html
return html
def display_animation(anim, **kwargs):
"""Display the animation with an IPython HTML object"""
from IPython.display import HTML
return HTML(anim_to_html(anim, **kwargs))
# This is the magic that makes animations display automatically in the
# IPython notebook. The _repr_html_ method is a special method recognized
# by IPython.
Animation._repr_html_ = anim_to_html
+1
View File
@@ -0,0 +1 @@
from .html_writer import HTMLWriter
+97
View File
@@ -0,0 +1,97 @@
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
from JSAnimation import IPython_display
def basic_animation(frames=100, interval=30):
"""Plot a basic sine wave with oscillating amplitude"""
fig = plt.figure()
ax = plt.axes(xlim=(0, 10), ylim=(-2, 2))
line, = ax.plot([], [], lw=2)
x = np.linspace(0, 10, 1000)
def init():
line.set_data([], [])
return line,
def animate(i):
y = np.cos(i * 0.02 * np.pi) * np.sin(x - i * 0.02 * np.pi)
line.set_data(x, y)
return line,
return animation.FuncAnimation(fig, animate, init_func=init,
frames=frames, interval=interval)
def lorenz_animation(N_trajectories=20, rseed=1, frames=200, interval=30):
"""Plot a 3D visualization of the dynamics of the Lorenz system"""
from scipy import integrate
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.colors import cnames
def lorentz_deriv(coords, t0, sigma=10., beta=8./3, rho=28.0):
"""Compute the time-derivative of a Lorentz system."""
x, y, z = coords
return [sigma * (y - x), x * (rho - z) - y, x * y - beta * z]
# Choose random starting points, uniformly distributed from -15 to 15
np.random.seed(rseed)
x0 = -15 + 30 * np.random.random((N_trajectories, 3))
# Solve for the trajectories
t = np.linspace(0, 2, 500)
x_t = np.asarray([integrate.odeint(lorentz_deriv, x0i, t)
for x0i in x0])
# Set up figure & 3D axis for animation
fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1], projection='3d')
ax.axis('off')
# choose a different color for each trajectory
colors = plt.cm.jet(np.linspace(0, 1, N_trajectories))
# set up lines and points
lines = sum([ax.plot([], [], [], '-', c=c)
for c in colors], [])
pts = sum([ax.plot([], [], [], 'o', c=c, ms=4)
for c in colors], [])
# prepare the axes limits
ax.set_xlim((-25, 25))
ax.set_ylim((-35, 35))
ax.set_zlim((5, 55))
# set point-of-view: specified by (altitude degrees, azimuth degrees)
ax.view_init(30, 0)
# initialization function: plot the background of each frame
def init():
for line, pt in zip(lines, pts):
line.set_data([], [])
line.set_3d_properties([])
pt.set_data([], [])
pt.set_3d_properties([])
return lines + pts
# animation function: called sequentially
def animate(i):
# we'll step two time-steps per frame. This leads to nice results.
i = (2 * i) % x_t.shape[1]
for line, pt, xi in zip(lines, pts, x_t):
x, y, z = xi[:i + 1].T
line.set_data(x, y)
line.set_3d_properties(z)
pt.set_data(x[-1:], y[-1:])
pt.set_3d_properties(z[-1:])
ax.view_init(30, 0.3 * i)
fig.canvas.draw()
return lines + pts
return animation.FuncAnimation(fig, animate, init_func=init,
frames=frames, interval=interval)
+327
View File
@@ -0,0 +1,327 @@
import os
import sys
import random
import string
import warnings
if sys.version_info < (3, 0):
from cStringIO import StringIO as InMemory
else:
from io import BytesIO as InMemory
from matplotlib.animation import writers, FileMovieWriter
from base64 import b64encode
ICON_DIR = os.path.join(os.path.dirname(__file__), 'icons')
class _Icons(object):
"""This class is a container for base64 representations of the icons"""
icons = ['first', 'prev', 'reverse', 'pause', 'play', 'next', 'last']
def __init__(self, icon_dir=ICON_DIR, extension='png'):
self.icon_dir = icon_dir
self.extension = extension
for icon in self.icons:
setattr(self, icon,
self._load_base64('{0}.{1}'.format(icon, extension)))
def _load_base64(self, filename):
data = open(os.path.join(self.icon_dir, filename), 'rb').read()
return 'data:image/{0};base64,{1}'.format(self.extension,
b64encode(data).decode('ascii'))
JS_INCLUDE = """
<script language="javascript">
/* Define the Animation class */
function Animation(frames, img_id, slider_id, interval, loop_select_id){
this.img_id = img_id;
this.slider_id = slider_id;
this.loop_select_id = loop_select_id;
this.interval = interval;
this.current_frame = 0;
this.direction = 0;
this.timer = null;
this.frames = new Array(frames.length);
for (var i=0; i<frames.length; i++)
{
this.frames[i] = new Image();
this.frames[i].src = frames[i];
}
document.getElementById(this.slider_id).max = this.frames.length - 1;
this.set_frame(this.current_frame);
}
Animation.prototype.get_loop_state = function(){
var button_group = document[this.loop_select_id].state;
for (var i = 0; i < button_group.length; i++) {
var button = button_group[i];
if (button.checked) {
return button.value;
}
}
return undefined;
}
Animation.prototype.set_frame = function(frame){
this.current_frame = frame;
document.getElementById(this.img_id).src = this.frames[this.current_frame].src;
document.getElementById(this.slider_id).value = this.current_frame;
}
Animation.prototype.next_frame = function()
{
this.set_frame(Math.min(this.frames.length - 1, this.current_frame + 1));
}
Animation.prototype.previous_frame = function()
{
this.set_frame(Math.max(0, this.current_frame - 1));
}
Animation.prototype.first_frame = function()
{
this.set_frame(0);
}
Animation.prototype.last_frame = function()
{
this.set_frame(this.frames.length - 1);
}
Animation.prototype.slower = function()
{
this.interval /= 0.7;
if(this.direction > 0){this.play_animation();}
else if(this.direction < 0){this.reverse_animation();}
}
Animation.prototype.faster = function()
{
this.interval *= 0.7;
if(this.direction > 0){this.play_animation();}
else if(this.direction < 0){this.reverse_animation();}
}
Animation.prototype.anim_step_forward = function()
{
this.current_frame += 1;
if(this.current_frame < this.frames.length){
this.set_frame(this.current_frame);
}else{
var loop_state = this.get_loop_state();
if(loop_state == "loop"){
this.first_frame();
}else if(loop_state == "reflect"){
this.last_frame();
this.reverse_animation();
}else{
this.pause_animation();
this.last_frame();
}
}
}
Animation.prototype.anim_step_reverse = function()
{
this.current_frame -= 1;
if(this.current_frame >= 0){
this.set_frame(this.current_frame);
}else{
var loop_state = this.get_loop_state();
if(loop_state == "loop"){
this.last_frame();
}else if(loop_state == "reflect"){
this.first_frame();
this.play_animation();
}else{
this.pause_animation();
this.first_frame();
}
}
}
Animation.prototype.pause_animation = function()
{
this.direction = 0;
if (this.timer){
clearInterval(this.timer);
this.timer = null;
}
}
Animation.prototype.play_animation = function()
{
this.pause_animation();
this.direction = 1;
var t = this;
if (!this.timer) this.timer = setInterval(function(){t.anim_step_forward();}, this.interval);
}
Animation.prototype.reverse_animation = function()
{
this.pause_animation();
this.direction = -1;
var t = this;
if (!this.timer) this.timer = setInterval(function(){t.anim_step_reverse();}, this.interval);
}
</script>
"""
DISPLAY_TEMPLATE = """
<div class="animation" align="center">
<img id="_anim_img{id}">
<br>
<input id="_anim_slider{id}" type="range" style="width:350px" name="points" min="0" max="1" step="1" value="0" onchange="anim{id}.set_frame(parseInt(this.value));"></input>
<br>
<button onclick="anim{id}.slower()">&#8211;</button>
<button onclick="anim{id}.first_frame()"><img class="anim_icon" src="{icons.first}"></button>
<button onclick="anim{id}.previous_frame()"><img class="anim_icon" src="{icons.prev}"></button>
<button onclick="anim{id}.reverse_animation()"><img class="anim_icon" src="{icons.reverse}"></button>
<button onclick="anim{id}.pause_animation()"><img class="anim_icon" src="{icons.pause}"></button>
<button onclick="anim{id}.play_animation()"><img class="anim_icon" src="{icons.play}"></button>
<button onclick="anim{id}.next_frame()"><img class="anim_icon" src="{icons.next}"></button>
<button onclick="anim{id}.last_frame()"><img class="anim_icon" src="{icons.last}"></button>
<button onclick="anim{id}.faster()">+</button>
<form action="#n" name="_anim_loop_select{id}" class="anim_control">
<input type="radio" name="state" value="once" {once_checked}> Once </input>
<input type="radio" name="state" value="loop" {loop_checked}> Loop </input>
<input type="radio" name="state" value="reflect" {reflect_checked}> Reflect </input>
</form>
</div>
<script language="javascript">
/* Instantiate the Animation class. */
/* The IDs given should match those used in the template above. */
(function() {{
var img_id = "_anim_img{id}";
var slider_id = "_anim_slider{id}";
var loop_select_id = "_anim_loop_select{id}";
var frames = new Array({Nframes});
{fill_frames}
/* set a timeout to make sure all the above elements are created before
the object is initialized. */
setTimeout(function() {{
anim{id} = new Animation(frames, img_id, slider_id, {interval}, loop_select_id);
}}, 0);
}})()
</script>
"""
INCLUDED_FRAMES = """
for (var i=0; i<{Nframes}; i++){{
frames[i] = "{frame_dir}/frame" + ("0000000" + i).slice(-7) + ".{frame_format}";
}}
"""
def _included_frames(frame_list, frame_format):
"""frame_list should be a list of filenames"""
return INCLUDED_FRAMES.format(Nframes=len(frame_list),
frame_dir=os.path.dirname(frame_list[0]),
frame_format=frame_format)
def _embedded_frames(frame_list, frame_format):
"""frame_list should be a list of base64-encoded png files"""
template = ' frames[{0}] = "data:image/{1};base64,{2}"\n'
embedded = "\n"
for i, frame_data in enumerate(frame_list):
embedded += template.format(i, frame_format,
frame_data.replace('\n', '\\\n'))
return embedded
@writers.register('html')
class HTMLWriter(FileMovieWriter):
# we start the animation id count at a random number: this way, if two
# animations are meant to be included on one HTML page, there is a
# very small chance of conflict.
rng = random.Random()
exec_key = 'animation.ffmpeg_path'
args_key = 'animation.ffmpeg_args'
supported_formats = ['png', 'jpeg', 'tiff', 'svg']
@classmethod
def new_id(cls):
#return '%16x' % cls.rng.getrandbits(64)
return ''.join(cls.rng.choice(string.ascii_uppercase)
for x in range(16))
def __init__(self, fps=30, codec=None, bitrate=None, extra_args=None,
metadata=None, embed_frames=False, default_mode='loop'):
self.embed_frames = embed_frames
self.default_mode = default_mode.lower()
if self.default_mode not in ['loop', 'once', 'reflect']:
self.default_mode = 'loop'
warnings.warn("unrecognized default_mode: using 'loop'")
self._saved_frames = list()
super(HTMLWriter, self).__init__(fps, codec, bitrate,
extra_args, metadata)
def setup(self, fig, outfile, dpi, frame_dir=None):
if os.path.splitext(outfile)[-1] not in ['.html', '.htm']:
raise ValueError("outfile must be *.htm or *.html")
if not self.embed_frames:
if frame_dir is None:
frame_dir = outfile.rstrip('.html') + '_frames'
if not os.path.exists(frame_dir):
os.makedirs(frame_dir)
frame_prefix = os.path.join(frame_dir, 'frame')
else:
frame_prefix = None
super(HTMLWriter, self).setup(fig, outfile, dpi,
frame_prefix, clear_temp=False)
def grab_frame(self, **savefig_kwargs):
if self.embed_frames:
suffix = '.' + self.frame_format
f = InMemory()
self.fig.savefig(f, format=self.frame_format,
dpi=self.dpi, **savefig_kwargs)
f.seek(0)
self._saved_frames.append(b64encode(f.read()).decode('ascii'))
else:
return super(HTMLWriter, self).grab_frame(**savefig_kwargs)
def _run(self):
# make a ducktyped subprocess standin
# this is called by the MovieWriter base class, but not used here.
class ProcessStandin(object):
returncode = 0
def communicate(self):
return ('', '')
self._proc = ProcessStandin()
# save the frames to an html file
if self.embed_frames:
fill_frames = _embedded_frames(self._saved_frames,
self.frame_format)
else:
# temp names is filled by FileMovieWriter
fill_frames = _included_frames(self._temp_names,
self.frame_format)
mode_dict = dict(once_checked='',
loop_checked='',
reflect_checked='')
mode_dict[self.default_mode + '_checked'] = 'checked'
interval = int(1000. / self.fps)
with open(self.outfile, 'w') as of:
of.write(JS_INCLUDE)
of.write(DISPLAY_TEMPLATE.format(id=self.new_id(),
Nframes=len(self._temp_names),
fill_frames=fill_frames,
interval=interval,
icons=_Icons(),
**mode_dict))
Binary file not shown.

After

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 B

+5
View File
@@ -0,0 +1,5 @@
53 53 30
422045.00 545169.00 1584.88
300.00 250.00 193.00 114.00 88.00 67.00 52.00 40.00 28.00 35*20.00 28.00 40.00 52.00 67.00 88.00 114.00 193.00 250.00 300.00
300.00 250.00 193.00 114.00 88.00 67.00 52.00 40.00 28.00 35*20.00 28.00 40.00 52.00 67.00 88.00 114.00 193.00 250.00 300.00
19*20.00 28.00 40.00 52.00 67.00 52.00 67.00 88.00 114.00 193.00 250.00 300.00
+5
View File
@@ -0,0 +1,5 @@
104 21 45
-1565.00 10725 0
350 300 250 200 175 150 103.00 86.00 72.00 60.00 50.00 40.00 35.00 30.00 24.00 74*20.00 24.00 30.00 35.00 40.00 50.00 60.00 72.00 86.00 103.00 150 175 200 250 300 350
300 250 200 175 150 103.00 86.00 72.00 5*60 72.00 86.00 103.00 150 175 200 250 300
30*20 24.00 30.00 35.00 40.00 50.00 60.00 72.00 86.00 103.00 150 175 200 250 300 350
File diff suppressed because it is too large. Load diff
+184
View File
@@ -0,0 +1,184 @@
SIMPEG FORWARD
0.000000e+00 4.000000e+01 8.000000e+01 1.200000e+02 -2.494158e-01 1.000000e+00
0.000000e+00 4.000000e+01 1.200000e+02 1.600000e+02 -9.336097e-02 1.000000e+00
0.000000e+00 4.000000e+01 1.600000e+02 2.000000e+02 -1.922888e-02 1.000000e+00
0.000000e+00 4.000000e+01 2.000000e+02 2.400000e+02 -1.744448e-03 1.000000e+00
0.000000e+00 4.000000e+01 2.400000e+02 2.800000e+02 -7.248272e-04 1.000000e+00
0.000000e+00 4.000000e+01 2.800000e+02 3.200000e+02 -1.261533e-03 1.000000e+00
0.000000e+00 4.000000e+01 3.200000e+02 3.600000e+02 -1.264605e-03 1.000000e+00
4.000000e+01 8.000000e+01 1.200000e+02 1.600000e+02 -2.789362e-01 1.000000e+00
4.000000e+01 8.000000e+01 1.600000e+02 2.000000e+02 -4.996821e-02 1.000000e+00
4.000000e+01 8.000000e+01 2.000000e+02 2.400000e+02 -3.773255e-03 1.000000e+00
4.000000e+01 8.000000e+01 2.400000e+02 2.800000e+02 -1.389521e-03 1.000000e+00
4.000000e+01 8.000000e+01 2.800000e+02 3.200000e+02 -1.919248e-03 1.000000e+00
4.000000e+01 8.000000e+01 3.200000e+02 3.600000e+02 -1.796881e-03 1.000000e+00
4.000000e+01 8.000000e+01 3.600000e+02 4.000000e+02 -1.461358e-03 1.000000e+00
8.000000e+01 1.200000e+02 1.600000e+02 2.000000e+02 -1.664943e-01 1.000000e+00
8.000000e+01 1.200000e+02 2.000000e+02 2.400000e+02 -9.795789e-03 1.000000e+00
8.000000e+01 1.200000e+02 2.400000e+02 2.800000e+02 -3.101796e-03 1.000000e+00
8.000000e+01 1.200000e+02 2.800000e+02 3.200000e+02 -3.228048e-03 1.000000e+00
8.000000e+01 1.200000e+02 3.200000e+02 3.600000e+02 -2.735533e-03 1.000000e+00
8.000000e+01 1.200000e+02 3.600000e+02 4.000000e+02 -2.085615e-03 1.000000e+00
8.000000e+01 1.200000e+02 4.000000e+02 4.400000e+02 -6.052930e-04 1.000000e+00
1.200000e+02 1.600000e+02 2.000000e+02 2.400000e+02 -3.238350e-02 1.000000e+00
1.200000e+02 1.600000e+02 2.400000e+02 2.800000e+02 -8.425264e-03 1.000000e+00
1.200000e+02 1.600000e+02 2.800000e+02 3.200000e+02 -6.336856e-03 1.000000e+00
1.200000e+02 1.600000e+02 3.200000e+02 3.600000e+02 -4.668494e-03 1.000000e+00
1.200000e+02 1.600000e+02 3.600000e+02 4.000000e+02 -3.233326e-03 1.000000e+00
1.200000e+02 1.600000e+02 4.000000e+02 4.400000e+02 -9.075322e-04 1.000000e+00
1.200000e+02 1.600000e+02 4.400000e+02 4.800000e+02 -1.757728e-04 1.000000e+00
1.600000e+02 2.000000e+02 2.400000e+02 2.800000e+02 -1.289155e-02 1.000000e+00
1.600000e+02 2.000000e+02 2.800000e+02 3.200000e+02 -6.345002e-03 1.000000e+00
1.600000e+02 2.000000e+02 3.200000e+02 3.600000e+02 -3.770494e-03 1.000000e+00
1.600000e+02 2.000000e+02 3.600000e+02 4.000000e+02 -2.224091e-03 1.000000e+00
1.600000e+02 2.000000e+02 4.000000e+02 4.400000e+02 -5.890347e-04 1.000000e+00
1.600000e+02 2.000000e+02 4.400000e+02 4.800000e+02 -1.025994e-04 1.000000e+00
1.600000e+02 2.000000e+02 4.800000e+02 5.200000e+02 -6.820885e-05 1.000000e+00
2.000000e+02 2.400000e+02 2.800000e+02 3.200000e+02 -2.170399e-02 1.000000e+00
2.000000e+02 2.400000e+02 3.200000e+02 3.600000e+02 -9.936257e-03 1.000000e+00
2.000000e+02 2.400000e+02 3.600000e+02 4.000000e+02 -4.735824e-03 1.000000e+00
2.000000e+02 2.400000e+02 4.000000e+02 4.400000e+02 -1.152634e-03 1.000000e+00
2.000000e+02 2.400000e+02 4.400000e+02 4.800000e+02 -1.730161e-04 1.000000e+00
2.000000e+02 2.400000e+02 4.800000e+02 5.200000e+02 -1.042079e-04 1.000000e+00
2.000000e+02 2.400000e+02 5.200000e+02 5.600000e+02 -6.758392e-05 1.000000e+00
2.400000e+02 2.800000e+02 3.200000e+02 3.600000e+02 -3.302979e-02 1.000000e+00
2.400000e+02 2.800000e+02 3.600000e+02 4.000000e+02 -1.249277e-02 1.000000e+00
2.400000e+02 2.800000e+02 4.000000e+02 4.400000e+02 -2.783293e-03 1.000000e+00
2.400000e+02 2.800000e+02 4.400000e+02 4.800000e+02 -3.688339e-04 1.000000e+00
2.400000e+02 2.800000e+02 4.800000e+02 5.200000e+02 -2.060223e-04 1.000000e+00
2.400000e+02 2.800000e+02 5.200000e+02 5.600000e+02 -1.267779e-04 1.000000e+00
2.400000e+02 2.800000e+02 5.600000e+02 6.000000e+02 -8.340598e-05 1.000000e+00
2.800000e+02 3.200000e+02 3.600000e+02 4.000000e+02 -2.047223e-01 1.000000e+00
2.800000e+02 3.200000e+02 4.000000e+02 4.400000e+02 -3.987007e-02 1.000000e+00
2.800000e+02 3.200000e+02 4.400000e+02 4.800000e+02 -4.481922e-03 1.000000e+00
2.800000e+02 3.200000e+02 4.800000e+02 5.200000e+02 -2.266031e-03 1.000000e+00
2.800000e+02 3.200000e+02 5.200000e+02 5.600000e+02 -1.301497e-03 1.000000e+00
2.800000e+02 3.200000e+02 5.600000e+02 6.000000e+02 -8.170326e-04 1.000000e+00
2.800000e+02 3.200000e+02 6.000000e+02 6.400000e+02 -5.439737e-04 1.000000e+00
3.200000e+02 3.600000e+02 4.000000e+02 4.400000e+02 -1.152493e-01 1.000000e+00
3.200000e+02 3.600000e+02 4.400000e+02 4.800000e+02 -9.926631e-03 1.000000e+00
3.200000e+02 3.600000e+02 4.800000e+02 5.200000e+02 -4.304219e-03 1.000000e+00
3.200000e+02 3.600000e+02 5.200000e+02 5.600000e+02 -2.228738e-03 1.000000e+00
3.200000e+02 3.600000e+02 5.600000e+02 6.000000e+02 -1.306798e-03 1.000000e+00
3.200000e+02 3.600000e+02 6.000000e+02 6.400000e+02 -8.324311e-04 1.000000e+00
3.200000e+02 3.600000e+02 6.400000e+02 6.800000e+02 -5.592578e-04 1.000000e+00
3.600000e+02 4.000000e+02 4.400000e+02 4.800000e+02 -2.809671e-02 1.000000e+00
3.600000e+02 4.000000e+02 4.800000e+02 5.200000e+02 -9.291512e-03 1.000000e+00
3.600000e+02 4.000000e+02 5.200000e+02 5.600000e+02 -3.963393e-03 1.000000e+00
3.600000e+02 4.000000e+02 5.600000e+02 6.000000e+02 -2.025926e-03 1.000000e+00
3.600000e+02 4.000000e+02 6.000000e+02 6.400000e+02 -1.175341e-03 1.000000e+00
3.600000e+02 4.000000e+02 6.400000e+02 6.800000e+02 -7.419826e-04 1.000000e+00
3.600000e+02 4.000000e+02 6.800000e+02 7.200000e+02 -4.954081e-04 1.000000e+00
4.000000e+02 4.400000e+02 4.800000e+02 5.200000e+02 -1.270838e-02 1.000000e+00
4.000000e+02 4.400000e+02 5.200000e+02 5.600000e+02 -3.956873e-03 1.000000e+00
4.000000e+02 4.400000e+02 5.600000e+02 6.000000e+02 -1.594123e-03 1.000000e+00
4.000000e+02 4.400000e+02 6.000000e+02 6.400000e+02 -7.741349e-04 1.000000e+00
4.000000e+02 4.400000e+02 6.400000e+02 6.800000e+02 -4.304169e-04 1.000000e+00
4.000000e+02 4.400000e+02 6.800000e+02 7.200000e+02 -2.631236e-04 1.000000e+00
4.000000e+02 4.400000e+02 7.200000e+02 7.600000e+02 -1.720582e-04 1.000000e+00
4.400000e+02 4.800000e+02 5.200000e+02 5.600000e+02 -1.390642e-02 1.000000e+00
4.400000e+02 4.800000e+02 5.600000e+02 6.000000e+02 -4.242499e-03 1.000000e+00
4.400000e+02 4.800000e+02 6.000000e+02 6.400000e+02 -1.641016e-03 1.000000e+00
4.400000e+02 4.800000e+02 6.400000e+02 6.800000e+02 -7.561219e-04 1.000000e+00
4.400000e+02 4.800000e+02 6.800000e+02 7.200000e+02 -3.981884e-04 1.000000e+00
4.400000e+02 4.800000e+02 7.200000e+02 7.600000e+02 -2.320826e-04 1.000000e+00
4.400000e+02 4.800000e+02 7.600000e+02 8.000000e+02 -1.463728e-04 1.000000e+00
4.800000e+02 5.200000e+02 5.600000e+02 6.000000e+02 -1.466186e-02 1.000000e+00
4.800000e+02 5.200000e+02 6.000000e+02 6.400000e+02 -4.600147e-03 1.000000e+00
4.800000e+02 5.200000e+02 6.400000e+02 6.800000e+02 -1.831775e-03 1.000000e+00
4.800000e+02 5.200000e+02 6.800000e+02 7.200000e+02 -8.678781e-04 1.000000e+00
4.800000e+02 5.200000e+02 7.200000e+02 7.600000e+02 -4.690671e-04 1.000000e+00
4.800000e+02 5.200000e+02 7.600000e+02 8.000000e+02 -2.805612e-04 1.000000e+00
4.800000e+02 5.200000e+02 8.000000e+02 8.400000e+02 -1.820420e-04 1.000000e+00
5.200000e+02 5.600000e+02 6.000000e+02 6.400000e+02 -1.485498e-02 1.000000e+00
5.200000e+02 5.600000e+02 6.400000e+02 6.800000e+02 -4.714459e-03 1.000000e+00
5.200000e+02 5.600000e+02 6.800000e+02 7.200000e+02 -1.905006e-03 1.000000e+00
5.200000e+02 5.600000e+02 7.200000e+02 7.600000e+02 -9.184995e-04 1.000000e+00
5.200000e+02 5.600000e+02 7.600000e+02 8.000000e+02 -5.070878e-04 1.000000e+00
5.200000e+02 5.600000e+02 8.000000e+02 8.400000e+02 -3.115214e-04 1.000000e+00
5.200000e+02 5.600000e+02 8.400000e+02 8.800000e+02 -2.083544e-04 1.000000e+00
5.600000e+02 6.000000e+02 6.400000e+02 6.800000e+02 -1.493123e-02 1.000000e+00
5.600000e+02 6.000000e+02 6.800000e+02 7.200000e+02 -4.768154e-03 1.000000e+00
5.600000e+02 6.000000e+02 7.200000e+02 7.600000e+02 -1.946039e-03 1.000000e+00
5.600000e+02 6.000000e+02 7.600000e+02 8.000000e+02 -9.529347e-04 1.000000e+00
5.600000e+02 6.000000e+02 8.000000e+02 8.400000e+02 -5.384864e-04 1.000000e+00
5.600000e+02 6.000000e+02 8.400000e+02 8.800000e+02 -3.409293e-04 1.000000e+00
5.600000e+02 6.000000e+02 8.800000e+02 9.200000e+02 -2.304321e-04 1.000000e+00
6.000000e+02 6.400000e+02 6.800000e+02 7.200000e+02 -1.497535e-02 1.000000e+00
6.000000e+02 6.400000e+02 7.200000e+02 7.600000e+02 -4.805949e-03 1.000000e+00
6.000000e+02 6.400000e+02 7.600000e+02 8.000000e+02 -1.981742e-03 1.000000e+00
6.000000e+02 6.400000e+02 8.000000e+02 8.400000e+02 -9.892935e-04 1.000000e+00
6.000000e+02 6.400000e+02 8.400000e+02 8.800000e+02 -5.758613e-04 1.000000e+00
6.000000e+02 6.400000e+02 8.800000e+02 9.200000e+02 -3.706912e-04 1.000000e+00
6.000000e+02 6.400000e+02 9.200000e+02 9.600000e+02 -1.597023e-04 1.000000e+00
6.400000e+02 6.800000e+02 7.200000e+02 7.600000e+02 -1.501404e-02 1.000000e+00
6.400000e+02 6.800000e+02 7.600000e+02 8.000000e+02 -4.846967e-03 1.000000e+00
6.400000e+02 6.800000e+02 8.000000e+02 8.400000e+02 -2.028060e-03 1.000000e+00
6.400000e+02 6.800000e+02 8.400000e+02 8.800000e+02 -1.041523e-03 1.000000e+00
6.400000e+02 6.800000e+02 8.800000e+02 9.200000e+02 -6.214215e-04 1.000000e+00
6.400000e+02 6.800000e+02 9.200000e+02 9.600000e+02 -2.599819e-04 1.000000e+00
6.400000e+02 6.800000e+02 9.600000e+02 1.000000e+03 -3.252207e-05 1.000000e+00
6.800000e+02 7.200000e+02 7.600000e+02 8.000000e+02 -1.506514e-02 1.000000e+00
6.800000e+02 7.200000e+02 8.000000e+02 8.400000e+02 -4.910756e-03 1.000000e+00
6.800000e+02 7.200000e+02 8.400000e+02 8.800000e+02 -2.107601e-03 1.000000e+00
6.800000e+02 7.200000e+02 8.800000e+02 9.200000e+02 -1.120247e-03 1.000000e+00
6.800000e+02 7.200000e+02 9.200000e+02 9.600000e+02 -4.475158e-04 1.000000e+00
6.800000e+02 7.200000e+02 9.600000e+02 1.000000e+03 -5.121033e-05 1.000000e+00
6.800000e+02 7.200000e+02 1.000000e+03 1.040000e+03 -8.721891e-05 1.000000e+00
7.200000e+02 7.600000e+02 8.000000e+02 8.400000e+02 -1.516038e-02 1.000000e+00
7.200000e+02 7.600000e+02 8.400000e+02 8.800000e+02 -5.043973e-03 1.000000e+00
7.200000e+02 7.600000e+02 8.800000e+02 9.200000e+02 -2.261909e-03 1.000000e+00
7.200000e+02 7.600000e+02 9.200000e+02 9.600000e+02 -8.413440e-04 1.000000e+00
7.200000e+02 7.600000e+02 9.600000e+02 1.000000e+03 -8.509786e-05 1.000000e+00
7.200000e+02 7.600000e+02 1.000000e+03 1.040000e+03 -1.347111e-04 1.000000e+00
7.200000e+02 7.600000e+02 1.040000e+03 1.080000e+03 -8.755105e-05 1.000000e+00
7.600000e+02 8.000000e+02 8.400000e+02 8.800000e+02 -1.540790e-02 1.000000e+00
7.600000e+02 8.000000e+02 8.800000e+02 9.200000e+02 -5.387117e-03 1.000000e+00
7.600000e+02 8.000000e+02 9.200000e+02 9.600000e+02 -1.798355e-03 1.000000e+00
7.600000e+02 8.000000e+02 9.600000e+02 1.000000e+03 -1.542275e-04 1.000000e+00
7.600000e+02 8.000000e+02 1.000000e+03 1.040000e+03 -2.194108e-04 1.000000e+00
7.600000e+02 8.000000e+02 1.040000e+03 1.080000e+03 -1.344410e-04 1.000000e+00
7.600000e+02 8.000000e+02 1.080000e+03 1.120000e+03 -8.533434e-05 1.000000e+00
8.000000e+02 8.400000e+02 8.800000e+02 9.200000e+02 -1.626963e-02 1.000000e+00
8.000000e+02 8.400000e+02 9.200000e+02 9.600000e+02 -4.587248e-03 1.000000e+00
8.000000e+02 8.400000e+02 9.600000e+02 1.000000e+03 -3.179499e-04 1.000000e+00
8.000000e+02 8.400000e+02 1.000000e+03 1.040000e+03 -3.886470e-04 1.000000e+00
8.000000e+02 8.400000e+02 1.040000e+03 1.080000e+03 -2.186268e-04 1.000000e+00
8.000000e+02 8.400000e+02 1.080000e+03 1.120000e+03 -1.306961e-04 1.000000e+00
8.000000e+02 8.400000e+02 1.120000e+03 1.160000e+03 -8.010081e-05 1.000000e+00
8.400000e+02 8.800000e+02 9.200000e+02 9.600000e+02 -1.497272e-02 1.000000e+00
8.400000e+02 8.800000e+02 9.600000e+02 1.000000e+03 -7.840445e-04 1.000000e+00
8.400000e+02 8.800000e+02 1.000000e+03 1.040000e+03 -7.757766e-04 1.000000e+00
8.400000e+02 8.800000e+02 1.040000e+03 1.080000e+03 -3.866597e-04 1.000000e+00
8.400000e+02 8.800000e+02 1.080000e+03 1.120000e+03 -2.122158e-04 1.000000e+00
8.400000e+02 8.800000e+02 1.120000e+03 1.160000e+03 -1.226319e-04 1.000000e+00
8.400000e+02 8.800000e+02 1.160000e+03 1.200000e+03 -6.986067e-05 1.000000e+00
8.800000e+02 9.200000e+02 9.600000e+02 1.000000e+03 -2.480957e-03 1.000000e+00
8.800000e+02 9.200000e+02 1.000000e+03 1.040000e+03 -1.791726e-03 1.000000e+00
8.800000e+02 9.200000e+02 1.040000e+03 1.080000e+03 -7.517144e-04 1.000000e+00
8.800000e+02 9.200000e+02 1.080000e+03 1.120000e+03 -3.656464e-04 1.000000e+00
8.800000e+02 9.200000e+02 1.120000e+03 1.160000e+03 -1.944402e-04 1.000000e+00
8.800000e+02 9.200000e+02 1.160000e+03 1.200000e+03 -1.047249e-04 1.000000e+00
8.800000e+02 9.200000e+02 1.200000e+03 1.240000e+03 -4.850255e-05 1.000000e+00
9.200000e+02 9.600000e+02 1.000000e+03 1.040000e+03 -4.282110e-03 1.000000e+00
9.200000e+02 9.600000e+02 1.040000e+03 1.080000e+03 -1.346294e-03 1.000000e+00
9.200000e+02 9.600000e+02 1.080000e+03 1.120000e+03 -5.384709e-04 1.000000e+00
9.200000e+02 9.600000e+02 1.120000e+03 1.160000e+03 -2.501502e-04 1.000000e+00
9.200000e+02 9.600000e+02 1.160000e+03 1.200000e+03 -1.230400e-04 1.000000e+00
9.200000e+02 9.600000e+02 1.200000e+03 1.240000e+03 -5.334950e-05 1.000000e+00
9.600000e+02 1.000000e+03 1.040000e+03 1.080000e+03 -1.056721e-02 1.000000e+00
9.600000e+02 1.000000e+03 1.080000e+03 1.120000e+03 -3.182173e-03 1.000000e+00
9.600000e+02 1.000000e+03 1.120000e+03 1.160000e+03 -1.203622e-03 1.000000e+00
9.600000e+02 1.000000e+03 1.160000e+03 1.200000e+03 -5.114564e-04 1.000000e+00
9.600000e+02 1.000000e+03 1.200000e+03 1.240000e+03 -1.995939e-04 1.000000e+00
1.000000e+03 1.040000e+03 1.080000e+03 1.120000e+03 -1.696265e-02 1.000000e+00
1.000000e+03 1.040000e+03 1.120000e+03 1.160000e+03 -5.524944e-03 1.000000e+00
1.000000e+03 1.040000e+03 1.160000e+03 1.200000e+03 -2.147814e-03 1.000000e+00
1.000000e+03 1.040000e+03 1.200000e+03 1.240000e+03 -7.941719e-04 1.000000e+00
1.040000e+03 1.080000e+03 1.120000e+03 1.160000e+03 -1.519532e-02 1.000000e+00
1.040000e+03 1.080000e+03 1.160000e+03 1.200000e+03 -4.683239e-03 1.000000e+00
1.040000e+03 1.080000e+03 1.200000e+03 1.240000e+03 -1.502570e-03 1.000000e+00
1.080000e+03 1.120000e+03 1.160000e+03 1.200000e+03 -1.454762e-02 1.000000e+00
1.080000e+03 1.120000e+03 1.200000e+03 1.240000e+03 -3.802954e-03 1.000000e+00
1.120000e+03 1.160000e+03 1.200000e+03 1.240000e+03 -1.268341e-02 1.000000e+00
+183
View File
@@ -0,0 +1,183 @@
SIMPEG FORWARD
5.100000e+02 5.500000e+02 5.900000e+02 6.300000e+02 -2.714530e-01 1.000000e-02
5.100000e+02 5.500000e+02 6.300000e+02 6.700000e+02 -9.078871e-02 1.000000e-02
5.100000e+02 5.500000e+02 6.700000e+02 7.100000e+02 -3.904038e-03 1.000000e-02
5.100000e+02 5.500000e+02 7.100000e+02 7.500000e+02 -1.618037e-03 1.000000e-02
5.100000e+02 5.500000e+02 7.500000e+02 7.900000e+02 -9.804391e-04 1.000000e-02
5.100000e+02 5.500000e+02 7.900000e+02 8.300000e+02 -1.727176e-03 1.000000e-02
5.100000e+02 5.500000e+02 8.300000e+02 8.700000e+02 -1.355919e-03 1.000000e-02
5.500000e+02 5.900000e+02 6.300000e+02 6.700000e+02 -2.921238e-01 1.000000e-02
5.500000e+02 5.900000e+02 6.700000e+02 7.100000e+02 -1.009492e-02 1.000000e-02
5.500000e+02 5.900000e+02 7.100000e+02 7.500000e+02 -3.548991e-03 1.000000e-02
5.500000e+02 5.900000e+02 7.500000e+02 7.900000e+02 -1.723986e-03 1.000000e-02
5.500000e+02 5.900000e+02 7.900000e+02 8.300000e+02 -2.630518e-03 1.000000e-02
5.500000e+02 5.900000e+02 8.300000e+02 8.700000e+02 -1.925165e-03 1.000000e-02
5.500000e+02 5.900000e+02 8.700000e+02 9.100000e+02 -1.284180e-03 1.000000e-02
5.900000e+02 6.300000e+02 6.700000e+02 7.100000e+02 -3.457665e-02 1.000000e-02
5.900000e+02 6.300000e+02 7.100000e+02 7.500000e+02 -9.501139e-03 1.000000e-02
5.900000e+02 6.300000e+02 7.500000e+02 7.900000e+02 -3.561828e-03 1.000000e-02
5.900000e+02 6.300000e+02 7.900000e+02 8.300000e+02 -4.451255e-03 1.000000e-02
5.900000e+02 6.300000e+02 8.300000e+02 8.700000e+02 -2.932679e-03 1.000000e-02
5.900000e+02 6.300000e+02 8.700000e+02 9.100000e+02 -1.862391e-03 1.000000e-02
5.900000e+02 6.300000e+02 9.100000e+02 9.500000e+02 -1.762776e-04 1.000000e-02
6.300000e+02 6.700000e+02 7.100000e+02 7.500000e+02 -2.311407e-02 1.000000e-02
6.300000e+02 6.700000e+02 7.500000e+02 7.900000e+02 -6.497353e-03 1.000000e-02
6.300000e+02 6.700000e+02 7.900000e+02 8.300000e+02 -6.444456e-03 1.000000e-02
6.300000e+02 6.700000e+02 8.300000e+02 8.700000e+02 -3.717098e-03 1.000000e-02
6.300000e+02 6.700000e+02 8.700000e+02 9.100000e+02 -2.211079e-03 1.000000e-02
6.300000e+02 6.700000e+02 9.100000e+02 9.500000e+02 -1.980605e-04 1.000000e-02
6.300000e+02 6.700000e+02 9.500000e+02 9.900000e+02 -1.344407e-04 1.000000e-02
6.700000e+02 7.100000e+02 7.500000e+02 7.900000e+02 -1.392702e-02 1.000000e-02
6.700000e+02 7.100000e+02 7.900000e+02 8.300000e+02 -8.492591e-03 1.000000e-02
6.700000e+02 7.100000e+02 8.300000e+02 8.700000e+02 -3.590565e-03 1.000000e-02
6.700000e+02 7.100000e+02 8.700000e+02 9.100000e+02 -1.793323e-03 1.000000e-02
6.700000e+02 7.100000e+02 9.100000e+02 9.500000e+02 -1.392059e-04 1.000000e-02
6.700000e+02 7.100000e+02 9.500000e+02 9.900000e+02 -8.266499e-05 1.000000e-02
6.700000e+02 7.100000e+02 9.900000e+02 1.030000e+03 -5.310599e-05 1.000000e-02
7.100000e+02 7.500000e+02 7.900000e+02 8.300000e+02 -3.379942e-02 1.000000e-02
7.100000e+02 7.500000e+02 8.300000e+02 8.700000e+02 -1.112369e-02 1.000000e-02
7.100000e+02 7.500000e+02 8.700000e+02 9.100000e+02 -4.897810e-03 1.000000e-02
7.100000e+02 7.500000e+02 9.100000e+02 9.500000e+02 -3.495618e-04 1.000000e-02
7.100000e+02 7.500000e+02 9.500000e+02 9.900000e+02 -1.934129e-04 1.000000e-02
7.100000e+02 7.500000e+02 9.900000e+02 1.030000e+03 -1.181884e-04 1.000000e-02
7.100000e+02 7.500000e+02 1.030000e+03 1.070000e+03 -7.744231e-05 1.000000e-02
7.500000e+02 7.900000e+02 8.300000e+02 8.700000e+02 -1.245106e-01 1.000000e-02
7.500000e+02 7.900000e+02 8.700000e+02 9.100000e+02 -4.108718e-02 1.000000e-02
7.500000e+02 7.900000e+02 9.100000e+02 9.500000e+02 -2.485836e-03 1.000000e-02
7.500000e+02 7.900000e+02 9.500000e+02 9.900000e+02 -1.202480e-03 1.000000e-02
7.500000e+02 7.900000e+02 9.900000e+02 1.030000e+03 -6.693235e-04 1.000000e-02
7.500000e+02 7.900000e+02 1.030000e+03 1.070000e+03 -4.113179e-04 1.000000e-02
7.500000e+02 7.900000e+02 1.070000e+03 1.110000e+03 -2.702122e-04 1.000000e-02
7.900000e+02 8.300000e+02 8.700000e+02 9.100000e+02 -2.137886e-01 1.000000e-02
7.900000e+02 8.300000e+02 9.100000e+02 9.500000e+02 -1.091859e-02 1.000000e-02
7.900000e+02 8.300000e+02 9.500000e+02 9.900000e+02 -4.724633e-03 1.000000e-02
7.900000e+02 8.300000e+02 9.900000e+02 1.030000e+03 -2.449333e-03 1.000000e-02
7.900000e+02 8.300000e+02 1.030000e+03 1.070000e+03 -1.437846e-03 1.000000e-02
7.900000e+02 8.300000e+02 1.070000e+03 1.110000e+03 -9.172139e-04 1.000000e-02
7.900000e+02 8.300000e+02 1.110000e+03 1.150000e+03 -6.169701e-04 1.000000e-02
8.300000e+02 8.700000e+02 9.100000e+02 9.500000e+02 -3.008740e-02 1.000000e-02
8.300000e+02 8.700000e+02 9.500000e+02 9.900000e+02 -9.582880e-03 1.000000e-02
8.300000e+02 8.700000e+02 9.900000e+02 1.030000e+03 -4.089211e-03 1.000000e-02
8.300000e+02 8.700000e+02 1.030000e+03 1.070000e+03 -2.106531e-03 1.000000e-02
8.300000e+02 8.700000e+02 1.070000e+03 1.110000e+03 -1.232643e-03 1.000000e-02
8.300000e+02 8.700000e+02 1.110000e+03 1.150000e+03 -7.837170e-04 1.000000e-02
8.300000e+02 8.700000e+02 1.150000e+03 1.190000e+03 -5.252836e-04 1.000000e-02
8.700000e+02 9.100000e+02 9.500000e+02 9.900000e+02 -2.072588e-02 1.000000e-02
8.700000e+02 9.100000e+02 9.900000e+02 1.030000e+03 -6.680527e-03 1.000000e-02
8.700000e+02 9.100000e+02 1.030000e+03 1.070000e+03 -2.858761e-03 1.000000e-02
8.700000e+02 9.100000e+02 1.070000e+03 1.110000e+03 -1.471032e-03 1.000000e-02
8.700000e+02 9.100000e+02 1.110000e+03 1.150000e+03 -8.573545e-04 1.000000e-02
8.700000e+02 9.100000e+02 1.150000e+03 1.190000e+03 -5.422200e-04 1.000000e-02
8.700000e+02 9.100000e+02 1.190000e+03 1.230000e+03 -3.622185e-04 1.000000e-02
9.100000e+02 9.500000e+02 9.900000e+02 1.030000e+03 -1.342708e-02 1.000000e-02
9.100000e+02 9.500000e+02 1.030000e+03 1.070000e+03 -3.764640e-03 1.000000e-02
9.100000e+02 9.500000e+02 1.070000e+03 1.110000e+03 -1.404981e-03 1.000000e-02
9.100000e+02 9.500000e+02 1.110000e+03 1.150000e+03 -6.344059e-04 1.000000e-02
9.100000e+02 9.500000e+02 1.150000e+03 1.190000e+03 -3.297554e-04 1.000000e-02
9.100000e+02 9.500000e+02 1.190000e+03 1.230000e+03 -1.901888e-04 1.000000e-02
9.100000e+02 9.500000e+02 1.230000e+03 1.270000e+03 -1.186449e-04 1.000000e-02
9.500000e+02 9.900000e+02 1.030000e+03 1.070000e+03 -1.528939e-02 1.000000e-02
9.500000e+02 9.900000e+02 1.070000e+03 1.110000e+03 -4.517699e-03 1.000000e-02
9.500000e+02 9.900000e+02 1.110000e+03 1.150000e+03 -1.761066e-03 1.000000e-02
9.500000e+02 9.900000e+02 1.150000e+03 1.190000e+03 -8.239729e-04 1.000000e-02
9.500000e+02 9.900000e+02 1.190000e+03 1.230000e+03 -4.404471e-04 1.000000e-02
9.500000e+02 9.900000e+02 1.230000e+03 1.270000e+03 -2.601287e-04 1.000000e-02
9.500000e+02 9.900000e+02 1.270000e+03 1.310000e+03 -1.662365e-04 1.000000e-02
9.900000e+02 1.030000e+03 1.070000e+03 1.110000e+03 -1.564742e-02 1.000000e-02
9.900000e+02 1.030000e+03 1.110000e+03 1.150000e+03 -4.709421e-03 1.000000e-02
9.900000e+02 1.030000e+03 1.150000e+03 1.190000e+03 -1.873639e-03 1.000000e-02
9.900000e+02 1.030000e+03 1.190000e+03 1.230000e+03 -8.954006e-04 1.000000e-02
9.900000e+02 1.030000e+03 1.230000e+03 1.270000e+03 -4.894624e-04 1.000000e-02
9.900000e+02 1.030000e+03 1.270000e+03 1.310000e+03 -2.966754e-04 1.000000e-02
9.900000e+02 1.030000e+03 1.310000e+03 1.350000e+03 -1.954672e-04 1.000000e-02
1.030000e+03 1.070000e+03 1.110000e+03 1.150000e+03 -1.576273e-02 1.000000e-02
1.030000e+03 1.070000e+03 1.150000e+03 1.190000e+03 -4.783585e-03 1.000000e-02
1.030000e+03 1.070000e+03 1.190000e+03 1.230000e+03 -1.925094e-03 1.000000e-02
1.030000e+03 1.070000e+03 1.230000e+03 1.270000e+03 -9.344398e-04 1.000000e-02
1.030000e+03 1.070000e+03 1.270000e+03 1.310000e+03 -5.220443e-04 1.000000e-02
1.030000e+03 1.070000e+03 1.310000e+03 1.350000e+03 -3.257533e-04 1.000000e-02
1.030000e+03 1.070000e+03 1.350000e+03 1.390000e+03 -2.206926e-04 1.000000e-02
1.070000e+03 1.110000e+03 1.150000e+03 1.190000e+03 -1.581724e-02 1.000000e-02
1.070000e+03 1.110000e+03 1.190000e+03 1.230000e+03 -4.825705e-03 1.000000e-02
1.070000e+03 1.110000e+03 1.230000e+03 1.270000e+03 -1.961115e-03 1.000000e-02
1.070000e+03 1.110000e+03 1.270000e+03 1.310000e+03 -9.683840e-04 1.000000e-02
1.070000e+03 1.110000e+03 1.310000e+03 1.350000e+03 -5.557387e-04 1.000000e-02
1.070000e+03 1.110000e+03 1.350000e+03 1.390000e+03 -3.573570e-04 1.000000e-02
1.070000e+03 1.110000e+03 1.390000e+03 1.430000e+03 -2.237379e-04 1.000000e-02
1.110000e+03 1.150000e+03 1.190000e+03 1.230000e+03 -1.585629e-02 1.000000e-02
1.110000e+03 1.150000e+03 1.230000e+03 1.270000e+03 -4.863527e-03 1.000000e-02
1.110000e+03 1.150000e+03 1.270000e+03 1.310000e+03 -2.001001e-03 1.000000e-02
1.110000e+03 1.150000e+03 1.310000e+03 1.350000e+03 -1.011908e-03 1.000000e-02
1.110000e+03 1.150000e+03 1.350000e+03 1.390000e+03 -5.999730e-04 1.000000e-02
1.110000e+03 1.150000e+03 1.390000e+03 1.430000e+03 -3.608492e-04 1.000000e-02
1.110000e+03 1.150000e+03 1.430000e+03 1.470000e+03 -6.233112e-05 1.000000e-02
1.150000e+03 1.190000e+03 1.230000e+03 1.270000e+03 -1.589981e-02 1.000000e-02
1.150000e+03 1.190000e+03 1.270000e+03 1.310000e+03 -4.914252e-03 1.000000e-02
1.150000e+03 1.190000e+03 1.310000e+03 1.350000e+03 -2.061606e-03 1.000000e-02
1.150000e+03 1.190000e+03 1.350000e+03 1.390000e+03 -1.079518e-03 1.000000e-02
1.150000e+03 1.190000e+03 1.390000e+03 1.430000e+03 -6.091457e-04 1.000000e-02
1.150000e+03 1.190000e+03 1.430000e+03 1.470000e+03 -1.027616e-04 1.000000e-02
1.150000e+03 1.190000e+03 1.470000e+03 1.510000e+03 -6.569923e-05 1.000000e-02
1.190000e+03 1.230000e+03 1.270000e+03 1.310000e+03 -1.596873e-02 1.000000e-02
1.190000e+03 1.230000e+03 1.310000e+03 1.350000e+03 -5.005094e-03 1.000000e-02
1.190000e+03 1.230000e+03 1.350000e+03 1.390000e+03 -2.175347e-03 1.000000e-02
1.190000e+03 1.230000e+03 1.390000e+03 1.430000e+03 -1.110316e-03 1.000000e-02
1.190000e+03 1.230000e+03 1.430000e+03 1.470000e+03 -1.806351e-04 1.000000e-02
1.190000e+03 1.230000e+03 1.470000e+03 1.510000e+03 -1.013643e-04 1.000000e-02
1.190000e+03 1.230000e+03 1.510000e+03 1.550000e+03 -8.848532e-05 1.000000e-02
1.230000e+03 1.270000e+03 1.310000e+03 1.350000e+03 -1.611766e-02 1.000000e-02
1.230000e+03 1.270000e+03 1.350000e+03 1.390000e+03 -5.219583e-03 1.000000e-02
1.230000e+03 1.270000e+03 1.390000e+03 1.430000e+03 -2.278612e-03 1.000000e-02
1.230000e+03 1.270000e+03 1.430000e+03 1.470000e+03 -3.508786e-04 1.000000e-02
1.230000e+03 1.270000e+03 1.470000e+03 1.510000e+03 -1.640165e-04 1.000000e-02
1.230000e+03 1.270000e+03 1.510000e+03 1.550000e+03 -1.359041e-04 1.000000e-02
1.230000e+03 1.270000e+03 1.550000e+03 1.590000e+03 -8.751714e-05 1.000000e-02
1.270000e+03 1.310000e+03 1.350000e+03 1.390000e+03 -1.657478e-02 1.000000e-02
1.270000e+03 1.310000e+03 1.390000e+03 1.430000e+03 -5.565939e-03 1.000000e-02
1.270000e+03 1.310000e+03 1.430000e+03 1.470000e+03 -7.880475e-04 1.000000e-02
1.270000e+03 1.310000e+03 1.470000e+03 1.510000e+03 -2.872745e-04 1.000000e-02
1.270000e+03 1.310000e+03 1.510000e+03 1.550000e+03 -2.204123e-04 1.000000e-02
1.270000e+03 1.310000e+03 1.550000e+03 1.590000e+03 -1.337666e-04 1.000000e-02
1.270000e+03 1.310000e+03 1.590000e+03 1.630000e+03 -8.382002e-05 1.000000e-02
1.310000e+03 1.350000e+03 1.390000e+03 1.430000e+03 -1.781077e-02 1.000000e-02
1.310000e+03 1.350000e+03 1.430000e+03 1.470000e+03 -2.175030e-03 1.000000e-02
1.310000e+03 1.350000e+03 1.470000e+03 1.510000e+03 -5.670577e-04 1.000000e-02
1.310000e+03 1.350000e+03 1.510000e+03 1.550000e+03 -3.891514e-04 1.000000e-02
1.310000e+03 1.350000e+03 1.550000e+03 1.590000e+03 -2.167667e-04 1.000000e-02
1.310000e+03 1.350000e+03 1.590000e+03 1.630000e+03 -1.280080e-04 1.000000e-02
1.310000e+03 1.350000e+03 1.630000e+03 1.670000e+03 -7.633646e-05 1.000000e-02
1.350000e+03 1.390000e+03 1.430000e+03 1.470000e+03 -8.397906e-03 1.000000e-02
1.350000e+03 1.390000e+03 1.470000e+03 1.510000e+03 -1.320713e-03 1.000000e-02
1.350000e+03 1.390000e+03 1.510000e+03 1.550000e+03 -7.699112e-04 1.000000e-02
1.350000e+03 1.390000e+03 1.550000e+03 1.590000e+03 -3.795939e-04 1.000000e-02
1.350000e+03 1.390000e+03 1.590000e+03 1.630000e+03 -2.060814e-04 1.000000e-02
1.350000e+03 1.390000e+03 1.630000e+03 1.670000e+03 -1.160841e-04 1.000000e-02
1.350000e+03 1.390000e+03 1.670000e+03 1.710000e+03 -6.159250e-05 1.000000e-02
1.390000e+03 1.430000e+03 1.470000e+03 1.510000e+03 -4.023143e-03 1.000000e-02
1.390000e+03 1.430000e+03 1.510000e+03 1.550000e+03 -1.729697e-03 1.000000e-02
1.390000e+03 1.430000e+03 1.550000e+03 1.590000e+03 -7.003067e-04 1.000000e-02
1.390000e+03 1.430000e+03 1.590000e+03 1.630000e+03 -3.336371e-04 1.000000e-02
1.390000e+03 1.430000e+03 1.630000e+03 1.670000e+03 -1.723402e-04 1.000000e-02
1.390000e+03 1.430000e+03 1.670000e+03 1.710000e+03 -8.628177e-05 1.000000e-02
1.390000e+03 1.430000e+03 1.710000e+03 1.750000e+03 -5.826410e-05 1.000000e-02
1.430000e+03 1.470000e+03 1.510000e+03 1.550000e+03 -3.340181e-03 1.000000e-02
1.430000e+03 1.470000e+03 1.550000e+03 1.590000e+03 -9.789342e-04 1.000000e-02
1.430000e+03 1.470000e+03 1.590000e+03 1.630000e+03 -3.766422e-04 1.000000e-02
1.430000e+03 1.470000e+03 1.630000e+03 1.670000e+03 -1.677244e-04 1.000000e-02
1.430000e+03 1.470000e+03 1.670000e+03 1.710000e+03 -7.590380e-05 1.000000e-02
1.430000e+03 1.470000e+03 1.710000e+03 1.750000e+03 -4.410703e-05 1.000000e-02
1.470000e+03 1.510000e+03 1.550000e+03 1.590000e+03 -1.782789e-02 1.000000e-02
1.470000e+03 1.510000e+03 1.590000e+03 1.630000e+03 -5.476754e-03 1.000000e-02
1.470000e+03 1.510000e+03 1.630000e+03 1.670000e+03 -2.129383e-03 1.000000e-02
1.470000e+03 1.510000e+03 1.670000e+03 1.710000e+03 -8.830290e-04 1.000000e-02
1.470000e+03 1.510000e+03 1.710000e+03 1.750000e+03 -4.593613e-04 1.000000e-02
1.510000e+03 1.550000e+03 1.590000e+03 1.630000e+03 -1.658220e-02 1.000000e-02
1.510000e+03 1.550000e+03 1.630000e+03 1.670000e+03 -5.041717e-03 1.000000e-02
1.510000e+03 1.550000e+03 1.670000e+03 1.710000e+03 -1.828697e-03 1.000000e-02
1.510000e+03 1.550000e+03 1.710000e+03 1.750000e+03 -8.334506e-04 1.000000e-02
1.550000e+03 1.590000e+03 1.630000e+03 1.670000e+03 -1.573884e-02 1.000000e-02
1.550000e+03 1.590000e+03 1.670000e+03 1.710000e+03 -4.395610e-03 1.000000e-02
1.550000e+03 1.590000e+03 1.710000e+03 1.750000e+03 -1.596948e-03 1.000000e-02
1.590000e+03 1.630000e+03 1.670000e+03 1.710000e+03 -1.485953e-02 1.000000e-02
1.590000e+03 1.630000e+03 1.710000e+03 1.750000e+03 -3.965492e-03 1.000000e-02
1.630000e+03 1.670000e+03 1.710000e+03 1.750000e+03 -1.352088e-02 1.000000e-02
+212
View File
@@ -0,0 +1,212 @@
GENERAL FORMAT
5.100000e+02 1.221100e+04 0.000000e+00 5.500000e+02 1.221100e+04 0.000000e+00 7
5.900000e+02 1.221100e+04 0.000000e+00 6.300000e+02 1.221100e+04 0.000000e+00 -2.714530e-01
6.300000e+02 1.221100e+04 0.000000e+00 6.700000e+02 1.221100e+04 0.000000e+00 -9.078871e-02
6.700000e+02 1.221100e+04 0.000000e+00 7.100000e+02 1.221100e+04 0.000000e+00 -3.904038e-03
7.100000e+02 1.221100e+04 0.000000e+00 7.500000e+02 1.221100e+04 0.000000e+00 -1.618037e-03
7.500000e+02 1.221100e+04 0.000000e+00 7.900000e+02 1.221100e+04 0.000000e+00 -9.804391e-04
7.900000e+02 1.221100e+04 0.000000e+00 8.300000e+02 1.221100e+04 0.000000e+00 -1.727176e-03
8.300000e+02 1.221100e+04 0.000000e+00 8.700000e+02 1.221100e+04 0.000000e+00 -1.355919e-03
5.500000e+02 1.221100e+04 0.000000e+00 5.900000e+02 1.221100e+04 0.000000e+00 7
6.300000e+02 1.221100e+04 0.000000e+00 6.700000e+02 1.221100e+04 0.000000e+00 -2.921238e-01
6.700000e+02 1.221100e+04 0.000000e+00 7.100000e+02 1.221100e+04 0.000000e+00 -1.009492e-02
7.100000e+02 1.221100e+04 0.000000e+00 7.500000e+02 1.221100e+04 0.000000e+00 -3.548991e-03
7.500000e+02 1.221100e+04 0.000000e+00 7.900000e+02 1.221100e+04 0.000000e+00 -1.723986e-03
7.900000e+02 1.221100e+04 0.000000e+00 8.300000e+02 1.221100e+04 0.000000e+00 -2.630518e-03
8.300000e+02 1.221100e+04 0.000000e+00 8.700000e+02 1.221100e+04 0.000000e+00 -1.925165e-03
8.700000e+02 1.221100e+04 0.000000e+00 9.100000e+02 1.221100e+04 0.000000e+00 -1.284180e-03
5.900000e+02 1.221100e+04 0.000000e+00 6.300000e+02 1.221100e+04 0.000000e+00 7
6.700000e+02 1.221100e+04 0.000000e+00 7.100000e+02 1.221100e+04 0.000000e+00 -3.457665e-02
7.100000e+02 1.221100e+04 0.000000e+00 7.500000e+02 1.221100e+04 0.000000e+00 -9.501139e-03
7.500000e+02 1.221100e+04 0.000000e+00 7.900000e+02 1.221100e+04 0.000000e+00 -3.561828e-03
7.900000e+02 1.221100e+04 0.000000e+00 8.300000e+02 1.221100e+04 0.000000e+00 -4.451255e-03
8.300000e+02 1.221100e+04 0.000000e+00 8.700000e+02 1.221100e+04 0.000000e+00 -2.932679e-03
8.700000e+02 1.221100e+04 0.000000e+00 9.100000e+02 1.221100e+04 0.000000e+00 -1.862391e-03
9.100000e+02 1.221100e+04 0.000000e+00 9.500000e+02 1.221100e+04 0.000000e+00 -1.762776e-04
6.300000e+02 1.221100e+04 0.000000e+00 6.700000e+02 1.221100e+04 0.000000e+00 7
7.100000e+02 1.221100e+04 0.000000e+00 7.500000e+02 1.221100e+04 0.000000e+00 -2.311407e-02
7.500000e+02 1.221100e+04 0.000000e+00 7.900000e+02 1.221100e+04 0.000000e+00 -6.497353e-03
7.900000e+02 1.221100e+04 0.000000e+00 8.300000e+02 1.221100e+04 0.000000e+00 -6.444456e-03
8.300000e+02 1.221100e+04 0.000000e+00 8.700000e+02 1.221100e+04 0.000000e+00 -3.717098e-03
8.700000e+02 1.221100e+04 0.000000e+00 9.100000e+02 1.221100e+04 0.000000e+00 -2.211079e-03
9.100000e+02 1.221100e+04 0.000000e+00 9.500000e+02 1.221100e+04 0.000000e+00 -1.980605e-04
9.500000e+02 1.221100e+04 0.000000e+00 9.900000e+02 1.221100e+04 0.000000e+00 -1.344407e-04
6.700000e+02 1.221100e+04 0.000000e+00 7.100000e+02 1.221100e+04 0.000000e+00 7
7.500000e+02 1.221100e+04 0.000000e+00 7.900000e+02 1.221100e+04 0.000000e+00 -1.392702e-02
7.900000e+02 1.221100e+04 0.000000e+00 8.300000e+02 1.221100e+04 0.000000e+00 -8.492591e-03
8.300000e+02 1.221100e+04 0.000000e+00 8.700000e+02 1.221100e+04 0.000000e+00 -3.590565e-03
8.700000e+02 1.221100e+04 0.000000e+00 9.100000e+02 1.221100e+04 0.000000e+00 -1.793323e-03
9.100000e+02 1.221100e+04 0.000000e+00 9.500000e+02 1.221100e+04 0.000000e+00 -1.392059e-04
9.500000e+02 1.221100e+04 0.000000e+00 9.900000e+02 1.221100e+04 0.000000e+00 -8.266499e-05
9.900000e+02 1.221100e+04 0.000000e+00 1.030000e+03 1.221100e+04 0.000000e+00 -5.310599e-05
7.100000e+02 1.221100e+04 0.000000e+00 7.500000e+02 1.221100e+04 0.000000e+00 7
7.900000e+02 1.221100e+04 0.000000e+00 8.300000e+02 1.221100e+04 0.000000e+00 -3.379942e-02
8.300000e+02 1.221100e+04 0.000000e+00 8.700000e+02 1.221100e+04 0.000000e+00 -1.112369e-02
8.700000e+02 1.221100e+04 0.000000e+00 9.100000e+02 1.221100e+04 0.000000e+00 -4.897810e-03
9.100000e+02 1.221100e+04 0.000000e+00 9.500000e+02 1.221100e+04 0.000000e+00 -3.495618e-04
9.500000e+02 1.221100e+04 0.000000e+00 9.900000e+02 1.221100e+04 0.000000e+00 -1.934129e-04
9.900000e+02 1.221100e+04 0.000000e+00 1.030000e+03 1.221100e+04 0.000000e+00 -1.181884e-04
1.030000e+03 1.221100e+04 0.000000e+00 1.070000e+03 1.221100e+04 0.000000e+00 -7.744231e-05
7.500000e+02 1.221100e+04 0.000000e+00 7.900000e+02 1.221100e+04 0.000000e+00 7
8.300000e+02 1.221100e+04 0.000000e+00 8.700000e+02 1.221100e+04 0.000000e+00 -1.245106e-01
8.700000e+02 1.221100e+04 0.000000e+00 9.100000e+02 1.221100e+04 0.000000e+00 -4.108718e-02
9.100000e+02 1.221100e+04 0.000000e+00 9.500000e+02 1.221100e+04 0.000000e+00 -2.485836e-03
9.500000e+02 1.221100e+04 0.000000e+00 9.900000e+02 1.221100e+04 0.000000e+00 -1.202480e-03
9.900000e+02 1.221100e+04 0.000000e+00 1.030000e+03 1.221100e+04 0.000000e+00 -6.693235e-04
1.030000e+03 1.221100e+04 0.000000e+00 1.070000e+03 1.221100e+04 0.000000e+00 -4.113179e-04
1.070000e+03 1.221100e+04 0.000000e+00 1.110000e+03 1.221100e+04 0.000000e+00 -2.702122e-04
7.900000e+02 1.221100e+04 0.000000e+00 8.300000e+02 1.221100e+04 0.000000e+00 7
8.700000e+02 1.221100e+04 0.000000e+00 9.100000e+02 1.221100e+04 0.000000e+00 -2.137886e-01
9.100000e+02 1.221100e+04 0.000000e+00 9.500000e+02 1.221100e+04 0.000000e+00 -1.091859e-02
9.500000e+02 1.221100e+04 0.000000e+00 9.900000e+02 1.221100e+04 0.000000e+00 -4.724633e-03
9.900000e+02 1.221100e+04 0.000000e+00 1.030000e+03 1.221100e+04 0.000000e+00 -2.449333e-03
1.030000e+03 1.221100e+04 0.000000e+00 1.070000e+03 1.221100e+04 0.000000e+00 -1.437846e-03
1.070000e+03 1.221100e+04 0.000000e+00 1.110000e+03 1.221100e+04 0.000000e+00 -9.172139e-04
1.110000e+03 1.221100e+04 0.000000e+00 1.150000e+03 1.221100e+04 0.000000e+00 -6.169701e-04
8.300000e+02 1.221100e+04 0.000000e+00 8.700000e+02 1.221100e+04 0.000000e+00 7
9.100000e+02 1.221100e+04 0.000000e+00 9.500000e+02 1.221100e+04 0.000000e+00 -3.008740e-02
9.500000e+02 1.221100e+04 0.000000e+00 9.900000e+02 1.221100e+04 0.000000e+00 -9.582880e-03
9.900000e+02 1.221100e+04 0.000000e+00 1.030000e+03 1.221100e+04 0.000000e+00 -4.089211e-03
1.030000e+03 1.221100e+04 0.000000e+00 1.070000e+03 1.221100e+04 0.000000e+00 -2.106531e-03
1.070000e+03 1.221100e+04 0.000000e+00 1.110000e+03 1.221100e+04 0.000000e+00 -1.232643e-03
1.110000e+03 1.221100e+04 0.000000e+00 1.150000e+03 1.221100e+04 0.000000e+00 -7.837170e-04
1.150000e+03 1.221100e+04 0.000000e+00 1.190000e+03 1.221100e+04 0.000000e+00 -5.252836e-04
8.700000e+02 1.221100e+04 0.000000e+00 9.100000e+02 1.221100e+04 0.000000e+00 7
9.500000e+02 1.221100e+04 0.000000e+00 9.900000e+02 1.221100e+04 0.000000e+00 -2.072588e-02
9.900000e+02 1.221100e+04 0.000000e+00 1.030000e+03 1.221100e+04 0.000000e+00 -6.680527e-03
1.030000e+03 1.221100e+04 0.000000e+00 1.070000e+03 1.221100e+04 0.000000e+00 -2.858761e-03
1.070000e+03 1.221100e+04 0.000000e+00 1.110000e+03 1.221100e+04 0.000000e+00 -1.471032e-03
1.110000e+03 1.221100e+04 0.000000e+00 1.150000e+03 1.221100e+04 0.000000e+00 -8.573545e-04
1.150000e+03 1.221100e+04 0.000000e+00 1.190000e+03 1.221100e+04 0.000000e+00 -5.422200e-04
1.190000e+03 1.221100e+04 0.000000e+00 1.230000e+03 1.221100e+04 0.000000e+00 -3.622185e-04
9.100000e+02 1.221100e+04 0.000000e+00 9.500000e+02 1.221100e+04 0.000000e+00 7
9.900000e+02 1.221100e+04 0.000000e+00 1.030000e+03 1.221100e+04 0.000000e+00 -1.342708e-02
1.030000e+03 1.221100e+04 0.000000e+00 1.070000e+03 1.221100e+04 0.000000e+00 -3.764640e-03
1.070000e+03 1.221100e+04 0.000000e+00 1.110000e+03 1.221100e+04 0.000000e+00 -1.404981e-03
1.110000e+03 1.221100e+04 0.000000e+00 1.150000e+03 1.221100e+04 0.000000e+00 -6.344059e-04
1.150000e+03 1.221100e+04 0.000000e+00 1.190000e+03 1.221100e+04 0.000000e+00 -3.297554e-04
1.190000e+03 1.221100e+04 0.000000e+00 1.230000e+03 1.221100e+04 0.000000e+00 -1.901888e-04
1.230000e+03 1.221100e+04 0.000000e+00 1.270000e+03 1.221100e+04 0.000000e+00 -1.186449e-04
9.500000e+02 1.221100e+04 0.000000e+00 9.900000e+02 1.221100e+04 0.000000e+00 7
1.030000e+03 1.221100e+04 0.000000e+00 1.070000e+03 1.221100e+04 0.000000e+00 -1.528939e-02
1.070000e+03 1.221100e+04 0.000000e+00 1.110000e+03 1.221100e+04 0.000000e+00 -4.517699e-03
1.110000e+03 1.221100e+04 0.000000e+00 1.150000e+03 1.221100e+04 0.000000e+00 -1.761066e-03
1.150000e+03 1.221100e+04 0.000000e+00 1.190000e+03 1.221100e+04 0.000000e+00 -8.239729e-04
1.190000e+03 1.221100e+04 0.000000e+00 1.230000e+03 1.221100e+04 0.000000e+00 -4.404471e-04
1.230000e+03 1.221100e+04 0.000000e+00 1.270000e+03 1.221100e+04 0.000000e+00 -2.601287e-04
1.270000e+03 1.221100e+04 0.000000e+00 1.310000e+03 1.221100e+04 0.000000e+00 -1.662365e-04
9.900000e+02 1.221100e+04 0.000000e+00 1.030000e+03 1.221100e+04 0.000000e+00 7
1.070000e+03 1.221100e+04 0.000000e+00 1.110000e+03 1.221100e+04 0.000000e+00 -1.564742e-02
1.110000e+03 1.221100e+04 0.000000e+00 1.150000e+03 1.221100e+04 0.000000e+00 -4.709421e-03
1.150000e+03 1.221100e+04 0.000000e+00 1.190000e+03 1.221100e+04 0.000000e+00 -1.873639e-03
1.190000e+03 1.221100e+04 0.000000e+00 1.230000e+03 1.221100e+04 0.000000e+00 -8.954006e-04
1.230000e+03 1.221100e+04 0.000000e+00 1.270000e+03 1.221100e+04 0.000000e+00 -4.894624e-04
1.270000e+03 1.221100e+04 0.000000e+00 1.310000e+03 1.221100e+04 0.000000e+00 -2.966754e-04
1.310000e+03 1.221100e+04 0.000000e+00 1.350000e+03 1.221100e+04 0.000000e+00 -1.954672e-04
1.030000e+03 1.221100e+04 0.000000e+00 1.070000e+03 1.221100e+04 0.000000e+00 7
1.110000e+03 1.221100e+04 0.000000e+00 1.150000e+03 1.221100e+04 0.000000e+00 -1.576273e-02
1.150000e+03 1.221100e+04 0.000000e+00 1.190000e+03 1.221100e+04 0.000000e+00 -4.783585e-03
1.190000e+03 1.221100e+04 0.000000e+00 1.230000e+03 1.221100e+04 0.000000e+00 -1.925094e-03
1.230000e+03 1.221100e+04 0.000000e+00 1.270000e+03 1.221100e+04 0.000000e+00 -9.344398e-04
1.270000e+03 1.221100e+04 0.000000e+00 1.310000e+03 1.221100e+04 0.000000e+00 -5.220443e-04
1.310000e+03 1.221100e+04 0.000000e+00 1.350000e+03 1.221100e+04 0.000000e+00 -3.257533e-04
1.350000e+03 1.221100e+04 0.000000e+00 1.390000e+03 1.221100e+04 0.000000e+00 -2.206926e-04
1.070000e+03 1.221100e+04 0.000000e+00 1.110000e+03 1.221100e+04 0.000000e+00 7
1.150000e+03 1.221100e+04 0.000000e+00 1.190000e+03 1.221100e+04 0.000000e+00 -1.581724e-02
1.190000e+03 1.221100e+04 0.000000e+00 1.230000e+03 1.221100e+04 0.000000e+00 -4.825705e-03
1.230000e+03 1.221100e+04 0.000000e+00 1.270000e+03 1.221100e+04 0.000000e+00 -1.961115e-03
1.270000e+03 1.221100e+04 0.000000e+00 1.310000e+03 1.221100e+04 0.000000e+00 -9.683840e-04
1.310000e+03 1.221100e+04 0.000000e+00 1.350000e+03 1.221100e+04 0.000000e+00 -5.557387e-04
1.350000e+03 1.221100e+04 0.000000e+00 1.390000e+03 1.221100e+04 0.000000e+00 -3.573570e-04
1.390000e+03 1.221100e+04 0.000000e+00 1.430000e+03 1.221100e+04 0.000000e+00 -2.237379e-04
1.110000e+03 1.221100e+04 0.000000e+00 1.150000e+03 1.221100e+04 0.000000e+00 7
1.190000e+03 1.221100e+04 0.000000e+00 1.230000e+03 1.221100e+04 0.000000e+00 -1.585629e-02
1.230000e+03 1.221100e+04 0.000000e+00 1.270000e+03 1.221100e+04 0.000000e+00 -4.863527e-03
1.270000e+03 1.221100e+04 0.000000e+00 1.310000e+03 1.221100e+04 0.000000e+00 -2.001001e-03
1.310000e+03 1.221100e+04 0.000000e+00 1.350000e+03 1.221100e+04 0.000000e+00 -1.011908e-03
1.350000e+03 1.221100e+04 0.000000e+00 1.390000e+03 1.221100e+04 0.000000e+00 -5.999730e-04
1.390000e+03 1.221100e+04 0.000000e+00 1.430000e+03 1.221100e+04 0.000000e+00 -3.608492e-04
1.430000e+03 1.221100e+04 0.000000e+00 1.470000e+03 1.221100e+04 0.000000e+00 -6.233112e-05
1.150000e+03 1.221100e+04 0.000000e+00 1.190000e+03 1.221100e+04 0.000000e+00 7
1.230000e+03 1.221100e+04 0.000000e+00 1.270000e+03 1.221100e+04 0.000000e+00 -1.589981e-02
1.270000e+03 1.221100e+04 0.000000e+00 1.310000e+03 1.221100e+04 0.000000e+00 -4.914252e-03
1.310000e+03 1.221100e+04 0.000000e+00 1.350000e+03 1.221100e+04 0.000000e+00 -2.061606e-03
1.350000e+03 1.221100e+04 0.000000e+00 1.390000e+03 1.221100e+04 0.000000e+00 -1.079518e-03
1.390000e+03 1.221100e+04 0.000000e+00 1.430000e+03 1.221100e+04 0.000000e+00 -6.091457e-04
1.430000e+03 1.221100e+04 0.000000e+00 1.470000e+03 1.221100e+04 0.000000e+00 -1.027616e-04
1.470000e+03 1.221100e+04 0.000000e+00 1.510000e+03 1.221100e+04 0.000000e+00 -6.569923e-05
1.190000e+03 1.221100e+04 0.000000e+00 1.230000e+03 1.221100e+04 0.000000e+00 7
1.270000e+03 1.221100e+04 0.000000e+00 1.310000e+03 1.221100e+04 0.000000e+00 -1.596873e-02
1.310000e+03 1.221100e+04 0.000000e+00 1.350000e+03 1.221100e+04 0.000000e+00 -5.005094e-03
1.350000e+03 1.221100e+04 0.000000e+00 1.390000e+03 1.221100e+04 0.000000e+00 -2.175347e-03
1.390000e+03 1.221100e+04 0.000000e+00 1.430000e+03 1.221100e+04 0.000000e+00 -1.110316e-03
1.430000e+03 1.221100e+04 0.000000e+00 1.470000e+03 1.221100e+04 0.000000e+00 -1.806351e-04
1.470000e+03 1.221100e+04 0.000000e+00 1.510000e+03 1.221100e+04 0.000000e+00 -1.013643e-04
1.510000e+03 1.221100e+04 0.000000e+00 1.550000e+03 1.221100e+04 0.000000e+00 -8.848532e-05
1.230000e+03 1.221100e+04 0.000000e+00 1.270000e+03 1.221100e+04 0.000000e+00 7
1.310000e+03 1.221100e+04 0.000000e+00 1.350000e+03 1.221100e+04 0.000000e+00 -1.611766e-02
1.350000e+03 1.221100e+04 0.000000e+00 1.390000e+03 1.221100e+04 0.000000e+00 -5.219583e-03
1.390000e+03 1.221100e+04 0.000000e+00 1.430000e+03 1.221100e+04 0.000000e+00 -2.278612e-03
1.430000e+03 1.221100e+04 0.000000e+00 1.470000e+03 1.221100e+04 0.000000e+00 -3.508786e-04
1.470000e+03 1.221100e+04 0.000000e+00 1.510000e+03 1.221100e+04 0.000000e+00 -1.640165e-04
1.510000e+03 1.221100e+04 0.000000e+00 1.550000e+03 1.221100e+04 0.000000e+00 -1.359041e-04
1.550000e+03 1.221100e+04 0.000000e+00 1.590000e+03 1.221100e+04 0.000000e+00 -8.751714e-05
1.270000e+03 1.221100e+04 0.000000e+00 1.310000e+03 1.221100e+04 0.000000e+00 7
1.350000e+03 1.221100e+04 0.000000e+00 1.390000e+03 1.221100e+04 0.000000e+00 -1.657478e-02
1.390000e+03 1.221100e+04 0.000000e+00 1.430000e+03 1.221100e+04 0.000000e+00 -5.565939e-03
1.430000e+03 1.221100e+04 0.000000e+00 1.470000e+03 1.221100e+04 0.000000e+00 -7.880475e-04
1.470000e+03 1.221100e+04 0.000000e+00 1.510000e+03 1.221100e+04 0.000000e+00 -2.872745e-04
1.510000e+03 1.221100e+04 0.000000e+00 1.550000e+03 1.221100e+04 0.000000e+00 -2.204123e-04
1.550000e+03 1.221100e+04 0.000000e+00 1.590000e+03 1.221100e+04 0.000000e+00 -1.337666e-04
1.590000e+03 1.221100e+04 0.000000e+00 1.630000e+03 1.221100e+04 0.000000e+00 -8.382002e-05
1.310000e+03 1.221100e+04 0.000000e+00 1.350000e+03 1.221100e+04 0.000000e+00 7
1.390000e+03 1.221100e+04 0.000000e+00 1.430000e+03 1.221100e+04 0.000000e+00 -1.781077e-02
1.430000e+03 1.221100e+04 0.000000e+00 1.470000e+03 1.221100e+04 0.000000e+00 -2.175030e-03
1.470000e+03 1.221100e+04 0.000000e+00 1.510000e+03 1.221100e+04 0.000000e+00 -5.670577e-04
1.510000e+03 1.221100e+04 0.000000e+00 1.550000e+03 1.221100e+04 0.000000e+00 -3.891514e-04
1.550000e+03 1.221100e+04 0.000000e+00 1.590000e+03 1.221100e+04 0.000000e+00 -2.167667e-04
1.590000e+03 1.221100e+04 0.000000e+00 1.630000e+03 1.221100e+04 0.000000e+00 -1.280080e-04
1.630000e+03 1.221100e+04 0.000000e+00 1.670000e+03 1.221100e+04 0.000000e+00 -7.633646e-05
1.350000e+03 1.221100e+04 0.000000e+00 1.390000e+03 1.221100e+04 0.000000e+00 7
1.430000e+03 1.221100e+04 0.000000e+00 1.470000e+03 1.221100e+04 0.000000e+00 -8.397906e-03
1.470000e+03 1.221100e+04 0.000000e+00 1.510000e+03 1.221100e+04 0.000000e+00 -1.320713e-03
1.510000e+03 1.221100e+04 0.000000e+00 1.550000e+03 1.221100e+04 0.000000e+00 -7.699112e-04
1.550000e+03 1.221100e+04 0.000000e+00 1.590000e+03 1.221100e+04 0.000000e+00 -3.795939e-04
1.590000e+03 1.221100e+04 0.000000e+00 1.630000e+03 1.221100e+04 0.000000e+00 -2.060814e-04
1.630000e+03 1.221100e+04 0.000000e+00 1.670000e+03 1.221100e+04 0.000000e+00 -1.160841e-04
1.670000e+03 1.221100e+04 0.000000e+00 1.710000e+03 1.221100e+04 0.000000e+00 -6.159250e-05
1.390000e+03 1.221100e+04 0.000000e+00 1.430000e+03 1.221100e+04 0.000000e+00 7
1.470000e+03 1.221100e+04 0.000000e+00 1.510000e+03 1.221100e+04 0.000000e+00 -4.023143e-03
1.510000e+03 1.221100e+04 0.000000e+00 1.550000e+03 1.221100e+04 0.000000e+00 -1.729697e-03
1.550000e+03 1.221100e+04 0.000000e+00 1.590000e+03 1.221100e+04 0.000000e+00 -7.003067e-04
1.590000e+03 1.221100e+04 0.000000e+00 1.630000e+03 1.221100e+04 0.000000e+00 -3.336371e-04
1.630000e+03 1.221100e+04 0.000000e+00 1.670000e+03 1.221100e+04 0.000000e+00 -1.723402e-04
1.670000e+03 1.221100e+04 0.000000e+00 1.710000e+03 1.221100e+04 0.000000e+00 -8.628177e-05
1.710000e+03 1.221100e+04 0.000000e+00 1.750000e+03 1.221100e+04 0.000000e+00 -5.826410e-05
1.430000e+03 1.221100e+04 0.000000e+00 1.470000e+03 1.221100e+04 0.000000e+00 6
1.510000e+03 1.221100e+04 0.000000e+00 1.550000e+03 1.221100e+04 0.000000e+00 -3.340181e-03
1.550000e+03 1.221100e+04 0.000000e+00 1.590000e+03 1.221100e+04 0.000000e+00 -9.789342e-04
1.590000e+03 1.221100e+04 0.000000e+00 1.630000e+03 1.221100e+04 0.000000e+00 -3.766422e-04
1.630000e+03 1.221100e+04 0.000000e+00 1.670000e+03 1.221100e+04 0.000000e+00 -1.677244e-04
1.670000e+03 1.221100e+04 0.000000e+00 1.710000e+03 1.221100e+04 0.000000e+00 -7.590380e-05
1.710000e+03 1.221100e+04 0.000000e+00 1.750000e+03 1.221100e+04 0.000000e+00 -4.410703e-05
1.470000e+03 1.221100e+04 0.000000e+00 1.510000e+03 1.221100e+04 0.000000e+00 5
1.550000e+03 1.221100e+04 0.000000e+00 1.590000e+03 1.221100e+04 0.000000e+00 -1.782789e-02
1.590000e+03 1.221100e+04 0.000000e+00 1.630000e+03 1.221100e+04 0.000000e+00 -5.476754e-03
1.630000e+03 1.221100e+04 0.000000e+00 1.670000e+03 1.221100e+04 0.000000e+00 -2.129383e-03
1.670000e+03 1.221100e+04 0.000000e+00 1.710000e+03 1.221100e+04 0.000000e+00 -8.830290e-04
1.710000e+03 1.221100e+04 0.000000e+00 1.750000e+03 1.221100e+04 0.000000e+00 -4.593613e-04
1.510000e+03 1.221100e+04 0.000000e+00 1.550000e+03 1.221100e+04 0.000000e+00 4
1.590000e+03 1.221100e+04 0.000000e+00 1.630000e+03 1.221100e+04 0.000000e+00 -1.658220e-02
1.630000e+03 1.221100e+04 0.000000e+00 1.670000e+03 1.221100e+04 0.000000e+00 -5.041717e-03
1.670000e+03 1.221100e+04 0.000000e+00 1.710000e+03 1.221100e+04 0.000000e+00 -1.828697e-03
1.710000e+03 1.221100e+04 0.000000e+00 1.750000e+03 1.221100e+04 0.000000e+00 -8.334506e-04
1.550000e+03 1.221100e+04 0.000000e+00 1.590000e+03 1.221100e+04 0.000000e+00 3
1.630000e+03 1.221100e+04 0.000000e+00 1.670000e+03 1.221100e+04 0.000000e+00 -1.573884e-02
1.670000e+03 1.221100e+04 0.000000e+00 1.710000e+03 1.221100e+04 0.000000e+00 -4.395610e-03
1.710000e+03 1.221100e+04 0.000000e+00 1.750000e+03 1.221100e+04 0.000000e+00 -1.596948e-03
1.590000e+03 1.221100e+04 0.000000e+00 1.630000e+03 1.221100e+04 0.000000e+00 2
1.670000e+03 1.221100e+04 0.000000e+00 1.710000e+03 1.221100e+04 0.000000e+00 -1.485953e-02
1.710000e+03 1.221100e+04 0.000000e+00 1.750000e+03 1.221100e+04 0.000000e+00 -3.965492e-03
1.630000e+03 1.221100e+04 0.000000e+00 1.670000e+03 1.221100e+04 0.000000e+00 1
1.710000e+03 1.221100e+04 0.000000e+00 1.750000e+03 1.221100e+04 0.000000e+00 -1.352088e-02
+5
View File
@@ -0,0 +1,5 @@
104 21 57
-1565.00 10725 0
350 300 250 200 175 150 103.00 86.00 72.00 60.00 50.00 40.00 35.00 30.00 24.00 74*20.00 24.00 30.00 35.00 40.00 50.00 60.00 72.00 86.00 103.00 150 175 200 250 300 350
300 250 200 175 150 103.00 86.00 72.00 5*60 72.00 86.00 103.00 150 175 200 250 300
20*10.00 12 16 20*20 24.00 30.00 35.00 40.00 50.00 60.00 72.00 86.00 103.00 150 175 200 250 300 350
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,44 @@
def convertObs_DC3D_to_2D(Tx,Rx):
from SimPEG import np
import numpy.matlib as npm
"""
Read list of 3D Tx Rx location and change coordinate system to distance
along line assuming all data is acquired along line
First transmitter pole is assumed to be at the origin
Assumes flat topo for now...
Input:
:param Tx, Rx
Output:
:figure Tx2d, Rx2d
Created on Mon December 7th, 2015
@author: dominiquef
"""
Tx2d = []
Rx2d = []
for ii in range(len(Tx)):
if ii == 0:
endp = Tx[0][0:2,0]
nrx = Rx[ii].shape[0]
rP1 = np.sqrt( np.sum( ( endp - Tx[ii][0:2,0] )**2 , axis=0))
rP2 = np.sqrt( np.sum( ( endp - Tx[ii][0:2,1] )**2 , axis=0))
rC1 = np.sqrt( np.sum( ( npm.repmat(endp.T,nrx,1) - Rx[ii][:,0:2] )**2 , axis=1))
rC2 = np.sqrt( np.sum( ( npm.repmat(endp.T,nrx,1) - Rx[ii][:,3:5] )**2 , axis=1))
Tx2d.append( np.r_[rP1, rP2] )
Rx2d.append( np.c_[rC1, rC2] )
#np.savetxt(fid, data, fmt='%e',delimiter=' ',newline='\n')
return Tx2d, Rx2d
+149
View File
@@ -0,0 +1,149 @@
def gen_DCIPsurvey(endl, mesh, stype, a, b, n):
from SimPEG import np
import re
"""
Load in endpoints and survey specifications to generate Tx, Rx location
stations.
Assumes flat topo for now...
Input:
:param endl -> input endpoints [x1, y1, z1, x2, y2, z2]
:object mesh -> SimPEG mesh object
:switch stype -> "dpdp" (dipole-dipole) | "pdp" (pole-dipole)
: param a, n -> pole seperation, number of rx dipoles per tx
Output:
:param Tx, Rx -> List objects for each tx location
Lines: P1x, P1y, P1z, P2x, P2y, P2z
Created on Wed December 9th, 2015
@author: dominiquef
"""
def xy_2_r(x1,x2,y1,y2):
r = np.sqrt( np.sum((x2 - x1)**2 + (y2 - y1)**2) )
return r
## Evenly distribute electrodes and put on surface
# Mesure survey length and direction
dl_len = xy_2_r(endl[0,0],endl[1,0],endl[0,1],endl[1,1])
dl_x = ( endl[1,0] - endl[0,0] ) / dl_len
dl_y = ( endl[1,1] - endl[0,1] ) / dl_len
nstn = np.floor( dl_len / a )
# Compute discrete pole location along line
stn_x = endl[0,0] + np.array(range(int(nstn)))*dl_x*a
stn_y = endl[0,1] + np.array(range(int(nstn)))*dl_y*a
# Create line of P1 locations
M = np.c_[stn_x, stn_y, np.ones(nstn).T*mesh.vectorNz[-1]]
# Create line of P2 locations
N = np.c_[stn_x+a*dl_x, stn_y+a*dl_y, np.ones(nstn).T*mesh.vectorNz[-1]]
## Build list of Tx-Rx locations depending on survey type
# Dipole-dipole: Moving tx with [a] spacing -> [AB a MN1 a MN2 ... a MNn]
# Pole-dipole: Moving pole on one end -> [A a MN1 a MN2 ... MNn a B]
Tx = []
Rx = []
if not re.match(stype,'gradient'):
for ii in range(0, int(nstn)-1):
if re.match(stype,'dpdp'):
tx = np.c_[M[ii,:],N[ii,:]]
elif re.match(stype,'pdp'):
tx = np.c_[M[ii,:],M[ii,:]]
#Rx.append(np.c_[M[ii+1:indx,:],N[ii+1:indx,:]])
# Current elctrode seperation
AB = xy_2_r(tx[0,1],endl[1,0],tx[1,1],endl[1,1])
# Number of receivers to fit
nstn = np.min([np.floor( (AB - b) / a ) , n])
# Check if there is enough space, else break the loop
if nstn <= 0:
continue
# Compute discrete pole location along line
stn_x = N[ii,0] + dl_x*b + np.array(range(int(nstn)))*dl_x*a
stn_y = N[ii,1] + dl_y*b + np.array(range(int(nstn)))*dl_y*a
# Create receiver poles
# Create line of P1 locations
P1 = np.c_[stn_x, stn_y, np.ones(nstn).T*mesh.vectorNz[-1]]
# Create line of P2 locations
P2 = np.c_[stn_x+a*dl_x, stn_y+a*dl_y, np.ones(nstn).T*mesh.vectorNz[-1]]
Rx.append(np.c_[P1,P2])
Tx.append(tx)
#==============================================================================
# elif re.match(stype,'dpdp'):
#
# for ii in range(0, int(nstn)-2):
#
# indx = np.min([ii+n+1,nstn])
# Tx.append(np.c_[M[ii,:],N[ii,:]])
# Rx.append(np.c_[M[ii+2:indx,:],N[ii+2:indx,:]])
#==============================================================================
elif re.match(stype,'gradient'):
# Gradient survey only requires Tx at end of line and creates a square
# grid of receivers at in the middle at a pre-set minimum distance
Tx.append(np.c_[M[0,:],N[-1,:]])
# Get the edge limit of survey area
min_x = endl[0,0] + dl_x * b
min_y = endl[0,1] + dl_y * b
max_x = endl[1,0] - dl_x * b
max_y = endl[1,1] - dl_y * b
box_l = np.sqrt( (min_x - max_x)**2 + (min_y - max_y)**2 )
box_w = box_l/2.
nstn = np.floor( box_l / a )
# Compute discrete pole location along line
stn_x = min_x + np.array(range(int(nstn)))*dl_x*a
stn_y = min_y + np.array(range(int(nstn)))*dl_y*a
# Define number of cross lines
nlin = int(np.floor( box_w / a ))
lind = range(-nlin,nlin+1)
ngrad = nstn * len(lind)
rx = np.zeros([ngrad,6])
for ii in range( len(lind) ):
# Move line in perpendicular direction by dipole spacing
lxx = stn_x - lind[ii]*a*dl_y
lyy = stn_y + lind[ii]*a*dl_x
M = np.c_[ lxx, lyy , np.ones(nstn).T*mesh.vectorNz[-1]]
N = np.c_[ lxx+a*dl_x, lyy+a*dl_y, np.ones(nstn).T*mesh.vectorNz[-1]]
rx[(ii*nstn):((ii+1)*nstn),:] = np.c_[M,N]
Rx.append(rx)
else:
print """stype must be either 'pdp', 'dpdp' or 'gradient'. """
return Tx, Rx
@@ -0,0 +1,68 @@
def plot_pseudoSection(Tx,Rx,data,z0, stype):
from SimPEG import np, mkvc
from scipy.interpolate import griddata
from matplotlib.colors import LogNorm
import pylab as plt
import re
"""
Read list of 2D tx-rx location and plot a speudo-section of apparent
resistivity.
Assumes flat topo for now...
Input:
:param d2D, z0
:switch stype -> Either 'pdp' (pole-dipole) | 'dpdp' (dipole-dipole)
Output:
:figure scatter plot overlayed on image
Created on Mon December 7th, 2015
@author: dominiquef
"""
#d2D = np.asarray(d2D)
midl = []
midz = []
rho = []
for ii in range(len(Tx)):
# Get distances between each poles
rC1P1 = np.abs(Tx[ii][0] - Rx[ii][:,0])
rC2P1 = np.abs(Tx[ii][1] - Rx[ii][:,0])
rC1P2 = np.abs(Tx[ii][1] - Rx[ii][:,1])
rC2P2 = np.abs(Tx[ii][0] - Rx[ii][:,1])
rP1P2 = np.abs(Rx[ii][:,1] - Rx[ii][:,0])
# Compute apparent resistivity
if re.match(stype,'pdp'):
rho = np.hstack([rho, data[ii] * 2*np.pi * rC1P1 * ( rC1P1 + rP1P2 ) / rP1P2] )
elif re.match(stype,'dpdp'):
rho = np.hstack([rho, data[ii] * 2*np.pi / ( 1/rC1P1 - 1/rC2P1 - 1/rC1P2 + 1/rC2P2 ) ])
Cmid = (Tx[ii][0] + Tx[ii][1])/2
Pmid = (Rx[ii][:,0] + Rx[ii][:,1])/2
midl = np.hstack([midl, ( Cmid + Pmid )/2 ])
midz = np.hstack([midz, -np.abs(Cmid-Pmid)/2 + z0 ])
# Grid points
grid_x, grid_z = np.mgrid[np.min(midl):np.max(midl), np.min(midz):np.max(midz)]
grid_rho = griddata(np.c_[midl,midz], np.log10(abs(1/rho.T)), (grid_x, grid_z), method='linear')
#plt.subplot(2,1,2)
plt.imshow(grid_rho.T, extent = (np.min(midl),np.max(midl),np.min(midz),np.max(midz)), origin='lower', alpha=0.8)
cbar = plt.colorbar(format = '%.2f',fraction=0.02)
cmin,cmax = cbar.get_clim()
ticks = np.linspace(cmin,cmax,3)
cbar.set_ticks(ticks)
# Plot apparent resistivity
plt.scatter(midl,midz,s=50,c=np.log10(abs(1/rho.T)))
@@ -0,0 +1,57 @@
def readUBC_DC2DLoc(fileName):
from SimPEG import np
"""
Read UBC GIF 2D observation file and generate arrays for tx-rx location
Input:
:param fileName, path to the UBC GIF 2D model file
Output:
:param rx, tx
:return
Created on Thu Nov 12 13:14:10 2015
@author: dominiquef
"""
# Open fileand skip header... assume that we know the mesh already
#==============================================================================
# fopen = open(fileName,'r')
# lines = fopen.readlines()
# fopen.close()
#==============================================================================
# Load file
obsfile = np.genfromtxt(fileName,delimiter=' \n',dtype=np.str,comments='!')
# Check first line and figure out if 2D or 3D file format
line = np.array(obsfile[0].split(),dtype=float)
tx_A = []
tx_B = []
rx_M = []
rx_N = []
d = []
wd = []
for ii in range(obsfile.shape[0]):
# If len==3, then simple format where tx-rx is listed on each line
if len(line) == 4:
temp = np.fromstring(obsfile[ii], dtype=float,sep=' ')
tx_A = np.hstack((tx_A,temp[0]))
tx_B = np.hstack((tx_B,temp[1]))
rx_M = np.hstack((rx_M,temp[2]))
rx_N = np.hstack((rx_N,temp[3]))
rx = np.transpose(np.array((rx_M,rx_N)))
tx = np.transpose(np.array((tx_A,tx_B)))
return tx, rx, d, wd
@@ -0,0 +1,70 @@
def readUBC_DC2DMesh(fileName):
from SimPEG import np
"""
Read UBC GIF 2DTensor mesh and generate 2D Tensor mesh in simpeg
Input:
:param fileName, path to the UBC GIF mesh file
Output:
:param SimPEG TensorMesh 2D object
:return
Created on Thu Nov 12 13:14:10 2015
@author: dominiquef
"""
# Open file
fopen = open(fileName,'r')
# Read down the file and unpack dx vector
def unpackdx(fid,nrows):
for ii in range(nrows):
line = fid.readline()
var = np.array(line.split(),dtype=float)
if ii==0:
x0= var[0]
xvec = np.ones(int(var[2])) * (var[1] - var[0]) / int(var[2])
xend = var[1]
else:
xvec = np.hstack((xvec,np.ones(int(var[1])) * (var[0] - xend) / int(var[1])))
xend = var[0]
return x0, xvec
#%% Start with dx block
# First line specifies the number of rows for x-cells
line = fopen.readline()
nl = np.array(line.split(),dtype=float)
[x0, dx] = unpackdx(fopen,nl)
#%% Move down the file until reaching the z-block
line = fopen.readline()
if not line:
line = fopen.readline()
#%% End with dz block
# First line specifies the number of rows for z-cells
line = fopen.readline()
nl = np.array(line.split(),dtype=float)
[z0, dz] = unpackdx(fopen,nl)
# Flip z0 to be the bottom of the mesh for SimPEG
z0 = z0 - sum(dz)
dz = dz[::-1]
#%% Make the mesh using SimPEG
from SimPEG import Mesh
tensMsh = Mesh.TensorMesh([dx,dz],(x0, z0))
return tensMsh
@@ -0,0 +1,56 @@
def readUBC_DC2DModel(fileName):
from SimPEG import np, mkvc
"""
Read UBC GIF 2DTensor model and generate 2D Tensor model in simpeg
Input:
:param fileName, path to the UBC GIF 2D model file
Output:
:param SimPEG TensorMesh 2D object
:return
Created on Thu Nov 12 13:14:10 2015
@author: dominiquef
"""
# Open fileand skip header... assume that we know the mesh already
obsfile = np.genfromtxt(fileName,delimiter=' \n',dtype=np.str,comments='!')
dim = np.array(obsfile[0].split(),dtype=float)
temp = np.array(obsfile[1].split(),dtype=float)
if len(temp) > 1:
model = np.zeros(dim)
for ii in range(len(obsfile)-1):
mm = np.array(obsfile[ii+1].split(),dtype=float)
model[:,ii] = mm
model = model[:,::-1]
else:
if len(obsfile[1:])==1:
mm = np.array(obsfile[1:].split(),dtype=float)
else:
mm = np.array(obsfile[1:],dtype=float)
# Permute the second dimension to flip the order
model = mm.reshape(dim[1],dim[0])
model = model[::-1,:]
model = np.transpose(model, (1, 0))
model = mkvc(model)
return model
@@ -0,0 +1,69 @@
def readUBC_DC3Dobs(fileName):
from SimPEG import np
"""
Read UBC GIF DCIP 3D observation file and generate arrays for tx-rx location
Input:
:param fileName, path to the UBC GIF 3D obs file
Output:
:param rx, tx, d, wd
:return
Created on Mon December 7th, 2015
@author: dominiquef
"""
# Load file
obsfile = np.genfromtxt(fileName,delimiter=' \n',dtype=np.str,comments='!')
# Pre-allocate
Tx = []
Rx = []
d = []
wd = []
# Countdown for number of obs/tx
count = 0
for ii in range(obsfile.shape[0]):
if not obsfile[ii]:
continue
# First line is transmitter with number of receivers
if count==0:
temp = (np.fromstring(obsfile[ii], dtype=float,sep=' ').T)
count = int(temp[-1])
temp = np.reshape(temp[0:-1],[2,3]).T
Tx.append(temp)
rx = []
continue
temp = np.fromstring(obsfile[ii], dtype=float,sep=' ')
rx.append(temp)
count = count -1
# Reach the end of
if count == 0:
temp = np.asarray(rx)
Rx.append(temp[:,0:6])
# Check for data + uncertainties
if temp.shape[1]==8:
d.append(temp[:,6])
wd.append(temp[:,7])
# Check for data only
elif temp.shape[1]==7:
d.append(temp[:,6])
return Tx, Rx, d, wd
@@ -0,0 +1,49 @@
def writeUBC_DCobs(fileName,Tx,Rx,d,wd, dtype):
from SimPEG import np, mkvc
import re
"""
Read UBC GIF DCIP 3D observation file and generate arrays for tx-rx location
Input:
:param fileName, path to the UBC GIF 3D obs file
Output:
:param rx, tx, d, wd
:return
Created on Mon December 7th, 2015
@author: dominiquef
"""
fid = open(fileName,'w')
fid.write('! GENERAL FORMAT\n')
for ii in range(len(Tx)):
tx = np.asarray(Tx[ii])
rx = np.asarray(Rx[ii])
nrx = rx.shape[0]
fid.write('\n')
if re.match(dtype,'2D'):
for jj in range(nrx):
fid.writelines("%e " % ii for ii in mkvc(tx))
fid.writelines("%e " % ii for ii in mkvc(rx[jj]))
fid.write('%e %e\n'% (d[ii][jj],wd[ii][jj]))
#np.savetxt(fid, np.c_[ rx ,np.asarray(d[ii]), np.asarray(wd[ii]) ], fmt='%e',delimiter=' ',newline='\n')
elif re.match(dtype,'3D'):
fid.write('\n')
fid.writelines("%e " % ii for ii in mkvc(tx))
fid.write('%i\n'% nrx)
np.savetxt(fid, np.c_[ rx ,np.asarray(d[ii]), np.asarray(wd[ii]) ], fmt='%e',delimiter=' ',newline='\n')
fid.close()
+191
View File
@@ -0,0 +1,191 @@
<script language="javascript">
/* Define the Animation class */
function Animation(frames, img_id, slider_id, interval, loop_select_id){
this.img_id = img_id;
this.slider_id = slider_id;
this.loop_select_id = loop_select_id;
this.interval = interval;
this.current_frame = 0;
this.direction = 0;
this.timer = null;
this.frames = new Array(frames.length);
for (var i=0; i<frames.length; i++)
{
this.frames[i] = new Image();
this.frames[i].src = frames[i];
}
document.getElementById(this.slider_id).max = this.frames.length - 1;
this.set_frame(this.current_frame);
}
Animation.prototype.get_loop_state = function(){
var button_group = document[this.loop_select_id].state;
for (var i = 0; i < button_group.length; i++) {
var button = button_group[i];
if (button.checked) {
return button.value;
}
}
return undefined;
}
Animation.prototype.set_frame = function(frame){
this.current_frame = frame;
document.getElementById(this.img_id).src = this.frames[this.current_frame].src;
document.getElementById(this.slider_id).value = this.current_frame;
}
Animation.prototype.next_frame = function()
{
this.set_frame(Math.min(this.frames.length - 1, this.current_frame + 1));
}
Animation.prototype.previous_frame = function()
{
this.set_frame(Math.max(0, this.current_frame - 1));
}
Animation.prototype.first_frame = function()
{
this.set_frame(0);
}
Animation.prototype.last_frame = function()
{
this.set_frame(this.frames.length - 1);
}
Animation.prototype.slower = function()
{
this.interval /= 0.7;
if(this.direction > 0){this.play_animation();}
else if(this.direction < 0){this.reverse_animation();}
}
Animation.prototype.faster = function()
{
this.interval *= 0.7;
if(this.direction > 0){this.play_animation();}
else if(this.direction < 0){this.reverse_animation();}
}
Animation.prototype.anim_step_forward = function()
{
this.current_frame += 1;
if(this.current_frame < this.frames.length){
this.set_frame(this.current_frame);
}else{
var loop_state = this.get_loop_state();
if(loop_state == "loop"){
this.first_frame();
}else if(loop_state == "reflect"){
this.last_frame();
this.reverse_animation();
}else{
this.pause_animation();
this.last_frame();
}
}
}
Animation.prototype.anim_step_reverse = function()
{
this.current_frame -= 1;
if(this.current_frame >= 0){
this.set_frame(this.current_frame);
}else{
var loop_state = this.get_loop_state();
if(loop_state == "loop"){
this.last_frame();
}else if(loop_state == "reflect"){
this.first_frame();
this.play_animation();
}else{
this.pause_animation();
this.first_frame();
}
}
}
Animation.prototype.pause_animation = function()
{
this.direction = 0;
if (this.timer){
clearInterval(this.timer);
this.timer = null;
}
}
Animation.prototype.play_animation = function()
{
this.pause_animation();
this.direction = 1;
var t = this;
if (!this.timer) this.timer = setInterval(function(){t.anim_step_forward();}, this.interval);
}
Animation.prototype.reverse_animation = function()
{
this.pause_animation();
this.direction = -1;
var t = this;
if (!this.timer) this.timer = setInterval(function(){t.anim_step_reverse();}, this.interval);
}
</script>
<div class="animation" align="center">
<img id="_anim_imgBYBDWVXULSOEHXUW">
<br>
<input id="_anim_sliderBYBDWVXULSOEHXUW" type="range" style="width:350px" name="points" min="0" max="1" step="1" value="0" onchange="animBYBDWVXULSOEHXUW.set_frame(parseInt(this.value));"></input>
<br>
<button onclick="animBYBDWVXULSOEHXUW.slower()">&#8211;</button>
<button onclick="animBYBDWVXULSOEHXUW.first_frame()"><img class="anim_icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QURCAgaeZk4EQAAASlJREFUKM/dkj9LQnEUhp9zr3bpj1uBcKGiJWxzLWivKAIRjIhcCqcgqJbKRagPICiVSVEuNTu0tLYGUg4tkRGUdxLJ0u79Ndxr5FfwTO/L+xzO4XCgO+v2T70AFU+/A/Dhmlzg6Pr0DKAMwOH4zQxAAbAkv2xNeF2RoQUVc1ytgttXUbWVdN1dOPE8pz4j4APQsdFtKA0WY6vpKjqvVciHnvZTS6Ja4HgggJLs7MHxl9nCh8NYcO+iGG0agiaC4h9oa6Vsw2yiK+QHSZT934YoEQABNBcTNDszsrhm1m1B+bFS86PT6QFppx6oeSaeOwlMXRp1h4aK13Y2kuHhUo9ykPboPvFjeEvsrhTMt3ylHyB0r8KZyYdCrbfj4OveoHMANjuyx+76rV+/blxKMZUnLgAAAABJRU5ErkJggg=="></button>
<button onclick="animBYBDWVXULSOEHXUW.previous_frame()"><img class="anim_icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QURCAgyTCyQ6wAAANRJREFUKM9jYBjO4AiUfgzFGGAp4+yayUvX6jMwMDCsYmBgOCS4OAOrSYmMgcc8/pd5Q3irC+Neh/1AlmeBMVgZmP8yMLD8/c/cqv9r90whzv/MX7Eq/MfAwMDIwCuZdfSV8U8WDgZGRmYGrAoZGRgY/jO8b3sj/J2F6T8j4z80pzEhmIwMjAxsSbqqlkeZGP//Z8SlkJnhPwMjwx/Guoe1NhmRwk+YGH5jV8jOwMPHzcDBysAwh8FrxQwtPU99HrwBXsnAwMDAsJiBgYGBoZ1xmKYqALHhMpn1o7igAAAAAElFTkSuQmCC"></button>
<button onclick="animBYBDWVXULSOEHXUW.reverse_animation()"><img class="anim_icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QURCAgmVvZElgAAAVFJREFUKM+t0k8ow3EYx/H3s/2aLDUSZctFkgsHEi1XLi5ukpPSWsuJklwclsPSsDKFi7MSJ0I5qF2GHO2m0FY7+BdNv7Y9DpuxDSt5vsfvq+fT9/k+8D8VBxIAWH6H0ead4Qb5BRwCENoceZi5Stl/6BgCBmtWhjzxg4mUQ02rAhil7JgB9tze7aTLxFAKsUUd14B9ZzCyFUk401gQyQJaDNcBHwv7t7ETd0ZVQFEEzcNCdE/1wtj15imGWlEB8qkf2QaAWjbG/bPSamIDyX65/iwDIFx7tWjUvWCoSo5oGbYATN7PORt7W9IZEQXJH8ohuN7C0VVX91KNqYhq4a1lEGJI0j892tazXCWQRUpwAbYDcHczPxXuajq3mbnhfANz5eOJxsuNvs7+jud0UcuyL3QAkuEMx4rnIvBYq1JhEwPAUb3fG7x8tVdc292/7Po7f2VqA+Yz7ZwAAAAASUVORK5CYII="></button>
<button onclick="animBYBDWVXULSOEHXUW.pause_animation()"><img class="anim_icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QURCAkR91DQ2AAAAKtJREFUKM9jYCANTEVib2K4jcRbzQihGWEC00JuNjN8Z2Q0Zo3VYWA4lL005venH9+c3ZK5IfIsMIXMBtc12Bj+MMgxMDAwMPzWe2TBzPCf4SLcZCYY4/9/RgZGBiaYFf8gljFhKiQERhUOeoX/Gf8y/GX4y/APmlj+Mfxj+MfwH64Qnnq0zr9fyfLrPzP3eQYGBobvk5x4GX4xMIij23gdib0cRWYHiVmAAQDK5ircshCbHQAAAABJRU5ErkJggg=="></button>
<button onclick="animBYBDWVXULSOEHXUW.play_animation()"><img class="anim_icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QURCAkEmo00MwAAAS9JREFUKM+tkj1IQmEUhp9j94LQj0FD4RRBLdLQ3ftb26PRcCiQIIiIDFwKC0OhaAiam5wVDBpqCKohQojMLYzaAiUatOtpuQrKVQl64fu+4Xt4OLwc+Fs+nNM16jsPAWS6gZXggoZfXmfhog3hcZ6aTXF87Sp68OmH4/YggAo8bmfyyeh6Z1AAKPVldyO1+Iz2uILq3AriJSe3l+H7aj+cuRnrTsVDxSxay+VYbMDnCtZxxQOU9G4nlU9E1HQBxRkCQMRGRnIbpxMARkvxCIoAorYMMrq0mJ0qu4COUW3xyVDqJC4P+86P0ewDQbQqgevhlc2C8ETApXAEFLzvwa3EXG9BoIE1GQUbv1h7k4fTXxBu6cKgUbX5M3ZzNC+a7rQ936HV56SlRpcle+Mf8wvgJ16zo/4BtQAAAABJRU5ErkJggg=="></button>
<button onclick="animBYBDWVXULSOEHXUW.next_frame()"><img class="anim_icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QURCAkd/uac8wAAAMhJREFUKM9jYBie4DEUQ8B+fEq3+3UrMzAwMFxjYGBgYJizYubaOUxYFUaXh/6vWfRfEMIL/+//P5gZJoei4/f/7wxnY1PeNUXdE2RgYGZgYoCrY2BBVsjKwMDAwvCS4f3SG/dXxm5gYESSQ1HIwvCPgZmB8f8Pxv+Kxxb/YfiPJIdi9T8GJgaG/38ZFd4Fx0xUYsZt4h8GBgb2D2bLy7KnMTAwMEIxFoVCXIYr1IoDnkF4XAysqNIwUMDAwMDAsADKS2NkGL4AAIARMlfNIfZMAAAAAElFTkSuQmCC"></button>
<button onclick="animBYBDWVXULSOEHXUW.last_frame()"><img class="anim_icon" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAAAAXNSR0IArs4c6QAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QURCAknOOpFQQAAAS9JREFUKM/dkrEvQ3EQxz/33mtoQxiYpANbLU26NAabSCcSUouGBVNDjYQaOiDpIEiKjURIw2Kx04hEYmkHEpGoJpSISaXq9Wd4P03/ht5y98197/u9XA4aK4rAWw3lgWddZ3S+/G9mEovtAB8AHE4pgTQAx8PbJweRmsq6GimmNpxaNYXVzMNNCI6A2figimwCGACK786zuWgh3qcsKf/w0pM4X0m/doNVFVzVGlEQsdRj193VxEWpH0RsdRu+zi3tVMqCAsDShoiYqiSV4OouVDFEqS9Pbiyg7vV62lpQ2BJ4Gg0meg0MbNpkYG/e+540NNFyrE1a8qHk5BaAjfnrzUaHfAWImVrLIXbgnx4/9X06s35cweWsVACa3a24PVp0X+rPv1aHFnSONdiL8Qci0lzwpOM5sQAAAABJRU5ErkJggg=="></button>
<button onclick="animBYBDWVXULSOEHXUW.faster()">+</button>
<form action="#n" name="_anim_loop_selectBYBDWVXULSOEHXUW" class="anim_control">
<input type="radio" name="state" value="once" > Once </input>
<input type="radio" name="state" value="loop" checked> Loop </input>
<input type="radio" name="state" value="reflect" > Reflect </input>
</form>
</div>
<script language="javascript">
/* Instantiate the Animation class. */
/* The IDs given should match those used in the template above. */
(function() {
var img_id = "_anim_imgBYBDWVXULSOEHXUW";
var slider_id = "_anim_sliderBYBDWVXULSOEHXUW";
var loop_select_id = "_anim_loop_selectBYBDWVXULSOEHXUW";
var frames = new Array(0);
frames[0] = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAH0CAYAAACuKActAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3Wd0lNXehvFrJr0nJCGFAKEFQpGS0FE6KEoRAUGKHgER1KPYKO+xHRsWig2BI4KCUmxgR1ABEUSq1NBbSCghpPdk3g8hAyEBAkxmJnD/1pqVZM8ze/8nkrW8Z5fHYDKZTIiIiIiIiIiITRltXYCIiIiIiIiIKKCLiIiIiIiI2AUFdBERERERERE7oIAuIiIiIiIiYgcU0EVERERERETsgAK6iIiIiIiIiB1QQBcRERERERGxAwroIiIiIiIiInZAAV1ERERERETEDiigi4iIiIiIiNgBBXQRERERERERO6CALiIiIiIiImIHFNBFRERERERE7IACuoiIiIiIiIgdUEAXERERERERsQMK6CIiIiIiIiJ2QAFdRERERERExA4ooIuIiIiIiIjYAQV0ERERERERETuggC4iIiIiIiJiBxTQRUREREREROyAArqIiIiIiIiIHVBAFxEREREREbEDCugiIiIiIiIidkABXURERERERMQOKKCLiIiIiIiI2AEFdBERERERERE7oIAuIiIiIiIiYgcU0EVERERERETsgAK6iIiIiIiIiB1QQBcRERERERGxAwroIiIiIiIiInZAAV1ERERERETEDiigi4iIiIiIiNgBBXQRERERERERO6CALiIiIiIiImIHFNBFRERERERE7IACuoiIiIiIiIgdUEAXERERERERsQMK6CIiIiIiIiJ2wNHWBZSXhIQEli1bRnh4OG5ubrYuR0RERERERCqYzMxMDh8+TPfu3QkICCj38W7YgL5s2TKGDBli6zJERERERESkgps/fz6DBw8u93Fu2IAeHh4OFP4iIyMjbVuMyE1i7NixTJ061dZliEgp9PcpYt/0Nypin3bv3s2QIUPM+bK83bABvWhZe2RkJM2aNbNxNSI3Bx8fH/29idgp/X2K2Df9jYrYN2ttm9YhcSIiIiIiIiJ2QAFdRERERERExA4ooIuIiIiIiIjYAQV0EbGYQYMG2boEEbkE/X2K2Df9jYoIKKCLiAXpfy5E7Jf+PkXsm/5GRQQU0EVERERERETsggK6iIiIiIiIiB1QQBcRERERERGxAwroIiIiIiIiInZA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 truncated
frames[1] = "data:image/png;base64,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 truncated
frames[2] = "data:image/png;base64,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 truncated
frames[3] = "data:image/png;base64,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 truncated
frames[4] = "data:image/png;base64,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 truncated
frames[5] = "data:image/png;base64,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 truncated
frames[6] = "data:image/png;base64,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 truncated
frames[7] = "data:image/png;base64,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 truncated
frames[8] = "data:image/png;base64,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 truncated
frames[9] = "data:image/png;base64,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 truncated
frames[10] = "data:image/png;base64,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 truncated
frames[11] = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAH0CAYAAACuKActAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3XV0VHf6x/H3aCaTTIy4h0AEJ0hxdwrFKXWnblS2brv1lrZb926VlpZixb1oCBIgCRIS4u7JTEZ/f0wZSBOkv6XbpDyvczhp7lx55jJz6Od+TeFwOBwIIYQQQgghhBDiL6X8qwsQQgghhBBCCCGEBHQhhBBCCCGEEKJVkIAuhBBCCCGEEEK0AhLQhRBCCCGEEEKIVkACuhBCCCGEEEII0QpIQBdCCCGEEEIIIVoBCehCCCGEEEIIIUQrIAFdCCGEEEIIIYRoBSSgCyGEEEIIIYQQrYAEdCGEEEIIIYQQohWQgC6EEEIIIYQQQrQCEtCFEEIIIYQQQohWQAK6EEIIIYQQQgjRCkhAF0IIIYQQQgghWgEJ6EIIIYQQQgghRCsgAV0IIYQQQgghhGgFJKALIYQQQgghhBCtgAR0IYQQQgghhBCiFZCALoQQQgghhBBCtAIS0IUQQgghhBBCiFZAAroQQgghhBBCCNEKSEAXQgghhBBCCCFaAQnoQgghhBBCCCFEKyABXQghhBBCCCGEaAUkoAshhBBCCCGEEK2ABHQhhBBCCCGEEKIVkIAuhBBCCCGEEEK0AhLQhRBCCCGEEEKIVkACuhBCCCGEEEII0QpIQBdCCCGEEEIIIVoBCehCCCGEEEIIIUQrIAFdCCGEEEIIIYRoBSSgCyGEEEIIIYQQrYAEdCGEEEIIIYQQohWQgC6EEEIIIYQQQrQCEtCFEEIIIYQQQohWQAK6EEIIIYQQQgjRCkhAF0IIIYQQQgghWgEJ6EIIIYQQQgghRCsgAV0IIYQQQgghhGgF1H91AX+WsrIyVq1aRXR0NO7u7n91OUIIIYQQQggh2hij0Uh2djZjx47F39//T7/e3zagr1q1iquuuuqvLkMIIYQQQgghRBv31VdfceWVV/7p1/nbBvTo6GjAeSMTExP/2mKEuEjcd999zJ8//68uQwjRAvl+CtG6yXdUiNYpPT2dq666ypUv/2x/24B+slt7YmIiSUlJf3E1QlwcvL295fsmRCsl308hWjf5jgrRuv2vhk3LJHFCCCGEEEIIIUQrIAFdCCGEEEIIIYRoBSSgCyGEEEIIIYQQrYAEdCHEBTNnzpy/ugQhxBnI91OI1k2+o0IIkIAuhLiA5H8uhGi95PspROsm31EhBEhAF0IIIYQQQgghWgUJ6EIIIYQQQgghRCsgAV0IIYQQQgghhGgFJKALIYQQQgghhBCtgAR0IYQQQgghhBCiFZCAflJhITz9tPNnW9JW64a2W3tbrRvabu1ttW5ou7W31bqh7dbeVuuGtlt7W61bCCHE35YE9JMKC+GZZ9reP9JttW5ou7W31bqh7dbeVuuGtlt7W60b2m7tbbVuaLu1t9W6hRBC/G21mYDe2NjIww8/TGhoKHq9nn79+rF27dq/uiwhhBBCCCGEEOKCaDMB/brrrmP+/PlcffXVvPXWW6hUKiZMmMDWrVv/6tKEEEIIIYQQQoj/mvqvLuB87Nq1iwULFvDqq69y//33A3D11VfTpUsXHnroof9fSC8sbNqlbc+epj9PCglx/mkt2mrd0HZrb6t1Q9utva3WDW239rZaN7Td2ttq3dB2a2+rdQshhLh4ONqABx980KHRaBy1tbVNtr/wwgsOhULhyMvLa3ZMSkqKA3CkpKS0fNKnnnI44Nx/nnrqwr+h/0ZbrdvhaLu1t9W6HY62W3tbrdvhaLu1t9W6HY62W3tbrdvhaLu1t9W6hRBC/GXOmSsvMIXD4XD81Q8JzmX06NEUFhZy8ODBJtvXrVvH6NGjWbp0KRMnTmzy2p49e+jVqxcpKSkkJSU1P2lLT9Fvvhk++ghO37+1PUVvq3VD2629rdYNbbf2tlo3tN3a22rd0HZrb6t1Q9utva3WLYQQ4i9zzlx5gbWJLu6FhYWEtPAP5cltBQUF530uh8NBWloanp6eRLV0g5OSmv4j3dqc6X8aWnvd0HZrb6t1Q9utva3WDW239rZaN7Td2ttq3dB2a2+rdQshhLhotIlJ4oxGI25ubs2263Q61+vna968eXTp0oW4uDi+/vrrC1ajEEIIIYQQQgjx32gTAd3d3Z3GxsZm200mk+v187Fu3Trmz58PgNls5qabbuLAgQMMGzaM75YubbJvdXU1H3/8MYMHDyY9Pb3Ja+Xl5dx///307duXQ4cO/aH3UlNTw+zZs9m7dy8AqampTR4UmM1m1q1b53pvp7NYLLz22mu8//77Ld6PM7HZbM3qfOONN1iyZAkWi+Wsx9bV1VFZWQnAZ599Rn5+/jmvd/DgQbKzs6moqDjvGtPT02loaHD9bjKZKC0tPesxNTU11NbWNtve0NBw1r+X8vLy864LnPf9XPfpQlxHCCGEEEIIcXFrE13cQ0JCWuzGXvjbOLLQ0NAzHnv9XTfg4aXHbDJzcGfTMewmk4l+A/vRUNvApk2bWBLqT9+URWz75EUWf7oYs8kMwNPvPkPfkX1I2ZhCysYUjqYe5eTQ/fFTxnPL07cwcOIglMpzP+/44qXP+f777/l116/U19ZTXV6Nm7sbvkP98PDyYN+v+7h34j1odVq69e9G0tAkfAP8yNibwcZFG6iuqAYHPPbUY/QckkREgA9P/eM6Cj1PYK6pc12noa6B3et3s23lVnas2kFNZS2LMxfj6eNJVVkVDz78EFazBe923ky5eQqTrpuMf4g/DoeDjD0ZJK9PJmXDbg7tOsQ1D1/LkElDuOGGG1AoFHQb0I3hU4czbOpwfPx9XNe02+3s2bSHl+98iZK8Etw93Hnso8fpN7YfanXzj5rWs5yQf1xHjvYYV06ah8ViYfDEwRSeKCRlYwpjLh/D/fPnYWowUVFcgY+/D3qD3nX8O4++zZoFa7jiviuIjIvi4I4D7Nu6n4yUdLz8vPjx8E8oFIom1yzKKeKmQTdy1QNXcfndc1zbFV8ecP234+quTY75+vWvWfP9Gu555R56Du7pqrvQ8wR73nHe8y5Xg7nRzOrvVqPVaUkaksQNA25gxPQR3Prsrej0unN+Nv4XTq/99M/L+XBTutHP85I/qbJzCAmBp55qm2NC22rtbbVuaLu1t9W6oe3W3lbrFkII8af49ttv+fbbb5tsq66u/p/W0CYmiXvooYeYP38+FRUVGAwG1/bnn3+exx9/nNzcXMLCwpocc3Iwv4evBw3VDTjs5/82Pdt5Uld+KryotWqsZutZj+kxoSdj7hpLZLeoM+6TmXyMt2a8gd1ub1bPZY9OZfQdY1j28hJWvrnivGt183Bj6hPTuGRWfxx2B4e3ZHBw7QEqCypJ29C0Ffnat6+n56VJ/Gv4s5RmnWqd9g72prqoGp8QHxx2B0qVksqCStfrHfp1pGP/jqyY/0uT88UNSkDv7Y53sA+1JTUc2XYY31A/cg/kNNnPO9ibSx+aTK/JvdG6a5u8VpZTxuLnF7F36R50njpMdad6Drh7uWO32Wmsd/YWuPnjuXQf3wOHw0HmrkzenPk6DtuZ/16f2Pw0QbFBrt/tdjtvz36T7H3Z6AzudOzXkRnPzcLQzoB67nLXftYPTk04WJFfwT+HPoPZ6HxY03tqH6Y8Pg2fYOeDiZVznQ8APAZsZMUbv1BTUoNPiA8h8SGkb3T2vAhsH8id396NX3i7M9baFnio9FwXdM1fXYYQQgghhBD/MzJJXAtmzJjBq6++yocffsi8efMAaGxs5LPPPqNfv37Nwvnp6ivr//D1Tg/nwDnDOUB+eh4vj3+RhCGJjLlzLB0HxKFQKLCYLOxfuY/t320j71AuNqutxeOXvPgzFfnl+IT4ENwxmKKjRadeVCqghQcMnn6e1FXU8d0/vmX5q8vw8POg6IjzOEOAl2s/v3A/uozuRkjHEFRqVZNwDlBd5HwqVFVYBYBKowKgXaQ/XUZ1odPwzuTsP4Hex4OGKuf9VKgUHNmaAb8rS++tR6lSYrfZXdvc9G58ff+X/PTMQi6Z0Y+OA+MpOVbEtm+3UZpV4trv9HCu1Wvx8POgsqAS31BfNDoNqSv3kbJkN8d3ZVJVVNXifVRpVHTo35HEoZ1w92o69KGxvhG1TkNUj2iObjtCyuLdHN6SwYx/zuISh6NZazuAAogfnMCB1akA7F6UzIHVqUyYdynDbhjOya9QdUkNNSU1aHQa/KMCmrwXD18PXpn0Mte9dT3xgxNarFsIIYQQQggh2kQLOsDs2bNZtGgR9913H7GxsXzxxRfs3r2bdevWMWjQoGb7n3zSoVAq/lDreUtUGhU2izNY+4b6EtE1ErvdzqH1B3HYHER2jyJn/4kmxwy+dggGfy/y0vJIXbHPtd0QYKC21DluWqFSoFKrsDY6HwDovfU0VDvHYWt0Giym08Y9KxTO1VmhWQD+PZ2njs6juhCT1J6OA+IITXAOAcjek0XGlgxWzv/F9aDg9/fHO9iH6tPC78hbRxHRLYrakmoytmRwdPsRzA1mtO5aV6vyyZpQgN1qJzophrhB8dSV1bJnaQoBMYHkpjZtVT/5cAFA7aYmqkc0SrWK48nHCO8czom9Te9nS7TuWsK6hFOZV0lVobPFX++jx91bz+jbxzBgzkBnXadxOBwUHi7g6we+4sTebNf2MXeOZdy9E5q18J90cO0BFj75PWUnylzb+s8ZwIT7L8U31Jfa8lo+u/VjclJzMNWZ6HVZbxKGJrLqzRXUlddhqjOhUCgYdccYLn1gkushSFsiLehCCCGEEOJi879uQW8zAb2xsZEnnniCr776isrKSrp3785zzz3H6NGjW9z/5I28EHSeOlRuaobfMJzRd45FpXaGq7KcMlb/eyUlx4s5tuOYa3/fMF8q852BUefljqnGOcu8Uq3kkpn9CesUhqevJLine truncated
frames[12] = "data:image/png;base64,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 truncated
frames[13] = "data:image/png;base64,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 truncated
/* set a timeout to make sure all the above elements are created before
the object is initialized. */
setTimeout(function() {
animBYBDWVXULSOEHXUW = new Animation(frames, img_id, slider_id, 33, loop_select_id);
}, 0);
})()
</script>
+5
View File
@@ -0,0 +1,5 @@
FWD DC
MESH FILE Mesh_2D.msh
LOC LOC_X OBS_LOC.dat
TOPO DEFAULT
COND FILE MtIsa_2D.con
+325
View File
@@ -0,0 +1,325 @@
0 0 75 150
0 0 150 225
0 0 225 300
0 0 300 375
0 0 375 450
0 0 450 525
0 0 525 600
0 0 600 675
0 0 675 750
0 0 750 825
0 0 825 900
0 0 900 975
0 0 975 1050
0 0 1050 1125
0 0 1125 1200
0 0 1200 1275
0 0 1275 1350
0 0 1350 1425
0 0 1425 1500
0 0 1500 1575
0 0 1575 1650
0 0 1650 1725
0 0 1725 1800
0 0 1800 1875
0 0 1875 1950
75 75 150 225
75 75 225 300
75 75 300 375
75 75 375 450
75 75 450 525
75 75 525 600
75 75 600 675
75 75 675 750
75 75 750 825
75 75 825 900
75 75 900 975
75 75 975 1050
75 75 1050 1125
75 75 1125 1200
75 75 1200 1275
75 75 1275 1350
75 75 1350 1425
75 75 1425 1500
75 75 1500 1575
75 75 1575 1650
75 75 1650 1725
75 75 1725 1800
75 75 1800 1875
75 75 1875 1950
150 150 225 300
150 150 300 375
150 150 375 450
150 150 450 525
150 150 525 600
150 150 600 675
150 150 675 750
150 150 750 825
150 150 825 900
150 150 900 975
150 150 975 1050
150 150 1050 1125
150 150 1125 1200
150 150 1200 1275
150 150 1275 1350
150 150 1350 1425
150 150 1425 1500
150 150 1500 1575
150 150 1575 1650
150 150 1650 1725
150 150 1725 1800
150 150 1800 1875
150 150 1875 1950
225 225 300 375
225 225 375 450
225 225 450 525
225 225 525 600
225 225 600 675
225 225 675 750
225 225 750 825
225 225 825 900
225 225 900 975
225 225 975 1050
225 225 1050 1125
225 225 1125 1200
225 225 1200 1275
225 225 1275 1350
225 225 1350 1425
225 225 1425 1500
225 225 1500 1575
225 225 1575 1650
225 225 1650 1725
225 225 1725 1800
225 225 1800 1875
225 225 1875 1950
300 300 375 450
300 300 450 525
300 300 525 600
300 300 600 675
300 300 675 750
300 300 750 825
300 300 825 900
300 300 900 975
300 300 975 1050
300 300 1050 1125
300 300 1125 1200
300 300 1200 1275
300 300 1275 1350
300 300 1350 1425
300 300 1425 1500
300 300 1500 1575
300 300 1575 1650
300 300 1650 1725
300 300 1725 1800
300 300 1800 1875
300 300 1875 1950
375 375 450 525
375 375 525 600
375 375 600 675
375 375 675 750
375 375 750 825
375 375 825 900
375 375 900 975
375 375 975 1050
375 375 1050 1125
375 375 1125 1200
375 375 1200 1275
375 375 1275 1350
375 375 1350 1425
375 375 1425 1500
375 375 1500 1575
375 375 1575 1650
375 375 1650 1725
375 375 1725 1800
375 375 1800 1875
375 375 1875 1950
450 450 525 600
450 450 600 675
450 450 675 750
450 450 750 825
450 450 825 900
450 450 900 975
450 450 975 1050
450 450 1050 1125
450 450 1125 1200
450 450 1200 1275
450 450 1275 1350
450 450 1350 1425
450 450 1425 1500
450 450 1500 1575
450 450 1575 1650
450 450 1650 1725
450 450 1725 1800
450 450 1800 1875
450 450 1875 1950
525 525 600 675
525 525 675 750
525 525 750 825
525 525 825 900
525 525 900 975
525 525 975 1050
525 525 1050 1125
525 525 1125 1200
525 525 1200 1275
525 525 1275 1350
525 525 1350 1425
525 525 1425 1500
525 525 1500 1575
525 525 1575 1650
525 525 1650 1725
525 525 1725 1800
525 525 1800 1875
525 525 1875 1950
600 600 675 750
600 600 750 825
600 600 825 900
600 600 900 975
600 600 975 1050
600 600 1050 1125
600 600 1125 1200
600 600 1200 1275
600 600 1275 1350
600 600 1350 1425
600 600 1425 1500
600 600 1500 1575
600 600 1575 1650
600 600 1650 1725
600 600 1725 1800
600 600 1800 1875
600 600 1875 1950
675 675 750 825
675 675 825 900
675 675 900 975
675 675 975 1050
675 675 1050 1125
675 675 1125 1200
675 675 1200 1275
675 675 1275 1350
675 675 1350 1425
675 675 1425 1500
675 675 1500 1575
675 675 1575 1650
675 675 1650 1725
675 675 1725 1800
675 675 1800 1875
675 675 1875 1950
750 750 825 900
750 750 900 975
750 750 975 1050
750 750 1050 1125
750 750 1125 1200
750 750 1200 1275
750 750 1275 1350
750 750 1350 1425
750 750 1425 1500
750 750 1500 1575
750 750 1575 1650
750 750 1650 1725
750 750 1725 1800
750 750 1800 1875
750 750 1875 1950
825 825 900 975
825 825 975 1050
825 825 1050 1125
825 825 1125 1200
825 825 1200 1275
825 825 1275 1350
825 825 1350 1425
825 825 1425 1500
825 825 1500 1575
825 825 1575 1650
825 825 1650 1725
825 825 1725 1800
825 825 1800 1875
825 825 1875 1950
900 900 975 1050
900 900 1050 1125
900 900 1125 1200
900 900 1200 1275
900 900 1275 1350
900 900 1350 1425
900 900 1425 1500
900 900 1500 1575
900 900 1575 1650
900 900 1650 1725
900 900 1725 1800
900 900 1800 1875
900 900 1875 1950
975 975 1050 1125
975 975 1125 1200
975 975 1200 1275
975 975 1275 1350
975 975 1350 1425
975 975 1425 1500
975 975 1500 1575
975 975 1575 1650
975 975 1650 1725
975 975 1725 1800
975 975 1800 1875
975 975 1875 1950
1050 1050 1125 1200
1050 1050 1200 1275
1050 1050 1275 1350
1050 1050 1350 1425
1050 1050 1425 1500
1050 1050 1500 1575
1050 1050 1575 1650
1050 1050 1650 1725
1050 1050 1725 1800
1050 1050 1800 1875
1050 1050 1875 1950
1125 1125 1200 1275
1125 1125 1275 1350
1125 1125 1350 1425
1125 1125 1425 1500
1125 1125 1500 1575
1125 1125 1575 1650
1125 1125 1650 1725
1125 1125 1725 1800
1125 1125 1800 1875
1125 1125 1875 1950
1200 1200 1275 1350
1200 1200 1350 1425
1200 1200 1425 1500
1200 1200 1500 1575
1200 1200 1575 1650
1200 1200 1650 1725
1200 1200 1725 1800
1200 1200 1800 1875
1200 1200 1875 1950
1275 1275 1350 1425
1275 1275 1425 1500
1275 1275 1500 1575
1275 1275 1575 1650
1275 1275 1650 1725
1275 1275 1725 1800
1275 1275 1800 1875
1275 1275 1875 1950
1350 1350 1425 1500
1350 1350 1500 1575
1350 1350 1575 1650
1350 1350 1650 1725
1350 1350 1725 1800
1350 1350 1800 1875
1350 1350 1875 1950
1425 1425 1500 1575
1425 1425 1575 1650
1425 1425 1650 1725
1425 1425 1725 1800
1425 1425 1800 1875
1425 1425 1875 1950
1500 1500 1575 1650
1500 1500 1650 1725
1500 1500 1725 1800
1500 1500 1800 1875
1500 1500 1875 1950
1575 1575 1650 1725
1575 1575 1725 1800
1575 1575 1800 1875
1575 1575 1875 1950
1650 1650 1725 1800
1650 1650 1800 1875
1650 1650 1875 1950
1725 1725 1800 1875
1725 1725 1875 1950
1800 1800 1875 1950
@@ -1,5 +1,5 @@
from SimPEG import *
import simpegDC as DC
import simpegDCIP as DC
import matplotlib.pyplot as plt
@@ -26,7 +26,7 @@ def run(plotIt=False):
rx = DC.RxDipole(xyz_rxP, xyz_rxN)
src = DC.SrcDipole([rx], [-200, 0, -12.5], [+200, 0, -12.5])
survey = DC.SurveyDC([src])
problem = DC.ProblemDC(mesh)
problem = DC.ProblemDC_CC(mesh)
problem.pair(survey)
try:
from pymatsolver import MumpsSolver
@@ -1,5 +1,5 @@
from SimPEG import *
import simpegDC as DC
import simpegDCIP as DC
import matplotlib.pyplot as plt
@@ -55,7 +55,7 @@ def example(aSpacing=2.5, nElecs=10, plotIt=False):
srcList = getSrcList(nElecs, aSpacing, in2D=True)
survey = DC.SurveyDC(srcList)
problem = DC.ProblemDC(mesh)
problem = DC.ProblemDC_CC(mesh)
problem.pair(survey)
return mesh, survey, problem
File renamed without changes.
File renamed without changes.
@@ -1,6 +1,6 @@
import unittest
from SimPEG import *
import simpegDC as DC
import simpegDCIP as DC
class DCProblemTests(unittest.TestCase):
@@ -38,8 +38,8 @@ class DCProblemTests(unittest.TestCase):
u = np.random.rand(self.mesh.nC*self.survey.nSrc)
v = np.random.rand(self.mesh.nC)
w = np.random.rand(self.survey.dobs.shape[0])
wtJv = w.dot(self.p.Jvec(self.m0, v, u=u))
vtJtw = v.dot(self.p.Jtvec(self.m0, w, u=u))
wtJv = w.dot(self.p.Jvec(self.m0, v))
vtJtw = v.dot(self.p.Jtvec(self.m0, w))
passed = np.abs(wtJv - vtJtw) < 1e-10
print 'Adjoint Test', np.abs(wtJv - vtJtw), passed
self.assertTrue(passed)
@@ -1,5 +1,5 @@
import unittest
import simpegDC as DC
import simpegDCIP as DC
class DCAnalyticTests(unittest.TestCase):
@@ -8,6 +8,5 @@ class DCAnalyticTests(unittest.TestCase):
self.assertTrue(DC.Examples.Verification.run() < 0.1)
if __name__ == '__main__':
unittest.main()
@@ -0,0 +1,57 @@
import unittest
import simpegDCIP as DC
from SimPEG import *
from pymatsolver import MumpsSolver
class IPforwardTests(unittest.TestCase):
def test_IPforward(self):
cs = 12.5
nc = 500/cs+1
hx = [(cs,7, -1.3),(cs,nc),(cs,7, 1.3)]
hy = [(cs,7, -1.3),(cs,int(nc/2+1)),(cs,7, 1.3)]
hz = [(cs,7, -1.3),(cs,int(nc/2+1))]
mesh = Mesh.TensorMesh([hx, hy, hz], 'CCN')
sighalf = 1e-2
sigma = np.ones(mesh.nC)*sighalf
p0 = np.r_[-50., 50., -50.]
p1 = np.r_[ 50.,-50., -150.]
blk_ind = Utils.ModelBuilder.getIndicesBlock(p0, p1, mesh.gridCC)
sigma[blk_ind] = 1e-3
eta = np.zeros_like(sigma)
eta[blk_ind] = 0.1
sigmaInf = sigma.copy()
sigma0 = sigma*(1-eta)
nElecs = 11
x_temp = np.linspace(-250, 250, nElecs)
aSpacing = x_temp[1]-x_temp[0]
y_temp = 0.
xyz = Utils.ndgrid(x_temp, np.r_[y_temp], np.r_[0.])
srcList = DC.Examples.WennerArray.getSrcList(nElecs,aSpacing)
survey = DC.SurveyDC(srcList)
imap = Maps.IdentityMap(mesh)
problem = DC.ProblemDC_CC(mesh, mapping= imap )
problem.Solver = MumpsSolver
problem.pair(survey)
phi0 = survey.dpred(sigma0)
phiInf = survey.dpred(sigmaInf)
phiIP_true = phi0-phiInf
surveyIP = DC.SurveyIP(srcList)
problemIP = DC.ProblemIP(mesh, sigma=sigma)
problemIP.pair(surveyIP)
problemIP.Solver = MumpsSolver
phiIP_approx = surveyIP.dpred(eta)
err = np.linalg.norm(phiIP_true-phiIP_approx) / np.linalg.norm(phiIP_true)
self.assertTrue(err < 0.02)
if __name__ == '__main__':
unittest.main()
+80
View File
@@ -0,0 +1,80 @@
import unittest
from SimPEG import *
import simpegDCIP as DC
from pymatsolver import MumpsSolver
class IPProblemTests(unittest.TestCase):
def setUp(self):
cs = 12.5
nc = 500/cs+1
hx = [(cs,0, -1.3),(cs,nc),(cs,0, 1.3)]
hy = [(cs,0, -1.3),(cs,int(nc/2+1)),(cs,0, 1.3)]
hz = [(cs,0, -1.3),(cs,int(nc/2+1))]
mesh = Mesh.TensorMesh([hx, hy, hz], 'CCN')
sighalf = 1e-2
sigma = np.ones(mesh.nC)*sighalf
p0 = np.r_[-50., 50., -50.]
p1 = np.r_[ 50.,-50., -150.]
blk_ind = Utils.ModelBuilder.getIndicesBlock(p0, p1, mesh.gridCC)
sigma[blk_ind] = 1e-3
eta = np.zeros_like(sigma)
eta[blk_ind] = 0.1
nElecs = 5
x_temp = np.linspace(-250, 250, nElecs)
aSpacing = x_temp[1]-x_temp[0]
y_temp = 0.
xyz = Utils.ndgrid(x_temp, np.r_[y_temp], np.r_[0.])
srcList = DC.Examples.WennerArray.getSrcList(nElecs,aSpacing)
survey = DC.SurveyIP(srcList)
imap = Maps.IdentityMap(mesh)
problem = DC.ProblemIP(mesh, sigma=sigma, mapping= imap)
problem.pair(survey)
problem.Solver = MumpsSolver
mSynth = eta
survey.makeSyntheticData(mSynth)
# Now set up the problem to do some minimization
dmis = DataMisfit.l2_DataMisfit(survey)
reg = Regularization.Tikhonov(mesh)
opt = Optimization.InexactGaussNewton(maxIterLS=20, maxIter=10, tolF=1e-6, tolX=1e-6, tolG=1e-6, maxIterCG=6)
invProb = InvProblem.BaseInvProblem(dmis, reg, opt, beta=1e4)
inv = Inversion.BaseInversion(invProb)
self.inv = inv
self.reg = reg
self.p = problem
self.mesh = mesh
self.m0 = mSynth
self.survey = survey
self.dmis = dmis
def test_misfit(self):
derChk = lambda m: [self.survey.dpred(m), lambda mx: self.p.Jvec(self.m0, mx)]
passed = Tests.checkDerivative(derChk, self.m0*0, plotIt=False)
self.assertTrue(passed)
def test_adjoint(self):
# Adjoint Test
u = np.random.rand(self.mesh.nC*self.survey.nSrc)
v = np.random.rand(self.mesh.nC)
w = np.random.rand(self.survey.dobs.shape[0])
wtJv = w.dot(self.p.Jvec(self.m0, v))
vtJtw = v.dot(self.p.Jtvec(self.m0, w))
passed = np.abs(wtJv - vtJtw) < 1e-10
print 'Adjoint Test', np.abs(wtJv - vtJtw), passed
self.assertTrue(passed)
def test_dataObj(self):
derChk = lambda m: [self.dmis.eval(m), self.dmis.evalDeriv(m)]
passed = Tests.checkDerivative(derChk, self.m0, plotIt=False)
self.assertTrue(passed)
if __name__ == '__main__':
unittest.main()
@@ -1,2 +1,3 @@
from BaseDC import *
from BaseIP import *
import Examples