This project analyzes climate data, implementing predictive algorithms such as SARIMA and linear regression, and then visualizes the results.
- Clone the repository.
- Create a virtual environment:
python -m venv venv - Activate the virtual environment:
- Windows:
venv\scripts\activate - macOS/Linux:
source venv/bin/activate
- Windows:
- Install dependencies:
pip install -r requirements.txt
Run the main script:
python src/main.py
Or use the command-line interface
- Show available commands:
python src/cli.py --help - Train Linear and SARIMA models:
python src/cli.py data/WeatherData.csv --train - Visualize the data:
python src/cli.py data/WeatherData.csv --visualize - Analyze and detect anomalies in data:
python src/cli.py data/WeatherData.csv --analyze - Run all three commands:
python src/cli.py data/WeatherData.csv --train --visualize --analyze
First run this to find all the tests:
python -m unittest discover tests
Afterwards, tests can be run individually:
- For data processing:
python -m unittest tests.test_data_processor - For the algorithms:
python -m unittest tests.test_algorithms - For the visualizer:
python -m unittest tests.test_visualizer
src/: Source codealgorithms.py: Implementation of SARIMA and linear machine learning algorithmscli.py: Command-line interfacedata_processor.py: Handles data processing and cleanupmain.py: Main scriptvisualizer.py: Visualizes generated data into charts
tests/: Unit tests__init__.py: Init filetest_algorithms.py: Unit test for algorithms.pytest_data_processor.py: Unit test for data_processor.pytest_visualizer.py: Unit test for visualizer.py
data/: Climate dataWeatherData.csv: Weather dataset in CSV format
requirements.txt: Project dependenciesproject_report_MLA.pdf: Project report in MLA formattingproject_report_IEEE.pdf: Project report in IEEE formatting
Includes two machine learning models (SARIMA and linear-based) for predicting trends. Further explanation and results of the project can be found in the project report.
-
Alexander Kajda: Implemented the SARIMA and linear model algorithms and their related unit tests for the project.
-
Kaitlyn Franklin: Implemented the visualizers and related unit test for the project.
-
Maddy Burns: Implemented the data processor, its related unit test, and the command-line interface for the project.
-
Ömer Tüzün: Wrote the project report and the README.md for the project. Suggested the SARIMA model be used.