You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It would be nice to have geometry abstractions for standard interface and custom / geometry specific exception handling.
This has the following pros:
Common interface for coordinate conversions.
Trace iterators based on the type of data.
Enforce usage of methods for geometry instances that may be added later.
Improve maintainability.
Allow custom things to be added, i.e., for shots, we add the conversion from unwrapped channels to wrapped channels unwrap_channels, and we still have a base implementation that should follow the extensible interface.
Encapsulate the logic for geometry specific chunk size and access pattern configurations
Long shot, but cython or numba jit versions may be even better. xarray can also be used to handle named dimensions etc.
frommdio.segy.geometryimportSeismicGeometryclassSeismicStack3d(SeismicGeometry):
def__init__(self, inlines, crosslines, samples):
# set attributes, initialize grid etc.def__iter__(self):
# logic to iterate traces on spatial il/xl grid@abstractmethoddefxy_to_grid(self, x, y, method="nearest"):
# logic to convert CDP-X CDP-Y to inline and crossline@propertydefnum_traces(self):
returnself.get_size("inline") *self.get_size("crossline")
Or 3D shots like
frommdio.segy.geometryimportSeismicGeometryclassSeismicShot3d(SeismicGeometry):
def__init__(self, shots, cables, channels, samples):
# set attributes, initialize grid etc.def__iter__(self):
# logic to iterate traces on shot grid@abstractmethoddefxy_to_grid(self, x, y, method="nearest"):
# logic to convert SHOT-X SHOT-Y to shot number@propertydefnum_traces(self):
returnself.get_size("shot") *self.get_size("cable") *self.get_size("channel")
@defunwrap_channels(self, channels_per_streamer: int):
returnself.channel%channels_per_streamer+1
and so on.
The text was updated successfully, but these errors were encountered:
It would be nice to have geometry abstractions for standard interface and custom / geometry specific exception handling.
This has the following pros:
unwrap_channels,
and we still have a base implementation that should follow the extensible interface.Long shot, but
cython
ornumba
jit versions may be even better.xarray
can also be used to handle named dimensions etc.Would inherit from a base class like
Then we would have 3D as something like
Or 3D shots like
and so on.
The text was updated successfully, but these errors were encountered: