segyio

Fast Python library for SEGY files.

OTHER License

Downloads
125.3K
Stars
467
Committers
41

Bot releases are hidden (Show)

segyio - Version 1.8.6

Published by jokva over 5 years ago

1.8.6

  • Fixed a bug where negative short header words on gcc were read wrong
segyio - Version 1.8.5

Published by jokva over 5 years ago

1.8.5

  • segyio now reads short attributes from little-endian files correctly
segyio - Version 1.8.4

Published by jokva over 5 years ago

1.8.4

  • The from_array function has been refactored, and speed is improved
  • create works for non-4-byte numeric formats
  • More numerical formats are accepted: 8-byte/64 bit double-precision IEEE
    float, 1, 2, and 4-byte signed and unsigned integers
  • segyio no longer crashes on key misses in f.gather[int, :]
  • The intended TypeError is raised when traces are accessed with None, instead
    of a misleading (and wrong) AttributeError
  • sample-interval has gotten some new tests
  • Minor behavorial improvements to C++ test-config
  • Some stack-related bug fixes in the test suite
  • The readme has seen some minor updates
segyio - Version 1.8.3

Published by jokva almost 6 years ago

Fix preprocessor directives to build properly on big-endian architectures.

segyio - Version 1.8.2

Published by jokva almost 6 years ago

Pass HOST_BIG_ENDIAN as a preprocessor directive, which fixes builds on big-endian machines.

segyio - Version 1.8.1

Published by jokva almost 6 years ago

1.8.1

  • Fixed a docstring formatting issue
  • Fixed a race condition in test suite
segyio - Version 1.8.0

Published by jokva almost 6 years ago

1.8.0

  • segyio has learned the seismic unix file format, and can read and write SU
    files. This feature is found in the segyio.su module
  • segyio supports least-significant-byte (LSB/little-endian) first formatted
    files
  • Fixed a bug that caused writing headers in non-linear mode very slow,
    and wrong under some conditions
  • segyio also considers files with descending line/offset numbers sorted, not
    just ascending
  • The python file handle has learned the interpret method, which allows
    specifying structure directly, rather than inferring it from file metadata.
    This is particularly useful for files with structure, but broken headers
  • A new family of from_array functions are added to the tools module,
    intended for quick-and-easy storing a 2/3/4D volume on disk
  • Sorting defaults to inline in segyio.create if nothing is specified
  • Text.__setitem__ used a wrong variable and didn't really work, but is now
    fixed
  • Internal imports are tidied up
  • The test suite in both Python and C++ have seen some minor improvements
  • An experimental C++ interface is available for source builds, but is not
    considered stable - internals and interface can change with no prior notice.
    The experimental interface is enabled when segyio is built with
    -DEXPERIMENTAL=ON
segyio - 1.8.0-beta1

Published by jokva almost 6 years ago

Preview release of 1.8.0.

Includes seismic unix file support and a series of bug- and performance fixes.

segyio - 1.8.0-alpha1

Published by jokva almost 6 years ago

Preview release of 1.8.0.

The major feature of this release is support for seismic unix files.

segyio - Version 1.7.1

Published by jokva about 6 years ago

1.7.1

  • Fixed an issue where writing traces on memory-mapped files was a no-op
  • Depth slices dimensions are always in fast-by-slow
  • catb/catr has some new output formats
  • Some docs entries updated and fixed
segyio - Version 1.7.0

Published by jokva about 6 years ago

1.7.0

  • segyio has learned to open non-ascii file paths on Windows
  • Fixed an issue where segyio-catr would sometimes print the same trace twice
  • segyio no longer incorrectly considers files where the
    inline/crossline/offset triple doesn't change sorted
  • The test suite has seen some overhaul, making test cases more focused on the
    actual thing to test
  • Checking sorting won't silently fail when the offset-word is broken
  • f.text is now a Sequence, meaning it has slicing and other common array
    operations
  • The makefiles no longer build both static and shared libraries, but rather
    respect the BUILD_SHARED_LIBS variable
  • Python 3.7 support
  • Various refactoring and internal improvements
segyio - Version 1.6.0

Published by jokva over 6 years ago

1.6.0

  • segyio has learned to handle int16 and int32 sample formats
  • segyio has learned to write any array_likes with any float-convertible
    contents. f.trace = np.linspace(0, 1, 0.01) works as expected.
  • segyio types have been extended to be more container-like, and conform to
    more protocols. Notably, headers and lines are properly dict_like, and traces
    are properly array_like
  • trace.ref added, a write-back mode where changes to yielded trace data are
    written back to disk
  • trace.raw has been improved, is faster and supports setitem and the
    container protocol
  • Headers have learned to accept (seismic unix) keywords in update, so
    header.update(cdpx=10) works as expected
  • f.dtype added, this is the dtype used in all segyio-provided numpy arrays,
    and reflects the underlying data format
  • f.readonly added, to query if file handles are writable
  • segyio gracefully handle non-contiguous and more array_likes in setitem
  • The type requirements of f.samples has been relaxed, and it now is whatever
    numpy uses as default
  • segyio now assumes IBM float if the format identifier is meaningless
  • Some exception types are cleaned up, notably header key misses raise
    KeyError, not IndexError
  • General speed and clarity improvements, some more exception guarantees
  • segyio has learned to raise an error when provided with too short data traces
  • segyio has started raising deprecation warnings when using to-be-removed
    features
  • The python library has overall been simplified
  • Lots of new documentation has been written, the sphinx docs structure has
    been overhauled
