Releases: equinor/segyio
Version 2.0.0-alpha.1
segyio 2.0
The main goal of this release is to add support for files following the SEG-Y rev. 2.1 standard.
- We don't know when segyio 2.0 will be released properly, but 2026 is unlikely.
- Development is set on hold and you should expect no support.
Release notes:
-
Main functionality of the 2.1 specification is supported.
Note that we do not have real SEG-Y revision 2.1 files yet, so there has been limited testing of the new functionality. The standard has been interpreted to the best of our understanding. We are aware that this may mismatch community understanding. The Readme is not yet updated and would be updated after as part of a proper 2.0 release. -
The following SEG-Y rev 2 features are implemented:
- support for int64, uint64 and floating-point types in trace headers
- support for trace header extension 1 and proprietary trace headers. Users can read standard, extended and proprietary trace header data via
f.traceheader - support for XML-defined trace header layouts (see Sec. D8 in SEG-Y standard). The layout can be embedded inside the SEG-Y file or provided as a separate XML. Users can get all trace header layout information via
f.tracefield. File-independent trace field offsets likesegyio.TraceField.TRACE_SEQUENCE_LINEshould not be used anymore if files have non-standard layouts.
-
Added support for accessing files from various sources (e.g. in-memory files and custom datasources like cloud storages) via self-defined Python streams. Reading via a Python stream won't be as fast as reading local files, but can be of use when reading from cloud. Some pointers are provided in the next tutorial.
-
Added automatic discovery of encoding (EBCDIC/ASCII) and endianness (big-endian file or little-endian).
-
Added
f.stanzainterface to read extended text headers as stanzas. -
Breaking change:
the following code using headers data after the file is closed is no longer valid:
with segyio.open(path) as f: binh = f.bin trh = f.header[0] print("Binary header:", binh) print("Trace header:", trh)
All the operations on trace headers should happen while file is still open:
with segyio.open(path) as f: binh = f.bin trh = f.header[0] print("Binary header:", binh) print("Trace header:", trh)
- Issues described in
breaking-changes.mdare implemented. File would be deleted with proper 2.0 release. - C library users (if you exist): interface is adapted to support new features and is not backwards-compatible. As we hope no-one uses it directly, no additional pointers are given. Examples of use can be found in the Python binding and in tests.
Version 1.9.14
Version 1.9.13
Version 1.9.13
- Distribute wheels for Python 3.13
- Support for python 3.6, 3.7, 3.8 has been dropped, as it is end-of-life
# Version 1.9.12
Version 1.9.12
- Distribute wheels for Python 3.12
- Distribute wheels for Apple ARM
Version 1.9.11
Version 1.9.11
- Fixed a bug where segyio used the Delay Recording Time without it's scaling factor when setting up the sample offsets on open.
Version 1.9.10
1.9.10
- Distribute wheels for Python 3.11
Version 1.9.9
Version 1.9.9
- Fix packaging support for linux/aarch64
Version 1.9.8
Version 1.9.8
- Packaging support for linux/aarch64
Version 1.9.7
Version 1.9.7
This release only comes with packaging updates and python versions.
Version 1.9.6
Version 1.9.6
- gather[] selects the right offsets
- Python 3.9 packages