Bruges

Latest version: v0.5.4

Safety actively analyzes 685670 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 5

0.4.4

- `bruges.reflection.acoustic_reflectivity()` and `bruges.reflection.reflectivity()` now allow you to pass the `axis` to compute on (axis 0 by default, which results in a reflectivity series for each _column_ in a 2D array). You can also set a 'mode', which is currently 'valid' and results in one less sample in the `axis` dimension. In the next release, v0.5, it will be 'same' by default, so the output is the same shape as the input.

0.4.3

- New in the `models` submodule: `panel` allows you to pass in two or more 1D arrays, which can be of different lengths, and linearly interpolate in between them, sample by sample. Note: there is no attempt to correlate them; the assumption is that the top and bottom correlate and everything in between correlates in a linear way.
- New in `models.wedge`: varying net:gross along the 'breadth' (3rd) dimension of a wedge model. The wedge must be 'binary'; that is, the middle (wedge) layer must only contain 2 components. The 3rd dimension will then show pinch-out geometries that vary from one lithology to the other.
- It is now possible to choose `power` and `root` shapes for `models.wedge`, as well as `linear` and `sigmoid`.
- Fixed a bug in `models.wedge` that caused some wedges to fail with single values for the `width` argument.

0.4.2

- The Ormsby wavelet now has the option of passing in the relative power (in dB) of the f2 and f3 corner frequencies, e.g. `P=(0, -5)`. Default: `(0, 0)` (the conventional trapezoidal Ormsby bandpass filter).
- Wavelets now have the option of returning an odd number of samples for 'even' time periods, like 0.128 s at 0.004 s sample interval. This used to return 32 samples; now if you set `sym` to `True`, you'll get 33 samples. **Future change:** From v0.5, this will be the default.
- Wavelet time shoud no longer suffer from floating point imprecision (previously common near t = 0).
- You can now optionally pass a time series to a wavelet function, and the wavelet will be evaluated at those times. This overrides `duration` and `dt`, so you should pass `None` to those parameters (or get a warning).
- Added a new module, `models`, which contains a new function, `wedge`. For now this generates 2D wedge models; in the future it will also provide 3D models.
- **Future change:** Reminder: wavelets in v0.5 will no longer have `return_t=True` by default.

0.4.1

- Moved `rotate_phase()` to `bruges.filters` and it now should handle 2D and 3D seismic correctly. You can also pass an array-like of phases to get a 'phase bank' of rotations, similar to how this works with frequencies and wavelet banks.

0.4

- **Breaking change:** fixed numerous minor issues with `attribute.energy()`, see [issue 78](https://github.com/agilescientific/bruges/issues/78). Note that it now expects time to be in the last dimension of the array. The function now runs on n-D data and is also about 15 times faster.
- Multiple fixes to the documentation, thanks especially to Jesper Dramsch and Adriana Gordon.
- Added the `filters.berlage()` wavelet, a causal, minimum phase wavelet good for marine airgun sources.
- Added the `filters.generalized()` wavelet, of which the Ricker is a special case, as defined by Wang 2015, Geophys J Int 203, p1172ff.
- Added a FutureWarning that wavelets in the next release will have `return_t=True` by default. In a later release, the option will likely disappear completely.
- Added `fluids.rho_water()`, `fluids.rho_brine()`, `fluids.v_water()`, and `fluids.v_brine()`, implementing equations from Batzle & Wang (1992).
- Added `filters.convolve()`, which implements multi-dimensional convolution for 1D and 2D reflectivities and wavelets (or wavelet banks), and for 3D reflectivity with 1D wavelets. `convolve(rc_panel, wavelet_bank)` results in a 3D synthetic, with axes of frequency, offset, and time.
- Added `util.convolve_many()` to implement a fast way to convolve a 1D kernel over multiple signals whose domain (time or distance) is in the last axis.
- The reflectivity equations now accept a tuple for `theta1`, as well as a scalar value (interpreted as one angle, in degrees), or a list or array (interpreted as an array of angles). If you pass a 2-tuple, it is interpreted as a start and stop for a linear space; the step size will be 1.0 degrees. A 3-tuple is interpreted as a start, stop, and step size (note, not number of steps). The intervals specified will be open; the end-points will be included. So `theta1=(0, 5)` is equivalent to `theta1=[0,1,2,3,4,5]` and `theta1=(0, 10, 2)` is the same as `theta1=[0,2,4,6]`.

0.3.4

- Added the NMO equation from Leo Uieda's TLE tutorial. This is a work in progress.
- Implemented `generic` (a windowed function), `cosine`, and `gabor` wavelets in `filters`. The `cosine` and `gabor` filters are implemented via `generic`.
- Fixed a bug in `filters.sinc` that caused the wavelet to have the wrong amplitude with no taper. Implemented `sinc` using `generic`.
- Fixed a bug in `reflection.critical_angles` that was preventing valid values from being computed.
- Fixed a bug in `CoordTransform` that broke Python 2.7 compatibility.
- Fixed up the documentation.

Page 2 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.