Skip to content

Commit

Permalink
Merge pull request #972 from rl-institut/release/v1.1.1
Browse files Browse the repository at this point in the history
Release/v1.1.1
  • Loading branch information
Bachibouzouk authored May 3, 2024
2 parents 627c9cc + 03bf1fa commit 8ccc657
Show file tree
Hide file tree
Showing 45 changed files with 777 additions and 212 deletions.
8 changes: 7 additions & 1 deletion .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2

# Set the version of Python and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.9"

# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/conf.py
Expand All @@ -12,7 +19,6 @@ sphinx:
# configuration: mkdocs.yml
# Optionally set the version of Python and requirements required to build your docs
python:
version: 3.7
install:
- requirements: requirements/docs.txt
- requirements: requirements/default.txt
Expand Down
19 changes: 17 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,29 @@ Here is a template for new release sections
### Fixed
-
```

## [Unreleased]

### Added
-
### Changed
-
### Removed
-
### Fixed
-

## [1.1.1] - 2024-05-03

### Added

- Introduce reducable demand. It should be listed within sinks, and provided an efficiency (number between 0 and 1). This efficiency correspond to the percent of the demand which must be provided (critical demand). The oemof-solph sinks which models the non-critical part of the demand has very small variable_costs such that it should not influence the costs calculations but should be fulfilled rather than dumping energy into excess sinks. Developed for the server version. (#969)
- Possibility to set min and or max for the load of a transformer and solve for a non-convex optimization. The simulation time can be quite long with cbc solver! Developed for the server version. (#969)

### Changed

### Fixed
- Add costs to excess sinks of busses. If the dictionary containing the information about the bus contains a key "price", its value will be applied to the variable costs of the sink (unit of the price is currency/energy unit, default currency/kWh). Developed for the server version. (#969)

- black version was bumped to 24.3.0 (#971)

## [1.1.0] - 2024-04-27

Expand Down
56 changes: 46 additions & 10 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,15 +75,24 @@ def generate_parameter_description(input_csv_file, output_rst_file):
see_also = []
lines = (
lines
+ [f".. _{props.ref}:", "", props.label, "^" * len(props.label), "",]
+ [
f".. _{props.ref}:",
"",
props.label,
"^" * len(props.label),
"",
]
+ [f"{p} {props[p]}" for p in parameter_properties]
+ [""]
+ [
"This parameter is used within the following categories: "
+ ", ".join([f":ref:`{cat}`" for cat in props.category.split(";")])
]
+ see_also
+ ["", "",]
+ [
"",
"",
]
)

with open(output_rst_file, "w") as ofs:
Expand Down Expand Up @@ -139,11 +148,22 @@ def generate_parameter_categories(

lines = (
lines
+ [f".. _{props.ref}:", "", cat_label, "^" * len(cat_label), "",]
+ [
f".. _{props.ref}:",
"",
cat_label,
"^" * len(cat_label),
"",
]
+ props.description.split("\\n")
+ ["",]
+ [
"",
]
+ [f"* :ref:`{p}`" for p in parameter_per_cat]
+ ["", "",]
+ [
"",
"",
]
)

with open(output_rst_file, "w") as ofs:
Expand Down Expand Up @@ -194,10 +214,17 @@ def generate_kpi_categories(input_param_csv_file, input_cat_csv_file, output_rst

lines = (
lines
+ [f"{props.description} These are the calculated {props.category} KPI:",]
+ ["",]
+ [
f"{props.description} These are the calculated {props.category} KPI:",
]
+ [
"",
]
+ [f"* :ref:`{parameters[p]} <{p}>`" for p in parameter_per_cat]
+ ["", "",]
+ [
"",
"",
]
)

with open(output_rst_file, "w") as ofs:
Expand Down Expand Up @@ -290,10 +317,19 @@ def generate_kpi_description(input_csv_file, output_path):

# Write lines based on definitions to an *.inc file
lines = (
[f".. _{props.ref}:", "", title, "^" * len(title), "",]
[
f".. _{props.ref}:",
"",
title,
"^" * len(title),
"",
]
+ [f"{p} {props[p]}" for p in parameter_properties]
+ [f":Related indicators: {see_also}"]
+ ["", "",]
+ [
"",
"",
]
)

with open(os.path.join(output_path, props.ref + ".inc"), "w") as ofs:
Expand Down
26 changes: 24 additions & 2 deletions docs/references/publications.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,34 @@ The MVS is currently under development in the H2020 research project `E-LAND`. S
Articles
^^^^^^^^

* :(Hoffmann, 2020b): Martha M. Hoffmann, Sanket Puranik, Marc Juanpera, José M. Martín-Rapún, Heidi Tuiskula, & Philipp Blechinger: *Investment planning in multi-vector energy systems: Definition of key performance indicators*, Conference paper, presented at the CIRED 2020 Berlin Workshop (CIRED 2020), Berlin / online. 2020. DOI: `10.5281/zenodo.4449918 <http://doi.org/10.5281/zenodo.4449918>`__
* :(Farrukh, 2022): Farhan Farrukh, Ciara Dunks, Martha Marie Hoffmann, Per Olav Dypvik: *Assessment of the potential of local solar generation for providing ship shore power in the Norwegian harbour Port of Borg*, 2022 18th International Conference on the European Energy Market (EEM), DOI: 10.1109/EEM54602.2022.9921031, `Link <https://ieeexplore.ieee.org/document/9921031>`__

