Neutron-Density Porosity
On this page
Summary
Neutron-density porosity combines the Density porosity with the Neutron porosity into a single estimate. The two logs respond differently to lithology, clay and gas, so their combination is less sensitive to each of those than either alone. Use the average in liquid-filled rock and the RMS form where gas is possible.
Inputs and outputs
| Item | Units | |
|---|---|---|
| Input | Neutron porosity | v/v |
| Input | Bulk density | g/cm³ |
| Input | Matrix density | g/cm³ |
| Input | Pore fluid density | g/cm³ |
| Output | Density porosity | v/v |
| Output | Neutron-density porosity (average) | v/v |
| Output | Neutron-density porosity (RMS) | v/v |
Equations
Density porosity is computed from the bulk density as on the Density Porosity page:
The arithmetic average combines it with the neutron porosity:
and the root-mean-square form is:
Both are limited to the interval 0 to 1. The neutron porosity must be on the same lithology scale as the matrix density, for example the limestone scale with a limestone matrix. If it is not, convert it first.
| Symbol | Variable | Units | Typical range |
|---|---|---|---|
| \(\phi_N\) | Neutron porosity | v/v | -0.02 to 0.60 |
| \(\rho_b\) | Bulk density | g/cm³ | 1.8 to 3.0 |
| \(\rho_{ma}\) | Matrix density | g/cm³ | 2.65 to 2.87 |
| \(\rho_f\) | Pore fluid density | g/cm³ | 0.2 to 1.2 |
| \(\phi_D\) | Density porosity | v/v | 0 to 0.40 |
| \(\phi_{ND}\) | Neutron-density porosity (average) | v/v | 0 to 0.40 |
| \(\phi_{ND,rms}\) | Neutron-density porosity (RMS) | v/v | 0 to 0.40 |
Single-value calculator
Behavior
The plot holds the bulk density at 2.30 g/cm³, which gives a density porosity of 0.212, and sweeps the neutron porosity. Where the neutron porosity agrees with the density porosity (0.22) the average and RMS are the same, 0.216. As the neutron porosity falls, as it does in gas, the average follows it down in a straight line and the RMS falls more slowly: at 0.12 they are 0.166 and 0.172, and at 0.05 they are 0.131 and 0.154. The RMS is never below the average, and the gap is largest when one of the two is far from the other: at this density it reaches 0.044 when the neutron reads zero. The RMS form removes part of the gas effect but not all of it, so neither form replaces a real gas correction.
Parameter guidance
Matrix and fluid density are the same picks as for density porosity and are shared with it. Neutron lithology scale. Check the units of the neutron curve. A curve on a sandstone scale used with a limestone matrix, or the reverse, is a systematic error of several porosity units.
Average or RMS. Use the average where the rock is liquid-filled. Use the RMS where gas is likely or the zone is unknown. Where the two logs agree the two forms are identical; where they disagree the RMS is higher, by up to 0.044 at the density used in the plot. The RMS also cannot be negative: a negative neutron reading is squared and read as positive, so do not use it in very tight rock without a check.
Crossplot view. Plotted as neutron porosity against bulk density, water-bearing clean rock of one lithology falls on a straight line between the matrix point and the fluid point. Gas moves points to a lower neutron porosity at a given bulk density, clay moves them toward higher neutron porosity, and a change of lithology moves them to another line. Reading the crossplot gives porosity and an apparent matrix density together, which is the idea that the mineral inversion generalizes.
Worked example
Three rocks with the same bulk density of 2.30 g/cm³ and decreasing neutron porosity, followed by a simple gas flag:
import math
def phi_d(rhob, rho_ma=2.65, rho_f=1.0):
return (rho_ma - rhob) / (rho_ma - rho_f)
print(f"{'case':26s} {'rhob':>5s} {'nphi':>5s} {'phi_D':>6s} {'average':>8s} {'RMS':>6s}")
for case, rhob, nphi in (("water-bearing, agree", 2.30, 0.22),
("moderate gas effect", 2.30, 0.12),
("strong gas effect", 2.30, 0.05)):
pd = phi_d(rhob)
avg = (pd + nphi) / 2
rms = math.sqrt((pd ** 2 + nphi ** 2) / 2)
print(f"{case:26s} {rhob:5.2f} {nphi:5.2f} {pd:6.3f} {avg:8.3f} {rms:6.3f}")
print()
print("Gas flag: neutron porosity below density porosity by more than 0.03:")
for nphi in (0.22, 0.12, 0.05):
print(f" nphi {nphi:4.2f}: phi_D - nphi = {phi_d(2.30) - nphi:+.3f} flag = {phi_d(2.30) - nphi > 0.03}")
Output
case rhob nphi phi_D average RMS
water-bearing, agree 2.30 0.22 0.212 0.216 0.216
moderate gas effect 2.30 0.12 0.212 0.166 0.172
strong gas effect 2.30 0.05 0.212 0.131 0.154
Gas flag: neutron porosity below density porosity by more than 0.03:
nphi 0.22: phi_D - nphi = -0.008 flag = False
nphi 0.12: phi_D - nphi = +0.092 flag = True
nphi 0.05: phi_D - nphi = +0.162 flag = True
Assumptions and limitations
- One matrix and one fluid for both logs. A lithology change moves the density and neutron porosity apart in a way that looks like gas or clay.
- Gas is absent, or has been handled by the RMS form or a separate correction. In gas both logs read wrong, but in opposite directions, and the average partly cancels them.
- The neutron curve has been environmentally corrected and is on the stated lithology scale.
- Clay is read as porosity by both logs, so the result is a total porosity. The neutron reads more of it than the density does.
- The two tools have different volumes of investigation and vertical resolution, so thin beds are not read identically.
QC checks
- The two porosities track each other in clean, liquid-filled rock. Systematic separation with neutron above density means clay or a lithology with a different matrix.
- Neutron below density by more than a few porosity units across a porous clean interval flags gas. Check against resistivity and the hydrocarbon indicators, and use the RMS form or a correction there.
- The result compares with core porosity without a trend against clay volume or depth.
- Neither log is out of range: no density below the fluid density and no neutron porosity below the matrix reading without an explanation.
Going Deeper
Neutron-density combination is the oldest and most used porosity method because the two errors partly cancel. In a clean water-filled rock the logs agree on the correct lithology scale. Shale raises the neutron porosity more than the density porosity, and gas lowers the neutron porosity by much more than the density porosity, so the sign of the separation is diagnostic. Weighted combinations that give the density log more weight in gas are used in practice, for example the weighting of Gaymard and Poupon, but they need the weights to be chosen for the formation, and the RMS form is a parameter-free alternative.
References
- Asquith, G. and Krygowski, D., 2004. Basic Well Log Analysis, 2nd edition. AAPG Methods in Exploration Series 16, American Association of Petroleum Geologists, Tulsa, OK.
- Schlumberger, Log Interpretation Charts. Schlumberger, Houston, Texas (updated periodically).
- Gaymard, R. and Poupon, A., 1968. Response of neutron and formation density logs in hydrocarbon bearing formations. The Log Analyst, 9(5), 3–12.
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.