Shale Volume

The library implements a set of established shale volume (Vshale) estimation techniques widely used in petrophysical interpretation. These methods derive shale content from different logging measurements and reflect distinct theoretical assumptions about rock response, mineralogy, and compaction effects. Collectively, they provide flexible alternatives suitable for a variety of geological settings and data availability scenarios.

Gamma ray–based approaches constitute the primary group of models. The Gamma Ray Index (IGR) serves as the fundamental normalization step, scaling the measured gamma ray log between clean (GRmin) and shale (GRmax) reference values. From this index, several transformation models are provided:

  • Linear Model – Assumes a direct proportional relationship between gamma ray response and shale fraction. It is simple, robust, and commonly used as a baseline estimator.

  • Larionov Model (Young Rocks) – Introduces a nonlinear correction to account for the typical gamma ray behavior of Tertiary or weakly compacted formations, where the linear assumption tends to overestimate shale volume.

  • Larionov Model (Old Rocks) – Adapts the nonlinear response for older, more compacted lithologies, reflecting reduced gamma ray sensitivity with increasing diagenesis.

  • Clavier Model – Applies an empirical nonlinear transformation designed to moderate shale volume estimates, particularly in formations exhibiting intermediate gamma ray responses.

  • Stieber Model – Incorporates a correction that limits shale volume inflation at higher gamma ray index values, often producing more conservative estimates in laminated or dispersed shale systems.

Beyond gamma ray methods, the library includes multi-log and specialized estimators:

  • Neutron–Density Method (Neutron–Density Crossplot) – Computes shale volume using neutron porosity (NPHI) and bulk density (RHOB) measurements via a three-point mixing model. This approach is particularly useful where gamma ray logs are unreliable or where lithology effects must be explicitly handled.

  • NMR-Based Method – Estimates shale volume from the relationship between total and effective porosity derived from nuclear magnetic resonance (NMR) data, leveraging differences in fluid and bound water responses.

By offering multiple formulations, the library enables users to select methods consistent with formation age, mineralogical complexity, logging conditions, and calibration strategy. This multi-model design supports comparative analysis and uncertainty assessment in shale volume interpretation workflows.

Shale Volume

stoneforge.petrophysics.shale_volume.gammarayindex(gr, grmin, grmax)[source]

Calculates the gamma ray index Schön[1].

Parameters:
  • gr (array_like) – Gamma Ray log.

  • grmin (float) – Clean sand GR value.

  • grmax (float) – Shale/clay value.

Returns:

igr – The gamma ray index varying between 0.0 (clean sand) and 1.0 (shale).

Return type:

array_like

stoneforge.petrophysics.shale_volume.vshale(method='density', **kwargs)[source]

Compute the shale volume from gamma ray log.

This is a façade for the methods:
Parameters:
  • gr (array_like) – Gamma Ray log.

  • grmin (int, float) – Clean sand GR value.

  • grmax (int, float) – Shale/clay value.

  • method (str, optional) –

    Name of the method to be used. Should be one of the following:

    • ’linear’

    • ’larionov’

    • ’larionov_old’

    • ’clavier’

    • ’stieber’

    • ’neu_den’

    • ’nrm’

    If not given, default method is ‘linear’

Returns:

vshale – Shale Volume for the aimed interval using the defined method.

Return type:

array_like

stoneforge.petrophysics.shale_volume.vshale_clavier(gr, grmin, grmax)[source]

Estimate the shale volume from the Clavier model Clavier et al.[2], Schön[1].

Parameters:
  • gr (array_like) – Gamma Ray log.

  • grmin (int, float) – Clean sand GR value.

  • grmax (int, float) – Shale/clay value.

Returns:

vshale – Shale Volume for the aimed interval using the Clavier method.

Return type:

array_like

stoneforge.petrophysics.shale_volume.vshale_larionov(gr, grmin, grmax)[source]

Estimate the shale volume from the Larionov model for young rocks Larionov[3], Schön[1].

Parameters:
  • gr (array_like) – Gamma Ray log.

  • grmin (int, float) – Clean sand GR value.

  • grmax (int, float) – Shale/clay value.

Returns:

vshale – Shale Volume for the aimed interval using the Larionov method.

Return type:

array_like

stoneforge.petrophysics.shale_volume.vshale_larionov_old(gr, grmin, grmax)[source]

Estimate the shale volume from the Larionov model for old rocks Larionov[3], Schön[1].

Parameters:
  • gr (array_like) – Gamma Ray log.

  • grmin (int, float) – Clean sand GR value.

  • grmax (int, float) – Shale/clay value.

Returns:

vshale – Shale Volume for the aimed interval using the Larionov method.

Return type:

array_like

stoneforge.petrophysics.shale_volume.vshale_linear(gr, grmin, grmax)[source]

Estimate the shale volume from the linear model Schön[1].

Parameters:
  • gr (array_like) – Gamma Ray log.

  • grmin (int, float) – Clean sand GR value.

  • grmax (int, float) – Shale/clay value.

Returns:

vshale – Shale Volume for the aimed interval using the Linear method.

Return type:

array_like

stoneforge.petrophysics.shale_volume.vshale_neu_den(nphi, rhob, clean_n=-0.15, clean_d=2.65, fluid_n=1.0, fluid_d=1.1, clay_n=0.47, clay_d=2.71)[source]

Estimates the shale volume from neutron and density logs method (three points method) Bhuyan and Passey[4].

Parameters:
  • nphi (array_like) – Neutron porosity log.

  • rhob (array_like) – Bulk density log.

  • clean_n (-0.15, float) – Neutron porosity value from clean portion (base quartz).

  • clean_d (2.65, float) – Bulk density value from clean portion (base quartz).

  • fluid_n (1.00, float) – Neutron porosity value from fluid (base brine).

  • fluid_d (1.10, float) – Bulk density value from fluid (base brine).

  • clay_n (0.47, float) – Neutron porosity value from clay point (base standard shale).

  • clay_d (2.71, float) – Bulk density value from clay point (base standard shale).

Returns:

vshale – Shale volume from neutron and density logs method.

Return type:

array_like

stoneforge.petrophysics.shale_volume.vshale_nrm(phit, phie)[source]

Estimate the shale volume from NMR curves Bhuyan and Passey[4].

Parameters:
  • phit (array_like) – Total porosity log from nmr.

  • phie (int, float) – Effective porosity log from nmr.

Returns:

vshale – Shale Volume for the aimed interval using NMR curves.

Return type:

array_like

stoneforge.petrophysics.shale_volume.vshale_stieber(gr, grmin, grmax)[source]

Estimate the shale volume from the Stieber model Stieber[5], Schön[1].

Parameters:
  • gr (array_like) – Gamma Ray log.

  • grmin (int, float) – Clean sand GR value.

  • grmax (int, float) – Shale/clay value.

Returns:

vshale – Shale Volume for the aimed interval using the Stieber method.

Return type:

array_like

References