segyio - Version 1.5.3

Published by jokva over 6 years ago

1.5.3

  • segyio-catr has learned to handle no arguments, and as a results read the
    first trace header as intended
  • segyio-catr has its help text and man page corrected
  • segyio-crop has learned to say how many traces it copies
  • segyio-crop has learned to warn when no traces are copied
  • segyio-crop has learned not to overwrite its input file when source and dest
    is the same
  • The makefiles understand the BUILD_DOC option, to build the python docs with
    sphinx
  • Test suite has some speed and robustness improvements
segyio - Version 1.5.2

Published by statoil-travis over 6 years ago

1.5.2

  • open and create handle anything string-convertible as filename argument
  • pytest replaces unittest, both as library and test driver
  • segyio-crop now respects the byte-offset arguments, instead of just ignoring
    them and using 189 & 193 from SEG-Y revision 1
  • Some errors in readme and documentation is cleared up
  • Fixed a bug in create that would trigger 16-bit integer overflow, effectively
    breaking any file with more than 65k traces.
segyio - https://github.com/equinor/segyio/releases/tag/1.5.1

Published by statoil-travis over 6 years ago

segyio - Version 1.5.0

Published by jokva over 6 years ago

1.5.0

  • A bug making an external text header disappear has been fixed
  • The python extension has been changed to use C++ features, simplifying code
    and dropping the use of capsules
  • segyio-cath sets non-zero status code on failures
  • Application testing is moved from python to cmake, giving a large speedup
  • The IndexError message when accessing headers out-of-range has been improved
  • Some work has been moved from python into the extension
  • Error messages in python have received an overhaul
  • Errors produced when memory-mapping files are made consistent with fstream
    sourced errors
segyio - Version 1.4.0

Published by jokva almost 7 years ago

1.4.0

  • segyio has learned how to resample a file (segyio.tools.resample). This
    function does not actually touch the data traces, but rewrites the header
    fields and attributes required to persistently change sample rate.
    Interpolation of data traces must be done manually, but for a strict
    reinterpretation this function is sufficient
  • segyio has learned to read enough structure from a file to create a new file
    with the same dimensions and lines (segyio.tools.metadata)
  • segyio has learned to create unstructured files (only traces, no inlines or
    crosslines)
  • f.text[0] = requires bytes convertability. This catches some errors that
    were previously fatal or silent
  • f.text broken internal buffer allocations fixed
  • f.text[n] = supports strings longer or shorter than 3200 bytes by
    truncating or padding, respectively
  • Fixed a bug where a particular length of mode strings caused errors
  • segyio.open('w') raises an exception, instead of silently truncating the
    file and failing later when the file size does not match the expected.
  • segy_traces now fails if trace0 is outside domain, instead of silently
    returning garbage
  • Return correct size for dirty, newly-created files. This means carefully
    created new files can be mmapd earlier
  • Methods on closed files always raise exceptions
  • mmap support improved - all C functions are mmap aware.
  • The file is now closed after a successful mmap call
  • str.format used for string interpolation over the % operator
  • Several potential issues found by static analysis, such as non-initialised
    temporaries, divide-by-zero code paths, and leak-errors (in process teardown)
    addressed, to reduce noise and improve safety
  • Error message on failure in segyio.tools.dt improved
  • Error message on unparsable global binary header improved
    changes for the next major release
  • Catch2 is introduced to test the core C library, replacing the old
    test/segy.c family of tests
  • Contract for segy_traces clarified in documentation
  • Docstrings improved for depth_slice and segyio.create
  • A new document, breaking-changes.md, lists planned deprecations and API
  • The readme has gotten a makeover, with better structure, an index, and more
    examples
  • setup.py requires setuptools >= 28. A rather recent setuptools was always a
    requirement, but not codified
  • scan-build (clang analysis) enabled on Travis
segyio - https://github.com/equinor/segyio/releases/tag/1.3.9

Published by statoil-travis almost 7 years ago

segyio - Version 1.4-beta3

Published by jokva almost 7 years ago

segyio - Version 1.3.8

Published by jokva almost 7 years ago

1.3.8

  • Automate python ast analysis with bandit on travis
  • The installed python extension is built without rpath
  • The numpy minimum requirement is handled in setup.py
  • The python installation layout can be configured via cmake
    e.g. -DPYTHON_INSTALL_LAYOUT=deb
Package Rankings
Top 20.19% on Conda-forge.org
Top 2.43% on Pypi.org
Related Projects