{ "metadata": { "name": "To_make_up_microseismic.ipynb" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.kernel.zmq.pylab.backend_inline].\n", "For more information, type 'help(pylab)'.\n" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np\n", "from scipy.interpolate import splprep, splev\n", "import matplotlib.pyplot as plt\n", "import mayavi.mlab as mplt\n", "from mpl_toolkits.mplot3d import Axes3D" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Define a borehole path" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define the trajectory of a borehole, using a series of x,y,z tuples, and make each component of the borehole an array. If we had a real well, we load the numbers from the deviation survey just the same." ] }, { "cell_type": "code", "collapsed": false, "input": [ "trajectory = np.array([[ 0, 0, 0],\n", " [ 0, 0, -100],\n", " [ 0, 0, -200],\n", " [ 5, 0, -300],\n", " [ 10, 10, -400],\n", " [ 20, 20, -500],\n", " [ 40, 80, -650],\n", " [ 160, 160, -700],\n", " [ 600, 400, -800],\n", " [1500, 960, -800]])\n", "x = trajectory[:,0]\n", "y = trajectory[:,1]\n", "z = trajectory[:,2]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "But, since we want the borehole to be continuous and smoothly shaped, we can up-sample the borehole by finding the B-Spline representation of the well path," ] }, { "cell_type": "code", "collapsed": false, "input": [ "smoothness = 3.0\n", "spline_order = 3\n", "nest = -1 # estimate of number of knots needed (-1 = maximal)\n", "knot_points, u = splprep([x,y,z], s=smoothness, k=spline_order, nest=-1)\n", "\n", "# Evaluate spline, including interpolated points\n", "x_int, y_int, z_int = splev(np.linspace(0, 1, 400), knot_points)\n", "\n", "plt.gca(projection='3d')\n", "plt.plot(x_int, y_int, z_int, color='grey', lw=3, alpha=0.75)\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "display_data", "png": "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\n0BMAAAAASUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 4 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Define frac ports" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's define a completion program so that our wellbore has 6 frac stages," ] }, { "cell_type": "code", "collapsed": false, "input": [ "number_of_fracs = 6" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "and let's make it so that each one emanates from equally spaced frac ports spanning the bottom two-thirds of the well." ] }, { "cell_type": "code", "collapsed": false, "input": [ "x_frac, y_frac, z_frac = splev(np.linspace(0.33, 1, number_of_fracs), knot_points)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make a set of 3D axes, so we can plot the well path and the frac ports:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "ax = plt.axes(projection='3d')\n", "ax.plot(x_int, y_int, z_int, color='grey', lw=3, alpha=0.75)\n", "ax.scatter(x_frac, y_frac, z_frac, s=100, c='grey')\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "display_data", "png": "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\n", "text": [ "" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Set a colour for each stage by cycling through red, green, and blue," ] }, { "cell_type": "code", "collapsed": false, "input": [ "stage_color = []\n", "for i in np.arange(number_of_fracs):\n", " color = (1.0, 0.1, 0.1)\n", " stage_color.append(np.roll(color, i))\n", "stage_color = tuple(map(tuple, stage_color))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Define microseismic points" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One approach is to create some dimensions for each frac stage and generate 100 points randomly within each zone. Each frac has an *x* half-length, *y* half-length, and *z* half-length. Let's also vary these randomly for each of the 6 stages. Define the dimensions for each stage:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "frac_dims = []\n", "half_extents = [500, 1000, 250]\n", "for i in range(number_of_fracs):\n", " for j in range(len(half_extents)):\n", " dim = np.random.rand(3)[j] * half_extents[j]\n", " frac_dims.append(dim) \n", "frac_dims = np.reshape(frac_dims, (number_of_fracs, 3))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot microseismic point clouds with 100 points for each stage. The following code should launch a 3D viewer scene in its own window:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "size_scalar = 100000\n", "mplt.plot3d(x_int, y_int, z_int, tube_radius=10)\n", "for i in range(number_of_fracs):\n", " x_cloud = frac_dims[i,0] * (rand(100) - 0.5)\n", " y_cloud = frac_dims[i,1] * (rand(100) - 0.5)\n", " z_cloud = frac_dims[i,2] * (rand(100) - 0.5)\n", "\n", " x_event = x_frac[i] + x_cloud\n", " y_event = y_frac[i] + y_cloud \n", " z_event = z_frac[i] + z_cloud\n", " \n", " # Let's make the size of each point inversely proportional \n", " # to the distance from the frac port\n", " size = size_scalar / ((x_cloud**2 + y_cloud**2 + z_cloud**2)**0.002)\n", " \n", " mplt.points3d(x_event, y_event, z_event, size, mode='sphere', colormap='jet')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can swap out the last line in the code block above with mplt.points3d(x_event, y_event, z_event, size, mode='sphere', color = stage_color[i]) to colour each event by its corresponding stage." ] } ], "metadata": {} } ] }