Projekt badawczy mający na celu opracowanie modelu do przewidywania wartości meteorologicznych, takich jak temperatura, ciśnienie i opady. Prognozy będą wizualizowane na prostych wykresach liniowych w dedykowanej aplikacji.
Projekt obejmuje:
- Przegląd literatury naukowej w celu wybrania najlepszych metod.
- Eksperymenty z różnymi architekturami sieci neuronowych, aby wytrenować najdokładniejszy model prognostyczny.
- Wizualizację wyników modelu w oparciu o dane aktualne i historyczne.
Projekt jest inspirowany artykułem Springer, jednak wprowadza zmiany, takie jak:
- Wykorzystanie innego źródła danych: Meteostat.
- Proste zastosowanie modelu na bieżących danych meteorologicznych.
- Reprodukcja eksperymentów: Kod projektu umożliwia odtworzenie eksperymentów przeprowadzonych podczas prac badawczych.
- Wizualizacja prognoz: Prosta aplikacja Streamlit prezentuje:
- Prognozy temperatury.
- Przewidywania ciśnienia.
- Szacowania opadów.
- Przeiwdywania predkości oraz kierunku wiatru.
Aby uruchomić projekt lokalnie:
-
Sklonuj repozytorium:
git clone https://gitlab-stud.elka.pw.edu.pl/mostasze/zprp-meteo-model.git cd zprp-meteo-model -
Utwórz i aktywuj środowisko wirtualne
make create_environment
-
Zainstaluj zależności:
make requirements
-
Przgotowanie klucza do Meteostat API
- Należy zasubskrybować jeden z planów meteostat
- Następnie należy wejść na RapidApi meteostat i skopiować x-rapidapi-key
- Skopiowany klucz należy wkleić do pliku .env w katalogu głównym projektu.
-
Przygotowanie danych:
make prepare_data
-
Uruchomienie eksperymentów:
make run_experiments
- Wyniki eksperymentów można obejrzeć w dashboardzie mlflow
mlflow ui - Jeśli po zapoznaniu się z eksperymentami użytkownik chce zmienić modele należy zarejstrować wybrane modele zgodnie z https://mlflow.org/docs/latest/model-registry.html
- Aby używać modeli w Api należy zmodyfikować strukturę model_for_days w pliku api
- Wyniki eksperymentów można obejrzeć w dashboardzie mlflow
-
Uruchomienie aplikacji:
- Przed pierwszym uruchomieniem aplikacji należy dostosowąć ścieżki do modeli poprzez:
make mlflow_models
- Uruchomienie
make run_app
- Przed pierwszym uruchomieniem aplikacji należy dostosowąć ścieżki do modeli poprzez:
├── LICENSE <- Licencja Open-Source
├── Makefile <- Makefile z komendami
├── README.md <- README
├── data
│ ├── normalized <- Znormalizowane dane
│ ├── processed <- Pobrane i przetworzone dane
│ |── raw <- Oryginalne dane
| └── stats.json <- Dane do normalizacji
│
├── docs <- Folder z dokumentacją
│ ├── Design_Proposal.md
│ └── Analiza_Literatury.md
│
├── notebooks <- Notatniki Jupyter. Konwencja nazywania: numer + krótki opis
│ └── 01_exploratory_data_analysis.ipynb
│
├── reports <- Wygenerowane analizy, np. HTML, PDF
│ |── figures <- Grafiki i wykresy odnoszące sie do danych i modeli
│ └── training_results <- Analizy eksperymentów
│
├── requirements.txt <- Wymagania środowiska
│
├── setup.py <- Skrypt instalacyjny projektu
├── pyproject.toml <- Plik konfiguracyjny projektu
│
├── api <- Kod źródłowy API serwującego predykcję
├── app <- Kod źródłowy aplikacji wizualizującej predykcję
├── mlruns <- Folder na wyniki ekspermentów oraz wytrenowane modele
└── zprp_meteo_model <- Kod źródłowy projektu(Część "badawcza")
├── data/ <- Moduły przetwarzające dane
├── model/ <- Kod definiujący architektury modeli
├── training/ <- Moduły związane z trenowaniem modeli
└── utils/ <- Narzędzia wspomagające projekt
- Michał Sadowski
- Mateusz Ostaszewski
- Szymon Łukawski
Projekt jest objęty licencją MIT. Szczegóły można znaleźć w pliku LICENSE.
Szczegółowe informacje o projekcie znajdują się w dodatkowych plikach:
- Design Proposal
- Analiza literatury
- Krótka analiza eksperymentow LSTM
- Krótka analiza eksperymentow TCN