Skip to content

612-Windpower-Forecast-Neural-Network/FinalCodes

Repository files navigation

Short-Term Wind Power Forecasting via Transformer Neural Network

Authors: Austin Robert Miller, Dina Fatma Hadj-Mabrouk, Mohammed Rayyan Waseem, Neha Dutt, Varsha Sabhnani

Objective

Implement a time-series transformer model to predict short-term wind power output based on envrionmental factors. The model specifically looks at predicting the next 6 hours of wind power output at a turbine using the past 24 hours of data. Results of this modified transformer model are compared against vanilla transformer, Long Short-Term Memory (LSTM), and SARIMAX models.

Data Source: Kaggle - Wind Power Generation Data Forecasting (M. Rahim, 2017)


Project Files


This repository contains the following files:

  • Data: Directory of four CSV files containing the data wind power data for all four wind turbines (one file per turbine) over five years (2017-2021).
  • README.md: This file which contains information on the directory.
  • Requirements.txt: Text file containing all the required packages and libraries needed to run the code.
  • EDA.ipynb: Exploratory data analysis notebook which loads the data and performs descriptive statistics, Pearson Correlation, and One-Way-Anova Tests on the data.
  • Seasonal_Wind_Power_Forecasting.py: Python script which loads, processes, and analyzes wind power data using the modified transformer model.
  • VanillaTransformer.py: Python script which loads, processes, and analyzes wind power data using a baseline transformer model.
  • LSTM.py: Python script which loads, processes, and analyzes wind power data using a baseline LSTM model (used as a benchmark comparison).
  • PredictionsDemo.ipynb: Notebook showcasing the actual vs predicted power predictions from all models for four random time steps.
  • SARIMAX.ipynb: Notebook which which loads, processes, and analyzes wind power data using a SARIMAX model (per wind turbine). This model predicts for the next 7 days using the past 60 days of hourly data.

Instructions

Ensure you have all the required packages and libraries as per the requirements.txt file and that the Data folder is in the same directory as the Python script or Jupyter notebook. Prior to running Seasonal_Wind_Power_Forecasting.py run the following command:

> pip install torch==2.5.1+cu121 torchvision==0.20.1+cu121 torchaudio==2.5.1+cu121 --index-url https://download.pytorch.org/whl/cu121

Note for the SARIMAX.ipynb, you will need to install a Pmdarima compatible version of Numpy (ex. 1.24.0). The pip install command for this can be found at the top of the notebook. For all other files and notebooks, the Numpy version specified in the requirements.txt will work.

From the project repository, you can run the models (Python script or Jupyter notebook) independently or in any order as they all individually load and process the raw data.

Releases

No releases published

Packages

 
 
 

Contributors