Time-varying wavelet estimation and its applications in deconvolution and seismic inversion

  • Waskito PranowoEmail author
Open Access
Original Paper - Exploration Geophysics


Wavelet holds an essential role in seismic data processing and characterization, for examples deconvolution and seismic inversion. Unfortunately, wavelet is an unknown data. Several existing methods attempt to estimate and extract the wavelet from seismic data. However, the methods give only a single wavelet from one seismic trace. When seismic data are non-stationer, single wavelet usage will cause a problem, that is raising the error. This paper proposes a time-varying wavelet estimation method to accommodate this problem. It uses matrix diagonalization to estimate a set of wavelets. Next, the time-varying wavelet is applied to deconvolution and seismic inversion. The experiment shows that time-varying wavelet improves the results in both deconvolution and seismic inversion. The errors decreased and spectrum bandwidth broadened.


Time-varying wavelet Time-varying deconvolution Time-varying seismic inversion 


Wavelet estimation holds an important process in seismic processing and inversion. Several methods were proposed to obtain the best-estimated wavelet (Ricker 1953; Walden and White 1998; Cui and Margrave 2014). In the prior publications, seismic frequency analysis is required to extract a wavelet because seismic spectrum represents the wavelet spectrum. The simple method of wavelet estimation is by using the mathematical equation, for example, Ricker’s wavelet (Ricker 1953) and bandpass or Ormsby wavelet (Ryan 1994) equations. However, these methods achieve a good result when the shape of seismic spectrum is similar to the mathematical wavelet spectrum. Besides the mathematical equation, there are wide-known methods: statistical wavelet estimation and spectral smoothing (Cui and Margrave 2014). These two methods are more flexible to any seismic conditions.

All listed wavelet estimation methods above are aimed for a stationary signal. In reality, our seismic data are non-stationary. When the seismic data are non-stationary, the explained methods will produce the most optimum single wavelet. This single wavelet may have no negative effect on the next processing stage if the non-stationarity of the signal is weak. However, if the non-stationarity is strong enough, it may cause several problems, for example, the raise of higher error in the next processing stage. Prior researches in time-varying wavelets were published to solve this problem, especially in deconvolution, either explicitly (van der Baan 2008) or implicitly (Clarke 1968; Margrave et al. 2011). In this paper, it will be introduced a proposed method of wavelet estimation in the time domain. This method estimates a set of wavelets which varies over time. Therefore, it can compensate for the non-stationarity of the signal. Moreover, it will be explained applications of this proposed method not only in deconvolution but also in seismic inversion.

Theory and methods

Square root of a matrix

Given \(m \times m\) square matrices \({\mathbf{A}}\) and \({\mathbf{B}}\) where
$${\mathbf{A}} = {\mathbf{BB}}.$$

Then, \({\mathbf{B}}\) is called the square root of \({\mathbf{A}}\). To get \({\mathbf{B}}\) is not as directly as by taking a square root of the matrix elements of \({\mathbf{A}}\). There is a method which uses matrix diagonalization to extract \({\mathbf{B}}\) when \({\mathbf{A}}\) is the only known information (Levinger 1980).

If \({\mathbf{A}}\) is diagonalizable, then
$${\mathbf{Q}}^{ - 1} {\mathbf{AQ}} = {\mathbf{D}}$$
where matrix \({\mathbf{D}}\) is the diagonalized matrix \({\mathbf{A}}\). \({\mathbf{A}}\) is composed by eigenvalues, while \({\mathbf{Q}}\) by eigenvectors. This process can be computed if and only if the eigenvectors are linearly independent. The concept of matrix square root is based on simpleness to take the square root of the diagonal matrix. Since diagonalized \({\mathbf{A}}\) is known, diagonalized \({\mathbf{B}}\) can be derived by taking the square root of the elements of diagonalized \({\mathbf{A}}\). Then, \({\mathbf{B}}\) can be reconstructed by
$${\mathbf{B}} \equiv {\mathbf{QD}}^{1/2} {\mathbf{Q}}^{ - 1}$$

Time-varying wavelet estimation

