Skip to main content

Python utilities for handling ESS streamed data

Project description

Python Streaming Data Types

Utilities for working with the FlatBuffers schemas used at the European Spallation Source ERIC for data transport.

https://github.com/ess-dmsc/streaming-data-types

FlatBuffer Schemas

name description
hs00 Histogram schema (deprecated in favour of hs01)
hs01 Histogram schema
ns10 NICOS cache entry schema
pl72 Run start
6s4t Run stop
f142 Log data (deprecated in favour of f144)
f144 Log data
ev42 Event data (deprecated in favour of ev44)
ev43 Event data from multiple pulses
ev44 Event data with signed data types
x5f2 Status messages
tdct Timestamps
ep00 EPICS connection info (deprecated in favour of ep01)
ep01 EPICS connection info
rf5k Forwarder configuration update (deprecated in favour of fc00)
fc00 Forwarder configuration update
answ File-writer command response
wrdn File-writer finished writing
NDAr Deprecated
ADAr EPICS areaDetector data
al00 Alarm/status messages used by the Forwarder and NICOS
senv Deprecated
json Generic JSON data
se00 Arrays with optional timestamps, for example waveform data. Replaces senv.
da00 Scipp-like data arrays, for histograms, etc.

hs00 and hs01

Schema for histogram data. It is one of the more complicated to use schemas. It takes a Python dictionary as its input; this dictionary needs to have correctly named fields.

The input histogram data for serialisation and the output deserialisation data have the same dictionary "layout". Example for a 2-D histogram:

hist = {
    "source": "some_source",
    "timestamp": 123456,
    "current_shape": [2, 5],
    "dim_metadata": [
        {
            "length": 2,
            "unit": "a",
            "label": "x",
            "bin_boundaries": np.array([10, 11, 12]),
        },
        {
            "length": 5,
            "unit": "b",
            "label": "y",
            "bin_boundaries": np.array([0, 1, 2, 3, 4, 5]),
        },
    ],
    "last_metadata_timestamp": 123456,
    "data": np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]]),
    "errors": np.array([[5, 4, 3, 2, 1], [10, 9, 8, 7, 6]]),
    "info": "info_string",
}

The arrays passed in for data, errors and bin_boundaries can be NumPy arrays or regular lists, but on deserialisation they will be NumPy arrays.

Developer documentation

See README_DEV.md

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

ess_streaming_data_types-0.26.1.tar.gz (59.7 kB view details)

Uploaded Source

Built Distribution

ess_streaming_data_types-0.26.1-py3-none-any.whl (148.6 kB view details)

Uploaded Python 3

File details

Details for the file ess_streaming_data_types-0.26.1.tar.gz.

File metadata

File hashes

Hashes for ess_streaming_data_types-0.26.1.tar.gz
Algorithm Hash digest
SHA256 82deeb65073dd701732f18baabdd47c8afd6bda21ee5f2f2a27f0ce19e24fa0e
MD5 bd59e74923d0d0602c85c3c08e5fa377
BLAKE2b-256 4f62e55d3945a9e6792aa15b0bbc1328f89ab9639f6e8c00e88c9bb4365088fe

See more details on using hashes here.

File details

Details for the file ess_streaming_data_types-0.26.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ess_streaming_data_types-0.26.1-py3-none-any.whl
Algorithm Hash digest
SHA256 47ef984451b51aed71c45a930a379ca7dbfb6cce7837a81aaaed7348b0bacbd7
MD5 e95fe45465da6c18181eed064872d482
BLAKE2b-256 1600fc5ab795aa4c81e45b0090e6a4e9ddc2c09db9e1a12ec410e6963dea406a

See more details on using hashes here.

Supported by

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