CamPetro

Sand-Only Porosity and Resistivity

On this page

Summary

A laminated sand-shale sequence is read by the logs as one rock. The sand-only properties are what is left when the Laminated shale is taken out: a sand porosity from the density and neutron porosities with the shale contribution removed, and a sand resistivity from the Parallel conductor model. Use them wherever the reservoir is the sand and the shale laminae are too thin for the logs to see.

Inputs and outputs

Item Units
Input Bulk density g/cm³
Input Neutron porosity v/v
Input Matrix density g/cm³
Input Pure-shale bulk density g/cm³
Input Pure-shale neutron porosity v/v
Input Laminated shale volume v/v
Input Horizontal resistivity ohm·m
Input Horizontal shale resistivity ohm·m
Input Vertical shale resistivity ohm·m
Output Sand-only density porosity v/v
Output Sand-only neutron porosity v/v
Output Sand-only neutron-density porosity v/v
Output Sand resistivity ohm·m
Output Vertical resistivity ohm·m
Output Anisotropy ratio dimensionless

Equations

Sand-only porosity. The log reads a volume-weighted mean of sand and shale layers. The porosity of the sand is found by taking out the shale contribution, on each log separately, because shale reads very differently on the density and on the neutron. With the density porosity \(\phiDen = (\rhoMa - \rhob)/(\rhoMa - 1)\):

\[ \phiDSand = \frac{\phiDen - \Vlam\,\dfrac{\rhoMa - \rhoShLSA}{\rhoMa - 1}}{1 - \Vlam} \qquad \phiNSand = \frac{\phiN - \Vlam\,\phiNShLSA}{1 - \Vlam} \]

The two are combined by root-mean-square, which is the usual neutron-density combination:

\[ \phiNDSand = \sqrt{\frac{\phiDSand^{2} + \phiNSand^{2}}{2}} \]

Sand resistivity. For current flowing along the bedding the sand and shale layers conduct in parallel, so conductivities add:

\[ \frac{1}{\Rhz} = \frac{\Vlam}{\RshH} + \frac{1 - \Vlam}{\Rsand} \qquad\Longrightarrow\qquad \Rsand = \frac{\left(1 - \Vlam\right)\Rhz\,\RshH}{\RshH - \Vlam\,\Rhz} \]

The sand resistivity exists only where \(\RshH - \Vlam\Rhz > 0\). For current across the bedding the layers are in series, so resistivities add:

\[ \Rvt = \Vlam\,\RshV + \left(1 - \Vlam\right)\Rsand \qquad \RvRh = \frac{\Rvt}{\Rhz} \]

The ratio \(\RvRh\) is the resistivity anisotropy: it is 1 with no laminated shale and rises with laminated shale volume and with the sand resistivity.

Symbol Variable Units Typical range
\(\rho_b\) Bulk density g/cm³ 1.8 to 3.0
\(\phi_N\) Neutron porosity v/v -0.02 to 0.60
\(\rho_{ma}\) Matrix density g/cm³ 2.65 to 2.87
\(\rho_{b,sh}\) Pure-shale bulk density g/cm³ 2.3 to 2.65
\(\phi_{N,sh}\) Pure-shale neutron porosity v/v 0.25 to 0.45
\(\phi_D\) Density porosity v/v 0 to 0.40
\(V_{lam}\) Laminated shale volume v/v 0 to 1
\(\phi_{D,sa}\) Sand-only density porosity v/v 0.05 to 0.35
\(\phi_{N,sa}\) Sand-only neutron porosity v/v 0.05 to 0.35
\(\phi_{ND,sa}\) Sand-only neutron-density porosity v/v 0.05 to 0.35
\(R_h\) Horizontal resistivity ohm·m 0.5 to 100
\(R_{sh,h}\) Horizontal shale resistivity ohm·m 1 to 10
\(R_{sh,v}\) Vertical shale resistivity ohm·m 1 to 20
\(R_{sa}\) Sand resistivity ohm·m 0.5 to 200
\(R_v\) Vertical resistivity ohm·m 0.5 to 200
\(R_v/R_h\) Anisotropy ratio dimensionless 1 to 5

Single-value calculator

Behavior

The plot shows the sand resistivity against the horizontal resistivity, on log axes, for a horizontal shale resistivity of 3 ohm·m. All three curves cross at the shale resistivity: when the horizontal resistivity equals the shale resistivity (3 ohm·m) the sand is read as the same value, for any laminated volume. Below it, the sand resistivity is below the horizontal resistivity (at 1 ohm·m it is 0.93, 0.78 and 0.60 for laminated volumes of 0.1, 0.3 and 0.5). Above it the sand resistivity is higher and grows faster the more laminated shale there is: at 5 ohm·m it is 5.4, 7.0 and 15.0. The curve has a pole where the horizontal resistivity reaches the shale resistivity divided by the laminated volume (30, 10 and 6 ohm·m), beyond which no sand resistivity exists. This is why a small error in the laminated volume or in the shale resistivity gives a large error in sand resistivity at high resistivity, and why sand resistivity is a large correction exactly where hydrocarbon is likely.

Parameter guidance

Laminated shale volume. From the triangulation. Horizontal shale resistivity. Read the resistivity in a thick shale next to the sand, from a horizontal-resistivity or an induction curve, typically 1 to 5 ohm·m. Vertical shale resistivity. It is the horizontal one times the shale anisotropy ratio, from a triaxial tool in thick shale or from the literature for the shale. If no vertical value is known and no vertical resistivity is needed, leave it equal to the horizontal value. The shale anisotropy is often 1.5 to 3 and the value used above (2) is only an illustration. The shale density and neutron values are shared with the shale volume page. If the corrected density and neutron porosities disagree in a clean sand, check the shale parameters and the laminated volume first.

