Skip to main content

Creating and updating scenarios

How does it work?

Next to retrieving data from existing scenarios, the tools also allow you to create or update scenarios based on your data. When you add a name, area and end year to the scenario_list, but no ID, a new scenario will be created for you and the ID will be filled in automatically when running the tools.

Next to that, you can include slider settings for each scenario, custom curves, a heat network order and settings for heat demand curves.

Setting up the CSV input files

To create and update ETM scenarios you can edit two CSV files in the input folder. The scenario_list CSV contains general information about the scenarios, such as the region and target year. And secondly, the scenario_settings file contains the ETM slider values for each of the scenarios specified in scenario_list.csv.

Moreover, you can supply custom demand, supply and price curves for your scenarios in the input/curves folder.

scenario_list.csv

In the scenario_list.csv file you can create a row for each scenario you wish to process. The CSV contains the following columns:

  • short_name. Here you can specify an identifier for each scenario. NOTE: short_names must be unique!
  • title. Scenario title. This is displayed in the ETM front-end.
  • area_code. Scenario region. A full list of available area codes can be found on Github.
  • end_year. The target year / year of interest of each scenario.
  • description. Scenario description. This is displayed in the model’s front-end.
  • id. Should be left empty if you want to create a new scenario. The ID will be filled in automatically when the scenario is created. If you want to update an existing scenario, you can specify its ID here.
  • keep_compatible. True or False. Is False by default if left empty. Determines whether the scenario should be updated automatically if we make changes to the model; keeping your scenario compatible with future versions of the ETM, see forward compatibility).
  • heat_network_order. To specify the order in which dispatchable district heating technologies are utilised if there is a shortage of supply. Can be left empty to use the default order. Options should be separated by a space. E.g.: "energy_heat_network_storage energy_heat_burner_hydrogen”. The full list of technologies can be found on Github.
  • curve_file. The name of a CSV file containing custom hourly profiles. For example interconnector price curves, solar production curves or industry heat demand curves. The CSV file should be placed in the input/curves folder.
  • heat_demand. Optional - expert feature. The name of the folder inside input/curves that contains either 15 heat demand profiles, or the three input files neccesary to generate new profiles. See the heat module section for more information.
Keep compatible

Not keeping your scenario compatible with newer model versions can cause the model to break or lead to unforseen outcomes for your scenarios.

scenario_settings.csv

The scenario_settings.csv file contains the slider settings of your scenarios. The first column contains the keys of all sliders (‘inputs’) that will be set. If a slider is missing from this list, it will inherit the default value. The default value is the value the slider is on when starting a new scenario. The other columns contain the scenario short_names (specified in scenario_list.csv) and the corresponding slider values. A list of all slider keys can be found here (CSV file).

Example file:

inputscenario_short_name_1scenario_short_name_2
households_number_of_residences4000037000
transport_useful_demand_passenger_kms-1.52.3
transport_vehicle_using_electricity_efficiencyreset1.2
Resetting a slider to its standard value

If you want to remove an input from the list of inputs in your scenario, put reset instead of a value. This will reset the slider to its standard value.

curves

In the input/curves folder you can add custom demand, supply and price curves to use in your scenarios. These curves can be used to overwrite the default ETM profiles. In the scenario_list.csv file you specify for each scenario which CSV curve file to use by adding the file name to the curve_file column.

Each file should look as follows:

  • The first row of each column should contain the key of the category you want to upload a custom curve for. A full ist of available keys can be found on Github. Example: interconnector_1_price

  • Row 2-8761 should contain the hourly values (one for each hour per year)

  • You can add multiple columns to customize multiple profiles

  • You can add multiple CSV files in case you want to use different profiles for different scenarios

    Example file:

interconnector_1_priceindustry_chemicals_heat
23.40.023
30.40.021
31.20.034
9.80.045
......

Heat network orders

In the file heat_network_order.csv it is possible to specify the three heat network orders for your scenario. In each cell of the csv, you specify the order by separating the different sources with a space " ".

You may omit heat sources from the order, however note that they will be added in by the ETM automatically in the default order. For example, if the default order is a,b,c,d, and your request provides an order of c,b, the resulting heat network order will be c,b,a,d.

If you don't specify an order, it will not be sent to the ETM. In the example below, only the MT order will be updated.

Example file

orderscenario_short_name_1...
heat_network_order_lt...
heat_network_order_mtenergy_heat_burner_mt_coal energy_heat_burner_mt_hydrogen energy_heat_network_storage_mt_steam_hot_water...
heat_network_order_ht...

Running the tool

Automatic data retrieval

Please mind that the data retrieval step is run automatically after creating or updating the scenarios. You can clear the rows in the data retrieval files for results and data downloads if you don't want this behaviour.

The tool can be run with the following commands.

With pipenv you can run:

pipenv run scenario_from_csv

With basic Python:

python scenario_from_csv.py