-2

两个简单的问题:

  1. Warp10 是否集成到 streamlit 以提供可视化?
  2. 如果是这样,请您具体说明如何实现?

提前谢谢你。

最好的祝愿,

4

1 回答 1

1

流光中没有直接集成 Warp 10。

尽管 streamlit 可以处理任何类型的数据,但它主要集中在 pandas DataFrame 上。DataFrames 是表格,而 Warp 10 Geo Time Series 是时间序列。因此,即使 Warp 10 被集成到 streamlit 中,它也需要一些代码来正确格式化 streamlit 的数据以充分发挥其潜力。

话虽如此,下面是一个关于如何使用流光显示存储在 Warp 10 中的数据的小示例:

import json
from datetime import datetime, timedelta

import requests
import streamlit as st
from bokeh.palettes import Category10_10 as palette
from bokeh.plotting import figure

# Should be put in a configuration file.
fetch_endpoint = 'http://localhost:8080/api/v0/fetch'
token = 'READ'  # Change that to your actual token


def load_data_as_json(selector, start, end):
    headers = {'X-Warp10-Token': token}
    params = {'selector': selector, 'start': start, 'end': end, 'format': 'json'}
    r = requests.get(fetch_endpoint, params=params, headers=headers)
    return r.text


st.title('Warp 10 Test')

# Input parameters
selector = st.text_input('Selector', value="~streamlit.*{}")
start_date = st.date_input('Start date', value=datetime.now() - timedelta(days=10))
start_time = st.time_input('Start time')
end_date = st.date_input('End date')
end_time = st.time_input('End time')

# Convert datetime.dates and datetime.times to microseconds (default time unit in Warp 10)
start = int(datetime.combine(start_date, start_time).timestamp()) * 1000000
end = int(datetime.combine(end_date, end_time).timestamp()) * 1000000

# Make the query to Warp 10 and get back a json.
json_data = load_data_as_json(selector, start, end)
gtss = json.loads(json_data)

# Iterate through the json and populate a Bokeh graph.
p = figure(title='GTSs', x_axis_label='time', y_axis_label='value')
for gts_index, gts in enumerate(gtss):
    tss = []
    vals = []
    for point in gts['v']:
        tss.append(point[0])
        vals.append(point[-1])
    p.line(x=tss, y=vals, legend_label=gts['c'] + json.dumps(gts['l']), color=palette[gts_index % len(palette)])
st.bokeh_chart(p, use_container_width=True)

# Also display the json.
st.json(json_data)
于 2021-07-16T14:57:08.687 回答