Politechnika Wrocławska AiR ARR Wizualizacja danych sensorycznych Wizualizacja pogody dla windsurferów Autor: Małgorzata Witka-Jeżewska 218634 Prowadzący: dr inż. Bogdan Kreczmer 22 czerwca 2017
Spis treści 1 Opis projektu 2 2 Opis zadania i harmonogram 2 2.1 Najistotniejsze funkcjonalności................................... 2 2.2 Kamienie milowe........................................... 2 2.3 Diagram Gantta........................................... 2 2.4 Harmonogram realizacji projektu (tygodniami).......................... 3 3 Realizacja projektu 4 3.1 Planowe rozmieszczenie poszczególnych elementów w oknie i ich funkcjonalności........ 4 3.2 Diagram klas oraz schemat zdarzeń................................. 5 4 Przykłady uzyskanych efektów 5 5 Podsumowanie 6 1
1 Opis projektu Dokument stanowi podsumowanie nakładu pracy jaki został włożony w projekt z zajęć Wizualizacja danych sensorycznych prowadzonych przez dra Bogdana Kreczmera. Celem projektu jest wizualizacja danych uzyskanych z witryny internetowej poprzez aplikację, która będzie pokazywać historię, aktualną oraz przewidywaną pogodę w miastach Władysławowo, Chałupy, Hel w województwie pomorskim. 2 Opis zadania i harmonogram 2.1 Najistotniejsze funkcjonalności Sczytywanie ze strony internetowej aktualnych danych pogodowych. Użytkownik powinien mieć możliwość zdalnej aktualizacji pogody. Sposób realizacji: Najistotniejszym problemem jest odpowiedni wybór źródła danych sensorycznych oraz sposób ich pobierania i przetwarzania. Po wybraniu witryny internetowej dane będą z niej pobierane poprzez skrypt napisany w języku bash. Funkcjonalność zostanie zrealizowana, jeżeli będzie pobierać prawdziwe wartości oraz będzie można robić to wielokrotnie (np. codziennie) i zawsze będą one aktualne. Przechowywanie historii pogody. Użytkownik powinien mieć możliwość sprawdzenia zapisanej już w przeszłości pogody. Sposób realizacji: W celu realizacji tej funkcjonalności utworzone zostaną archiwa w postaci plików tekstowych, w których będą zapisane pobrane wcześniej dane. Wyświetlanie aktualnej pogody. Użytkownik powinien móc odczytać aktualną pogodę i jej prognozę. Sposób realizacji: Ta funkcjonalność powinna zapewniać szybki dostęp do aktualnej pogody na danej lokacji. Wyświetlanie historii i prognozy: temperatury, opadów, siły, prędkości i kierunku wiatru. Użytkownik powinien mieć możliwość wyboru parametrów, jakie chce sprawdzić oraz czas, z kiedy te pomiary mają być. Sposób realizacji: Kluczowym elementem tej funkcjonalności jest możliwość odczytania przez użytkownika z archiwów danych (uprzednio pobranych z witryny internetowej) w czytelny i przystępny dla niego sposób - poprzez tabelę i/lub wykres. Możliwość zmiany miejscowości. Użytkownik powinien mieć możliwość przełączenia się między trzema miejscowościami. Sposób realizacji: Docelowo przechowywane powinny być odczyty sensoryczne dla przynajmniej trzech różnych lokacji. Powinny one być do wyboru i wyświetlane niezależnie od pozostałych. 2.2 Kamienie milowe 27.04 - wstępne rezultaty 14.05 - rezultaty prawie końcowe 11.06 - rezultaty końcowe 2.3 Diagram Gantta Rysunek 1. przedstawia charmonogram pracy. 2
Rysunek 1: Diagram Gantt a wraz z przypisaniem zadań 2.4 Harmonogram realizacji projektu (tygodniami) Zrealizowane: 12: określenie wymagań użytkownika i kryteriów ewaluacji, dekompozycja problemu i kryteria ewaluacji, specyfikacja funkcjonalności 13: Z5a instalowanie potrzebnych oprogramowań i bibliotek; Z5b zawierającej przynajmniej napisy i przyciski 14: Z5b ustawienie rozmiarów, zamieszczenie grafik, zrobienie pierwszych wykresów; Z5d określenie ilości okien oraz rozmieszczenia poszczególnych elementów 15: Z5d rozplanowanie poszczególnych elementów w oknie; Z5e wybór odpowiednich nazw i opracowanie potrzebnych funkcji; Z5f przyjęcie pewnych standardów i jednolitości odnośnie oznaczeń graficznych 16: Z5d stworzenie projektu rozmieszczenia poszczególnych okien; Z5e stworzenie diagramów klas i funkcji; Z5f stworzenie piktogramów; Z5c wybór strony, analiza kodu źródłowego; oddanie raportu wstępnego 17: Z6a stworzenie skryptu zapisującego dane do pliku tekstowego z witryny internetowej dla jednej wybranej lokacji - to zadanie zostaje porzucone ze względu na brak odpowiedniej strony, z której można pobrać potrzebne informacje; 18: Z5c opracowanie formatu zapisu danych do plików tekstowych; Z6a dopracowanie pobierania danych; 3
19: Z6 tworzenia dokumentacji w doxygenie; raport niemal końcowy 23: Z6b rozwijanie interfejsu graficznego; Z6c-d stworzenie wersji wstępnej przedstawiającej poszczególne wartości dla aktualnej pogody oraz implementacja pierwszych wykresów; Z6b-d dopracowanie od strony graficznej interfejsu; Z6e; Z7; Z6a dodanie dwóch pozostałych lokacji; Z6f; Z6b-d stworzenie prognozy pogody dla dwóch pozostałych lokacji i doskonalenie kodu; Z6e; Z6f tworzenie na bieżąco dokumentacji; Z6f; Z7; Z8 raport końcowy 24: Z9 3 3.1 Realizacja projektu Planowe rozmieszczenie poszczególnych elementów w oknie i ich funkcjonalności Rysunek 2: Koncpecja zakładki z aktualną pogodą Na rysunku 2. przedstawiono koncepcję rozmieszczenia elementów w zakładce przedstawiającej aktualny stan pogody, natomiast na rysunku 3. widać planowe rozmieszczenie elementów w zakładce z wykresami oraz historią pogody. W obu przypadkach ponad zakładkami znajdnuje się przycisk, który po wciśnięciu będzie uruchamiać funkcję odczytującą z plików z bazą danych informację na temat aktualnej pogody. Obok niego będzie wyświetlany komunikat o dacie ostatniej aktualizacji. W pierwszej zakładce będzie można zobaczyć ostatnio wczytaną pogodę, czyli temperaturę, kierunek i moc wiatru, ciśnienie oraz opady, które będą wyświetlać się w zaznaczonych prostokątach. W drugiej zakładce będzie można wybrać jedno z miast. Poniżej będzie możliwość obejrzenia wykresu z danymi. W celu przejżenia historii trzeba będzie użyć suwaka pod wykresem. Z lewej strony wykresu w miejscu 4
Rysunek 3: Koncepcja zakładki z historią prostokąta znajdować się będą opcje wyświetlania wykresów: będzie możliwość wybrania, które parametry chcemy sprawdzić. 3.2 Diagram klas oraz schemat zdarzeń Aktualny diagram klas rpzedstawiony jest na rysunku 5, natomiast schemat zdarzeń przedstawiony jest na rysunku 4. 4 Przykłady uzyskanych efektów Tuż po otwarciu programu pokazuje się przycisk aktualizacji, napis inforumjący o miejscu, w którym pojawi się informacja na temat ostatniej aktualizacji oraz jedna z dwóch zakładekk. Na zakładce pierwszej na rysunku 6 widać przygotowane miejsce, na którym po aktualizacji pojawią się wartości odpowiadające poszczególnym piktogramom. Na zakładce drugiej w rysunku 7 widać przygotowane miejsce na wykresy jak i również legendę oraz przyciski umożliwiające wybór wykresów, które chcemy wyświetlić. Po wciśnięciu przycisku Aktualizuj (rysunek 8) pokazuje się data przeprowadzonej aktualizacji. Dodatkowo na przygotowanych miejscach pojawiają się wartości pogodowe. Rząd pierwszy od lewej: temperatura, ciśnienie, zachmurzenie, prędkość wiatru. Rząd drugi od lewej: temperatura odczuwalna, wilgotność, opad, porywy wiatru. Wybrawszy zakładkę drugą bez wybrania miasta nie pojawi się żaden wykres. Osie również nie ulegną zmianie, co pokazuje rysunek 9. Dopiero po wybraniu go i użycia przycisków aktywujących wykresy zobaczymy kolejne wartości odczytów. Na rysunku 10 widać efekt po wciśnięciu przycisku oraz wyciśnięciu wszystkich przycisków aktywujących widoczność wykresów. Jak widać na rysunku 11, po wybraniu innego miasta oraz przyciśnięciu któregokolwiek z rysunków oznaczających aktywację/dezaktywację konkretnych wykresów pole rysujące je odświeży się i pokaże prognozę pogody dla wybranego miasta. 5
Rysunek 4: Diagram zdarzeń 5 Podsumowanie Ze względu na przesunięcie i wydłużenie niektórych etapów projektu nie została utworzona baza danych zawierająca wczytywane wcześniej dane pogodowe oraz obsługa jej. Również wyświetlanie kierunku wiatru nie zostało zrealizowane ze względu na ograniczenie, jakim są dane dostarczane ze strony internetowej nie udało się zrealizować wyświetlania kierunku wiatru. W celu utworzenia bazy danych należałoby utworzyć funkcje wczytywania już istniejącej bazy danych, porównywanie jej z ostatnio pobranymi danymi oraz zapisywanie z powrotem danych do bazy danych. Dodatkowym usprawnieniem w tworzeniu projektu byłoby wykorzystanie wektora wektorów w klasie Dane. Dzięki temu można by odwoływać się do poszczególnych elementów poprzez używanie pętli, nie zaś wypisywać ręcznie dodawanie każdego odnoszenia się do wykresu czy innych ustawień często powtarzających się w programie. 6
Rysunek 5: Aktualny diagram klas 7
Rysunek 6: Zakładka pierwsza tuż po otwarciu programu Rysunek 7: Zakładka druga tuż po otwarciu programu 8
Rysunek 8: Zakładka pierwsza po przyciśnieciu przycisku Aktualizuj Rysunek 9: Zakładka druga tuż po wciśnięciu przycisku Aktualizuj 9
Rysunek 10: Zakładka druga po wybraniu miasta Rysunek 11: Zakładka druga po wybraniu innego miasta 10