pyrtc.telemetry

Telemetry capture helpers for pyrtc shared-memory streams.

The Telemetry component provides a small, operator-friendly API for capturing bounded stretches of existing pyrtc streams into standard NumPy data products. Each save creates one session directory containing per-stream frames.npy and timestamps.npy files plus lightweight JSON metadata.

The intended user workflow is deliberately simple:

telem = Telemetry()
telem.save("wfs", 1000)
telem.save(["wfs", "wfc"], 1000)
data = telem.read_last_save()
print(data["wfs"]["frames"].shape)

This keeps the hot path straightforward, stores frames in a standard NumPy format, and makes the resulting capture easy to load for offline analysis and future export layers such as AOTPy.

For “what just happened?” captures, telemetry can also record continuously into a bounded in-memory ring buffer and dump it on demand, in the same session format:

telem.start_ring_buffer(["wfs", "wfc"], seconds=10)
...
path = telem.dump_ring_buffer("event")
telem.stop_ring_buffer()

Module Attributes

RING_BUFFER_RATE_HEADROOM

Extra capacity allocated over the measured publication rate when a ring buffer is sized from seconds alone.

Functions

list_telemetry_sessions(data_dir)

Return all telemetry session directories under one base directory.

load_telemetry_manifest(session_path)

Load the JSON metadata for one telemetry save.

load_telemetry_session(session_path, *[, ...])

Load a telemetry save into an easy-to-use per-stream mapping.

Classes

Telemetry([conf])

Capture pyrtc streams into standard NumPy telemetry products.