Simultaneous Log Inversion in Excel: an Unconventional Reservoir example
Andy Brickell
Senior Petrophysicist | Upstream Oil and Gas Industry | Geothermal | Subject Matter Expert | Formation Evaluation | Logging | Static and Dynamic Core Analysis
Unconventional Reservoirs present the petrophysicist with some major challenges.?The mineralogy of the reservoir is often (but not always) very complex, including clays, quartz, feldspar, carbonates and heavy minerals.?The reservoirs usually contain kerogen, solid organic material that has very similar petrophysical properties to water and oil.?The distribution of water and hydrocarbon within the pore space is very different to conventional reservoirs, so saturation equations like Archie and Waxman-Smits may give incorrect results.?Last but not least, the pore spaces and pore throats in Unconventional Reservoirs are so small that standard core analysis techniques can’t be used, and we have to rely on crushing the rock to make any measurements.?This limits the accuracy and precision of the core data, and also the range of testing that can be done.
Because of the complex mineralogy, conventional sequential log analysis will not give reliable results in most cases, and so we have to use simultaneous log inversion.?Even then, we face a big issue in differentiating kerogen from water or hydrocarbon, but we have to know how much is present because it is part of the matrix, not the pore system.
My approach to evaluating Unconventional Reservoirs involves the following steps –
1.??????Use standard methods to create a continuous TOC curve, calibrated to pyrolysis data.?This can be used in the inversion to control the kerogen volume
2.??????Convert any XRD data from weight fraction to volume fraction and look for trends between minerals.?These can be used to control the inversion
3.??????Try to use only basic log curves like density, neutron, GR and resistivity.?You may have capture spectroscopy or NMR in a few wells, but most will not, and the inversion model has to be consistent across the play
4.??????Use simultaneous log inversion, but keep the mineral model as simple as possible
5.??????Compute Sw using Waxman-Smits or Dual Water, but don’t expect the results to match the core data.?You may need to create an empirical model for Sw based on porosity and mineralogy.
Dave Dudus was good enough to share some data from a well in a siliceous, gas-bearing Unconventional Reservoir with me.?The log data includes spectral GR, density, neutron, Pef, compressional and shear slowness, and induction resistivity.?There is also some limited core data, including XRD, pyrolysis and crushed rock porosity and saturation.
Here is a log plot over the zone of interest.
Note that the well doesn’t start from the surface, I changed the depths at Dave’s request.
We can make some simple observations about the data:
1.??????The borehole is in excellent condition, with no rugosity or over-gauge sections.?The density correction is very low too, so we can expect our data to be valid
2.??????The total GR is high over much of the section, but the uranium-corrected GR (called “KTH”) is much lower.?This means that the formation uranium content is very high.?I put this down to the presence of kerogen, which often accumulates uranium salts
3.??????There are some clear sand intervals, with possible gas effect at around 133m.
Let’s look at a density/neutron cross plot, with KTH as the colour bar:
This clearly shows gas effect, where the data plots above the sandstone line.?The shale properties are well-defined too, and there are some probable dolomite intervals.?But the shale density is quite high, at around 2.71 g/cc, so there must be some heavier clay minerals like chlorite present.
The first step in the analysis is to compute a continuous TOC curve.?There are several standard techniques for this, including –
1.??????Passey – uses the separation between resistivity and porosity logs, overlaid in a low-TOC (“lean”) interval.?This works very well in shales but is less reliable in sands (and Dave Dudus advises that it won't work in very mature source rock anyway)
2.??????Schmoker – uses bulk density in a simple equation with adjustable parameters.?It works well in carbonates but doesn’t give good results in gas sands
3.??????NMR porosity deficit – kerogen is a solid and has no T2 response, so NMR logs show much lower porosity than density logs. ?The porosity deficit is simply related to the volume of kerogen.?No NMR logs are available in the example well.
4.??????Direct regression – this involves plotting TOC against a suitable log and fitting a trend line.?In this case the uranium log is a good candidate, as shown below.?But this method rarely works well.
For this example I used the direct regression method, regressing the uranium curve against TOC, and got the following:
The grey curve is the continuous TOC.?It gives a reasonable match to the pyrolysis data.
Now we need to look at the XRD data.?There are some important points to keep in mind:
1.??????XRD data are not quantitative, particularly at low concentrations.?Don’t put too much faith in them.
2.??????XRD data are always reported as weight fractions of the dry matrix.?Log analysis usually computes volume fractions and includes porosity.?So, to compare XRD with log results we first have to convert it to volumes.?This is easily done but you have to assign a matrix density to each component.?I usually use Google for this.?Then you have to multiply by (1-porosity).
3.??????Kerogen does not have a crystalline structure, so it’s not detected by XRD.?Instead you will need to use the pyrolysis TOC data to estimate kerogen volume fraction.?You also need to know the kerogen density, which is usually related to the vitrinite reflectance.?In many cases you can use 1.2 g/cc or a similar value.
领英推荐
A good check on the XRD data is to estimate the grain density from the minerals and kerogen and compare it with the measured grain density.?In this data set, here’s what I get:
The computed and measured grain densities agree fairly well.
On to the log inversion!?The first task is to define the mineral model.?Here are summary plots of the XRD data, converted to volume fractions of the dry matrix:
The XRD identifies a range of minerals, but for this study I lumped them into clay, quartz, feldspar, carbonate, pyrite and kerogen.?That’s too many minerals for the inversion, so I chose to use the following:
·????????Clay – the XRD includes chlorite, illite and smectite.?The log density in the shale is quite high, probably due to the chlorite.?I used a hybrid clay with a density of 2.8 g/cc
·????????Quartz
·????????Carbonate – in this case I used dolomite.?The XRD includes ankerite and calcite as well, so dolomite is a reasonable proxy
·????????Kerogen
Note that I didn’t include pyrite, because there isn’t much present, or feldspar, because its properties are so similar to quartz.
Next is the input logs.??I used the following:
·????????KTH, the uranium-corrected GR.?
·????????RHOB, bulk density
·????????NPLS, neutron porosity on a limestone scale
·????????Kerogen volume, computed from the continuous TOC weight fraction curve
·????????ILD, deep resistivity.?In this example I assumed that there was no invasion, which is reasonable for a tight reservoir like this, but there is some separation between the deep and shallow induction curves
I didn’t use the volumetric Pef curve, even though it looks valid.?This was because I found it hard to get a good reconstruction in some zones, and I don’t actually need it.?I also didn’t use the sonic data, because the standard time-average equation doesn’t really work.
The inversion was done in Excel, using the Solver and a VBA macro.?The error to be minimized includes adjustable weights for each input, and the curves are normalized to the log range.?All response equations are linear, except for the resistivity, where I used Archie.?It would be easy enough to code in a more complex equation like Waxman-Smits or Dual Water, though.?I gave the density and neutron the highest weights, the resistivity and KTH lower weights, and the kerogen the lowest.
The density mineral endpoints are well-defined, but I need to set up the KTH endpoints for all minerals, and the neutron endpoint for the shale.?I usually do that by running the model with density and neutron only over a good shale zone.?I adjust the clay neutron value to get around 65% clay, then change the KTH values to get a good reconstruction, and then add the KTH curve.?In this case there isn’t a good shale present, so that wasn’t possible.
As always, the inversion takes a long time! ?Here’s what I get:
In the first four tracks I plot the input logs with the reconstruction.?I get a pretty good match to the neutron and density, not so good with the others but still OK.?There is room to adjust parameters and improve the match.?The volumetric breakdown looks OK too, but I don’t think the shale at the base of the section is quite correct.??The distribution of free gas looks sensible, and clearly identifies the most prospective zone.
How do the results compare to core data??Here’s solver and core porosity:
This is a pretty good match except for two points.?I think the core is rotary SWC, so some there may be some depth discrepancy.
We can also compare grain density:
Again, I get a good match between solver and core grain density except for two points.?I also show log and core bulk density and they agree well.?That’s an important QC check on the core data, because in gas reservoirs the core can be damaged by gas expansion.
And there you have it, an Unconventional Reservoir evaluation performed in Excel and plotted in Python! Please get in touch if you have examples that you would like me to evaluate.
Andy Brickell
Petrogeek Consulting LLC
--
1 年This work is from a true expert! There are many very good tips that I had not visualized. Could we have the file in excel too?
International Operations - Petrophysicist
3 年Great example Andy! Thanks for sharing.
Research Professor, University of Houston. Formerly Executive Professor & Director, The Berg Hughes Center for Petroleum, Texas A&M University. Formerly Senior Executive BHP Petroleum
3 年Will ask my students to look at it. Seems like an excellent workflow.
Petrophysicist at Crested Butte Petrophysical Consultants Actively Engaged in Petrophysics
3 年Great work Andy.