diff options
Diffstat (limited to 'prilohy/web/server.py')
| -rw-r--r-- | prilohy/web/server.py | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/prilohy/web/server.py b/prilohy/web/server.py new file mode 100644 index 0000000..2007c82 --- /dev/null +++ b/prilohy/web/server.py @@ -0,0 +1,67 @@ +import dash +import time +import sys +import json +from dash import dcc +from dash import html +from dash import dash_table +import pandas as pd +import plotly.express as px + + +df = pd.DataFrame() +dg = pd.DataFrame(columns=['lati', 'long', 'alti', 'rssi', 'snr', 'rttt', 'temp', 'humi', 'pres', 'voc'], dtype=float) + +with open('save.csv') as f: + for i, line in enumerate(f): + dg.loc[i] = pd.Series(json.loads(line)) + savepos = f.tell() + +dg = dg.fillna(0.0) + +print('len', len(dg.index)) +fig = px.scatter_map(dg, lat='lati', lon='long',color="rssi", opacity=0.5, size='temp', size_max=10, map_style="open-street-map", color_continuous_scale='jet', zoom=13, height=500) +#fig.show() + + +#app = dash.Dash(__name__) +#app.layout = html.Div([ +# html.H4('Dashboard'), +# #dcc.Interval('graph-update', interval = 10000, n_intervals = 0), +# dcc.Graph(id='map', figure=fig), +# +# #dash_table.DataTable( id = 'table', data = df.to_dict('records'), columns=[{"name": i, "id": i} for i in df.columns])]) +# ]) + +app = dash.Dash() +app.layout = html.Div([ + dcc.Interval('graph-update', interval = 10000, n_intervals = 0), + dcc.Graph(id='fig', figure=fig), +]) + +t = 0 + +@app.callback( + dash.dependencies.Output('fig','figure'), + [dash.dependencies.Input('graph-update', 'n_intervals')]) +def updateTable(n): + global dg + global savepos + global t + global fig + + print(time.time() - t) + t = time.time() + + mi = max(dg.index) + with open('save.csv') as f: + f.seek(savepos) + for i, line in enumerate(f): + print(line) + dg.loc[mi+1+i] = pd.Series(json.loads(line)).fillna(0) + savepos = f.tell() + + return fig + +if __name__ == '__main__': + app.run(debug=True, port=10451) |
