Easier, better, faster, stronger
0208 18:46

The reflectivity equations in
reflection
module now work on arrays for the Vp, Vs, and rho values, as well as the theta values. This is about 10 times faster than running a loop over elements; the Zoeppritz solution is 100× faster.
 The various Zoeppritz solutions and the Aki–Richards approximations now return the complex reflectivity and therefore show postcritical amplitudes correctly.

A new reflection coefficient series function,
reflection.reflectivity()
, makes it easier to compute offset reflectivities from logs.

Several new linear and nonlinear filters are in
bruges.filters
, including median
(good for seismic horizons), mode
(good for waveform classification), symmetric nearestneighbours or snn
, and kuwahara
.

The wavelets
ricker()
, sweep()
(aka Klauder) and ormsby()
wavelet now all work for a sequence of frequencies, returning a wavelet bank. Also added a sinc()
wavelet, with a taper option to attenuate the sidelobes.

Added
inverse_gardner
, and other density and velocity transforms, to petrophysics
.

Added
transform.v_rms()
(RMS velocity), transform.v_avg()
(average velocity) and transform.v_bac()
(naïve Backus average). These all operate in a 'cumulative' averagedownto sense.
 Added a coordinate transformation to translate between arbitrarily oriented (x,y) and (inline, line) coordinates.