0% found this document useful (0 votes)
8 views

Open Source Python Libraries an Application to Seismic Reservoir

This document discusses the application of open source Python libraries for seismic reservoir characterization, specifically focusing on inverting bandpass acoustic impedance from seismic reflection data. The proposed algorithm combines correlation as the adjoint operator of convolution with a conjugate gradient solver, demonstrating effectiveness through tests on synthetic and real field data. Results indicate that this method can accurately derive acoustic impedance while avoiding complex matrix inversions, thereby enhancing seismic data interpretation and analysis.

Uploaded by

zhaoweiping2012
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Open Source Python Libraries an Application to Seismic Reservoir

This document discusses the application of open source Python libraries for seismic reservoir characterization, specifically focusing on inverting bandpass acoustic impedance from seismic reflection data. The proposed algorithm combines correlation as the adjoint operator of convolution with a conjugate gradient solver, demonstrating effectiveness through tests on synthetic and real field data. Results indicate that this method can accurately derive acoustic impedance while avoiding complex matrix inversions, thereby enhancing seismic data interpretation and analysis.

Uploaded by

zhaoweiping2012
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Open Source Python Libraries: An application to Seismic Reservoir

Characterization
Sayantan Shaw
Email: [email protected], Kalinga Institute of Industrial Technology

Abstract
Open source python libraries to implement linear operators are finding useful applications in solving
different problems of seismic data processing and interpretation. One such attempt has been made to
invert bandpass acoustic impedance from seismic reflection data. The present algorithm combines two
established approaches, viz. i) using correlation as the adjoint operator of convolution and ii) using
conjugate gradient solver as an alternative to matrix inversion-a commonly used method to solve
constrained optimization problems in seismic reservoir characterization. Time integration of the derived
reflectivity from the above two steps gives rise to bandpass acoustic impedance, thereby, enhancing
the interpretive value of the results. The proposed algorithm has been tested on a 2D wedge model
and found to fare well for both noise free and noise corrupted synthetic data. Application on real field
example from Teapot Dome 3D survey shows that the derived band pass acoustic impedance matches
favorably with the acoustic impedance measured in a well.
Introduction
Surface seismic data, whether measured on land, ocean surface or ocean bottom, furnish valuable
information about the subsurface elastic properties in two distinct bands of frequencies irrespective of
the type of the source used to generate the seismic pulse. The low frequency band comprising of 0-
3Hz in conventional seismic data relates to the kinematics of the wave propagation phenomenon where
in the travel time of the seismic pulse, popularly known as the wavelet, reflected from the boundaries
called reflectors, are observed at the surface. This travel time relates to seismic velocity- a variety of
these viz., normal move out (NMO) velocity, root mean squares (RMS) velocity, interval velocity as well
as average velocity are in common use in different applications of seismic data processing and
interpretation. Some common use of seismic velocity in Quantitative Interpretation (QI) workflows are,
flattening of reflection events in gathers, elastic property depth trends, time-to depth conversion etc. On
the other hand, amplitudes of reflected events, constituting the dynamic part of the wave propagation,
is intrinsically a bandlimited signal with frequency band depending on several factors, viz. the source
and receiver transfer functions, depth and nature of the subsurface layers, source receiver offsets, etc..
In conventional seismic data, the lowest frequency of the seismic reflection amplitudes vary around 5-
12Hz where as high frequency may be as high as 100Hz in shallow section of the earth and can be as
low as 15-20Hz in deep to ultra-deep section having exploration interest. The bandlimited nature of
seismic data results in generating against each isolated reflector a signal with a main lobe surrounded
by weaker side lobes. Over a layer of interest, say a sand layer cased inside a layer of shale, there is
no interference of the two reflected signals the top and bottom interfaces until a certain thickness of the
sand layer. As the layer thickness decreases, e.g. in an on lapping depositional environment where the
sand layer wedges out laterally, the seismic responses from the top and bottom reflectors coalesce into
one event- the phenomenon is known as seismic tuning. As the bed thickness further decreases, the
superimposed seismic response further decreases in amplitude accompanied by ta gradual change in
the signal shape. Few challenges with analysis and interpretation of this type of data and potential
pitfalls in interpretation are very well known (Latimer et al., 2000). These can be broadly described as
below:

i) Variation of seismic amplitude due to either constructive or destructive interferences can


