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
verbosity=4 for detailed progress output.
Initialize a stream
synth_source_id links the stream to a registered growth instrument. Use client.list_growth_instruments() to find available instruments.
Push single-channel data
Usepush() to send one channel at a time. Chunks are uploaded asynchronously.
Push multi-channel data
Usepush_multi() to send multiple channels in a single call:
Generator mode
Userun() when data is already buffered. It iterates over chunks and handles uploads:
Finalize
Always callfinalize() when the stream is complete:
Best practices
| Recommendation | Rationale |
|---|---|
Always call finalize() | Allows graceful cleanup even on failure |
Use push_multi() for correlated channels | Keeps channels in sync within each chunk |
| Link to growth instruments | Enables cross-run analysis and instrument tracking |
| Use Unix epoch timestamps | The platform expects seconds since epoch |
Next steps
Poll Time Series
Monitor streaming analysis in real time.
Streaming Reference
Full streaming API documentation.