There is a method of wavelet estimation from signal \(s\left( t \right)\) which uses autocorrelation in its process,
$$A\left( t \right) = s\left( t \right) \otimes s\left( t \right) = \mathop \int \limits_{ - \infty }^{\infty } s\left( t \right)s\left( {t + \tau } \right){\text{d}}\tau .$$
This method attempts to reconstruct the form of the wavelet (Hampson-Russel Software 1999; Cui and Margrave 2014). However, although signal \(A\left( t \right)\) resembles zero-phase wavelet (Fig. 1c, d), it may not be considered as a wavelet. The autocorrelation process in Eq. 4 makes the spectrum of \({\text{A}}\left( {\text{t}} \right)\) to be quadratic form,
$$\left| {A\left( f \right)} \right| = \left| {s\left( f \right)} \right|\left| {s\left( f \right)} \right| = \left| {s\left( f \right)} \right|^{2}$$
To solve this problem, we can take the square root of the spectrum (Hampson-Russel Software 1999). Similar to this method, we can run the process entirely in the time domain by using matrix operation. Autocorrelation, as shown in Eq. 4, can be represented in matrix operation as
$${\mathbf{A}} = {\mathbf{ss}}^{\text{T}}$$
where \({\mathbf{A}}\) is the result of autocorrelation of \({\mathbf{s}}\) and \({\mathbf{s}}\) is moving matrix of \(s\left( t \right)\) in the form,
$${\mathbf{s}} = \left[ {\begin{array}{*{20}c} {s\left( 0 \right)} & 0 & \cdots & 0 & 0 \\ {s\left( 1 \right)} & {s\left( 0 \right)} & \cdots & 0 & 0 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ {s\left( {N - 1} \right)} & {s\left( {N - 2} \right)} & \cdots & {s\left( 0 \right)} & 0 \\ {s\left( N \right)} & {s\left( {N - 1} \right)} & \cdots & {s\left( 1 \right)} & {s\left( 0 \right)} \\ \end{array} } \right]$$
We make an assumption that autocorrelation of the signal will approximate the result of autocorrelation of its wavelet, as shown in Fig. 1c and d. This assumption is expressed by
$${\mathbf{A}} = {\mathbf{ss}}^{\text{T}} \equiv {\mathbf{WW}}^{\text{T}}$$
where \({\mathbf{W}}\) is moving matrix of a wavelet.
Fig. 1

Comparison between wavelet, seismogram, and their autocorrelation results in the time domain. a Wavelet, b seismogram, c autocorrelation of the wavelet, and d autocorrelation of seismogram tapered by the Gaussian window

