Skip to main content
The TimeseriesStreamer class lets you push scalar instrument data (temperature, pressure, growth rate, etc.) to Atomscale for live tracking and analysis. Like RHEEDStreamer, it uses a Rust/PyO3 backend for efficient uploads.

Prerequisites

  • Instrument readings as lists of timestamps and values
  • Timestamps as Unix epoch seconds (float)

Create a streamer

Set verbosity=4 for detailed progress output.

Initialize a stream

The synth_source_id links the stream to a registered growth instrument. Use client.list_growth_instruments() to find available instruments. tags accepts tag names or UUIDs. Names are matched case-insensitively against your organization’s tags, and unknown names create new tags.

Push single-channel data

Use push() to send one channel at a time. Chunks are uploaded asynchronously.

Push multi-channel data

Use push_multi() to send multiple channels in a single call:

Generator mode

Use run() when data is already buffered. It iterates over chunks and handles uploads:

Finalize

Always call finalize() when the stream is complete:
Always call finalize() even if the upload fails part-way. This signals the server to clean up resources and mark the stream appropriately.

Best practices

Next steps

Poll Time Series

Monitor streaming analysis in real time.

Streaming Reference

Full streaming API documentation.