Main file from which the model is run – main.py
“scen” defines the scenario name
Set of Boolean indicators for different policy options. Set True or False value to activate or deactivate certain set of equations.
Section under “policy constraints” contains the constraints on the renewable portfolio standard, CO2 emissions and maximum share of Critical excess of electricity generation. These constraints are enforced through positive (True) values of boolean constraints rps_inv, CarbonLimit and Ceep_limit.
In this section and the following ones, the carbon prices, electricity import price, Net present values, technology changes throughout time as well as electric vehicle parameters are defined.
At the end of this script, the locations, names and relative paths to the input files are defined.
In the file “Build_model.py”, you can modify the number of hours you want the model to run as well as the years which will be run. The limitation is that for the hours (periods) you can only change the second number which relates to the last hour for which the model is run.
For the years, you have to type in the years that exist in the input files for which the data is defined. In basic version of the model these are 2020, 2025, 2030, 2035, 2040, 2045 an 2050.
H2RES data files and tables
When you open the “data” folder, this is the list of the files you will find. These are the files being linked to in the previous figure.
This file presents the hourly distributions related to the inflows to the reservoirs of the dammed hydro power plants. The values are presented as a ratio of the inflow to the installed generation capacity of the power plant. Distributions are on hourly level and each plant has its own distribution of inflows for predetermined hour and year. You can get the inflow distribution directly from Dispa-SET website http://www.dispaset.eu/en/latest/releases.html or from RenewablesNinja https://www.renewables.ninja/.
This file contains the hourly distributions for the availability factors of non dispatchable power plants such as run of the river hydro power plants, wind power or solar power plants. The first column is designated with “year” and together with column “period” enables for definition of different availability factor in each hour of each year. The values are between 0 and 1. You can get the distributions for desired location from RenewablesNinja https://www.renewables.ninja/, or you can use the metered data from Transparency Platform https://transparency.entsoe.eu/.
In this file you can define the available net transfer capacities in both directions as well as an exogenous requirement for imports or exports into or from the system. The exogenous export requirement can be either turned on or off via the boolean parameter “exports_dat“.
The file heat_demand presents the hourly distributions for the heating demand. Columns C, D and E correspond with the demands in different district heating grids supplied by the cogeneration plants. The individual heating demand is presented through “general_demand” column and the industry demand is presented through “Industry_HT” column.
The data on generating units is presented throught “genco_dat” file.
|unit_name||Each generator is assigned a name by which the model identifies it. Each name must be unique.||–|
|cap_mw||This variable defines the nominal capacity of the generator in year zero.||MW|
|fuel_type||The type of fuel the generator uses is defined by this variable. You need to select a variable from the list: Hydro, Biomass, Gas, Oil, Nuclear, Coal, Wind, Solar.||–|
|decom_start_existing_cap||The number of years after the initial simulation year when the decommissioning of existing capacity begins. Decommissioning follows a logarithmic curve of gradual decommissioning.||year|
|decom_start_new||The number of years after the instalation of the new capacity when the decommissioning of new capacity begins.||year|
|final_life_cap||The share of installed capacity that remains in operation after the end of the lifetime. Some equipment is assumed to continue operating with increased maintenance to extend its lifetime.||share|
|max_inv_period||The maximum investment constraint in equipment in a given year. The system can install a maximum of this equipment capacity in each year. This limits rapid investment in equipment over a short period.||MW|
|max_cap_gen||The maximum total equipment capacity.||MW|
|cap_factor||The maximum availability of equipment. Currently, this unit is not used as the load factors of variable renewable sources are defined through resource availability curves.||share|
|efficiency||Efficiency of the plant. Used for thermal power plants to calculate fuel consumption and emissions.||share|
|cap_inv_cost||Investment cost in capacity expansion.||€/MW|
|RampingCost||The cost of changing the output power of a thermal power plant.||€/MW|
|CO2Intensity||Specific CO2 emissions of each plant.||tCO2/MWh|
|technology||Plant type. Besides fuel, additional definition is needed for the model to know which equations can be applied. For example, all hydroelectric plants use the same fuel category “hydro,” but they differ in types. They are divided into storage, reversible, and run-of-the-river.||–|
|RampUpRate||Limitation on the rate of increase in output power. This size restricts the application of production capacities to balance variability in renewable energy production.||share of capacity per hour|
|RampDownRate||Limitation on the rate of power reduction.||share of capacity per hour|
|PrimaryReserve||A variable that indicates whether the plant participates in primary regulation. Include the label “Y” for a positive response and “N” for a negative response.||–|
|SecondaryReserve||A variable that indicates whether the plant participates in secondary regulation. Include the label “Y” for a positive response and “N” for a negative response.||–|
|CHPType||A variable that indicates whether the plant participates in district heating. Include the label “Y” for a positive response and “N” for a negative response.||–|
|STOCapacity||This variable defines the storage sizes in MWh. The same size applies to the storage capacity in hydroelectric plants and the thermal storage capacity in CHP plants connected to the district heating system.||MWh|
|STOSelfDischarge||Energy loss from the storage system.||share|
|STOMaxChargingPower||This variable defines the maximum power in “MW” with which the storage system can be charged. In other words, this is the maximum operating power of a reversible hydroelectric plant in pumping mode or the maximum power with which the thermal storage system in CHP can be charged. This size should not be confused with the maximum thermal power that a thermal power plant can deliver.||MW|
|STOChargingEfficiency||Efficiency of the storage charging process.||share|
|CHPPowerToHeat||The ratio of thermal to electric power in a cogeneration plant. This variable defines the maximum thermal power of the cogeneration plant, which is always connected to the electric power.||MWh/MWh|
|CHPMaxHeat||The maximum power that the thermal storage system can deliver. This size must always be at least equal to the peak load of the district heating system.||MW|
The model requires the costs of the fuel for calculation. Similarly to other inputs, these prices are inserted as an hourly distributions for the planning horizon with each column corresponding to one type of fuel.
The majority of data required for modeling the system of heat production, heat pumps, transportation, and industry is defined through the file flex_tech_dat. The file contains multiple sheets dedicated to individual parts of the input data for the model.
Flex tech – Flex tech
The sheet ‘flex_tech’ provides a description of the technologies used for heat pumps, electric heaters, hydrogen production and storage, battery storage systems, and power-to-fuel production and storage. It is also necessary to define the names of the technologies, capacities, maximum capacities, efficiencies, data on the lifetime and decommissioning, as well as their participation in the primary and secondary regulation markets. An example of input data is shown in the figure above.
Flex tech – Thermal_tech
The figure above shows the data for boilers in individual households. The model uses four types of fuel-based boilers, namely gas boilers, biomass boilers, liquid fuel boilers, and coal boilers.
Flex tech – DistrictHeating
In order to initialize the model correctly, the starting capacities for the boilers and heat pumps in district heating networks have to be defined.
Flex tech – Tech_cost
The model also requires the investment costs for the heating systems and flexibility options. They are defined in the sheet tech_cost for each unit type and the year as shown on the figure above. The values are in €/MW of installed capacity. The exception are storage technologies with €/MWh.
Find data in the “Technology data” website https://ens.dk/en/our-services/projections-and-models/technology-data.
Flex tech – Industry
This sheet allows the demand in industry sector to be divided into different fuels by their shares and relate emission factors. In this version of the mode, the electricity or hydrogen demand in industry are defined separately and this section should only consider shares in the remainder of the demand.
Find data on the Eurostat energy balances.
Flex tech – COP_HP
The model uses heat pumps as well. Their operation greatly depends on the weather conditions and is reflected in achieved COP factors. This sheet enables the definition of hourly values for COP factors for heat pumps.
The table EV_load features two distributions. In order to model electric vehicles, we need to know the time of the demand and the availability for charging. Transport load values are the share of total transport load in the year.
Similarly as in electricity demand, hydrogen demand can be presented by the sector it corresponds to. The values are inserted in MWh units.
Basic electricity demands are defined through this file. A sample of the entered data in this file is shown in figure. It is necessary to define several columns that determine the time, year, day, hour, and location of specific energy demands. Therefore, the columns ‘year’ represent the year, and “period” represent the hour within the year. The next columns, “Industry”, “Buildings”, “Transport” and “power” relates to the demand in a specific hour of the year. It is not necessary to enter the data in each column. Overall data can be entered in the column “Power”.
You can get data on electricity demands for European countries from Transparency Platform https://transparency.entsoe.eu/.
Cooling demand is modeled and therefore the input data is presented in the similar way as for heating. Heat pumps can provide cooling.