The autocorrelation process will always result in zero-phase signal, and it does not depend on the input’s phase. Therefore, the phase of the signal that is contained in matrix \({\mathbf{A}}\) in Eq. 8 is zero phase. To obtain \({\mathbf{W}}\) from \({\mathbf{A}}\), we have to take another assumption that \({\mathbf{W}}\) is composed by zero-phase wavelet. By taking this assumption, \({\mathbf{W}}\) becomes a symmetric matrix that follows
$${\mathbf{W}} = {\mathbf{W}}^{\text{T}}$$
where now \({\mathbf{W}}\) is moving matrix of a zero-phase wavelet in the form
$${\mathbf{W}} = \left[ {\begin{array}{*{20}c} {w\left( 0 \right)} & {w\left( 1 \right)} & \cdots & {w\left( {N - 1} \right)} & {w\left( N \right)} \\ {w\left( 1 \right)} & {w\left( 0 \right)} & \cdots & {w\left( {N - 2} \right)} & {w\left( {N - 1} \right)} \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ {w\left( {N - 1} \right)} & {w\left( {N - 2} \right)} & \cdots & {w\left( 0 \right)} & 0 \\ {w\left( N \right)} & {w\left( {N - 1} \right)} & \cdots & {w\left( 1 \right)} & {w\left( 0 \right)} \\ \end{array} } \right].$$
Based on the matrix’s properties in Eq. 9, Eq. 8 can be modified to be
$${\mathbf{A}} \equiv {\mathbf{WW}}.$$
It can be seen that \({\mathbf{W}}\) is the square root of \({\mathbf{A}}\), so \({\mathbf{W}}\) is obtained directly by
$${\mathbf{W}} \equiv {\mathbf{QD}}^{1/2} {\mathbf{Q}}^{ - 1}$$
where \({\mathbf{D}}\) is diagonalized matrix of \({\mathbf{A}}\). To render matrix \({\mathbf{W}}\) to \({\text{W}}\left( {\text{t}} \right)\), the following equation will be used
$$W\left( t \right) = {\mathbf{WC}}, {\mathbf{C}} = \left\{ {c_{j} } \right\}, c_{j} = \left\{ {\begin{array}{*{20}c} {0,} & {j \ne m/2} \\ {1,} & {j = m/2} \\ \end{array} } \right.$$
where \(m\) is the size of \({\mathbf{W}}\) and ⌈ ⌉ is ceiling function.

Time-varying wavelet estimation

The concept of Short-Time Fourier Transform (Schafer and Rabiner 1973; Allen 1977) is adapted to estimate time-varying wavelet. This method divides the input signal into several parts,
$$s\left( {\tau ,t} \right) = T\left( t \right)x\left( {t - \tau } \right)$$
where \(T\left( t \right)\) is the input signal, \(s\left( {t,\tau } \right)\) is the short term of \(T\left( t \right)\), and \(x\left( {t - \tau } \right)\) is the shifted window. Next, each \(s\left( {t,\tau } \right)\) will be processed as an independent signal. The time-varying wavelets are estimated by autocorrelating \(s\left( {t,\tau } \right)\), so
$$A\left( {t,\tau } \right) = s\left( {\tau ,t} \right) \otimes s\left( {\tau ,t} \right)$$
In this step, we can adjust our desired wavelet length by determining the length (or time lag) of \(A\left( {t,\tau } \right)\). After wavelet length has been adjusted, the process can be followed by estimating the wavelet. By transforming \(A\left( {t,\tau } \right)\) to be moving matrix \(\varvec{A}\), the methods in Eqs. 12 and 13 can be applied to \(\varvec{A}\) in order to estimate \(\varvec{W}\). If the input signal bears noise (additive random or band-limited), we can apply taper to the \(A\left( {t,\tau } \right)\). Application of taper window has beneficial to suppress the presence of noise in estimated wavelet. We can obtain \(W\left( {t,\tau } \right)\), the estimated wavelet each time, by using Eq. 13. Then, the time-varying wavelets matrix is composed by arranging \(W\left( {t,\tau } \right)\) according to time.

Time-varying wavelet’s applications

Time-varying deconvolution For time-varying deconvolution, a time-varying wavelet is aimed to build deconvolution operators, so we do not need to have wavelet’s phase information. The deconvolution operators are intended to transform the wavelets to be spike series (represented by identity matrix). It is defined as
$${\varvec{\mathcal{W}}}\varvec{O} = \varvec{I}$$
where \(\varvec{O}\) is the matrix of time-varying deconvolution operators and \(\varvec{I}\) is an identity matrix. In the case the signal has additive random noise, Eq. 16 can be modified to be
$$\left( {{\varvec{\mathcal{W}\mathcal{W}}}} \right)\varvec{O} = {\varvec{\mathcal{W}}}\varvec{I}$$
This modification of Eq. 17 is adapted from Wiener Deconvolution (Wiener 1949). Based on Eq. 17, the deconvolution is obtained by using least-square inversion,
$$\varvec{O} = \left[ {\left( {{\varvec{\mathcal{W}\mathcal{W}}} + \lambda^{2} \varvec{I}} \right)} \right]^{ - 1} {\varvec{\mathcal{W}}}.$$
where \(\lambda\) is pre-whitening.
Pre-whitening is the key factor to determine how smooth the result of deconvolution will be and handle the random noise. Higher pre-whitening indicates a smoother result. Smaller \(\lambda\) may enhance the resolution of the signal better, but as a consequence, it can enhance the noise. Lastly, time-varying deconvolution is matrix multiplication between deconvolution operators and the signal in matrix form which is given by
$${\varvec{\mathcal{T}}} = \varvec{OT}$$
where \(\varvec{T}\) is a column matrix of the original input signal and \({\varvec{\mathcal{T}}}\) is a column matrix of the enhanced (or deconvolved) signal. As explained above, both \({\varvec{\mathcal{W}}}\) and \(\varvec{I}\) contain no phase information (or we can say it as zero phase). As a consequence, the deconvolution operators, represented by matrix \(\varvec{O}\), are zero-phase signals and the deconvolved signal’s phase will be unaltered after deconvolution.
Model-based inversion Model-based inversion is one of seismic inversion methods. This inversion results P-Impedance as the final result. Model-based inversion is started from a low-frequency model. Then, the model is perturbed each iteration to get the final inversion result. The process of model-based inversion is based on a mathematical model in the following equation (Hampson-Russel Software 1999; Hampson et al. 2005),
$$ \left[ {\begin{array}{*{20}c} {S_{0} } \\ {S_{1} } \\ {S_{2} } \\ \vdots \\ {S_{N} } \\ \end{array} } \right] = \left[ {\begin{array}{*{20}c} {w_{0} } & {w_{ - 1} } & {w_{ - 2} } & \cdots & {w_{ - N} } \\ {w_{1} } & {w_{0} } & {w_{ - 1} } & \ddots & {w_{{ - \left( {N - 1} \right)}} } \\ {w_{2} } & {w_{1} } & {w_{0} } & \ddots & {w_{{ - \left( {N - 2} \right)}} } \\ \vdots & \ddots & \ddots & \ddots & \vdots \\ {w_{N} } & {w_{N - 1} } & {w_{N - 2} } & \cdots & {w_{0} } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} { - 0.5} & {0.5} & 0 & \cdots & 0 \\ 0 & { - 0.5} & {0.5} & \ddots & 0 \\ 0 & 0 & { - 0.5} & \ddots & 0 \\ \vdots & \ddots & \ddots & \ddots & \vdots \\ 0 & 0 & 0 & \cdots & {0.5} \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {L_{0} } \\ {L_{1} } \\ {L_{2} } \\ \vdots \\ {L_{N} } \\ \end{array} } \right]$$
or it can be written in the equation form,
$${\mathbf{S}} = {\mathbf{WDL}}$$
where \({\mathbf{S}}\) is seismic trace, \({\mathbf{W}}\) is a wavelet matrix, and \({\mathbf{L}}\) is the natural logarithm of P-Impedance. Equation (21) is the case of under-determined in linear inversion. Therefore, to get P-Impedance, we can apply least-square inversion for the under-determined case,
$${\mathbf{L}}_{\varvec{i}} = {\mathbf{L}}_{{\varvec{i} - 1}} + {\mathbf{D}}^{{\mathbf{T}}} {\mathbf{W}}^{{\mathbf{T}}} \left( {{\mathbf{WDD}}^{{\mathbf{T}}} {\mathbf{W}}^{{\mathbf{T}}} + \lambda {\mathbf{I}}} \right)^{ - 1} \left( {{\mathbf{S}} - {\mathbf{WDL}}_{{\varvec{i} - 1}} } \right), i = 1,2, \ldots , m$$
where \({\text{L}}_{i}\) is model at \(i\)th iteration and \(m\) is a number of iteration. Generally, it is used as a low-frequency model from well data as \({\text{L}}_{0}\). Equations 2022 assume that wavelet does not change over time. To accommodate non-stationarity, we can replace matrix W to be a matrix of time-varying wavelet (denoted by \({\varvec{\mathcal{W}}}\)), so
$${\mathbf{L}}_{\varvec{i}} = {\mathbf{L}}_{{\varvec{i} - 1}} + {\mathbf{D}}^{{\mathbf{T}}} {\varvec{\mathcal{W}}}^{{\mathbf{T}}} \left( {{\varvec{\mathcal{W}}}{\mathbf{DD}}^{{\mathbf{T}}} {\varvec{\mathcal{W}}}^{{\mathbf{T}}} + \lambda {\mathbf{I}}} \right)^{ - 1} \left( {{\mathbf{S}} - {\varvec{\mathcal{W}}}{\mathbf{DL}}_{{\varvec{i} - 1}} } \right), i = 1,2, \ldots , m$$
To estimate the wavelet phase, we can use phase correction by doing well to seismic tie (White and Simm 2003) or using statistical prediction (van der Baan 2008; Fomel and van der Baan 2014). Then, time-varying wavelet becomes,
$${\varvec{\mathcal{W}}} \leftarrow {\varvec{ \mathcal{W}}}\cos \phi + {\mathcal{H}}\left( {\varvec{\mathcal{W}}} \right)\sin \phi$$
where \(\phi\) is wavelet phase rotation and \({\mathcal{H}}\left( {\varvec{\mathcal{W}}} \right)\) is Hilbert transform of matrix \({\varvec{\mathcal{W}}}\).

