summaryrefslogtreecommitdiff
path: root/prilohy/web/server.py
diff options
context:
space:
mode:
Diffstat (limited to 'prilohy/web/server.py')
-rw-r--r--prilohy/web/server.py67
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)