Skip to content

sedos-project/oemof.industry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Oemof Industry

Holds the MultiInputMultiOutputConverter for modeling industrial components.

Introduction

The features in this repo were developed for the SEDOS project:

  • MultiInputMultiOutputConverter (MIMOConverter)
  • MIMO facade
  • CO2EmissionLimit

The MIMOConverter is designed to handle multiple inputs and multiple outputs, enabling advanced modeling of industrial components with the oemof framework. The MIMO facade simplifies the use of the MIMOConverter with oemof.tabular, which loads oemof energy systems from tabular data sources. Additionally, CO2EmissionLimit is provided to add an emission constraint to an energy system based on CO2, CH4 and N2O emissions. This also includes negative CO2 emissions.

Installation

To install oemof.industry follow these steps:

  • Clone oemof.industry git clone https://github.com/sedos-project/oemof.industry.git
  • enter folder cd oemof.industry
  • create virtual environment using conda: conda env create -f environment.yml
  • activate environment: conda activate oemof.industry
  • install oemof.instry package using poetry, via: poetry install

Development

To run the all tests run:

pytest

Usage

To use oemof.industry features in a project:

from oemof_industry.mimo_converter import MultiInputMultiOutputConverter, MIMO
from oemof_industry. emission_constraint import CO2EmissionLimit

Checkout the docstring examples (mimo_converter, emission_constraint) and the tests to get an overview on how to use the components.

MIMO and multi-period optimization

The mimo component was tested with a multi-period optimization in a steel industry secenario. For processing results of a multi-period optimization containing mimos it might be necessary to drop the mimo groups from the model results. This is necessary if you want to use the postprocessing of oemof.tabular or the processing of oemof.solph, see an example for postprocessing here. A quick fix to do that is adding the following line to oemof.solph.processing here.

df_dict = {key: value for key, value in df_dict.items() if type(key[1]) != str}

Contributing

You are warmly welcome to contribute to this repository. If you notice a bug please open an issue. If you like to contribute code go ahead an open a pull request, we are happy to review it.

About

Industry components used in SEDOS project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages