Specifikace » Historie » Verze 28
Jakub Vašta, 2020-04-08 12:13
1 | 1 | Martin Šebela | h1. Specifikace |
---|---|---|---|
2 | 2 | Martin Šebela | |
3 | 12 | Martin Šebela | h2. Stakeholders |
4 | |||
5 | * *členové týmu:* Tomáš Ballák, Petr Hlaváč, Jakub Vašta, Martin Šebela |
||
6 | * *zákazník:* Přemek Brada |
||
7 | * *mentor:* Petr Pícha |
||
8 | * *uživatelé:* univerzita, veřejnost |
||
9 | |||
10 | 4 | Martin Šebela | h2. Zadání |
11 | |||
12 | 14 | Martin Šebela | ZČU v rámci projektu podpořeným organizací CESNET nabídlo *volně k dispozici* několik *datových sad open dat*. Na schůzce z 10. 3. 2020 pro lokální IT správce fakult bylo řečeno, že projekt bude mít své pokračování a v tuto chvíli ZČU uvítá projekty, která data budou využívat. |
13 | 2 | Martin Šebela | |
14 | 3 | Martin Šebela | Smyslem námi navrženého zadání je využít některé z dostupných datových sad, přičemž *podle provedené analýzy* v rámci _0. iterace_ se jedná o následující datové sady: |
15 | 2 | Martin Šebela | |
16 | h2. Zpracovávaná data |
||
17 | |||
18 | 22 | Martin Šebela | * data o *připojení uživatelů* k *drátové a bezdrátové síti* (Wi-Fi) na ZČU |
19 | 5 | Martin Šebela | * data dostupná ze *snímačů JIS karet* (parkoviště, pokladny v menze aj.) |
20 | 2 | Martin Šebela | * data týkající se *půjčování koloběžek* na ZČU |
21 | |||
22 | h2. Vizualizace dat |
||
23 | |||
24 | 6 | Martin Šebela | Data z těchto datových sad budou zanesena do mapy formou nové vrstvy, tzv. *heatmapy nad mapovým pokladem* (např. nad mapovým pokladem _OpenStreetMap_, popř. _GoogleMaps_), přičemž *uživatel si bude moct přehrát* (animovat) den na ZČU po vhodně zvolených *časových intervalech* formou *časové osy* (minimálně po jednotlivých hodinách). |
25 | 2 | Martin Šebela | |
26 | 16 | Martin Šebela | Je třeba podotknout, že datové sady obsahují pouze data *zpětně*, aplikace tedy *nebude zobrazovat data v reálném čase*, nicméně toto může částečně řešit predikce dat (viz dále). |
27 | |||
28 | 1 | Martin Šebela | h2. Predikce dat |
29 | 2 | Martin Šebela | |
30 | 11 | Martin Šebela | V aplikaci bude možné *predikovat pohyb studentů* pomocí technik umělé inteligence formou lineární regrese (model by mohl být natrénován vždy z několika předchozích tydnů pro každý den zvlášť, přičemž bude potřeba brát v úvahu změny semestru a například první týden nového semestru modely vymazat a na týden predikci nezobrazovat). |
31 | 1 | Martin Šebela | |
32 | 11 | Martin Šebela | Predikce může vzhledem k aktuálnímu počtu dat dosahovat slabších výsledků, ale od machine learning si slibujeme, že se s rostoucím data setem bude lepšit. |
33 | 1 | Martin Šebela | |
34 | h2. Využitelnost a cíle |
||
35 | |||
36 | Aplikace může poukázat na postupný průběh semestru (například postupné odcházení studentů prvních ročníků), ostatně ukazovat *průběh jednoho dne v univerzitním kampusu a u kolejí* (resp. tam, kam dosáhne Wi-Fi či jsou zabudované jiné z uvedených snímačů). |
||
37 | |||
38 | Stejně tak může poukázat na různé *anomálie*, které byly už v rámci provedené analýzy zjištěny (například návrat studentů z nočních akcí na koleje (vstup do kolejí je přes JIS snímač), pohyb po univerzitě a bufetech v nočních hodinách...). |
||
39 | |||
40 | 15 | Martin Šebela | Informace získané z těchto dat mohou být navíc použity pro další architektonické a stavební úpravy (kam má *smysl investovat*, kde se lidé srocují, kde by mělo smysl posílit signál apod.). |
41 | 13 | Martin Šebela | |
42 | 17 | Martin Šebela | Z důvodu, že vybrané datové sady neobsahují data v reálném čase, je možné v aplikaci využívat jako přibližnou náhradu *predikci pohybu* (viz související bod). |
43 | |||
44 | 13 | Martin Šebela | h2. Datové sady v budoucnu |
45 | 1 | Martin Šebela | |
46 | 17 | Martin Šebela | Bude snaha, aby aplikace *v budoucnu zveřejněná data* (nové datové sady se postupně uvolňují po několika měsících) *automaticky stahovala* a vkládala do databáze (tzn. přidávala nové záznamy k již v databázi vedeným AP a jiným snímačům). Ohled bude také brán na *rozšiřitelnost* při přidávání dalších datových sad. |
47 | |||
48 | S tímto bodem se nicméně *pojí rizika* zmíněná dále. |
||
49 | 13 | Martin Šebela | |
50 | h2. Rizika |
||
51 | |||
52 | Bohužel neovlivníme období, během kterých nemusí být data k dispozici (v důsledku *výpadku externích systémů* na straně dodavatele dat), případnou *změnu formátu* těchto dat nebo dokonce *změnu metodiky sledování, resp. logování*. V takovém případě bude nutné provést v aplikaci úpravy. |
||
53 | 7 | Martin Šebela | |
54 | 14 | Martin Šebela | h2. Produkční prostředí |
55 | |||
56 | 22 | Martin Šebela | Výstupem bude *webová aplikace* (z větší části *responzivní*), která bude nasazena na *virtuálním stroji* na CIV ZČU, popř. na přiděleném virtuálním stroji na KIV FAV ZČU. |
57 | 8 | Martin Šebela | |
58 | 7 | Martin Šebela | h2. Nástřel projektu |
59 | |||
60 | 9 | Martin Šebela | _Poznámka:_ schéma *neznázorňuje grafický návrh*, pouze čtenáři ukazuje to, co je předmětem projektu, aby měl na první pohled jasno |
61 | |||
62 | 7 | Martin Šebela | !https://students.kiv.zcu.cz:3443/attachments/download/1969/campus_heatmap.png! |
63 | 18 | Petr Hlaváč | |
64 | h2. Technická specifikace projektu |
||
65 | 21 | Petr Hlaváč | |
66 | 20 | Petr Hlaváč | Schéma znázorňuje strukturu projektu, její provázanost a použité technologie. |
67 | 21 | Petr Hlaváč | |
68 | 19 | Petr Hlaváč | !https://students.kiv.zcu.cz:3443/attachments/download/2006/ASWI_spec_prj.png! |
69 | 23 | Petr Hlaváč | |
70 | 25 | Petr Hlaváč | *Schéma databáze:* |
71 | 23 | Petr Hlaváč | |
72 | 24 | Petr Hlaváč | !https://students.kiv.zcu.cz:3443/attachments/download/2016/Navrh%20DB.png! |
73 | 26 | Jakub Vašta | |
74 | h3. Architerkutra applikace |
||
75 | |||
76 | 28 | Jakub Vašta | !https://students.kiv.zcu.cz:3443/attachments/download/2023/open-data-architecture.png! |
77 | 26 | Jakub Vašta | |
78 | # Konfigurační soubory |
||
79 | # Parser konfiguračních souborů |
||
80 | # Crawler |
||
81 | # Open data web úložiště |
||
82 | # Cron |
||
83 | # Data processor open dat |
||
84 | 1 | Martin Šebela | # Log soubory se zpětnou vazbou |
85 | 28 | Jakub Vašta | |
86 | h4. Konfigurační soubory |
||
87 | |||
88 | <pre><code class="yaml"> |
||
89 | # jeméno datasetu, pod kterým bude zobrazen v aplikaci |
||
90 | dataset-name: wifi |
||
91 | # pozice jednotlivých zařízení, která jsou v datasetu |
||
92 | devices: |
||
93 | - |
||
94 | name: fav-access-point-01 |
||
95 | x: 0 |
||
96 | y: 0 |
||
97 | . |
||
98 | . |
||
99 | . |
||
100 | # root složka, která obsahuje datasety |
||
101 | url: opendata-url.example |
||
102 | # volitelný parameter, který specifikuje vzor jména datasetů, které se budou stahovat, pokud prázdné, tak všechny co se najdou |
||
103 | [regex: wifi-[0-9]*] |
||
104 | # volitelný parametr, který udává jak často se budou hledat nové datasety, pokud prázdné, tak defaultní hodnota |
||
105 | [update-period: 24] |
||
106 | </code></pre> |
||
107 | |||
108 | h4. Parser |
||
109 | |||
110 | Musí být možné upozornit parser na nový sobor, pokud selže automatická detekce změny. |
||
111 | |||
112 | h4. Crawler |
||
113 | |||
114 | Musí jít donutit crawler, aby zkontroloval dostupnost sad. |
||
115 | |||
116 | h4. Cron |
||
117 | |||
118 | Pravidelně bude spouštět crawler, který bude kontrolovat dostupnost nových dat, pokud je pro daný dataset specifikován _update-time_, tak ho bude respektovat. |
||
119 | |||
120 | h4. Log soubory se zpětnou vazbou |
||
121 | |||
122 | Pro každý konfigarační soubor, se vytvoří log soubor se stejným názvem, který bude obsahovat, všechny případné chyby, pro daný konfigurační soubor. |