{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Required\n", "\n", "- `bruges`\n", "- `welly`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Coordinate transformation in `bruges`\n", "\n", "The idea is that you have UTM coordinates of three unique inline, crossline locations in a seismic survey (e.g. three cornerpoints). Once you have provided these, you can look up the (x,y) location of any (inline, xline) location, or vice versa." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import bruges" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define the cornerpoints:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# UTM coords of 3 unique inline, crossline locations.\n", "corners_xy = np.array([[600938.125, 6073394.5],\n", " [631226.3125, 6074241.0],\n", " [630720.25, 6092358.5]])\n", "\n", "# The inline, crossline locations you just provided.\n", "corners_ix = np.array([[99, 104],\n", " [99, 1316],\n", " [824,1316]])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `CoordTransform` class provides a function, which we'll call `transform`." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "transform = bruges.transform.CoordTransform(corners_ix, corners_xy)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 617168.67831747, 6082376.23932798])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "transform([440, 763]) # Or, equivalently, transform.forward([440, 763])\n", "\n", "# Should be [617167, 6082379]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also go back, from (x, y) to (inline, crossline). " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([440, 763])" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "transform.reverse([617167, 6082379])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "(If you *only* wanted the reverse function, you could also just have passed the coordinate arrays in to the instantiation in reverse order.)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dealing with the vertical axis: no velocity model\n", "\n", "To get the seismic sample belonging to a particular depth, we need a velocity model.\n", "\n", "If you already have an average velocity model in depth, then you can just look up the velocity and convert it directly.\n", "\n", "But let's assume you only have a sonic well log for velocity information..." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "from welly import Well\n", "\n", "w = Well.from_las(\"data/F03-04.las\")" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'CALI': Curve([ nan, nan, nan, ..., nan, nan, nan]),\n", " 'DRHO': Curve([ nan, nan, nan, ..., nan, nan, nan]),\n", " 'DT': Curve([ nan, nan, nan, ..., nan, nan, nan]),\n", " 'GR': Curve([ nan, nan, nan, ..., nan, nan, nan]),\n", " 'ILD': Curve([ nan, nan, nan, ..., nan, nan, nan]),\n", " 'LLD': Curve([ nan, nan, nan, ..., nan, nan, nan]),\n", " 'LLS': Curve([ nan, nan, nan, ..., nan, nan, nan]),\n", " 'MSFL': Curve([ nan, nan, nan, ..., nan, nan, nan]),\n", " 'NPHI': Curve([ nan, nan, nan, ..., nan, nan, nan]),\n", " 'RHOB': Curve([ nan, nan, nan, ..., nan, nan, nan]),\n", " 'SN': Curve([ nan, nan, nan, ..., nan, nan, nan]),\n", " 'SP': Curve([ nan, nan, nan, ..., nan, nan, nan])}" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "w.data" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "dt = w.data['DT']" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dt.plot()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'US/F'" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dt.units" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
DT [US/F]
38.0000 : 3156.8660 : 0.1524
description3 BHC
runNone
service_company
code
null-999.25
date
Stats
samples (NaNs)20465 (2933)
min mean max54.36 119.321 203.60
DepthValue
38.0000nan
38.1524nan
38.3048nan
3156.4088nan
3156.5612nan
3156.7136nan
" ], "text/plain": [ "Curve([ nan, nan, nan, ..., nan, nan, nan])" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dt" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Correct for feet and microseconds.\n", "vp = 0.3048 * 1e6 / dt" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "38.0" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vp.start" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
DT [US/F]
38.0000 : 3156.8660 : 0.1524
runNone
service_company
code
null-999.25
date
Stats
samples (NaNs)20465 (0)
min mean max1497.04 2702.927 5607.01
DepthValue
38.00004107.1049
38.15244107.1049
38.30484107.1049
3156.40882178.1177
3156.56122178.1177
3156.71362178.1177
" ], "text/plain": [ "Curve([ 4107.10488721, 4107.10488721, 4107.10488721, ..., 2178.11774128,\n", " 2178.11774128, 2178.11774128])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vp.interpolate()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "vp = vp.to_basis(start=0).extrapolate()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "vp = vp.despike().smooth(20)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vp.plot()" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
DT [US/F]
0.0000 : 3156.9660 : 0.1524
runNone
service_company
code
null-999.25
date
Stats
samples (NaNs)20715 (0)
min mean max1551.33 2719.812 5007.77
DepthValue
0.00004107.1049
0.15244107.1049
0.30484107.1049
3156.50882178.1177
3156.66122178.1177
3156.81362178.1177
" ], "text/plain": [ "Curve([ 4107.10488721, 4107.10488721, 4107.10488721, ..., 2178.11774128,\n", " 2178.11774128, 2178.11774128])" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get Vp log in time:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import bruges" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(581,)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dt = 0.004 # seconds seismic sample interval\n", "vp_t = bruges.transform.depth_to_time(vp, vmodel=vp, dt=dt, dz=vp.step, mode='linear')\n", "vp_t.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It's too short (must match seismic trace), so pad it:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "vp_t = np.pad(vp_t, pad_width=[0, 1000-vp_t.size], mode='edge')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make a random trace and use time-based model to convert it to depth:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "tr = np.random.randn(1000)\n", "dz = 0.5 # Depth sample interval\n", "tr_z = bruges.transform.time_to_depth(tr, vmodel=vp_t, dt=dt, dz=dz, mode=\"linear\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Make a basis for the seismic in depth:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [], "source": [ "basis = np.linspace(0, tr_z.size*dz, tr_z.size+1)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0.00000000e+00, 5.00000000e-01, 1.00000000e+00, ...,\n", " 4.57450000e+03, 4.57500000e+03, 4.57550000e+03])" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "basis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This basis gives the depths in 0.5 m intervals. To get the seismic sample at a particluar depth, get it from tr_z, which is the seismic amplitude in depth (i.e. the same basis)." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [conda env:bruges]", "language": "python", "name": "conda-env-bruges-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" } }, "nbformat": 4, "nbformat_minor": 1 }