Pyterse python package
Next generation TERSE/PROLIX diffraction data compression algorithm
The pyterse python package provides Python bindings for the C++ TERSE/PROLIX(TRPX) compression algorithm scheme (https://github.com/senikm/trpx).
Prerequisites
Before using pyterse, ensure your data meets these requirements:
- Signed or unsigned integral type data
- Grayscale data
- Preferably has high dynamic range
Installation
Create a virtual environment:
conda create -n pyterse python pip numpy pillow
Install the package:
pip install pyterse
Usage guide
Basic operations
Creating a Terse object
There are multiple ways to create a Terse object:
import pyterse
terse = pyterse.Terse()
terse = pyterse.Terse(data)
terse = pyterse.Terse(data, pyterse.TerseMode.SIGNED)
Inserting and managing data
Add data to an existing Terse object:
terse.push_back(data)
terse.insert(pos, data)
File operations
Save and load compressed data:
terse.save('filename.trpx')
loaded_terse = pyterse.Terse.load('filename.trpx')
Data Decompression
Decompress data:
decompressed_data = terse.prolix()
frame = terse.at(0)
decompressed_frame = frame.prolix()
Metadata Management
terse.set_metadata(frame, "metadata string")
metadata = terse.metadata(frame)
Utility Methods
terse.dim()
terse.size
terse.number_of_frames
terse.number_of_bytes
terse.bits_per_val
terse.is_signed
terse.erase(pos)
terse.shrink_to_fit()
terse.set_block_size(size)
terse.set_fast(bool)
terse.set_small(bool)
terse.set_dop(value)