arrakis-python
Arrakis Python client library
Installation
pip install git+https://git.ligo.org/ngdd/arrakis-python.git
Features
- Query live and historical timeseries data
- Describe channel metadata
- Search for channels matching a set of conditions
- Publish timeseries data
Quickstart
Stream timeseries
1. Live data
import arrakis
channels = [
"H1:CAL-DELTAL_EXTERNAL_DQ",
"H1:LSC-POP_A_LF_OUT_DQ",
]
for block in arrakis.stream(channels):
print(block)
2. Historical data
import arrakis
start = 1187000000
end = 1187001000
channels = [
"H1:CAL-DELTAL_EXTERNAL_DQ",
"H1:LSC-POP_A_LF_OUT_DQ",
]
for block in arrakis.stream(channels, start, end):
print(block)
Fetch timeseries
import arrakis
start = 1187000000
end = 1187001000
channels = [
"H1:CAL-DELTAL_EXTERNAL_DQ",
"H1:LSC-POP_A_LF_OUT_DQ",
]
block = arrakis.fetch(channels, start, end)
Describe metadata
import arrakis
channels = [
"H1:CAL-DELTAL_EXTERNAL_DQ",
"H1:LSC-POP_A_LF_OUT_DQ",
]
metadata = arrakis.describe(channels)
Find channels
import arrakis
channels = arrakis.find("H1:LSC-*")
Count channels
import arrakis
count = arrakis.count("H1:LSC-*")
Publish timeseries
import arrakis
from arrakis import SeriesBlock, Time
import numpy
series = {
"H1:FKE-TEST_CHANNEL1": numpy.array([0.1, 0.2, 0.3, 0.4], dtype=numpy.float64),
"H1:FKE-TEST_CHANNEL2": numpy.array([1.1, 1.2, 1.3, 1.4], dtype=numpy.float64),
}
block = SeriesBlock(1234567890 * Time.SECONDS, series)
with arrakis.connect("kafka://localhost:9092") as client:
client.publish(block)