be mis-interpreted as lithology variation or reservoir property changes,
ii) Estimated layer thickness may not represent the true thickness of the bed,
iii) Laterally aligned events from side lobes inside an otherwise uniform layer may be
misinterpreted as an individual bed boundary.
Inversion of the seismic data is used to tackle the challenges posed by the above issues in interpretation
of seismic reflection data. Irrespective of the methods used in seismic inversion, the following two steps
combined together solves the problem to a great extent:

i) Removal of the effect of the wavelet via an optimization process that aims to minimize the
difference between the observed and the modeled (predicted) seismic data in some sense,
e.g. minimizing the mean squares error of the residual,
ii) Using an externally created low frequency model to fill up the gap in low frequency in
seismic amplitude data.

Even though seismic inversion has become a state-of-the art technology for advanced interpretation of
seismic data, especially in quantitative interpretation, practitioners often use rule of thumbs like bed
resolution equals the quarter of the dominant wavelength of the wavelet to assess the minimum
thickness of layers that can be resolved using available seismic data. It is well recognized by the
community that these rules of thumbs are based on restrictive assumptions, e.g., the embedded wavelet
is a Ricker wavelet, overlying and underlying shale formations having the same elastic properties etc.
which may be far from reality. A commonly used practice for investigation into the problem is to perform
“2D Wedge Modeling” where a wedge model is created from up-scaled acoustic impedance logs and
seismic data is synthesized over this model using wavelet from the observed seismic data. Random
noise of different percentage are added to the synthetic seismic data over the wedge to mimic the real
situation as closely as possible. An alternative but effective way to solve the problem has been provided
with by Zeng and Backus (2005) where the authors proposed using a 90 degree phase wavelet to
alleviate the impending problem of seismic tuning to a great extent.

I investigated the above problems through the applications of the concept of adjoint methods described
by Claerbout and Fomel (2012) and using a conjugate gradient solver. Schleicher (2018) implemented
this in a simple python code and made it readily available in public domain
(https://github.com/seg/tutorials). This methods completely circumvents the time consuming matrix
multiplication operations in inverting large size matrices. In this work, I extended the available public
domain python code over 1D earth to perform ‘2D wedge modeling’. I used two step process to address
the problem, i) use the method of conjugate gradient to derive reflectivity model from observed seismic
data and ii) integrated the derived bandpass reflectivity over time to obtain acoustic impedance (band
pass). The method has been tested over synthetic seismic data using real field wavelet for cases of
noise corrupted data. Finally, I applied the method on a 2D line over a real data from Teapot dome to
derive the bandpass acoustic impedance which exhibits the major sand and shales layers as observed
in a well lying on the section. Through this work, I attempted to demonstrate how the availability of open
source python codes can help to understand fundamental issues of seismic data analysis and inversion
and can provide valuable tools for the users of seismic data.

Mathematical Background
In seismic exploration, a simple and popular model to represent a seismic trace at a point (CMP) over
a 1D stratified earth is to convolve the earth reflectivity series with the seismic wavelet and adding noise
to the resulting trace. This is expressed in mathematical form as below:

d_obs (ti) = r_true (ti) * w (ti) + n (ti), …(1)

where,

d_obs (ti) represents the value of seismic amplitude at ith time sample of the observed trace,

r_true (ti) is the reflectivity series which can be considered as the first time derivative of

natural logarithm of the acoustic impedance, Z_true(ti), at corresponding time samples.

w (ti) represents the seismic wavelet and

n (ti) is the noise time series representing random noise at time samples of observed data.
It is assumed here that the noise is random and is uncorrelated with the seismic data predicted from
the model, Z(ti) . Thus, the cross-correlation between the noise time series n (ti) and synthetic data
series d_pred (ti) is identically zero.

We can mathematically express the above statements as,

r_true (ti) = Δ ln [Z_true (ti)] / 2 …(2)

and

d_pred (ti) = r_pred (ti) * w (ti) …(3)

where, the symbol Δ represents time differential and r_pred (ti) is the model reflectivity value at the ith
time sample.

The impedance profile can be derived from the estimated reflectivity series r_pred (ti) as,

Z_pred (ti) = exp [2. ∑ r_pred (ti)] …(4)

Equation (4) represents the bandpass acoustic impedance and converts the interface properties to
relative layer properties which have desirable properties in interpretation of seismic data.

The true reflectivity series r_true (ti) can be derived at a well location from density and sonic
measurements, as the acoustic impedance equals to the product of density and reciprocal of sonic
transit time. Estimation of the reflectivity series from observed seismic data constitutes a linear inverse
problem which can be written in matrix form as described below:

