Skip to content

nismod/energy_demand

Repository files navigation

HIgh-Resolution Energy demand model (HIRE)

Documentation Status https://travis-ci.com/nismod/energy_demand.svg?branch=master https://coveralls.io/repos/github/nismod/energy_demand/badge.svg?branch=master

HIRE was written in Python (Python>=3.6) and developed at the Environmental Change Institute, University of Oxford within the EPSRC sponsored MISTRAL programme, as part of the Infrastructure Transition Research Consortium.

More information on the model can be found in:

Eggimann, S., Hall, W.J., Eyre, N. (2019): A high-resolution spatio-temporal energy demand simulation of large-scale heat pump diffusion to explore the potential of heating demand side management. Applied Energy, 236, 997–1010. https://doi.org/10.1016/j.apenergy.2018.12.052.

1. Download input data

Most data for running HIRE are freely available online. For some input data it is necessary to request access. For more information on all necessary input datasets see HIRE docs)

All necessary input data to run HIRE can be downloaded, where for the restricted datasets a dummy input dataset is used instead.

For data inquires, plese contact sven.eggimann@ouce.ox.ac.uk or the consortium). Also check whether data area available from NISMOD.

2. Initialising and running the model (local)

The recommended installation method is to use conda, which handles packages and virtual environments. First, create a conda environment:

conda create --name energy_demand python=3.6

and activate it:

activate energy_demand

In order to run HIRE, first the model needs to be set up (Section 1.1 or Section 1.1).

2.1 Model Set-Up (with complete data)

  1. Add all necessary data into a local directory such as path/to/energy_data_folder and download the energy_demand python code.

    Note: Because some data is not open source, the full data needs to be optained from the consortium. However, the model can be run with dummy data (see Section 1)

  2. Update the paths in the wrapperconfig.ini file in the config folder

  3. Navigate to the folder where the python code is saved. Open a command and type into a command line (in a virtual environment):

    python setup.py develop

  4. Install HIRE from within the console with the command

    energy_demand setup -f path/to/config.ini

    The path/to/energy_data_folder is the path to the location with the necessary data to run the model.

    Note: The setup command generates new subfolders in the energy_data_folder.

2.2 Alternative Model Set-Up (with restricted dummy data)

  1. Add the minimum data requirements into a local directory as path/to/energy_data_folder and download the energy_demand python code.

  2. Update the paths in the wrapperconfig.ini file in the config folder

  3. Navigate to the folder where the python code is saved. Open a command and type into a command line (in a virtual environment):

    python setup.py develop

  4. Install HIRE from within the console with the command

    energy_demand minimal_setup -f path/to/config.ini

    Example: energy_demand minimal_setup -f C:/Users/fred1234/data_energy_demand

    The path/to/energy_data_folder is the path to the location with the necessary minimum dummy data to run the model.

    Note: The minimal_setup command generates new folders in the energy_data_folder.

3. Running HIRE with smif

  1. Set up the model as outlined in 1.1 'Model Set-Up'

  2. Install and set-up smif (see smif instructions)

  3. pip install energy_demand

  4. Run the energy demand model for a scenario with the command: smif run NAME_SCENARIO

    To change the logger level of an individual sector model with smif, type:

    smif -v run modelrun_id or smif -vv run modelrun_id

4. Generating plots based from simulation results

Every time a model gets run, the specific model simulation results are stored in the result folder named after the timestamp of the model execution.

In order to generate plots of the results, the scripts in the 'processing' folder needs to be used. Proceed as follows:

  1. Select all generated result folders for which you want to generate plots.

  2. Copy them into an empty folder.

  3. Configure the 'energy_demand/processing/multiple_scenarios.py' file, namely the arguments of the process_result_multi_scen() function, and execute the function.

    This generates all plots in the invidual result folders.

    Note: In the 'process_result_multi_scen' function all plots which should be generated can be configured