* :(Puranik, 2022): Sanket Puranik, Martha M. Hoffmann, Farhan Farrukh, Sunil Sharma: *Optimal investments into rooftop solar and batteries for a distribution grid company and prosumers: A case study in India.*, Conference Paper, 2022 IEEE 7th International Energy Conference (ENERGYCON). DOI: 10.1109/ENERGYCON53164.2022.9830341. `Link <https://ieeexplore.ieee.org/document/9830341>`__

* :(Hoffmann, 2020b): Martha M. Hoffmann, Sanket Puranik, Marc Juanpera, José M. Martín-Rapún, Heidi Tuiskula, & Philipp Blechinger: *Investment planning in multi-vector energy systems: Definition of key performance indicators*, Conference paper, presented at the CIRED 2020 Berlin Workshop (CIRED 2020), Berlin / online. 2020. DOI: `Link <10.5281/zenodo.4449918 <http://doi.org/10.5281/zenodo.4449918>`__

Reports
^^^^^^^

* :(AHK Chile, 2021): Christoph Meyer, Mar Ortiz, Annika Schüttler. AHK Chile, August 2021: German: Einsatz von grünem Wasserstoff zur netzfernen Stromversorgung in Insel- und kleineren Stromnetzen in Chile. Spanish: Uso de hidrógeno verde para el suministro de energía fuera de la red en microrredes y redes pequeñas de electricidad en Chile. Available on: `Link <https://chile.ahk.de/themen/energie/>`__

* :(E-LAND, 2021b): Martha Hoffmann, Ciara Dunks, Sabine Haas. May 2021: Innovative Multi-Vector Simulator. Deliverable 4.4

Posters
^^^^^^^

* :(E-LAND, 2021a): E-LAND, 2021: Multi-Vector Simulator. Planning the energy supply system of the future. Product sheet. Available: `Link <https://elandh2020.eu/wp-content/uploads/2021/06/MVS-Tool-7.pdf>`__

* :(Hoffmann, 2020a): Martha M. Hoffmann, Sanket Puranik, Marc Juanpera, José M. Martín-Rapún, Heidi Tuiskula, & Philipp Blechinger: *Investment planning in multi-vector energy systems: Definition of key performance indicators*, Conference poster, presented at the CIRED 2020 Berlin Workshop (CIRED 2020), Berlin / online: DOI: `10.5281/zenodo.4449969 <http://doi.org/10.5281/zenodo.4449969>`__

Presentations
^^^^^^^^^^^^^

* :(Hoffmann, 2020c): *Introducing an os simulation tool for sector-coupled energy sys opt: Multi-Vector Simulator (MVS)* Presentation at Energy Modelling Platform for Europe (EMP-E) 2020, 06. – 08. October 2020, online. Link to session: `Youtube <https://www.youtube.com/watch?v=ob2JRAZYC7E>`__
* : (Puranik, 2021): Sanket Puranik, Martha M. Hoffmann, Isidoros Kokos, Sergio Herraiz, Per Gjerløw: *Facilitating Local Multi-Vector Energy Systems with the E-LAND toolbox*, Workshop at "Sustainable Places 2021", `Link <https://www.sustainableplaces.eu/multi-vector-energy-systems>`__

