Projekt

Obecné

Profil

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.