Tutorial 3: Add Technologies and Carriers¶
In this scenario, we want to introduce how to add new technologies and carriers from an existing dataset. In general, adding new technologies and carriers involves the following steps:
Copy an existing dataset to a new folder.
Copy-paste an existing technology or carrier and rename it.
Modify the parameters of the new technology or carrier as desired.
Add new
.csvfiles if necessary.Add the new technology to the appropriate sets in
system.json. Carriers are automatically detected from the technologies.Run the model with the new dataset.
This tutorial assumes that you have installed and run the example dataset
5_multiple_time_steps_per_year as described in the tutorial setup
instructions.
Practically, we want to extend the example dataset 5_multiple_time_steps_per_year by a new technology
called biomass_boiler which uses the carrier biomass to produce heat.
Therefore, we need to add the new technology biomass_boiler and the new carrier biomass to the dataset.
Step 1: Copy the existing dataset¶
Copy-paste the entire folder of the dataset example 5_multiple_time_steps_per_year to a new folder
called tutorial_3_add_technologies_carrier.
Step 2: Copy-paste an existing technology and carrier and rename it¶
It is easiest to copy an existing technology and modify it to create a new technology.
Of course, you can also create a new technology from scratch by creating a new attributes.json file
(Attribute.json files).
In this case, we copy-paste the existing technology natural_gas_boiler to a new folder
biomass_boiler inside the folder set_conversion_technologies.
Analogously, we copy-paste the existing carrier natural_gas to a new folder
biomass inside the folder set_carriers.
Step 3: Modify the parameters of the new technology and carrier¶
Now, we need to modify the parameters of the new technology and carrier.
The biomass_boiler folder is very similar to the natural_gas_boiler technology, so we only need to change
the name of the technology and the input carrier from natural_gas to biomass. Furthermore, we want to
change the efficiency of the biomass boiler to 0.8. Since the conversion_factor is expressed as
dependent_carrier/reference_carrier=[biomass]/[heat], we set the conversion_factor to 1/0.8=1.25.
Make sure to change the name of the dependent_carrier in the attributes.json file from
natural_gas to biomass.
We also want to increase the capex of the biomass boiler to 1500 Euro/kW.
Everything else remains the same:
The reference and output carrier is still
heat.The units remain the same (kW/MW/GW).
All other values remain the same.
For our new carrier biomass, we want to change the carbon_intensity_import and carbon_intensity_export
to 0.0, and increase the price_import to 40 kEuro/GWh. Everything else remains the same.
Step 4: Add new .csv files if necessary¶
We want to allow infinite import of biomass, so we can remove the existing file
availability_import.csv.
However, we want to make biomass cheaper than natural_gas in CH, so we create a new file
price_import.csv in the folder set_carriers/biomass/ with the following content:
node,price_import
CH,15
Step 5: Add the new technology to system.json¶
Finally, we need to add the new technology biomass_boiler to the set_conversion_technologies in system.json.
We do not need to add the new carrier biomass explicitly,
since carriers are automatically detected from the technologies.
Step 6: Run the model with the new dataset¶
Lastly, we can run the model with the new dataset tutorial_3_add_technologies_carrier
(assuming that you are in the folder where the config.json file and the new folder are located):
zen-garden --dataset=tutorial_3_add_technologies_carrier
Example Exercise¶
What share of the heat in CH is generated from the biomass boiler in 2023?
View the production of heat using the ZEN-garden visualization platform, as described in the tutorial on analyzing outputs.
Solution: 71.7 % (1560 GWh from biomass boiler / 2177 GWh total heat production)
Using the same recipe as above, add a wood_mill technology that produces biomass from wood but but requires electricity as an input carrier
Copy-paste the existing technology
biomass_boilerto a new folderwood_millinside the folderset_conversion_technologies.Copy-paste the existing carrier
biomassto a new folderwoodinside the folderset_carriers.Change the
reference_carrierof thewood_milltowood, theinput_carrierto``["electricity","wood"], and theoutput_carriertobiomass. Note that for the first time, the reference carrier is not the same as the output carrier.The unit of
woodistonfor energy quantities (equivalent toGWh) andton/hfor power quantities (equivalent toGW). Change the unit of all parameters of thewood_millandwoodcarrier accordingly.Assume that 1 ton of wood produces 3 MWh of biomass (LHV of dry biomass: 5.4 kWh/kg, conversion efficiency: 55.5 %). Furthermore, assume that the wood mill requires 0.5 MWh of electricity per ton of processed wood. Set the
conversion_factorof thewood_millaccordingly.We assume a cheap
wood_millwith capex of 10 Euro/(ton/h) and aopex_specific_fixed=0Prohibit the import of
biomassby settingavailability_importto 0 in theattributes.jsonfile.Change the default
price_importofwoodto 20 Euro/ton in theattributes.jsonfile and the price forCHto 2 Euro/ton in a theprice_import.csvfile.Finally, add the new technology
wood_millto theset_conversion_technologiesinsystem.jsonand run the model. If you get any unit errors, check that all units are consistently changed.How much wood is consumed in both CH and DE in 2023?
Solution: 6.13 Mtons of wood
What share of the electricity consumption in both CH and DE is used for the wood mill in 2023?
Solution: 40.11 % (3.06 TWh for wood mill / 7.64 TWh total electricity consumption)