Worked example

A sample with a bulk density of 2.30 g/cm³, a neutron porosity of 0.27, a laminated shale volume of 0.30, a horizontal resistivity of 6 ohm·m and a horizontal and vertical shale resistivity of 3 and 6 ohm·m. The code checks the sand resistivity by putting it back in the parallel model, and the limiting cases:

import math
rhob, nphi, rma, rsh_d, nsh = 2.30, 0.27, 2.65, 2.45, 0.30
vl, rh, rsh_h, rsh_v = 0.30, 6.0, 3.0, 6.0
phid = (rma - rhob) / (rma - 1)
phid_sh = (rma - rsh_d) / (rma - 1)
pd = (phid - vl * phid_sh) / (1 - vl)
pn = (nphi - vl * nsh) / (1 - vl)
pnd = math.sqrt((pd ** 2 + pn ** 2) / 2)
print(f"density porosity {phid:.4f} -> sand {pd:.4f}")
print(f"neutron porosity {nphi:.4f} -> sand {pn:.4f}")
print(f"neutron-density (rms) sand porosity {pnd:.4f}")
rs = (1 - vl) * rh * rsh_h / (rsh_h - vl * rh)
rv = vl * rsh_v + (1 - vl) * rs
print(f"sand resistivity {rs:.3f} ohm.m, vertical {rv:.3f} ohm.m, Rv/Rh {rv / rh:.3f}")
print(f"check: parallel model gives Rh = {1 / (vl / rsh_h + (1 - vl) / rs):.3f} ohm.m")
print(f"limit: no laminated shale gives Rs = {(1 - 0) * rh * rsh_h / (rsh_h - 0 * rh):.3f} (= Rh)")
print(f"pole: Rs does not exist above Rh = Rsh/Vlam = {rsh_h / vl:.1f} ohm.m")

Output

density porosity 0.2121 -> sand 0.2511
neutron porosity 0.2700 -> sand 0.2571
neutron-density (rms) sand porosity 0.2541
sand resistivity 10.500 ohm.m, vertical 9.150 ohm.m, Rv/Rh 1.525
check: parallel model gives Rh = 6.000 ohm.m
limit: no laminated shale gives Rs = 6.000 (= Rh)
pole: Rs does not exist above Rh = Rsh/Vlam = 10.0 ohm.m

Assumptions and limitations

  • The laminae are thinner than the resolution of the logs, so the logs read a volume average. Where the sand beds are thick enough to be resolved, the bed values are read directly.
  • The horizontal resistivity measurement reads along the bedding. In a deviated well or a dipping bed it needs a relative dip correction.
  • The sand layers are of one porosity and one resistivity, and the shale is one shale, with the same resistivity and porosity throughout.
  • The shale correction takes out laminated shale only. Structural and dispersed shale are assumed to be part of the sand, where they contribute to the sand-only porosity and resistivity. A variant also removes the structural shale from the porosity with the laminated equations.
  • The porosity and resistivity logs read the same laminated shale volume. Different vertical resolutions of density, neutron and resistivity tools mix the layers differently.
  • Gas lowers the neutron and raises the density porosity. The corrected densities and neutrons then disagree, and the combination by RMS is high.

QC checks

  • With zero laminated shale, the sand porosity equals the measured porosity and the sand resistivity equals the horizontal resistivity.
  • The sand density porosity and the sand neutron porosity agree in water-bearing clean sand. A systematic difference means wrong shale density, shale neutron or laminated volume.
  • The sand resistivity is higher than the horizontal resistivity where the horizontal resistivity is above the shale resistivity, and lower where it is below. It does not exist (NaN) above the pole, and that interval needs a fix of the inputs and not a clamp.
  • The vertical resistivity is above the horizontal resistivity, and the anisotropy ratio rises with the laminated volume.
  • Compare the vertical resistivity with a triaxial or anisotropic tool log if one exists.

Going Deeper

The density, neutron and resistivity measurements are volume averages over the tool window, and the parallel and series conductor models describe the two limiting ways current can pass through the layers. The parallel model for the horizontal resistivity is the laminated shale term of the Poupon laminated-sand model, and the combination of a horizontal and a vertical measurement is the basis of the anisotropic interpretation of Klein and others. The correction on porosity and resistivity is not the same size: a laminated volume of 0.3 changes porosity by only a few porosity units, since shale and sand have similar porosity, but it can change resistivity by a large factor, since shale and a hydrocarbon sand have very different resistivity. This is the reason that conventional shaly-sand equations, which use the clay volume to correct the sand in a different way, underestimate pay in laminated sequences. A further variant removes the structural shale together with the laminated shale with the same equations. That is simpler, but it assumes that the shale grains replace sand grains and the sand pore space, which is not the structural shale of the Thomas-Stieber model.

References

  1. Poupon, A., Loy, M.E. and Tixier, M.P., 1954. A contribution to electric log interpretation in shaly sands. Journal of Petroleum Technology, 6(6), 27–34.
  2. Klein, J.D., Martin, P.R. and Allen, D.F., 1997. The petrophysics of electrically anisotropic reservoirs. The Log Analyst, 38(3), 25–36.

Python reference implementation

Python reference implementation

The Python reference implementation is available to registered users with a verified email address. Register or sign in to view it.