A web-application that aims to keep the general public in Singapore well-informed and well-prepared with accurate weather forecasts
Based on weather models trained by machine learning algorithms, namely:
-
Long Short-Term Memory (LSTM) for time series analysis
-
Decision Tree for classification
Data obtained from various historical weather APIs are normalized with Min/Max Scalar before processing
Current Weather Observations | Hourly Weather Predictions (24 Hour) | Daily Weather Predictions (4 days) |
---|---|---|
- Open source and personal use only
- Python3 has been installed and added to the PATH environment variables
- macOS 10.15 and above or Windows 10 and above
Step-1: Clone the repository (main branch)
Step-2: Open the terminal or command-line prompt
Step-3: Copy the local file path of the cloned repository
Step-4: Navigate to the directory containing the cloned repository with the command cd <file-path-copied>
Step-5: Install the required python dependencies for this project by running the command pip install -r requirements.txt
Step-7: Navigate to the subdirectory folder (./Weatherbooth/website) and open config.py in a text editor
Step-8: Comment out line 5 and uncomment line 10 in config.py and save the file
Step-9: Execute the app by running the command python app.py
in the terminal or command-line and click on the link provided http:https://localhost:5000/
Licensed under GNU Affero General Public License v3
The current version of Weatherbooth is hosted at https://weatherbooth.herokuapp.com
Any reproductions of this webapp hosted publicly must be open source, generate your own unique key for DB creation and include a explicit link crediting the developers of Weatherbooth.
Flask as our backend (Deployed version and REST API version)
Bootstrap as our CSS framework
Chart.js for visualizing hourly weather predictions
React supported with API requests, route navigation, wrappers for Bootstrap and Chart.js dependencies as our frontend (REST API version)
Tensorflow for modeling data pipelines of target weather attributes, to predict hourly and daily values for the next few days
Scikit-learn for preprocessing data and classification of weather conditions
Heroku for easy CI/CD with GitHub and Student Developer Pack
OpenWeatherMap for their generous offers of various weather data APIs for free-tier users
Oikolab for providing processed global historical climate reanalysis weather data via REST API
PirateWeather for providing processed satellite historical weather data via REST API