The Ultimate Python SEG-Y I/O with Cloud Support and Schemas
Project description
SEG-Y
🚧👷🏻 This project is under active development, expect breaking changes the to API 👷🏻🚧 - March, 2024
This is an efficient and comprehensive SEG-Y parsing library.
See the documentation for more information.
This is not an official TGS product.
Key Features
- Thrive for SEG-Y correctness while allowing flexibility.
- Utilize fast decoding and parsing logic (
numpy
+numba
). - Use
fsspec
ecosystem to read / write files to and from disk, cloud,http
,ftp
. - Support legacy and current SEG-Y standards.
- Allow users to specify and register their customizations as new "standards".
- Header field names are canonical and interactive alias recommendation based on popular libraries.
- Automatic detection of file endianness and SEG-Y revision.
- Configuration mechanism to override bad headers that hinders automatic parsing.
Installing segy
Clone the repo and install it using pip:
Simplest way to install segy
is via pip from PyPI:
$ pip install segy
or install segy
via conda from conda-forge:
$ conda install -c conda-forge segy
Extras must be installed separately on
Conda
environments.
For details, please see the installation instructions in the documentation.
Using segy
Please see the Command-line Usage for details.
For Python API please see the API Reference for details.
Reading Capabilities
It supports reading from local and cloud files (object store). It can read:
- Sequential traces (fastest)
- Disjoint sequential regions (fast)
- Random traces (slow)
The library will also try to infer the endianness and the revision of the SEG-Y file automatically. If it can't, users can override the endianness, revision, and more parameters using the settings.
High Performance
The performance is high and to be proven with upcoming benchmarks. The initial subjective benchmarks is very acceptable.
Flexibility
The library provides a fully flexible, schematized SEG-Y structure, including data models and JSON schema parsing and validation.
Predefined SEG-Y Standards
It supports predefined SEG-Y "standards" for various versions. However, some versions are still in progress and not all validation logic is implemented yet:
- ✅ Rev 0 (1975)
- ✅ Rev 1 (2002)
- ✅ Rev 2 (2017)**
- ✅ Rev 2.1 (2023)**
** The XML stanzas and extended trace headers are not currently supported.
Custom SEG-Y Standards
You can build your own SEG-Y "standard" with composition of specs for:
- Text header (file + extended)
- Binary header
- Traces (header + extended header + samples)
Contributing to segy
Contributions are very welcome. To learn more, see the Contributor Guide.
Licensing
Distributed under the terms of the Apache 2.0 license.
segy
is free and open source software.
Issues
If you encounter any problems, please file an issue along with a detailed description.
Credits
This project was established at TGS. Current maintainer is Altay Sansal with the support of many more great colleagues.
The CI/CD tooling is loosely based on Hypermodern Python Cookiecutter with more modern tooling applied elsewhere.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file segy-0.3.0.tar.gz
.
File metadata
- Download URL: segy-0.3.0.tar.gz
- Upload date:
- Size: 44.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9f1382314145fd80caefaed1aab936e1286f3fbf31b73ff86e3b04339bb3248 |
|
MD5 | 624cd3b87284af923a70e8e62956dbff |
|
BLAKE2b-256 | 3d1316cbd0eb2dcc4e7dc335bfc3cd879e1e4d011b4f24c566771bf042c924bb |
File details
Details for the file segy-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: segy-0.3.0-py3-none-any.whl
- Upload date:
- Size: 53.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5cd2abb8f544efdd7a2c127e60821c7550a9a98c0402a20f9a84a48789fd536 |
|
MD5 | e6b8ebf245c8e2d0bbae5532077df394 |
|
BLAKE2b-256 | 4ccf58c63d697e908c99653ddc51d0ffef60079608e1113e1a61706eaa571614 |