* :(Herraiz, 2021): Sergio Herraiz, Martha M. Hoffmann: *Facilitating local multi-vector energy systems: Integrated investment and operational planning.* Präsentation in Session 8: Cross-sectoral linkages and integration, Day 2: Linking Sectors and Technologies at the EMP-E 2021 (26-28. Oktober 2021), online. `conference schedule <https://emp-e-2021.b2match.io/page-4451>`__

* :(Hoffmann, 2020c): *Introducing an open source simulation tool for sector-coupled energy system optimization: Multi-Vector Simulator (MVS)* Presentation at Energy Modelling Platform for Europe (EMP-E) 2020, 06. – 08. October 2020, online. Link to session: `Youtube <https://www.youtube.com/watch?v=ob2JRAZYC7E>`__

* :(Hoffmann, 2020d): *Multi-Vector Simulator*, session: *Building on experience: What to take from individual models for the oemof-community*, presentation at oemof developer meeting, 02. - 04. December 2020, online. Link: `conference schedule <https://github.com/oemof/oemof/wiki/Meeting-December-2020-%28online%29>`__

Expand Down Expand Up @@ -52,6 +69,11 @@ H2020 research project open_Plan

The `H2020 research project open_plan <https://open-plan-tool.org/>`__ aims to build an open source tool to plan the design of a single energy cell. It will extend on the existing features of MVS to fullfil the requirements of its pilot projects. The project open_plan is funded until December 2022, the development of the graphical user interface will take place on the `github repository of open_plan <https://github.com/rl-institut/open_plan>`__.

Consulting project with AHK Chile
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The MVS was applied to three case study locations in Chile to determine the local potential to use hydrogen for storing renewable generation. The locations included a grid on an island (Melinka), a region (Aysén) and a industrial site (Multiexport). More information can be found on the `RLI website <https://reiner-lemoine-institut.de/en/hydrogen-storage-potential-study-for-mini-grids-in-chile/>`__. A report in German and Spanish is available.

.. _reference_bibliography:

Bibliography
Expand Down
2 changes: 1 addition & 1 deletion requirements/test.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
pytest>=5.3.1
black==19.10b0
black==24.3.0
coverage>=4.5
coveralls>=3.0.1
mock>=3.0.5
Expand Down
5 changes: 4 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,10 @@ def parse_requirements_file(filename):
# called `my_module.py` to exist:
#
# py_modules=["my_module"],
packages=["multi_vector_simulator", "multi_vector_simulator.utils",], # Required
packages=[
"multi_vector_simulator",
"multi_vector_simulator.utils",
], # Required
# Specify which Python versions you support. In contrast to the
# 'Programming Language' classifiers above, 'pip install' will check this
# and refuse to install the project if the version does not match. If you
Expand Down
3 changes: 2 additions & 1 deletion src/multi_vector_simulator/A0_initialization.py
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,8 @@ def report_arg_parser():
:return: parser
"""
parser = argparse.ArgumentParser(
prog="mvs_report", description="Display the report of a MVS simulation",
prog="mvs_report",
description="Display the report of a MVS simulation",
)
parser.add_argument(
"-pdf",
Expand Down
7 changes: 5 additions & 2 deletions src/multi_vector_simulator/A1_csv_to_json.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,8 @@


def create_input_json(
input_directory, pass_back=True,
input_directory,
pass_back=True,
):
"""Convert csv files to json file as input for the simulation.
Expand Down Expand Up @@ -515,7 +516,9 @@ def create_json_from_csv(
df.loc[STORAGE_FILENAME][column]
)
storage_dict = add_storage_components(
storage_file_name, input_directory, single_dict[column][LABEL],
storage_file_name,
input_directory,
single_dict[column][LABEL],
)
single_dict[column].update(storage_dict)

Expand Down
4 changes: 3 additions & 1 deletion src/multi_vector_simulator/B0_data_input_json.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
Module B0 - Data input json
===========================
"""

import logging
import copy
import json
Expand Down Expand Up @@ -321,7 +322,8 @@ def load_json(
os.replace(
path_input_file,
os.path.join(
dict_values[SIMULATION_SETTINGS][PATH_OUTPUT_FOLDER_INPUTS], CSV_FNAME,
dict_values[SIMULATION_SETTINGS][PATH_OUTPUT_FOLDER_INPUTS],
CSV_FNAME,
),
)

Expand Down
Loading

0 comments on commit 8ccc657

Please sign in to comment.