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#

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#

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#

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#

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#

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#

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#

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#

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.