Source code for pygeopressure.pressure.hydrostatic
# -*- coding: utf-8 -*-
"""
Function to calculate hydrostatic pressure
Created on Fri Nov 11 2016
"""
from __future__ import (absolute_import, division, print_function,
unicode_literals)
__author__ = "yuhao"
import numpy as np
from pygeopressure.basic.well_log import Log
[docs]def hydrostatic_pressure(depth, kelly_bushing=0, depth_w=0, rho_f=1., rho_w=1.):
"""
Parameters
----------
depth : scalar or 1-d ndarray
measured depth, unit: meter
rho_f : scalar
density of pore fluid, g/cm3
kelly_bushing : scalar
kelly bushing elevation, in meter
depth_w : scalar
sea water depth
rho_w : scalar
sea water density
Returns
-------
pressure : scalar or 1-d ndarray
unit: mPa
"""
depth = np.array(depth)
rho_f *= 1000 # kg/m3
rho_w *= 1000 # kg/m3
acceleration = 9.80665 # m/s2
density = np.full_like(depth, rho_f)
# sea level to sea bottom
mask = depth < (kelly_bushing + depth_w)
density[mask] = rho_w
# kelly bushing to sea level
mask = depth < kelly_bushing
density[mask] = 0
delta_depth = np.full_like(depth, np.nan)
delta_depth[1:] = depth[1:] - depth[:-1]
delta_depth[0] = 0
hydrostatic = delta_depth * density * acceleration / 1000000 # mPa
hydrostatic = np.cumsum(hydrostatic)
return hydrostatic
[docs]def hydrostatic_well(depth, kb=0, wd=0, rho_f=1., rho_w=1.):
"""
Returns
-------
Log
Hydrostatic pressure as a Log
"""
hydrostatic = hydrostatic_pressure(
depth, kelly_bushing=kb, depth_w=wd, rho_f=rho_f, rho_w=rho_w)
hydro_log = Log()
hydro_log.depth = np.array(depth)
hydro_log.data = hydrostatic
hydro_log.name = 'log_hydro'
hydro_log.descr = "Hydrostatic_Pressure"
hydro_log.units = "MPa"
return hydro_log
[docs]def hydrostatic_trace(depth, rho=1.01, g=9.8, shift=0):
mask = depth <= shift
hydro = (depth - shift) * rho * g * 0.001
hydro[mask] = 0
return hydro