Webowa aplikacja do predykcji opadów deszczu, bazując na danych z poprzednich lat.
Aplikacja dostępna jest pod adresem: https://rain-prediction.streamlit.app/
Należy przejść na stronę aplikacji webowej i po uruchomieniu aplikacji wprowadzić dane pogodowe z danego regionu. Dane pogodowe można wprowadzić ręcznie lub za pomocą przycisków. Po wprowadzeniu danych należy kliknąć przycisk "Przewiduj". Aplikacja wyświetli prognozę pogody na kolejny dzień.
Aplikacja posiada następujące elementy możliwe do zmiany:
- MinTemp - jest to minimalna temperatura w danym dniu
- MaxTemp - jest to maksymalna temperatura w danym dniu
- Rainfall - jest to opad deszczu w danym dniu w milimetrach
- WindGustSpeed - prędkość (km/h) najmocniejszego porywu wiatru w ciągu 24 godzin do północy
- WindSpeed9am - jest to prędkość wiatru o 9 rano w danym dniu
- WindSpeed3pm - jest to prędkość wiatru o 15 po południu w danym dniu
- Humidity3pm - jest to wilgotność powietrza o 15 po południu w danym dniu
- Pressure9am - jest to ciśnienie atmosferyczne o 9 rano w danym dniu
- Pressure3pm - jest to ciśnienie atmosferyczne o 15 po południu w danym dniu
- Latitude - jest to szerokość geograficzna
- Longitude - jest to długość geograficzna
- Year - jest to rok w którym mamy przewidzieć opady deszczu
- Month - jest to miesiąc w którym mamy przewidzieć opady deszczu
- Day - jest to dzień w którym mamy przewidzieć opady deszczu
- Location - jest to lokalizacja w której mamy przewidzieć opady deszczu
- WindGustDir - jest to kierunek najmocniejszego porywu wiatru w ciągu 24 godzin do północy
- WindDir9am - jest to kierunek wiatru o 9 rano w danym dniu
- WindDir3pm - jest to kierunek wiatru o 15 po południu w danym dniu
Projekt tworzony jest na podstawie procesów zdefiniowanych w ramach przedmiotu "Środowiska Uruchomieniowe AutoML" na Polsko-Japońskiej Akademii Technik Komputerowych.
- Dominika Balcerowska s22647@pejot.edu.pl — Model uczenia maszynowego
- Krzysztof Lipski @ClipLee s20901@pjwstk.edu.pl — Dokumentacja projektu, przygotowanie danych
- Filip Woźniak s22703@pjwstk.edu.pl — Aplikacja streamlit
- Aplikacja nie uwzględnia danych pogodowych z innych regionów niż Australia
- Aplikacja nie uwzględnia danych pogodowych z innych lat niż 2007-2017
- Aplikacja nie uwzględnia danych pogodowych z innych stacji meteorologicznych niż te, które zostały uwzględnione w zbiorze danych
- Model uczenia maszynowego nie jest optymalizowany pod kątem wydajności
Dodatkowo należy zainstalować Docker'a. Następnie należy uruchomić kontener Docker:
docker compose up
Ewentualnie można uruchomić aplikację bez kontenera Docker:
Pobierz repozytorium i zainstaluj wymagane pakiety:
pip install -r requirements.txt
W konsoli, w głównym katalogu projektu, uruchom: streamlit run app/app.py
app/app.py
: Główny skrypt aplikacji.
model.h5
i app/model.h5
: Zapisane modele uczenia maszynowego.
data/
: Katalog zawierający dane używane do trenowania modelu.
data_prep.ipynb
: Notatnik Jupyter używany do przygotowania i czyszczenia danych.
model.ipynb
: Notatnik Jupyter używany do trenowania modelu uczenia maszynowego.
Projekt korzysta z następujących technologii:
- Docker: Narzędzie do wirtualizacji.
- Flask i Streamlit: Biblioteki Pythona do tworzenia aplikacji internetowych.
- Numpy i Pandas: Biblioteki Pythona do manipulacji i analizy danych.
- Cufflinks, Matplotlib i Seaborn: Biblioteki Pythona do wizualizacji danych.
- Scikit-learn, Tensorflow i Category Encoders: Biblioteki Pythona do uczenia maszynowego.
- Ipykernel: Pakiet Pythona do uruchamiania interaktywnych notatników Jupyter.
Zbiór danych "Rain in Australia" składających się z informacji o opadach deszczu w różnych regionach Australii. Pochodzi on ze strony Kaggle.com i jest dostępny pod adresem: https://www.kaggle.com/jsphyg/weather-dataset-rattle-package. Zbiór danych zawiera 142193 rekordów i 24 kolumny. Dane pochodzą z lat 2007-2017. Ten zbiór danych zawiera około 10 lat codziennych obserwacji pogody z licznych australijskich stacji pogodowych.
RainTomorrow jest to zmienną docelową do przewidzenia. To znaczy: czy następnego dnia padał deszcz? Tak czy Nie?
Aplikacja będzie przewidywać opady deszczu w kolejnym dniu
Uzasadnienie funkcjonalności aplikacji: Aplikacja będzie wykorzystać dane pogodowe z ostatnich lat, aby przewidzieć opady deszczuw kolejnym dniu.
Funkcjonalność aplikacji:
- Możliwość wprowadzenia danych pogodowych z danego regionu
- Generowanie prognozy pogody na podstawie wprowadzonych danych
Zastosowany model uczenia maszynowego: Model uczenia maszynowego użyty w tej aplikacji to regresja liniowa. Model został przeszkolony na zbiorze danych "Rain in Australia". Dokładność modelu: 0.8282
Aplikacja nie wymaga specjalnej konfiguracji. Wszystkie wymagane pakiety są wymienione w pliku requirements.txt
.
Projekt nie zawiera jeszcze testów jednostkowych. Planujemy dodać je w przyszłości.
Q: Czy mogę używać tej aplikacji do przewidywania opadów deszczu w innych krajach? A: Nie, aplikacja jest obecnie zaprojektowana do przewidywania opadów deszczu tylko w Australii.
Q: Czy mogę używać tej aplikacji do przewidywania opadów deszczu w innych latach? A: Nie, aplikacja jest obecnie zaprojektowana do przewidywania opadów deszczu tylko na podstawie danych z lat 2007-2017.