Skip to main content
The TimeseriesStreamer class lets you push scalar instrument data (temperature, pressure, growth rate, etc.) to Atomscale as tool-state data 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

Inspect Results

Read tool-state data back with client.get().

Streaming Reference

Full streaming API documentation.