summaryrefslogtreecommitdiff
path: root/prilohy/web/Untitled.ipynb
blob: 0e528302d603c284ec446ce5b2d069eee0bb334c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
{
 "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}<br>lati=%{' ... '%{marker.color}<extra></extra>'),\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
}