Source code for bruges.attribute.energy

"""
Mean-squared energy measurement.

:copyright: 2019 Agile Geoscience
:license: Apache 2.0
"""
import numpy as np
from bruges.filters import convolve


[docs]def energy(traces, duration, dt=1): """ Compute an mean-squared energy measurement on seismic data. The attribute is computed over the last dimension. That is, time should be in the last dimension, so a 100 inline, 100 crossline seismic volume with 250 time slices would have shape (100, 100, 250). Args: traces (ndarray): The data array to use for calculating energy. duration (float): the time duration of the window (in seconds), or samples if dt=1. dt (float): the sample interval of the data (in seconds). Defaults to 1 so duration can be in samples. Returns: ndarray: An array the same dimensions as the input array. """ # data = traces.astype(np.float).reshape(-1, traces.shape[-1]) n_samples = int(duration / dt) window = np.ones(n_samples) / n_samples return convolve(traces**2, window)