Skip to content

Python interface to the e1 compression format.

License

Notifications You must be signed in to change notification settings

samuelchodur/e1

 
 

Repository files navigation

e1.py

Python support for the e1 seismic compression format.

"e1" is a variable-length compression algorithm for int32 data.

Installation

PyPI

pip install e1

Conda-Forge

New: now in Conda-Forge, thanks to @jcox10!

conda install -c conda-forge e1

Usage

Decompress data from a file

import e1

file_name = 'some_file.w'
byte_offset = 0
nsamples = 1000

with open(file_name, 'rb') as f:
    f.seek(byte_offset)
    data = e1.decompress_file(f, nsamples)

Decompress raw bytes

with open(file_name, 'rb') as f:
    # Read 5 times as many bytes as you expecte from nsamples x 4-byte values,
    # just to make sure all your nsamples are in it.  Though it may be more data
    # than you need, this gaurds against poorly-compressed data.  
    # In e1, you don't know a priori how many bytes it took to compress your data.
    nbytes = 5 * nsamples * 4
    byts = f.read(nbytes)

data = decompress(byts, nsamples)

About

Python interface to the e1 compression format.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 83.2%
  • Python 16.8%