Results and discussion

I applied the proposed method to synthetic data to know its effectiveness in enhancing resolution. I generated a synthetic seismogram as an input data (Fig. 2, below) by convolving reflectivity series (Fig. 2, above) and time-varying Ricker’s wavelet. The wavelets were varied exponentially from peak frequency 40–15 Hz to construct non-stationary synthetic seismogram.
Fig. 2

Reflectivity series (above) and synthetic seismogram (below) as input data

Firstly, I estimated time-varying wavelet (Fig. 3) from the input signal to acquire a set of time-variant deconvolution operators. Then, this operator was applied to the input signal to result in the enhanced signal. Figure 4 displays the ability of this method to enhance the non-stationary signal with \(\lambda = 0.05\). In the time domain (Fig. 4, left), it can be seen that several events at deconvolved data are resolved after the deconvolution process. Simultaneously, time-varying deconvolution also broadens the signal’s bandwidth in the frequency domain (Fig. 4, right).
Fig. 3

Expected (left) and estimated (right) sets of time-varying wavelets

Fig. 4

Comparison between seismic trace before deconvolution (top left) and its spectrum (top right) and deconvolved seismogram (bottom right) and its spectrum (bottom right). Red line is the reflectivity series

Figure 5 displays the correlation between the seismogram and reflectivity series as the desired output. Reflectivity series is filtered by low-pass filter 100 Hz to make analysis easier. It can be seen after deconvolution that the data become less scatter from the straight line. The straight line is an indicator of the similarity between the result and the desired output. RMS error after deconvolution also decreases from 0.08 to 0.055. Moreover, the coefficient correlation increases from 0.66 to 0.78.
Fig. 5

