A competition for forecasting electricity demand at the country-level using a standard backtesting framework

Overview

demand-comp-cntry

A competition for forecasting electricity demand at the country-level using a standard backtesting framework

Introduction

This repo makes scripts available for downloading and compiling country-level data to be used in electricity demand forecasting at the country level. The goal of this repo is to encourage collaborative and competitive efforts towards the use of machine learning backtesting frameworks for forecasting electricity consumption and to use trained models to predict future consumption at the country-level. The results of such models can be used directly as input to the pypsa-africa repository and other similar modeling efforts.

Technical Background

Before getting started, it is recommended that users of and contributors to this repository have some background on backtesting, cross-validation, and probabilistic forecasting. Here are a few links to get started:

Setup

  • Set up an appropriate .env file in the project root. This is listed in .gitignore, and as such, is ignored by Git. PROJECT_ROOT, PROJECT_CACHE, and PROJECT_OUT directories must be specified. For example,
    touch .env
    
    And, for example, populate this as follows:
    PROJECT_ROOT=
         
          
    PROJECT_CACHE=
          
           
    PROJECT_OUT=
           
    
           
          
         
  • Make appropriate cache and out folders:
    cd 
         
          
    mkdir cache
    mkdir out  
    
         
  • Download data
    python demand/data/download_data.py
    
  • Ensure you have World energy statistics (Edition 2020) data, filename iea_wes_2020-68578195-en.zip, in directory /data/raw/iea_wes_2020-68578195-en.zip
  • Ensure you have World energy balances (Edition 2020) data, filename iea_web_2020-cde01922-en.zip, in directory /data/raw/iea_web_2020-cde01922-en.zip
  • Install conda environment:
    conda env create -f environment.yml
    
  • Run test script using ARIMA models:
    cd 
         
          
    python demand/models/run_arima.py
    
         
You might also like...
PyPIContents is an application that generates a Module Index from the Python Package Index (PyPI) and also from various versions of the Python Standard Library.

PyPIContents is an application that generates a Module Index from the Python Package Index (PyPI) and also from various versions of the Python Standar

A small script I made that takes any standard Decklist of magic the gathering cards and pulls all card images from scryfall at once!

A small script I made that takes any standard Decklist of magic the gathering cards and pulls all card images from scryfall at once!

Creates a release pull request updating changelog and tags with standard-version

standard version release branch Github action to open releases following convent

High-level bindings to the Valhalla framework.

Valhalla for Python This spin-off project simply offers improved Python bindings to the fantastic Valhalla project. Installation pip install valhalla

Personal Finance Forecaster - An AI tool for forecasting personal expenses

Personal Finance Forecaster - An AI tool for forecasting personal expenses

🌍💉 Global COVID-19 vaccination data at the regional level.

COVID-19 vaccination data at subnational level. To ensure its officiality, the source data is carefully verified.

This is an online course where you can learn and master the skill of low-level performance analysis and tuning.
This is an online course where you can learn and master the skill of low-level performance analysis and tuning.

Performance Ninja Class This is an online course where you can learn to find and fix low-level performance issues, for example CPU cache misses and br

A Pythonic Data Catalog powered by Ray that brings exabyte-level scalability and fast, ACID-compliant, change-data-capture to your big data workloads.

DeltaCAT DeltaCAT is a Pythonic Data Catalog powered by Ray. Its data storage model allows you to define and manage fast, scalable, ACID-compliant dat

A collection of repositories used to realise various end-to-end high-level synthesis (HLS) flows centering around the CIRCT project.

circt-hls What is this?: A collection of repositories used to realise various end-to-end high-level synthesis (HLS) flows centering around the CIRCT p

Comments
  • Add snakemake workflow

    Add snakemake workflow

    @stephenjlee , First of all: COOL TOOL :100:. I added in this PR a first snakemake workflow to the package. This makes execution easy on local and cluster machines, and is useful if one wants to add more options, other workflows, or packages.

    Further changes:

    • unfix the conda environment to stay updated (recommended)
    • remove the PROJECT_PATH, CACHE_PATH, OUT_PATH as do some os.path setting instead
    • automatic creation of /out and /cache folders

    I am keeping this here as a Pull Request. Feel free to test it on my branch and request changes if necessary. This PR is also not urgent, we can talk about it at the next meeting.

    opened by pz-max 2
Owner
null
A country information finder module

A country information finder module

Fayas Noushad 3 Nov 28, 2021
Developing a python based app prototype with KivyMD framework for a competition :))

Developing a python based app prototype with KivyMD framework for a competition :))

Jay Desale 1 Jan 10, 2022
Group P-11's submission for the University of Waterloo's 2021 Engineering Competition (Programming section).

P-11-WEC2021 Group P-11's submission for the University of Waterloo's 2021 Engineering Competition (Programming section). Part I Compute typing time f

TRISTAN PARRY 1 May 14, 2022
🔩 Like builtins, but boltons. 250+ constructs, recipes, and snippets which extend (and rely on nothing but) the Python standard library. Nothing like Michael Bolton.

Boltons boltons should be builtins. Boltons is a set of over 230 BSD-licensed, pure-Python utilities in the same spirit as — and yet conspicuously mis

Mahmoud Hashemi 6k Jan 6, 2023
A functional standard library for Python.

Toolz A set of utility functions for iterators, functions, and dictionaries. See the PyToolz documentation at https://toolz.readthedocs.io LICENSE New

null 4.1k Jan 4, 2023
🔩 Like builtins, but boltons. 250+ constructs, recipes, and snippets which extend (and rely on nothing but) the Python standard library. Nothing like Michael Bolton.

Boltons boltons should be builtins. Boltons is a set of over 230 BSD-licensed, pure-Python utilities in the same spirit as — and yet conspicuously mis

Mahmoud Hashemi 5.4k Feb 20, 2021
🌈Python cheatsheet for all standard libraries(Continuously Updated)

Python Standard Libraries Cheatsheet Depend on Python v3.9.8 All code snippets have been tested to ensure they work properly. Fork me on GitHub. 中文 En

nick 12 Dec 27, 2022
Standard mutable string (character array) implementation for Python.

chararray A standard mutable character array implementation for Python.

Tushar Sadhwani 3 Dec 18, 2021
Neogex is a human readable parser standard, being implemented in Python

Neogex (New Expressions) Parsing Standard Much like Regex, Neogex allows for string parsing and validation based on a set of requirements. Unlike Rege

Seamus Donnellan 1 Dec 17, 2021
Aerospace utilities: flight conditions package, standard atmosphere model, and more.

Aerospace Utilities About Module that contains commonly-used aerospace utilities for problem solving. Flight Condition: input altitude to compute comm

null 1 Jan 3, 2022