equinor / segyio

Fast Python library for SEGY files.
Other
476 stars 214 forks source link

iline*xline*offset is not equal trace number #441

Closed rayray313 closed 4 years ago

rayray313 commented 4 years ago

It shows error when trace number is not equal inlinexlineoffset. Anyone has a solution ?

jokva commented 4 years ago

Hi,

More information is necessary. Did segyio.open() fail? Does it have azimuth channels? Is it a stacked volume? Shot gathers?

If your file is not a strict 3D cube, you must open the file in unstructured mode, which only enables the f.trace feature and a few very similar. This is achieved with segyio.open('fname', ignore_geometry = True).

https://segyio.readthedocs.io/en/latest/segyio.html#segyio.open

rayray313 commented 4 years ago

Yes. That is my question. If the segy data is not strictly 3D cube and we can use the unstructured mode, how to sort the data along iline or xline ?

jokva commented 4 years ago

Depends on how well it is organised, but it regardless boils down to having to read the header with the trace, and sort them out yourself.

https://segyio.readthedocs.io/en/latest/segyio.html#segyio.trace.Header https://segyio.readthedocs.io/en/latest/segyio.html#segyio.trace.Trace

If you want to sort it, you need to write these traces out to a new file, with the traces in the right order. segyio provides no functionality specific for that purpose.