{
"cells": [
{
"cell_type": "code",
"execution_count": 46,
"id": "62087531-441f-4c1a-b182-053ad5e944ae",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"len 26\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "f283310699e6411fac48d22e6f8cdd8f",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"FigureWidget({\n",
" 'data': [{'hovertemplate': ('temp=%{marker.size}
lati=%{' ... '%{marker.color}'),\n",
" 'lat': {'bdata': ('oS+9/bmcSEBQVMkPu5xIQKBF1QC8nE' ... 'y3nEhA2OTuSLycSECyG668wZxIQA=='),\n",
" 'dtype': 'f8'},\n",
" 'legendgroup': '',\n",
" 'lon': {'bdata': ('cayL22iQMEBxlTGCaZAwQEBK4mhrkD' ... 'cdkDBAn1sYhBqQMEBApnNNGpAwQA=='),\n",
" 'dtype': 'f8'},\n",
" 'marker': {'color': {'bdata': ('AAAAAAAAAABlc3ISjHuhv7AgzVg0nb' ... '3pVfK/iAuZW7wo879EZYnvQIzzvw=='),\n",
" 'dtype': 'f8'},\n",
" 'coloraxis': 'coloraxis',\n",
" 'opacity': 0.5,\n",
" 'size': {'bdata': ('AAAAAAAAPkAAAAAAAAA+QAAAAAAAAD' ... 'AAAD5AAAAAAAAAPkAAAAAAAAA+QA=='),\n",
" 'dtype': 'f8'},\n",
" 'sizemode': 'area',\n",
" 'sizeref': np.float64(0.3)},\n",
" 'mode': 'markers',\n",
" 'name': '',\n",
" 'showlegend': False,\n",
" 'subplot': 'map',\n",
" 'type': 'scattermap',\n",
" 'uid': '2f0753e7-5993-4855-bcc8-6a5dbc5e62ec'}],\n",
" 'layout': {'coloraxis': {'colorbar': {'title': {'text': 'rssi'}},\n",
" 'colorscale': [[0.0, 'rgb(0,0,131)'], [0.2,\n",
" 'rgb(0,60,170)'], [0.4,\n",
" 'rgb(5,255,255)'], [0.6,\n",
" 'rgb(255,255,0)'], [0.8,\n",
" 'rgb(250,0,0)'], [1.0, 'rgb(128,0,0)']]},\n",
" 'height': 800,\n",
" 'legend': {'itemsizing': 'constant', 'tracegroupgap': 0},\n",
" 'map': {'center': {'lat': np.float64(49.22425434846154), 'lon': np.float64(16.56396273223077)},\n",
" 'domain': {'x': [0.0, 1.0], 'y': [0.0, 1.0]},\n",
" 'style': 'open-street-map',\n",
" 'zoom': 13},\n",
" 'mapbox': {'center': {'lat': np.float64(49.22425434846154), 'lon': np.float64(16.56396273223077)},\n",
" 'style': 'open-street-map',\n",
" 'zoom': 13},\n",
" 'margin': {'t': 60},\n",
" 'template': '...',\n",
" 'width': 800}\n",
"})"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import dash\n",
"import time\n",
"import sys\n",
"import json\n",
"import pandas as pd\n",
"import plotly.express as px\n",
"\n",
"\n",
"df = pd.DataFrame()\n",
"dg = pd.DataFrame(columns=['lati', 'long', 'alti', 'rssi', 'snr', 'rttt', 'temp', 'humi', 'pres', 'voc'], dtype=float)\n",
"\n",
"with open('save.csv') as f:\n",
" for i, line in enumerate(f):\n",
" dg.loc[i] = pd.Series(json.loads(line))\n",
" savepos = f.tell()\n",
"\n",
"dg = dg.fillna(0.0)\n",
"\n",
"print('len', len(dg.index))\n",
"fig = px.scatter_map(dg, lat='lati', lon='long',color=\"rssi\", size='temp',\n",
" size_max=10, map_style=\"open-street-map\", color_continuous_scale='jet', zoom=13, height=800, width=800)\n",
"\n",
"f2 = go.FigureWidget(fig)\n",
"\n",
"f2"
]
},
{
"cell_type": "code",
"execution_count": 52,
"id": "aee5d6bc-0590-4494-abd2-a1eaf28481b9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\"lati\": 49.232750116, \"long\": 16.565789814, \"alti\": NaN, \"rssi\": -8.493902113, \"snr\": 0.0, \"rttt\": NaN, \"temp\": 30.0, \"humi\": NaN, \"pres\": NaN, \"voc\": NaN}\n",
"\n",
"{\"lati\": 49.232391864, \"long\": 16.568253166, \"alti\": NaN, \"rssi\": -8.983527682, \"snr\": 0.0, \"rttt\": NaN, \"temp\": 30.0, \"humi\": NaN, \"pres\": NaN, \"voc\": NaN}\n",
"\n"
]
}
],
"source": [
"#while True:\n",
"import time, threading\n",
"\n",
"def update():\n",
" global savepos\n",
" mi = max(dg.index)\n",
" with open('save.csv') as f:\n",
" f.seek(savepos)\n",
" for i, line in enumerate(f):\n",
" print(line)\n",
" dg.loc[mi+1+i] = pd.Series(json.loads(line)).fillna(0)\n",
" savepos = f.tell()\n",
"\n",
" f2.data[0]['lat'] = dg['lati']\n",
" f2.data[0]['lon'] = dg['long']\n",
" f2.data[0]['marker']['color'] = dg['rssi']\n",
" f2.data[0]['marker']['size'] = dg['temp']\n",
"\n",
" #time.sleep(1)\n",
" threading.Timer(1, update).start()\n",
"\n",
"update()"
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "65a5202a-8cfc-456a-a39d-52a0b2d9f739",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "venv",
"language": "python",
"name": "venv"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}