Petrophysics#
This section contains documentation for the Petrophysics module.
Porosity#
- stoneforge.petrophysics.porosity.density_porosity(rhob: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], rhom: float, rhof: float) ndarray #
Estimate the porosity from the bulk density log [1]_.
Parameters#
- rhobarray_like
Bulk density log.
- rhomint, float
Matrix density.
- rhofint, float
Density of the fluid saturating the rock (Usually 1.0 for water and 1.1 for saltwater mud).
Returns#
- phiarray_like
Total porosity for the aimed interval using the bulk density.
References#
principles of petrophysics. Elsevier.
- stoneforge.petrophysics.porosity.gaymard_porosity(phid, phin)#
Estimate the effective porosity using Gaymard-Poupon [1]_ method.
Parameters#
- phidarray_like
Density porosity (porosity calculated using density log)
- phinint, float
Neutron porosity (porosity calculated using neutron log)
Returns#
- phiearray_like
Effective porosity using Gaymard-Poupon method
References#
[1] Gaymard, R., and A. Poupon. “Response Of Neutron And Formation
Density Logs In Hydrocarbon Bearing Formations.” The Log Analyst 9 (1968).
- stoneforge.petrophysics.porosity.neutron_density_porosity(phid: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], phin: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], squared: bool = False) ndarray #
Estimate the effective porosity by calculating the mean of Bulk Density porosity and Neutron porosity [1]_.
Parameters#
- phidarray_like
Effective porosity and shale free for the aimed interval using the bulk density.
- phinarray_like
Effective porosity from the neutron log for the aimed interval.
Returns#
- phiearray_like
Effective porosity from the Bulk Density porosity and Neutron porosity mean.
References#
TODO
- stoneforge.petrophysics.porosity.neutron_porosity(nphi: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], vsh: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], nphi_sh: float) ndarray #
Estimate the effective porosity from the neutron log [1]_.
Parameters#
- nphiarray_like
neutron log.
- vsharray_like
Total volume of shale in the rock, chosen the most representative.
- phi_nshint, float
Apparent porosity read in the shales on and under the layer under study and with the same values used in φN.
Returns#
- phinarray_like
Effective porosity from the neutron log for the aimed interval.
References#
[1] Schön, J. H. (2015). Physical properties of rocks: Fundamentals and
principles of petrophysics. Elsevier.
- stoneforge.petrophysics.porosity.porosity(method: str = 'density', **kwargs)#
Compute porosity from well logs.
- This is a façade for the methods:
density
neutron
neutron-density
sonic
gaymard
Parameters#
- rhobarray_like
Bulk density log. Required if method is “denisty”.
- rhomint, float
Matrix density. Required if method is “denisty”.
- rhofint, float
Density of the fluid saturating the rock (Usually 1.0 for water and 1.1 for saltwater mud). Required if method is “denisty”.
- nphiarray_like
Neutron log. Required if method is “neutron”.
- vsharray_like
Total volume of shale in the rock, chosen the most representative. Required if method is “neutron”.
- phi_nshint, float
Apparent porosity read in the shales on and under the layer under study and with the same values used in φN. Required if method is “neutron”.
- dtarray_like
Sonic log reading (acoustic transit time (μsec/ft)). Required if method is “sonic”.
- dtmaint, float
Acoustic transit time of the matrix (μsec/ft). Required if method is “sonic”.
- dtfint, float
Acoustic transit time of the fluids, usually water (μsec/ft). Required if method is “sonic”.
- phidarray_like
Density porosity (porosity calculated using density log). Required if method is “neutron-density” or “gaymard.
- phinint, float
Neutron porosity (porosity calculated using neutron log). Required if method is “neutron-density” or “gaymard.
- methodstr, optional
- Name of the method to be used. Should be one of
‘density’
‘neutron’
‘neutron-density’
‘sonic’
‘gaymard’
If not given, default method is ‘density’
Returns#
- phiarray_like
Porosity log using the defined method.
- stoneforge.petrophysics.porosity.sonic_porosity(dt, dtma, dtf)#
Estimate the Porosity from sonic using the Wyllie time-average equation [1]_.
Parameters#
- dtarray_like
Sonic log reading (acoustic transit time (μsec/ft))
- dtmaint, float
Acoustic transit time of the matrix (μsec/ft)
- dtfint, float
Acoustic transit time of the fluids, usually water (μsec/ft)
Returns#
- phidtarray_like
Porosity from sonic.
References#
[1] Wyllie, A. R. Gregory, and L. W. Gardner, (1956), “ELASTIC WAVE VELOCITIES IN HETEROGENEOUS AND POROUS MEDIA,” GEOPHYSICS 21: 41-70.
Shale Volume#
- stoneforge.petrophysics.shale_volume.gammarayindex(gr: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], grmin: float, grmax: float) ndarray #
Calculates the gamma ray index.
Parameters#
- grarray_like
Gamma Ray log.
- grminint, float
Clean sand GR value.
- grmaxint, float
Shale/clay value.
Returns#
- igrarray_like
The gamma ray index varying between 0.0 (clean sand) and 1.0 (shale).
- stoneforge.petrophysics.shale_volume.vshale(gr: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], grmin: float, grmax: float, method: str = None) ndarray #
Compute the shale volume from gamma ray log.
- This is a façade for the methods:
vshale_linear
vshale_larionov
vshale_larionov_old
vshale_clavier
vshale_stieber
Parameters#
- grarray_like
Gamma Ray log.
- grminint, float
Clean sand GR value.
- grmaxint, float
Shale/clay value.
- methodstr, optional
- Name of the method to be used. Should be one of
‘linear’
‘larionov’
‘larionov_old’
‘clavier’
‘stieber’
If not given, default method is ‘linear’
Returns#
- vshalearray_like
Shale Volume for the aimed interval using the defined method.
- stoneforge.petrophysics.shale_volume.vshale_clavier(gr: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], grmin: float, grmax: float)#
Estimate the shale volume from the Clavier model.
Parameters#
- grarray_like
Gamma Ray log.
- grminint, float
Clean sand GR value.
- grmaxint, float
Shale/clay value.
Returns#
- vshalearray_like
Shale Volume for the aimed interval using the Clavier method.
- stoneforge.petrophysics.shale_volume.vshale_larionov(gr: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], grmin: float, grmax: float) ndarray #
Estimate the shale volume from the Larionov model for young rocks.
Parameters#
- grarray_like
Gamma Ray log.
- grminint, float
Clean sand GR value.
- grmaxint, float
Shale/clay value.
Returns#
- vshalearray_like
Shale Volume for the aimed interval using the Larionov method.
- stoneforge.petrophysics.shale_volume.vshale_larionov_old(gr: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], grmin: float, grmax: float) ndarray #
Estimate the shale volume from the Larionov model for old rocks.
Parameters#
- grarray_like
Gamma Ray log.
- grminint, float
Clean sand GR value.
- grmaxint, float
Shale/clay value.
Returns#
- vshalearray_like
Shale Volume for the aimed interval using the Larionov method.
- stoneforge.petrophysics.shale_volume.vshale_linear(gr: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], grmin: float, grmax: float) ndarray #
Estimate the shale volume from the linear model.
Parameters#
- grarray_like
Gamma Ray log.
- grminint, float
Clean sand GR value.
- grmaxint, float
Shale/clay value.
Returns#
- vshalearray_like
Shale Volume for the aimed interval using the Linear method.
- stoneforge.petrophysics.shale_volume.vshale_neu_den(neu: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], den: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], cl1_n: float = -0.15, cl1_d: float = 2.65, cl2_n: float = 1.0, cl2_d: float = 1.1, clay_n: float = 0.47, clay_d: float = 2.71) ndarray #
Estimates the shale volume from neutron and density logs method [1]_.
Parameters#
- neuarray_like
Neutron porosity log.
- denarray_like
Bulk density log.
- cl1_nint, float
Neutron porosity value from clean point 1 for empty matrix (NPHI_MATRIX).
- cl1_dint, float
Bulk density value from clean point 1 for empty matrix (RHOB_MATRIX).
- cl2_nint, float
Neutron porosity value from clean point 2 full porosity.
- cl2_dint, float
Bulk density value from clean point 2 full porosity.
- clay_nint, float
Neutron porosity value from clay point (NPHI_SHALE).
- clay_dint, float
Bulk density value from clay point (RHOB_SHALE).
Returns#
- vshalearray_like
Shale volume from neutron and density logs method.
References#
[1] Bhuyan, K., & Passey, Q. R. (1994). Clay estimation from GR and
neutron-density porosity logs. In SPWLA 35th Annual Logging Symposium. OnePetro.
- stoneforge.petrophysics.shale_volume.vshale_stieber(gr: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], grmin: float, grmax: float)#
Estimate the shale volume from the Stieber model.
Parameters#
- grarray_like
Gamma Ray log.
- grminint, float
Clean sand GR value.
- grmaxint, float
Shale/clay value.
Returns#
- vshalearray_like
Shale Volume for the aimed interval using the Stieber method.
Water Saturation#
- stoneforge.petrophysics.water_saturation.archie(rw: float, rt: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], phi: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], a: float, m: float, n: float) ndarray #
Estimate the Water Saturation from Archie’s [1]_ equation.
Parameters#
- rwint, float
Water resistivity.
- rtarray_like
Formation resistivity.
- phiarray_like
Porosity.
- aint, float
Tortuosity factor.
- mint, float
Cementation exponent.
- nint, float
Saturation exponent.
Returns#
- swarray_like
Water saturation from Archie equation.
References#
[1] Archie GE (1942) The electrical resistivity log as an aid in determining some
reservoir characteristics. Transactions of the AIME, 146(01), 54-62.
- stoneforge.petrophysics.water_saturation.fertl(rw: float, rt: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], phi: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], a: float, m: float, vsh: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], alpha: float) ndarray #
Estimate water saturation from Fertl [1]_ equation.
Parameters#
- rwint, float
Water resistivity.
- rtarray_like
True resistivity.
- phiarray_like
Porosity (must be effective).
- vsharray_like
Clay volume log.
- aint, float
Tortuosity factor.
- mint, float
Cementation exponent.
- alphaint, float
Alpha parameter from Fertl equation.
Returns#
- fertlarray_like
Water saturation from Fertl equation.
References#
[1] Fertl, W. H. (1975, June). Shaly sand analysis in development wells. In SPWLA 16th Annual Logging Symposium. OnePetro.
- stoneforge.petrophysics.water_saturation.indonesia(rw: float, rt: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], phi: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], a: float, m: float, n: float, vsh: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], rsh: float) ndarray #
Estimate water saturation from Poupon-Leveaux (Indonesia) [1]_ equation.
Parameters#
- rwint, float
Water resistivity.
- rtarray_like
True resistivity.
- phiarray_like
Porosity.
- vsharray_like
Clay volume log.
- aint, float
Tortuosity factor.
- mint, float
Cementation exponent.
- nint, float
Saturation exponent.
- rshfloat
Clay resistivity.
Returns#
- indonesiaarray_like
Water saturation from Poupon-Leveaux equation.
References#
[1] Poupon, A. and Leveaux, J. (1971) Evaluation of Water Saturation in Shaly Formations.
The Log Analyst, 12, 1-2.
- stoneforge.petrophysics.water_saturation.simandoux(rw: float, rt: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], phi: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], a: float, m: float, n: float, vsh: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], rsh: float) ndarray #
Estimate water saturation from Simandoux [1]_ equation.
Parameters#
- rwint, float
Water resistivity.
- rtarray_like
True resistivity.
- phiarray_like
Porosity.
- aint, float
Tortuosity factor.
- mint, float
Cementation exponent.
- nint, float
Saturation exponent.
- vsharray_like
Clay volume log.
- rshint, float
Clay resistivity.
Returns#
- swarray_like
Water saturation from Simandoux equation.
References#
[1] Simandoux P (1963) Measures die techniques an milieu application a measure des
saturation en eau, etude du comportement de massifs agrileux. Review du’Institute Francais du Patrole 18(Supplemen-tary Issue):193
- stoneforge.petrophysics.water_saturation.water_saturation(rw: float, rt: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], phi: Buffer | _SupportsArray[dtype[Any]] | _NestedSequence[_SupportsArray[dtype[Any]]] | bool | int | float | complex | str | bytes | _NestedSequence[bool | int | float | complex | str | bytes], a: float, m: float, method: str = 'archie', **kwargs) ndarray #
Compute water saturation from resistivity log.
- This is a façade for the methods:
archie
simandoux
indonesia
fertl
Parameters#
- rwint, float
Water resistivity.
- rtarray_like
True resistivity.
- phiarray_like
Porosity (must be effective).
- aint, float
Tortuosity factor.
- mint, float
Cementation exponent.
- nint, float
Saturation exponent. Required if method is “archie”, “simandoux” or “indonesia”.
- vsharray_like
Clay volume log. Required if method is “simandoux”, “indonesia” or “fertl”.
- rshfloat
Clay resistivity. Required if method is “simandoux” or “indonesia”.
- alphaarray_like
Alpha parameter from Fertl equation. Required if method is “fertl”
- methodstr, optional
- Name of the method to be used. Should be one of
‘archie’
‘simandoux’
‘indonesia’
‘fertl
If not given, default method is ‘archie’
Returns#
- water_saturationarray_like
Water saturation for the aimed interval using the defined method.