Allow reading from and writing to Earthworm shared memory ring buffers.
Project description
python-ew
This is a 2019 updating of the PythonEw Python 2.x compatible modules by OSOP to work with Python 3.x
python-ew
is a Python wrapper for accessing a Earthworm shared memory rings, allowing you to extend the Earthworm
system with Python code.
Earthworm itself is a set of open source programs, tools and libraries that are used in the development of software for maintaining seismic networks, research and other seismological and geophysical applications.
Supported message types:
TYPE_HEARTBEAT
:python_ew.HeartBeatRing
TYPE_STATUS
:python_ew.StatusRing
,python_ew.StatusMessage
TYPE_TRACEBUF2
:python_ew.Tracebuf2Ring
,python_ew.Tracebuf2Message
Installation
In order to install python-ew
, you need to have first installed Earthworm itself. This module builds successfully on
Linux against earthworm-7.9
compiled with EWBITS=64
and with "-m64 -fPIC
" added to GLOBALFLAGS
in
${EW_HOME}/environment/ew_linux.bash
. Your milage may vary for other versions of Earthworm, or on other platforms.
To compile the python-ew
C extensions, we need to find the Earthworm .o
and .h
files. We'll look in the following
places:
Libraries:
${EW_HOME}/lib
${EW_HOME}/earthworm_7.9/lib
Include files:
${EW_HOME}/include
${EW_HOME}/earthworm_7.9/include
Thus, ensure that the EW_HOME
environment variable is set apporpriately.
Then:
pip install python-ew
Example usage
Reading TRACEBUF2 messages
Let's say your ring with TYPE_TRACEBUF2
messages is named WAVE_RING
, and you want to get all messages regardless of
what module created them:
> python3
>>> from python_ew import Tracebuf2Ring
>>> ring = Tracebuf2Ring('WAVE_RING', 'MOD_WILDCARD')
>>> messages = ring.read()
>>> messages[0]
{'pinno': 0, 'nsamp': 100, 'starttime': 1564770703.968393, 'endtime': 1564770704.958393, 'samprate': 100.0, 'sta': 'FOO', 'net': 'XX', 'chan': 'HNN', 'loc': '--', 'version': '20', 'datatype': 'i4', 'quality': '', 'pad': '', 'samples': [-22129, -22130, -22131, -22132, -22129, -22130, -22128, -22128, -22130, -22128, -22130, -22128, -22128, -22129, -22129, -22129, -22129, -22130, -22127, -22128, -22129, -22128, -22128, -22130, -22131, -22128, -22131, -22131, -22128, -22128, -22132, -22130, -22125, -22128, -22129, -22126, -22128, -22130, -22133, -22132, -22131, -22132, -22130, -22131, -22128, -22129, -22132, -22127, -22129, -22129, -22129, -22132, -22130, -22127, -22129, -22131, -22127, -22128, -22131, -22128, -22128, -22130, -22129, -22130, -22129, -22128, -22133, -22128, -22129, -22133, -22131, -22130, -22128, -22131, -22130, -22128, -22132, -22132, -22129, -22127, -22129, -22132, -22130, -22132, -22133, -22128, -22129, -22130, -22129, -22130, -22128, -22129, -22130, -22131, -22130, -22128, -22129, -22130, -22129, -22129]}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file python_ew-2.1.5.tar.gz
.
File metadata
- Download URL: python_ew-2.1.5.tar.gz
- Upload date:
- Size: 28.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3cfe0dd1dfac3b7298e214447f36c51a24d45f53913478c5944e3dd3b457de7e |
|
MD5 | e5dd4d5eb501390bf259c3628a93ce6d |
|
BLAKE2b-256 | 446b028fe98da42c64497dd8389bd90f43fa65ae5011d838bf31f3211f57e2dd |