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.

Ensure that the EW_HOME environment variable points to the folder that contains the /include/ and /lib/ folders for earthworm.

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.2.tar.gz (26.4 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: python_ew-2.1.2.tar.gz
  • Upload date:
  • Size: 26.4 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.2.tar.gz
Algorithm Hash digest
SHA256 e4a77305ff8724ea083fe19e0ff339427cc0149068132642a2289a54d2cd3753
MD5 4d0128f6f101b5a1da562ad55cfe0b38
BLAKE2b-256 8bc998b765ee80055cd6e832c3e87365073136586b9b508d13e7e790f9cd480a

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