Peaky Finders

A Plotly Dash application with helpful peak load visualizations and a day ahead forecasting model for five different ISOs.
https://github.com/kbaranko/peaky-finders

Last synced: over 1 year ago
JSON representation

Acceptance Criteria

Repository metadata

ISO peak load forecasting application

README.md

Peaky-Finders

Peaky Finders is a Plotly Dash application with helpful peak load visualizations and a day ahead forecasting model for five different ISOs. It does not demonstrate cutting-edge peak load forecasting methods -- there are a handful of high tech companies and millions of dollars spent trying to solve this problem -- but rather illustrate core concepts and explore how well a model can do with just historical load and temperature data.

The application has been deployed on Heroku: https://peaky-finders.herokuapp.com/

Stack

  • Python
  • Pandas
  • Matplotlib
  • Scikit-Learn
  • Dash
  • Plotly

Data

Historical load data was collected using the Pyiso python library, which provides clean API interfaces to make scraping ISO websites easy. The Darksky API was used for weather data, which provides historical temperature readings for a given latitude and longitude. For this model, I picked one central coordinate in each ISO territory to make API requests.

Features

  • Day of week (seven days)
  • Holiday (yes or no)
  • Hour of Day (24 hours)
  • Temperature Reading (hourly)
  • Previous Day’s Load (t-24)

Results

How well does each model perform? Depends on the ISO. Mean Absolute Error (MAE) for the month of February 2021 in Megawatts (MW):

  • CAISO: 455.91
  • MISO: 2,382.66
  • PJM: 2,886.66
  • NYISO: 347.62
  • ISONE: 522.43

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: over 1 year ago

Total Commits: 167
Total Committers: 2
Avg Commits per committer: 83.5
Development Distribution Score (DDS): 0.443

Commits in past year: 1
Committers in past year: 1
Avg Commits per committer in past year: 1.0
Development Distribution Score (DDS) in past year: 0.0

Name Email Commits
Kyle Baranko k****e@k****m 93
Kyle Baranko k****o@g****m 74

Committer domains:


Issue and Pull Request metadata

Last synced: over 1 year ago

Total issues: 0
Total pull requests: 36
Average time to close issues: N/A
Average time to close pull requests: 3 months
Total issue authors: 0
Total pull request authors: 3
Average comments per issue: 0
Average comments per pull request: 0.56
Merged pull request: 4
Bot issues: 0
Bot pull requests: 31

Past year issues: 0
Past year pull requests: 1
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 0
Past year pull request authors: 1
Past year average comments per issue: 0
Past year average comments per pull request: 0.0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 1

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/kbaranko/peaky-finders

Top Issue Authors

Top Pull Request Authors

  • dependabot[bot] (31)
  • kbaranko (4)
  • xhluca (1)

Top Issue Labels

Top Pull Request Labels

  • dependencies (31)

Dependencies

requirements.txt pypi
  • Brotli ==1.0.9
  • Fiona ==1.8.18
  • Flask ==1.1.2
  • Flask-Compress ==1.8.0
  • Jinja2 ==2.11.2
  • MarkupSafe ==1.1.1
  • Pillow ==8.1.0
  • PyMeeus ==0.3.7
  • Pygments ==2.7.3
  • QtPy ==1.9.0
  • Send2Trash ==1.5.0
  • Shapely ==1.7.1
  • Werkzeug ==1.0.1
  • amqp ==5.0.2
  • appnope ==0.1.2
  • argon2-cffi ==20.1.0
  • async-generator ==1.10
  • attrs ==20.3.0
  • backcall ==0.2.0
  • beautifulsoup4 ==4.9.3
  • billiard ==3.6.3.0
  • bleach ==3.2.1
  • celery ==5.0.5
  • certifi ==2020.12.5
  • cffi ==1.14.4
  • chardet ==4.0.0
  • click ==7.1.2
  • click-didyoumean ==0.0.3
  • click-plugins ==1.1.1
  • click-repl ==0.1.6
  • cligj ==0.7.1
  • convertdate ==2.2.0
  • cycler ==0.10.0
  • dash ==1.19.0
  • dash-bootstrap-components ==0.11.1
  • dash-core-components ==1.15.0
  • dash-html-components ==1.1.2
  • dash-renderer ==1.9.0
  • dash-table ==4.11.2
  • decorator ==4.4.2
  • defusedxml ==0.6.0
  • descartes ==1.1.0
  • entrypoints ==0.3
  • future ==0.18.2
  • geopandas ==0.8.2
  • gunicorn ==20.0.4
  • holidays ==0.10.4
  • html5lib ==1.1
  • idna ==2.10
  • importlib-metadata ==3.3.0
  • importlib-resources ==5.1.0
  • ipykernel ==5.4.2
  • ipython ==7.19.0
  • ipython-genutils ==0.2.0
  • ipywidgets ==7.6.3
  • itsdangerous ==1.1.0
  • jedi ==0.18.0
  • joblib ==1.0.0
  • jsonschema ==3.2.0
  • jupyter ==1.0.0
  • jupyter-client ==6.1.11
  • jupyter-console ==6.2.0
  • jupyter-core ==4.7.0
  • jupyterlab-pygments ==0.1.2
  • jupyterlab-widgets ==1.0.0
  • kiwisolver ==1.3.1
  • kombu ==5.0.2
  • korean-lunar-calendar ==0.2.1
  • lxml ==4.6.2
  • matplotlib ==3.3.4
  • mistune ==0.8.4
  • mock ==4.0.3
  • munch ==2.5.0
  • nbclient ==0.5.1
  • nbconvert ==6.0.7
  • nbformat ==5.0.8
  • nest-asyncio ==1.4.3
  • notebook ==6.1.6
  • numpy ==1.19.5
  • packaging ==20.8
  • pandas ==1.2.1
  • pandocfilters ==1.4.3
  • parso ==0.8.1
  • pexpect ==4.8.0
  • pickleshare ==0.7.5
  • plotly ==4.14.3
  • prometheus-client ==0.9.0
  • prompt-toolkit ==3.0.9
  • ptyprocess ==0.7.0
  • pycparser ==2.20
  • pyiso ==0.4.0
  • pyparsing ==2.4.7
  • pyproj ==3.0.0.post1
  • pyrsistent ==0.17.3
  • python-dateutil ==2.8.1
  • pytz ==2019.3
  • pyzmq ==20.0.0
  • qtconsole ==5.0.1
  • requests ==2.25.1
  • retrying ==1.3.3
  • scikit-learn ==0.24.0
  • scipy ==1.6.0
  • six ==1.15.0
  • sklearn ==0.0
  • soupsieve ==2.1
  • terminado ==0.9.2
  • testpath ==0.4.4
  • threadpoolctl ==2.1.0
  • timezonefinderL ==4.0.2
  • tornado ==6.1
  • traitlets ==5.0.5
  • typing-extensions ==3.7.4.3
  • urllib3 ==1.26.2
  • vine ==5.0.0
  • wcwidth ==0.2.5
  • webencodings ==0.5.1
  • widgetsnbextension ==3.5.1
  • xgboost ==1.3.1
  • xlrd ==2.0.1
  • zipp ==3.4.0

Score: 4.6443908991413725