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).

  • convolutional_model: given the reflectivity series and wavelet, it returns the convolutional seismic gather.
  • reflectivity: calculates the reflectivity series from the velocity model (and density model if present).
  • depth_2_time: convert depth property model to the model in time.
  • rickerwave: calculates a ricker wavelet.

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.