Cross plot between original seismogram and filtered reflectivity series (left) and deconvolved seismogram and filtered reflectivity series (right)

In this paper, the time-varying deconvolution is also performed to noisy synthetic data (Fig. 6). The additive random noise is added to the seismogram. In advance of the deconvolution process, a bandpass filter is applied to the noisy seismogram to get the best deconvolution result. Figure 7 illustrates how noise can affect the deconvolution results. Moreover, Table 1 shows how quantitatively pre-whitening affects error and coefficient correlation between the deconvolved seismogram and filtered reflectivity. The best pre-whitening depends on the noise. In this case, pre-whitening 0.2 is the best choice because it results in high coefficient correlation even though the RMS error is not the least. In practice, validation with well data or corridor stack is required to decide the pre-whitening value to use.
Fig. 6

Synthetic seismogram with additive noise

Fig. 7

Comparison of the results of deconvolution with aλ = 0.1, bλ = 0.2, and cλ = 0.3

Table 1

Pre-whitening effect to RMS error and coefficient correlation

Pre-whitening, \(\lambda\)

RMS error

Coeff. correlation










As a comparison to the existing method, vertical resolution enhancement is selected by using time-varying Wiener deconvolution (TV-WD). TV-WD uses several windows and spiking deconvolution operators, which vary over time (Yilmaz 2001; van der Baan 2008). Figure 8 displays the comparison between the input signal, the deconvolved signal by using TV-WD, and the proposed method. TV-WD also performs enhancement in the non-stationary signal. However, the proposed approach results in a broader bandwidth than TV-WD. Spiking deconvolution performs better if the wavelet is minimum-phase (Yilmaz 2001), while this research uses zero-phase wavelet.
Fig. 8

Comparison between results of different deconvolution methods. Before deconvolution (top), time-varying Wiener deconvolution (middle), and the proposed method (bottom)

Another application of time-varying wavelet is for seismic inversion. In this paper, Model-based inversion is chosen to analyze how time-varying wavelet influences acoustic impedance inversion. Figure 9 shows the inversion result if it uses one estimated wavelet, that is Ricker wavelet. From the result, there are several mispredicted inverted impedance values, for example at 910 ms and 1180 ms. Figure 10 displays how time-varying wavelet improves the inversion result. The impedance RMS error decreases from 345 to 286 m/s*g/cc or about 17%. Moreover, the seismogram RMS error decreases significantly by approximately 81%. Figure 11 also illustrates that time-varying inversion gives a less deviated result from straight line.
Fig. 9

