MVS
The multi-vector simulator allows the evaluation of local sector-coupled energy systems that include the energy carriers electricity, heat and/or gas.
https://github.com/rl-institut/multi-vector-simulator
Category: Energy Systems
Sub Category: Energy System Modeling Frameworks
Keywords
oemof
Keywords from Contributors
energy-system energy-system-modeling modelling-framework datapackage
Last synced: about 12 hours ago
JSON representation
Repository metadata
Multi-vector Simulation Tool assessing and optimizing Local Energy Systems (LES) for the E-LAND project
- Host: GitHub
- URL: https://github.com/rl-institut/multi-vector-simulator
- Owner: rl-institut
- License: gpl-2.0
- Created: 2019-07-29T14:57:11.000Z (over 6 years ago)
- Default Branch: dev
- Last Pushed: 2025-09-19T10:59:26.000Z (4 months ago)
- Last Synced: 2025-11-07T00:07:21.676Z (2 months ago)
- Topics: oemof
- Language: Python
- Homepage:
- Size: 12 MB
- Stars: 23
- Watchers: 5
- Forks: 12
- Open Issues: 125
- Releases: 22
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
README.rst
##################################################
MVS - Multi-Vector Simulator of the E-LAND toolbox
##################################################
|badge_docs| |badge_CI| |badge_coverage| |badge_zenodo| |badge_pypi| |badge_gpl2| |badge_black|
Rights: `Reiner Lemoine Institut (Berlin) `__
The Multi-Vector Simulator (MVS) allows the evaluation of local sector-coupled energy systems that include the energy carriers electricity, heat and/or gas. The MVS has three main features:
- Analysis of an energy system model, which can be defined from csv or json files, including its costs and performance parameters.
- Near-future investments into power generation and storage assets can be optimized aiming at least-cost supply of electricity and heat.
- Future energy supply scenarios that integrate emerging technologies helping to meet sustainability goals and decrease adverse climate effects can be evaluated, e.g. through high renewable energy shares or sector-coupling technologies.
The tool is being developed within the scope of the H2020 project E-LAND (Integrated multi-vector management system for
Energy isLANDs, `project homepage `__).
A graphical user interface for the MVS will be integrated.
*Latest release*: Check the `latest release `__.
Please check the `CHANGELOG.md `__ for past updates and changes.
You find advanced documentation of the MVS on `readthedocs `__
(stable version, latest developments `here `__).
*Disclaimer*: As the MVS is still under development, changes might still occur in the code as well as code structure.
If you want to try the MVS, please make sure to check this project regularly.
If you are interested to try out the code, please feel free to do so! In case that you are planning to use it for a specific or a larger-scale
project, we would be very happy if you would get in contact with us, eg. via creating a github issue.
Maybe you have ideas that can help the MVS move forward? Maybe you noticed a bug that we can resolve?
For advanced programmers: You can also use the ``dev`` branch that includes the latest updates and changes.
You find the changelog `HERE `__.
.. |badge_docs| image:: https://readthedocs.org/projects/multi-vector-simulator/badge/?version=latest
:target: https://multi-vector-simulator.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. |badge_CI| image:: https://github.com/rl-institut/multi-vector-simulator/workflows/CI/badge.svg
:alt: Build status
.. |badge_coverage| image:: https://coveralls.io/repos/github/rl-institut/multi-vector-simulator/badge.svg
:target: https://coveralls.io/github/rl-institut/multi-vector-simulator
:alt: Test coverage
.. |badge_zenodo| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.4610237.svg
:target: https://doi.org/10.5281/zenodo.4610237
:alt: Zenodo DOI
.. |badge_gpl2| image:: https://img.shields.io/badge/License-GPL%20v2-blue.svg
:target: https://img.shields.io/badge/License-GPL%20v2-blue.svg
:alt: License gpl2
.. |badge_pypi| image:: https://badge.fury.io/py/multi-vector-simulator.svg
:target: https://pypi.org/project/multi-vector-simulator/
:alt: Pypi version
.. |badge_black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black
:alt: black linter
========================
Getting started with MVS
========================
Setup
=====
To set up the MVS, follow the steps below:
- If python3 is not pre-installed: Install miniconda (for python 3.7: https://docs.conda.io/en/latest/miniconda.html)
- WINDOWS USERS: Using an Anaconda virtual environment is highly recommended for being able to fully utilize the tool. Venv
environtments works only for running the optimization tool (mvs_tool). For this, updating Pandas to at least version 1.3.5
and installing the package pygraphviz as indicated in this link https://pygraphviz.github.io/documentation/stable/install.html
is necessary. However, it is not possible to run the interactive report (mvs_report) with venv, as it gives an error.
Therefore, it is best to use conda environments.
- Open Anaconda prompt (or other software as Pycharm) to create and activate a virtual environment
``conda create -n [your_env_name] python=3.6 activate [your env_name]``
- Install the latest `MVS release `__:
``pip install multi-vector-simulator``
- Download the `cbc-solver `__ into your system from https://ampl.com/dl/open/cbc/
and integrate it in your system, ie. unzip, place into chosen path, add path to your system variables
(Windows: “System Properties” -->”Advanced”--> “Environment Variables”, requires admin-rights).
You can also follow the `steps `__
from the oemof setup instructions
- Test if that the cbc solver is properly installed by typing
``oemof_installation_test``
You should at least get a confirmation that the cbc solver is working
::
*****************************
Solver installed with oemof:
cbc: working
glpk: not working
gurobi: not working
cplex: not working
*****************************
oemof successfully installed.
*****************************
- Test if the MVS installation was successful by executing
``mvs_tool``
This should create a folder ``MVS_outputs`` with the example simulation's results
You can always check which version you installed with the following command
``mvs_tool --version``
Using the MVS
=============
To run the MVS with custom inputs you have several options:
Use the command line
--------------------
Edit the json input file (or csv files) and run
::
mvs_tool -i path_input_folder -ext json -o path_output_folder
With ``path_input_folder``: path to folder with input data,
``ext``: json for using a json file and csv for using csv files
and ``path_output_folder``: path of the folder where simulation results should be stored.
For more information about the possible command lines options
::
mvs_tool -h
Use the ``main()`` function
---------------------------
You can also execute the mvs within a script, for this you need to import
::
from multi_vector_simulator.cli import main
The possible arguments to this functions are:
- ``overwrite`` (bool): Determines whether to replace existing results in ``path_output_folder`` with the results of the current simulation (True) or not (False) (Command line "-f"). Default: ``False``.
- ``input_type`` (str): Defines whether the input is taken from the ``mvs_config.json`` file ("json") or from csv files ('csv') located within /csv\_elements/ (Command line "-ext"). Default: ``json``.
- ``path_input_folder`` (str): The path to the directory where the input CSVs/JSON files are located. Default: ``inputs/`` (Command line "-i").
- ``path_output_folder`` (str): The path to the directory where the results of the simulation such as the plots, time series, results JSON files are saved by MVS (Command line "-o"). Default: ``MVS_outputs/``.
- ``display_output`` (str): Sets the level of displayed logging messages. Options: "debug", "info", "warning", "error". Default: "info".
- ``lp_file_output`` (bool): Specifies whether linear equation system generated is saved as lp file. Default: False.
- ``pdf_report`` (bool): Specify whether pdf report of the simulation's results is generated or not (Command line "-pdf"). Default: False.
- ``save_png`` (bool): Specify whether png figures with the simulation's results are generated or not (Command line "-png"). Default: False.
Edit the csv files (or, for devs, the json file) and run the ``main()`` function. The following ``kwargs`` are possible:
Default settings
----------------
If you execute the ``mvs_tool`` command in a path where there is a folder named ``inputs`` (you can use the
folder ``input_template`` for inspiration) this folder will be taken as default input folder and you can simply run
::
mvs_tool
A default output folder will be created, if you run the same simulation
several time you would have to either overwrite the existing output file
with
::
mvs_tool -f
Or provide another output folder's path
::
mvs_tool -o
.. _pdf-report-commands:
Generate pdf report or an app in your browser to visualise the results of the simulation
----------------------------------------------------------------------------------------
To use the report feature you need to install extra dependencies first
::
pip install multi-vector-simulator[report]
If you are using zsh terminals and recieve the error message "no matches found", you might need to run
::
pip install 'multi-vector-simulator[report]'
Use the option ``-pdf`` in the command line ``mvs_tool`` to generate a pdf report in a simulation's output folder
(by default in ``MVS_outputs/report/simulation_report.pdf``):
::
mvs_tool -pdf
Use the option ``-png`` in the command line ``mvs_tool`` to generate png figures of the results in the simulation's
output folder (by default in ``MVS_outputs/``):
::
mvs_tool -png
To generate a report of the simulation's results, run the following command **after** a simulation generated an output folder:
::
mvs_report -i path_simulation_output_folder -o path_pdf_report
where ``path_simulation_output_folder`` should link to the folder of your simulation's output, or directly to a
json file (default ``MVS_outputs/json_input_processed.json``) and ``path_pdf_report`` is the path where the report should be saved as a pdf file.
The report should appear in your browser (at http://127.0.0.1:8050) as an interactive Plotly Dash app.
You can then print the report via your browser print functionality (ctrl+p), however the layout of the pdf report is
only well optimized for chrome or chromium browser.
It is also possible to automatically save the report as pdf by using the option ``-pdf``
::
mvs_report -i path_simulation_output_folder -pdf
By default, it will save the report in a ``report`` folder within your simulation's output folder
default (``MVS_outputs/report/``). See ``mvs_report -h`` for more information about possible options.
The css and images used to make the report pretty should be located under ``report/assets``.
Contributing and additional information for developers
======================================================
If you want to contribute to this project, please read
`CONTRIBUTING.md `__. For less experienced
github users, we propose a `workflow `__.
For advanced programmers: please checkout the `dev` branch that includes the latest updates and changes. You can find out about the latest changes in the `CHANGELOG.md file `__.
Owner metadata
- Name: Reiner Lemoine Institut
- Login: rl-institut
- Email:
- Kind: organization
- Description:
- Website: http://www.reiner-lemoine-institut.de
- Location: Berlin/Germany
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/18393972?v=4
- Repositories: 78
- Last ynced at: 2024-04-16T01:19:33.863Z
- Profile URL: https://github.com/rl-institut
GitHub Events
Total
- Watch event: 1
- Fork event: 1
Last Year
- Watch event: 1
- Fork event: 1
Committers metadata
Last synced: about 1 month ago
Total Commits: 4,148
Total Committers: 19
Avg Commits per committer: 218.316
Development Distribution Score (DDS): 0.767
Commits in past year: 0
Committers in past year: 0
Avg Commits per committer in past year: 0.0
Development Distribution Score (DDS) in past year: 0.0
| Name | Commits | |
|---|---|---|
| smartie2076 | m****n@r****e | 966 |
| Bachibouzouk | p****c@r****e | 721 |
| SabineH | s****s@r****e | 587 |
| smartie2076 | g****i | 480 |
| Bachibouzouk | p****c@r****e | 470 |
| ursulaelmir | 6****r | 373 |
| mahendra | r****h@g****m | 213 |
| adminlocal | a****l@r****l | 90 |
| Ciara Dunks | c****s@r****e | 54 |
| Piranias | 4****s | 47 |
| Inia Steinbach | R****h@p****l | 36 |
| Inia | i****a@r****l | 31 |
| marc-juanpera | m****5@g****m | 25 |
| Andra | a****a@h****r | 20 |
| Marie-Claire | m****g@r****e | 16 |
| paragpatil39 | p****9@g****m | 15 |
| ciaradunks | 5****s | 2 |
| NoCh | n****n@g****m | 1 |
| pebasantaf | p****o@o****m | 1 |
Committer domains:
Issue and Pull Request metadata
Last synced: about 2 months ago
Total issues: 486
Total pull requests: 488
Average time to close issues: 2 months
Average time to close pull requests: 16 days
Total issue authors: 22
Total pull request authors: 14
Average comments per issue: 3.27
Average comments per pull request: 2.79
Merged pull request: 449
Bot issues: 0
Bot pull requests: 1
Past year issues: 2
Past year pull requests: 0
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 1
Past year pull request authors: 0
Past year average comments per issue: 0.0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- smartie2076 (222)
- SabineHaas (74)
- Bachibouzouk (73)
- TheOneAndra (31)
- mahendrark (17)
- ursulaelmir (17)
- Piranias (13)
- c-moeller (9)
- sanketpuranik (5)
- FredericHirschmueller (4)
- MaGering (3)
- ciaradunks (3)
- pebasantaf (3)
- paragpatil39 (2)
- SimonAtEida (2)
Top Pull Request Authors
- Bachibouzouk (182)
- smartie2076 (148)
- SabineHaas (58)
- mahendrark (33)
- ursulaelmir (24)
- Piranias (17)
- ciaradunks (8)
- marc-juanpera (8)
- TheOneAndra (7)
- paragpatil39 (4)
- MaGering (3)
- NargesChinichian (2)
- dependabot[bot] (2)
- pebasantaf (1)
Top Issue Labels
- bug (146)
- enhancement (134)
- documentation (47)
- question (22)
- good first issue (18)
- decision wanted (16)
- help wanted (14)
- open_plan (13)
- invalid (9)
- duplicate (5)
- wontfix (3)
Top Pull Request Labels
- enhancement (65)
- bug (33)
- documentation (26)
- dependencies (2)
- help wanted (1)
Package metadata
- Total packages: 1
-
Total downloads:
- pypi: 107 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 86
- Total maintainers: 1
pypi.org: multi-vector-simulator
Multi-vector Simulation Tool assessing and optimizing Local Energy Systems (LES) for the E-LAND project
- Homepage: https://github.com/rl-institut/multi-vector-simulator
- Documentation: https://multi-vector-simulator.readthedocs.io/
- Licenses: GNU General Public License v2 (GPLv2)
- Latest release: 1.1.1 (published over 1 year ago)
- Last Synced: 2025-11-25T09:04:44.943Z (about 1 month ago)
- Versions: 86
- Dependent Packages: 0
- Dependent Repositories: 1
- Downloads: 107 Last month
-
Rankings:
- Dependent packages count: 7.31%
- Downloads: 11.195%
- Forks count: 11.463%
- Average: 13.038%
- Stargazers count: 13.132%
- Dependent repos count: 22.088%
- Maintainers (1)
Dependencies
- graphviz >=0.14.1
- kaleido >=0.0.2
- numpy >=1.21.0
- oemof.solph >=0.4.1
- openpyxl >=3.0.5
- pandas >=0.24.0,
- plotly *
- psutil *
- pyomo *
- xlrd ==1.2.0
- numpydoc >=1.1.0
- sphinx >=2.3.1
- sphinx_rtd_theme >=0.4.3
- sphinxcontrib-svg2pdfconverter *
- dash >=2.3.1
- folium >=0.10.1
- kaleido >=0.0.2
- psutil >=5.7.0
- pyppeteer >=0.2.2
- reverse_geocoder >=1.5.1
- staticmap >=0.5.4
- black ==19.10b0
- coverage >=4.5
- coveralls >=3.0.1
- mock >=3.0.5
- pytest >=5.3.1
- actions/checkout v2 composite
- actions/setup-python v2 composite
Score: 12.632999135159698