Source code for pygeopressure.velocity.extrapolate
# -*- coding: utf-8 -*-
"""
Functions relating velocity trend extrapolation
"""
from __future__ import (absolute_import, division, print_function,
unicode_literals)
__author__ = "yuhao"
import numpy as np
from pygeopressure.basic.well_log import Log
# from ..well_log import Log
v0 = 1600 # take values larger than 1500
[docs]def set_v0(v):
"""
set global variable v0 for slotnick()
"""
global v0
v0 = v
[docs]def normal(x, a, b):
r"""
Extrapolate velocity using normal trend.
Parameters
----------
x : 1-d ndarray
depth to convert
a, b : scalar
coefficents
Returns
-------
out : 1-d ndarray
esitmated velocity
Notes
-----
.. math:: \log d{t}_{Normal}=a-bz
is transformed to
.. math:: v={e}^{bz-a}
**Note** that the exponential relation is unphysical especially in depth
bellow the interval within which the equation is calibrated.
References
----------
.. [1] C. Hottmann, R. Johnson, and others, "Estimation of formation
pressures from log-derived shale properties," Journal of Petroleum
Technology, vol. 17, no. 6, pp. 717-722, 1965.
"""
return np.exp(x*b - a)
[docs]def normal_log(vel_log, a, b):
"""
Returns
-------
Log
normal velocity log
"""
normal_vel = normal(np.array(vel_log.depth), a, b)
mask = np.isnan(np.array(vel_log.data))
normal_vel[mask] = np.nan
log = Log()
log.depth = np.array(vel_log.depth)
log.data = normal_vel
log.name = 'normal_vel_log'
log.descr = "Velocity_normal"
log.units = "m/s"
return log
[docs]def slotnick(x, k):
"""
Relation between velocity and depth
Parameters
----------
x : 1-d ndarray
Depth to convert
k : scalar
velocity gradient
Notes
-----
typical values of velocity gradient k falls in the range 0.6-1.0s-1
References
----------
.. [1] M. Slotnick, "On seismic computations, with applications, I,"
Geophysics, vol. 1, no. 1, pp. 9-22, 1936.
"""
global v0
return v0 + k*x
[docs]def normal_dt(x, a, b):
"""
normal trend of transit time
Parameters
----------
x : 1-d ndarray
depth to convert
"""
return a - b * x