Skip to content

qhu75/DVA-Project

 
 

Repository files navigation

PJM Day-Ahead Forecasting Tool

Table of Contents

  1. Streamlit Dashboard
  2. Application Overview
  3. Application Architecture
  4. How to Use Application
  5. Github Folder Structure
  6. Running Locally

Web Application

Live Application: Streamlit Dashboard

plot

Application Overview

PJM is a regional transmission organization (RTO) that manages transmission of electricity for 21 utilities in mid-Atlantic and mid-west states of the US. Each utility in PJM’s territory comprises its own transmission zone. PJM and its member utilities use load forecasts to allocate capacity efficiently, affordably, safely, and reliably. Accurate load forecasting is integral to maintaining a positive reputation with customers, preventing litigation issues, and keeping unexpected/emergency costs down. This visualization tool allows users to interact with the load forecasts. It automatically pulls in weather forecasts to engineer the predictor variables that feed into the final XGBoost models to predict load. The tool is built in Streamlit and utilitizes Folium for mapping and Plotly for interactivity.

Application Architecture

plot

How to Use Application

  1. Open application - Streamlit Dashboard
  2. Select a date parameter to see predictions for that time - will default to current date
  3. Select one or more zones to see specific areas - will default to all zones
    • Note: you can also click the circle on the map to select a specific zone
  4. Select a specific hour to see system load - will update real time load on graph
  5. Hover over each zone to view peak load and other factors that may contribute to this load

GitHub Folders/Files

├── PJM Load Forecast Visualizer.twb            ## code to build streamlit application
├── forecastPJMLoad.py                          ## code to generate new forecast with model
├── load_streamlit.py                           ## code to load streamlit application
├── model_neuralprophet.py                      ## Legacy
├── model_np.py                                 ## Legacy
├── model_prophet.py                            ## Legacy
├── model_xgb.py                                ## xg boost model code
├── Data                                        ## data used as input to model
├── Legacy                                      ## EDA and Model Discovery
├── images                                      ## images for README
├── models                                      ## model files for each zone
├── output                                      ## output of model used for visualization
├── README.md
├── requirements.txt                            ## packages required to run application locally
└── .gitignore

Running App Locally (optional)

  1. Install dependencies
pip install -r requirements.txt
  1. Run
streamlit run load_streamlit.py

Now you can view the App locally: http://localhost:8501/

Releases

No releases published

Packages

No packages published

Languages

  • Python 57.7%
  • Jupyter Notebook 42.3%