Skip to main content

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

python_ew-2.1.4.tar.gz (28.1 kB view details)

Uploaded Source

File details

Details for the file python_ew-2.1.4.tar.gz.

File metadata

  • Download URL: python_ew-2.1.4.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

Hashes for python_ew-2.1.4.tar.gz
Algorithm Hash digest
SHA256 59b0d8746ccde01020d89087e30e397cbe196d9a609a14bfa245b69832c16d0d
MD5 0f50ffaa440cf947758e3e46e21f06d9
BLAKE2b-256 98d5f557377e6de0ae5ae3ec456290cfd4e3ac98fe3d6e46e5da0dd9060f871a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page