Equations (1) and (3) constituting the forward problem, where seismic data is computed from the given
acoustic impedance model and the wavelet, can be written as

d=Gm …(5)

where, the n x 1 sized column matrix d represents observe/predicted data,

m x1 column matrix m represents the model, i.e. true/ predicted reflectivity and

n x m rectangular matrix G has the wavelet embedded in each column padded with requisite
number of zeroes to both ends. Two consecutive columns are related by shift of data by one sample.

The least squares inverse of equation (5) is given by

m = [GTG]-1 GTd …(6)

Here, the superscripts T and -1 represent matrix transpose and matrix inverse respectively.
As close look into the structure of equation (6) brings out two important computational challenges, viz.
i) The matrix can be singular or near singular causing amplification of noise in the observed
seismic data that will get translated into the results and needs regularization of the inversion
process
ii) Due to sheer large size of the matrix [GTG], computation of its inverse could become a
heavy task which could be avoided by using some tricks without making a severe
compromise on the quality of the results.
The formal solution to address the first issue is given by the damped least squares inverse of equation
(5) given as
m = [GTG + λ I]-1 GTd …(7)
Here, the matrix I represents an n x n identity matrix and λ is a scalar controlling the regularization of
the derived solution.
In the present paper, I focus on the second problem while using the first issue as a guide/measure for
quality control of derived results.
Algorithm

In a tutorial article, Schleicher (2018) has explained how linear operators can be programmed as
functions that are more intuitive and efficient than matrix multiplication as the adjoint operator can be
conveniently written without computing matrices. Implementing the conjugate gradient algorithm using
functions to apply linear operators and their adjoints is practical and efficient. We know from Claerbout
and Fomel (2012) that the adjoint operation of time convolution is the correlation. Thus, a function in
Python can easily solve equation (6) by replacing the inverse of [GTG]-1 as an identity matrix and
adopting a gradient solver like the steepest descent or conjugate gradient method. In view of the fact
that conjugate gradient (CG) method guarantees convergence to a solution in n iterations, I have
adopted the following open source code (https://github.com/seg/tutorials) for studying the 2D wedge
model as well as application to real data.

Python Class
At the core of this work is utilization of the concept of combining the forward and adjoint operations in a
Python class using an “Object Orient Programming” approach detailed by Schleicher (2018).
class Operator(object):

def __init__(self, wavelet): # “Define a linear operator”


self.wavelet = wavelet

def forward(self, v): # “Define the forward operator (convolution)”


return np.convolve (v, self.wavelet, mode='same')

def adjoint(self, v): # “Define the adjoint operator (correlation)”


return np.correlate (v, self.wavelet, mode='same')

The class can be instantiated with a wavelet as


F = operator (w), …(8)
where, w represents the wavelet.
Conjugate Gradient (CG) Solver
Guo’s (2002) pseudo code on CG as implemented by Schleicher (2018) in Numpy has been adopted
here without further modification other than changing a few variable names to avoid conflict with
notations used in the Mathematical Background section.
m_est = np.zeros_like (d_obs)
res = d_obs- F.forward (m_est)
s = np.zeros_like (d_obs)
beta = 0
for i in range (n): # n is an user defined parameter, can take maximum value as the data dimension
g= F.adjoint (res)
if i !=0:
beta= np.dot (g, g)/ gamma
gamma= np.dot (g, g)
s= g + beta * s
delta_res = F.forward (s)
alpha = -np.dot (r, delta_res)/ np.dot (delta_res, delta_res)
m_est = m_est – alpha * s
res = res + alpha * delta_res
Results
In order to implement the process of deriving the bandpass acoustic impedance from synthetic seismic
data to understand the effect of interference of seismic responses from neighboring thin layers and
resulting issue of ‘seismic tuning’, I start with a simple 2D wedge model (Figure 1) representing a soft
sand embedded inside a hard shale. I used a wavelet (Figure 2) derived from real seismic data to
compute the synthetic data over the wedge. Next, I considered this synthetic seismic dataset as the
observed data and assumed that the same wavelet would have been estimated, had any wavelet
estimation scheme been attempted. Then I ran the conjugate gradient solver for 10 iterations followed
by integrating the estimated reflectivity to derive the bandpass acoustic impedance. The same
experiment has been repeated with adding 10% Gaussian random noise to the synthetic data. It can
be seen from figure 3 and figure 4 that the derived bandpass acoustic impedance can recover the
original shape of the sand wedge quite reasonably. I emphasize here that no matrix inversion was
required in this approach of deriving the reflectivity from the seismic data. In this example, we could find
that a layer with lesser time thickness can be readily inferred using seismic inversion by this simple
method.

Figure 1: 2D Wedge model- a soft sand (yellow) encased inside a hard shale

Figure 2: Wavelet estimated from real field data

Field Example
In order to ascertain the performance of this simple method to derive acoustic impedance on real field
seismic data which are always noisy, I selected a 2D line (Figure 5) from public domain data
(https://wiki.seg.org/wiki/Teapot_dome_3D_survey). A vertical well sits over this 2D line at location
number 75 and contains measured sonic and density curves. The sonic curve has been used to convert
the well data measured in depth into time and the acoustic impedance has been computed from the
ratio of density and sonic data. An estimated statistical wavelet Figure 2) has been used to instantiate
the class F in statement (8). It is worth noting that it is the same wavelet that I used in the synthetic
experiment. The conjugate gradient solver was run for 10 iteration only beyond which severe
amplification of noise in the results were observed.
Figure 6 shows the bandpass acoustic impedance results with the acoustic impedance in the well shown
on the right side panel. It can be observed that the simple process of using operators to derive reflectivity
from seismic data, yield valuable results.

Figure 3: a) Noise free synthetic data over wedge model in figure 1 using wavelet in figure 2; b)
derived band pass acoustic impedance.
Figure 4: a) Noise corrupted synthetic data over wedge model in figure 1 using wavelet in figure 2; b)
derived band pass acoustic impedance.

