Skip to content

Commit

Permalink
Fix issue with fuel mix in IMAGE scenarios
Browse files Browse the repository at this point in the history
Introduce battery and hydrogen storage
Add vanadium LCIs
  • Loading branch information
romainsacchi committed Oct 5, 2023
1 parent 1270b24 commit a9c165b
Show file tree
Hide file tree
Showing 26 changed files with 880 additions and 34,601 deletions.
4 changes: 2 additions & 2 deletions conda/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ requirements:
run:
- numpy
- pandas
- bw2io >=0.8.7, != 0.8.8
- bw2io >=0.8.10
- bw2data
- wurst
- xarray
- prettytable
- pycountry
- cryptography
- pyYaml
- sparse
- sparse>=0.14.0
- schema
- datapackage
- requests
Expand Down
428 changes: 394 additions & 34 deletions dev/Untitled1.ipynb

Large diffs are not rendered by default.

34,806 changes: 277 additions & 34,529 deletions dev/test_premise.ipynb

Large diffs are not rendered by default.

50 changes: 49 additions & 1 deletion docs/extract.rst
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,7 @@ The datasets introduced are listed in the table below.
================================================================== ===========
Hydrogen distribution location
================================================================== ===========
Hydrogen refuelling station GLO
hydrogen refuelling station GLO
high pressure hydrogen storage tank GLO
distribution pipeline for hydrogen, dedicated hydrogen pipeline RER
transmission pipeline for hydrogen, dedicated hydrogen pipeline RER
Expand All @@ -635,6 +635,19 @@ The datasets introduced are listed in the table below.
.. _LCI_H2_distr: https://github.com/polca/premise/blob/master/premise/data/additional_inventories/lci-hydrogen-distribution.xlsx
.. _Cerniauskas: https://doi.org/10.1016/j.ijhydene.2020.02.121
Hydrogen turbine
****************
A dataset for a hydrogen turbine is also imported, to model the production of electricity
from hydrogen, with an efficiency of 51%. The efficiency of the H2-fed gas turbine is based
on the parameters of Ozawa_ et al. (2019), consulted here: LCI_H2_turbine_.
.. _Ozawa: https://doi.org/10.1016/j.ijhydene.2019.02.230
.. _LCI_H2_turbine: https://github.com/polca/premise/blob/master/premise/data/additional_inventories/lci-hydrogen-turbine.xlsx
Biofuels
--------
Expand Down Expand Up @@ -944,6 +957,41 @@ These inventories can be found here: LCI_lithium_.
.. _LCI_cobalt: https://github.com/polca/premise/blob/master/premise/data/additional_inventories/lci-cobalt.xlsx
.. _LCI_lithium: https://github.com/polca/premise/blob/master/premise/data/additional_inventories/lci-lithium.xlsx
Vanadium Redox Flow Batteries
-----------------------------
*premise* imports inventories for the production of a vanadium redox flow battery, used
for grid-balancing, from the work of Weber_ et al. 2021.
It is available under the following dataset:
* vanadium-redox flow battery system assembly, 8.3 megawatt hour
The dataset providing electricity is the following:
* electricity supply, high voltage, from vanadium-redox flow battery system
The power capacity for this application is 1MW and the net storage capacity 6 MWh.
The net capacity considers the internal inefficiencies of the batteries and the
min Sate-of-Charge, requiring a certain oversizing of the batteries.
For providing net 6 MWh, a nominal capacity of 8.3 MWh is required for the
VRFB with the assumed operation parameters. The assumed lifetime of the stack
is 10 years. The lifetime of the system is 20 years or 8176
cycle-life (49,000 MWh).
.. _Weber: https://doi.org/10.1021/acs.est.8b02073
These inventories can be found here: LCI_vanadium_redox_flow_batteries_.
.. _LCI_vanadium_redox_flow_batteries: https://github.com/polca/premise/blob/master/premise/data/additional_inventories/lci-vanadium-redox-flow-battery.xlsx
This publication also provides LCIs for Vanadium mining and refining from iron ore.
The end product is vanadium pentoxide, which is available under the following dataset:
* vanadium pentoxide production
These inventories can be found here: LCI_vanadium_.
.. _LCI_vanadium: https://github.com/polca/premise/blob/master/premise/data/additional_inventories/lci-vanadium.xlsx
Road vehicles
-------------
Expand Down
22 changes: 22 additions & 0 deletions docs/transform.rst
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,28 @@ IAM region with their respective current production volumes (also provided by
ecoinvent). This is not ideal as it supposes that future country-specific
production volumes will remain the same in respect to one another.

