Enbios 2


Keywords
energy-transition, lca, musiasem, python
License
BSD-3-Clause
Install
pip install enbios==0.39

Documentation

ENBIOS2

What is ENBIOS 2

ENBIOS2 (Environmental and Bioeconomic System Analysis) is a python-based simulation tool for the assessment of environmental impacts and resource requirements of energy system pathways according to policy scenarios. These pathways are typically calculated by Energy System Optimization Models ( ESOMs). Currently, ENBIOS is coupled with the Calliope framework, and we are working to couple it with the TIMES framework.

ENBIOS2 is based on the integration of Life Cycle Assessment and the Multi-Scale Integrated Assessment of Socio-ecosystem framework (MuSIASEM) originally developed by C. Madrid-López (2019 and 2020)

ENBIOS2 is a ground up new computing implementation of the ENBIOS tool. You can see more information about this previous version below. Compared to the original version of enbios, this version is more flexible does not make its own LCA calculations, but uses Brightway2 for that.

In ENBIOS2 you will implement an experiment. To do this you will need to have at hand:

  • a defined set of activities, that are typically the energy system technologies you would like to inlcude in the assessment
  • access to a life cycle inventory database that can be imported in Brightway2 (such as Ecoinvent) or the skills and data to create yours
  • a MuSIASEM (hierarchical) structuring of your energy system. This must be taylored to the speficis of your assessment and include the structural components of the system (your activities) and functional components of your systems.
  • a set of non-linear assessment methods such as
    • life-cycle impact assessment methods (you can use Recipe for example, but you will need to correct its linearity)
    • MuSIASEM methods
  • a set of ESOM-provided pathways, which contain energy supply, demand or transfer info for the given activities
  • If you like (optional!), you can couple ENBIOS2 with PREMISE for a prospective definition of life cycle inventories according to different climate scenarios and integrated assessment models.

What you get is results of impacts and resource demands by each activity (structure) and function at each level of the hierarchy.

ENBIOS is developed by the LIVENlab, a research lab of the SosteniPra Research group, at ICTA-UAB.

Installation

We recommend you to run ENBIOS from a python IDE, such as Pycharm. But we also have a few Jupyter notebooks for you to use, see below.

You first need to create an environment. From your terminal, try this:

  • Windows python -m venv venv
  • Linux python3.9 -m venv venv

Activate the environment with

  • (windows) venv\Scripts\activate

  • (linux) source venv/bin/activate

Install enbios2 with

  • (windows) python -m pip install enbios

  • (linux) python3 -m pip install enbios

Fundamentals

Read fundamentals about setting up an enbios experiment

Experiment configuration json schema

The json schema for the experiment configuration can be found here:

https://github.com/LIVENlab/enbios/blob/main/data/schema/experiment.schema.gen.json

This schema, provides the structure of the experiment configuration, which is used to run the experiments. Note, that there will be additional validations when the experiment is constructed (e.g. existence of brightway project, databases, activities).

Environment variables

2 environmental variables are used by enbios2:

  • CONFIG_FILE: This variable can be used to specify the location of the configuration file (json). If experiment is initialized without any parameter (configuration data or file location), the configuration is read from this path.
  • RUN_SCENARIOS: This variable can be used to specify the scenarios to run when experiment_object.run() is called. Setting the environmental variable overwrites the value set in the configuration file (config.run_scenarios). This variable should be formatted as a json array, with the aliases of the scenarios that should run. e.g. '["Scenario 0"]' (indexed default aliases, when no aliases are specified in the configuration file for the scenarios).

Data inputs

  • Outputs from your ESOM
  • A dictionary that connects your ESOM taxonomy with your inventory taxonomy
  • life cycle inventories in .spold format
  • The basefile with the hierarchical structuring of the system
  • your method file

Outputs

For each system function and structure (activity):

  • Environmental impact indicators from the most used LCIA methods (Recipe2016, CML, AWARE, etc.)
  • Environmental externalization rates
  • Forthcoming: Raw Material Recycling rates and Supply risk

Features

  • Integration of LCA and MuSIASEM evaluation methods
  • Library of impact assessment methods based on LCIA
  • New impact assessment methods developed for raw materials and circularity
  • Consideration of externalized environmental impacts
  • Takes data from the friendly-data package (other formats under development)
  • High level methods to quickly obtain/refresh analyses

Demos

This repository contains a few notebooks (require jupyter notebook) in the demos folder, that can help you get started. We are updating and commenting these. Please bear with us while we do it and feel free to give us feedback on those ( thanks).

You can copy the demos into your project like this:

from enbios import copy_demos

copy_demos("<destination_path>")

Getting started

Plotting results

Sorting the results in alternative hierarchies

Reevaluate the experiment with alternative hierarchies. For alternative hierarchies the structural nodes (none bottom nodes) can be changed/added.

Assignment Adapter

The Simple Assignment Adapter does not any specific calculations. Instead, it allows the user to introduce fixed values, that should come from some external source into the enbios tree calculation. This includes not just the outputs of structural nodes, but in particular their impact results. These values can be either in the experiment configuration file or for convenience in a referenced csv file. The values can be specified in such a way, that scenario outputs and result values have consistent and valid units.

Splitting the configuration

Working with trees

Experiment with uncertainties

Convert mermaid diagrams to enbios hierarchy

A complete Brightway adaoter configuration object

Specifying the hierarchy in a csv file

Exporting to a csv file

Write a custom aggregator

People

Contact

Acknowledgements

The first ENBIOS

The LCA-MuSIASEM integration that is the core of ENBIOS was born a few years back (2013 seems so far now!). The first prototype of the python package was built by Rafa Nebot in a collaboration with the Technical Institute of the Canary Islands (ITC) and based on the Nexus Information System developed within the Horizon 2020 project MAGIC-nexus and the LCA-MuSIASEM integration protocol developed in the Marie Curie project IANEX. This early development was funded by the Horizon 2020 project Sustainable Energy Transitions Laboratory (SENTINEL, GA 837089).

Current development

ENBIOS2 is in development with funds from the Spanish Research Agency (AEI) and the European Commission (CINEA):

  • SEEDS project with AEI grant PCI2020-120710-2 funds the ENBIOS 2 build based on the Brightway2 LCA framework, adding inventory manipulation to match the mixes of the energy scenarios and the connection with MuSIASEM
  • LIVEN project with AEI grant PID2020-119565RJ-I00 funds the regionalization of the analysis and connection with the TIMES energy model
  • ETOS project with AEI grant TED2021-132032A-I00 funds the addition of externalization
  • JUSTWIND4ALL project with Horizon Europe grant 101083936 funds the development of a higher resolution module for wind energy assessment, including new wind-specific holistic assessment methods.

References

You can see some more info and results from ENBIOS here:

  • More information on the roots of the framework and version 1 of the software can be found in deliverable 2.2 of the SENTINEL project.
  • An application to the assessment of energy pathway option space (with 260+ pathways modelled with calliope) with ENBIOS2 can be consulted in deliverable 2.2 of the SEEDS project.