Figure 5: A seismic section from Teapot Dome 3D survey. The orange arrow shows location of a well
with the measured acoustic impedance shown in the right panel
Figure 6: Inverted bandpass acoustic impedance shows good correlation with the measured acoustic
impedance in a well (right panel. Location of the well in this section is indicated by the orange arrow).

Conclusions
Availability of open source python libraries to implement optimization methods not demanding heavy
computation efforts of large matrix inversion provides with new opportunities to design numerical
experiments to gain quick but deep insights into fundamentals issues of seismic data processing,
interpretation and reservoir characterization. In this work, one such challenges of 2D wedge modeling
to understand intricacies of seismic tuning arising from interference from thin layers in real field situation
has been attempted. Use of correlation as adjoint operator of convolution has been easily implemented
using python class functionality. Conjugate gradient method starting with a zero vector as the initial
estimate of the intended reflectivity series can satisfactorily reconstruct the bandpass version of the true
reflectivity. The estimated reflectivity can be further integrated to derive the band pass acoustic
impedance facilitating interpretation of the results in terms of facies and/or petrophysical properties.
The algorithm has been tested on synthetic as well as real field example from Teapot Dome 3D survey.
Results from the field data match favorably with the well log data.
Acknowledgments
I thank my mentor Prof. Jhalak Hota for his constant encouragement to explore the use of new and
simple computational methods to understand and solve fundamental issues in applied sciences and
engineering. Thanks are due to my parents to explain to me the nuances of seismic exploration method
and geophysical optimization techniques. Extensive reviews, suggestions and comments from them
helped to bring the paper to the present form.
References
Claerbout, J., Fomel, S., 2012, Image Estimation by Example,
http://sepwww.stanford.edu/sep/prof/gee1-2012.pdf

Guo, J., Z. Hongbo, J. Young, S. Gray, 2002, Merits and challenges for accurate velocity model building
by 3D gridded tomography, Expanded Abstract, SEG Annual Conference and Exhibition.
https://doi.org/10.1190/1.1817395
Latimer, R. B., Dixon, R. and P. van Riel, 2000, An interpreter’s guide to understanding and working
with seismic derived acoustic impedance data, The Leading Edge, vol. 19, pp. 242-256.
https://doi.org/10.1190/1.1438580
Schleicher, K., 2018, The conjugate gradient method, The Leading Edge, vol. 37, pp. 296-298.
https://doi.org/10.1190/tle37040296.1.
Zeng, H. and M. M. Backus, 2005, Interpretive advantage of 90 degree phase wavelets: Part 1-
Modeling, Geophysics, vol. 70, pp. C7-C15. https://doi.org/10.1190/1.1925740

You might also like