Storage
-------

If the IAM scenario requires the use of storage, *premise* adds a storage
dataset to the high voltage market. *premise* can add two types of storage:

* storage via a large-scale flow battery (electricity supply, high voltage, from vanadium-redox flow battery system)
* storage via the conversion of electricity to hydrogen and subsequent use in a gas turbine (electricity production, from hydrogen-fired one gigawatt gas turbine)

The electricity storage via battery incurs a 33% loss. It is operated by a 8.3 MWh vanadium redox-based flow battery,
with a lifetime of 20 years or 8176 cycle-lifes (i.e., 49,000 MWh).

The storage of electricity via hydrogen is done in two steps: first, the electricity is converted to hydrogen
via a 1MW PEM electrolyser, with an efficiency of 62%. The hydrogen is then stored in a geological cavity
and used in a gas turbine, with an efficiency of 51%. Accounting for leakages and losses, the
overall efficiency of the process is about 37% (i.e., 2.7 kWh necessary to deliver 1 kWh to the grid).

The efficiency of the H2-fed gas turbine is based on the parameters of Ozawa_ et al. (2019).

.. _Ozawa: https://doi.org/10.1016/j.ijhydene.2019.02.230


Medium voltage regional markets
_______________________________

Expand Down
30 changes: 25 additions & 5 deletions premise/activity_maps.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
mapping between ``premise`` and ``ecoinvent`` terminology.
"""

import sys
from collections import defaultdict
from pathlib import Path
from typing import List, Union
Expand All @@ -23,11 +24,12 @@
)


def get_mapping(filepath: Path, var: str) -> dict:
def get_mapping(filepath: Path, var: str, model: str = None) -> dict:
"""
Loa a YAML file and return a dictionary given a variable.
:param filepath: YAML file path
:param var: variable to return the dictionary for.
:param model: if provided, only return the dictionary for this model.
:return: a dictionary
"""

Expand All @@ -37,7 +39,11 @@ def get_mapping(filepath: Path, var: str) -> dict:
mapping = {}
for key, val in techs.items():
if var in val:
mapping[key] = val[var]
if model is None:
mapping[key] = val[var]
else:
if model in val.get("iam_aliases", {}):
mapping[key] = val[var]

return mapping

Expand Down Expand Up @@ -114,12 +120,15 @@ class InventorySet:
These functions return the result of applying :func:`act_fltr` to the filter dictionaries.
"""

def __init__(self, database: List[dict], version: str = None) -> None:
def __init__(
self, database: List[dict], version: str = None, model: str = None
) -> None:
self.database = database
self.version = version
self.model = model

self.powerplant_filters = get_mapping(
filepath=POWERPLANT_TECHS, var="ecoinvent_aliases"
filepath=POWERPLANT_TECHS, var="ecoinvent_aliases", model=self.model
)

self.powerplant_fuels_filters = get_mapping(
Expand Down Expand Up @@ -253,4 +262,15 @@ def generate_sets_from_filters(self, filtr: dict, database=None) -> dict:
tech: act_fltr(database, fltr.get("fltr"), fltr.get("mask"))
for tech, fltr in filtr.items()
}
return {tech: {act["name"] for act in actlst} for tech, actlst in techs.items()}

mapping = {
tech: {act["name"] for act in actlst} for tech, actlst in techs.items()
}

# check if all keys have values
# if not, print warning
for key, val in mapping.items():
if not val:
print(f"Warning: No activities found for {key} -- revise mapping.")

return mapping
Binary file modified premise/data/additional_inventories/lci-biogas.xlsx
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading

0 comments on commit a9c165b

Please sign in to comment.