Seismic inversion result by using single wavelet

Fig. 10

Seismic inversion result using time-varying wavelet

Fig. 11

Cross plot between inverted impedance and filtered real impedance by using single wavelet (left) and time-varying wavelet (right)


Square of a matrix by using matrix diagonalization could be used to estimate time-varying wavelets from a signal. This concept is based on wavelet estimation by using autocorrelation. Time-varying wavelet can be applied in geophysical data processing for examples deconvolution and inversion. The time-varying wavelet is used to build a set of deconvolution operators to perform deconvolution. Then, the operators are applied to the input signal. As a result of deconvolution, this method enhances the non-stationer signal properly because the deconvolution operators change over time. Besides deconvolution, time-varying wavelets improve seismic inversion. A set of time-varying wavelet is used as a replacement of single wavelet in the inversion process. In the experiment, inversion error decreases by approximately 17%.



The author would like to thank Adhitya Ryan Ramadhani, M.Sc. (Mechanical Engineering) and Dr. Ida Herawati (Geophysical Engineering) for proofreading this article.


This research did not receive any grant from funding agencies in the public, commercial, or not-for-profit sectors.


  1. Allen J (1977) Short term spectral analysis, synthesis, and modification by discrete Fourier transform. IEEE Trans Acoust 25:235–238. CrossRefGoogle Scholar
  2. Clarke GKC (1968) Time-varying deconvolution filters. Geophysics 33:936–944. CrossRefGoogle Scholar
  3. Cui T, Margrave GF (2014) Seismic wavelet estimation. CREWES Res Rep 26:1–16Google Scholar
  4. Fomel S, van der Baan M (2014) Local skewness attribute as a seismic phase detector. Interpretation 2:SA49–SA56. CrossRefGoogle Scholar
  5. Hampson DP, Russell BH, Bankhead B (2005) Simultaneous inversion of pre-stack seismic data. In: SEG technical program expanded abstracts 2005. Society of Exploration Geophysicists, pp 1633–1637Google Scholar
  6. Hampson-Russel Software (1999) STRATA theory. 13Google Scholar
  7. Levinger BW (1980) The square root of a 2 × 2 matrix. Math Mag 53:222–224. CrossRefGoogle Scholar
  8. Margrave GF, Lamoureux MP, Henley DC (2011) Gabor deconvolution: estimating reflectivity by nonstationary deconvolution of seismic data. Geophysics 76:W15–W30. CrossRefGoogle Scholar
  9. Ricker N (1953) The form and laws of propagation of seismic wavelets. Geophysics 18:10–40. CrossRefGoogle Scholar
  10. Ryan H (1994) Ricker, Ormsby, Klauder, Butterworth—a choice of wavelets. CSEG Rec. 24–25Google Scholar
  11. Schafer R, Rabiner L (1973) Design and simulation of a speech analysis-synthesis system based on short-time Fourier analysis. IEEE Trans Audio Electroacoust 21:165–174. CrossRefGoogle Scholar
  12. van der Baan M (2008) Time-varying wavelet estimation and deconvolution by kurtosis maximization. Geophysics 73:V11–V18. CrossRefGoogle Scholar
  13. Walden AT, White RE (1998) Seismic wavelet estimation: a frequency domain solution to a geophysical noisy input-output problem. IEEE Trans Geosci Remote Sens 36:287–297. CrossRefGoogle Scholar
  14. White RE, Simm R (2003) Tutorial: good practice in well ties. First Break 21:75–83Google Scholar
  15. Wiener N (1949) Extrapolation, interpolation, and smoothing of stationary time series. The MIT Press, CambridgeGoogle Scholar
  16. Yilmaz Ö (2001) Seismic data analysis. Society of Exploration Geophysicists, TulsaCrossRefGoogle Scholar

Copyright information

© The Author(s) 2019

Open AccessThis article is distributed under the terms of the Creative Commons Attribution 4.0 International License (, which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.

Authors and Affiliations

  1. 1.Geophysical Engineering DepartmentUniversitas PertaminaJakartaIndonesia

Personalised recommendations