# Convolutional seismic modeling (fatiando.seismic.conv)¶

Zero-offset convolutional seismic modeling

Give a depth model and obtain a seismic zero-offset convolutional gather. You can give the wavelet, if you already have, or use one of the existing, from which we advise ricker wavelet (rickerwave function).

## References¶

Yilmaz, Oz, Ch.2 Deconvolution. In: YILMAZ, Oz. Seismic Data Analysis: Processing, Inversion, and Interpretation of Seismic Data. Tulsa: Seg, 2001. Cap. 2. p. 159-270. Available at: <http://dx.doi.org/10.1190/1.9781560801580.ch2>

fatiando.seismic.conv.convolutional_model(rc, f, wavelet, dt)[source]

Calculate convolutional seismogram for a geological model

Calculate the synthetic convolutional seismogram of a geological model, Vp is mandatory while density is optional. The given model in a matrix form is considered a mesh of square cells.

Warning

Since the relative difference between the model is the important, being consistent with the units chosen for the parameters is the only requirement, whatever the units.

Parameters:

• rc
: 2D-array

Reflectivity values in the time domain.

• f
: float

Dominant frequency of the ricker wavelet.

• wavelet
: float

The function to consider as source in the seismic modelling.

• dt: float

Sample time of the ricker wavelet and of the resulting seismogram, in general a value of 2.e-3 is used.

Returns:

• synth_l
: 2D-array

Resulting seismogram.

fatiando.seismic.conv.depth_2_time(vel, model, dt, dz)[source]

Convert depth property model to time model.

Parameters:

• vel
: 2D-array

Velocity values in the depth domain.

• model
: 2D-array

Model values in the depth domain.

• dt: float

Sample time of the ricker wavelet and of the resulting seismogram, in general a value of 2.e-3 is used.

• dz
: float

Length of square grid cells.

• rho
: 2D-array (optional)

Density values for all the model, in depth domain.

Returns:

• model_t
: 2D-array

Property model in time domain.

fatiando.seismic.conv.reflectivity(model_t, rho)[source]

Calculate reflectivity series in the time domain, so it is necessary to use the function depth_2_time first if the model is in depth domain. Note this this function can also be used to one dimensional array.

Parameters:

• model_t
: 2D-array

Velocity values in time domain.

• rho
: 2D-array (optional)

Density values for all the model, in time domain.

Returns:

• rc
: 2D-array

Calculated reflectivity series for all the model given.

fatiando.seismic.conv.rickerwave(f, dt)[source]

Given a frequency and time sampling rate, outputs ricker function. The length of the function varies according to f and dt, in order for the ricker function starts and ends as zero. It is also considered that the functions is causal, what means it starts at time zero. To satisfy sampling and stability:

$f << \frac{1}{2 dt}.$

Here, we consider this as:

$f < 0.2 \frac{1}{2 dt}.$

Parameters:

• f
: float

dominant frequency value in Hz

• dt
: float

time sampling rate in seconds (usually it is in the order of ms)

Returns:

• ricker
: float

Ricker function for the given parameters.