Grid Singularity Energy Exchange

July 21, 2022 · View on GitHub

==================================== Grid Singularity Energy Exchange

.. image:: https://codecov.io/gh/gridsingularity/gsy-e/branch/master/graph/badge.svg?token=XTWK3DAKUA :target: https://codecov.io/gh/gridsingularity/gsy-e

The Grid Singularity Energy Exchange Engine is developed by Grid Singularity <https://gridsingularity.com/>__ as an interface (Singularity Map <https://map.gridsingularity.com/singularity-map>) and open source codebase (see Licensing <https://gridsingularity.github.io/gsy-e/licensing/> to model, simulate, optimize and (coming soon) download and deploy interconnected, grid-aware energy marketplaces. Grid Singularity has been proclaimed the World Tech Pioneer by the World Economic Forum <https://www.weforum.org/organizations/grid-singularity-gmbh-gsy-gmbh>__ and is also known as a co-founder of the Energy Web Foundation <https://www.energyweb.org/>__ that gathers leading energy corporations globally co-developing a shared blockchain-based platform.

Code of Conduct

Please refer to: https://github.com/gridsingularity/gsy-e/blob/master/CODE_OF_CONDUCT.md

How to contribute:

Please refer to: https://github.com/gridsingularity/gsy-e/blob/master/CONTRIBUTING.md

Basic setup

(For instructions using Docker_ see below)

After cloning this project setup a Python 3.8 virtualenv and install fabric3_::

~# pip install fabric3

Without using virtualenv (e.g. using conda envs) you can just install gsy-e using

~# pip install -e .

The Simulation

Running the simulation

After installation the simulation can be run with the following command::

~# gsy-e run

There are various options available to control the simulation run. Help on there is available via::

~# gsy-e run --help

Controlling the simulation

While running a simulation, the following keyboard commands are available:

=== ======= Key Command === ======= i Show information about simulation p Pause simulation q Quit simulation r Reset and restart simulation R Start a Python REPL at the current simulation step s Save current state of simulation to file (see below for resuming) === =======

Development

Updating requirements

We use pip-tools_ managed by fabric3_ to handle requirements. To update the pinned requirements use the following command::

~# fab compile

There is also a command to compile and sync in one step::

~# fab reqs

_pip-tools: https://github.com/nvie/pip-tools _fabric3: https://pypi.python.org/pypi/Fabric3

Testing

We use py.test_ managed by tox_ to run the (unit) tests. To run the test suite simply run the following command::

~# tox

_py.test: https://pytest.org _tox: https://tox.testrun.org

Docker

The repository contains a docker_ Dockerfile. To build an image use the following command (change into repository folder first)::

~# docker build -t gsy-e .

After building is complete you can run the image with::

~# docker run --rm -it gsy-e

Command line parameters can be given normally after the image name::

~# docker run --rm gsy-e --help
~# docker run --rm gsy-e run --help
~# docker run --rm gsy-e run --setup default_2a -t15s

There is also a handy script that deals with the building of the image and running the provided command::

~# ./run_gsy_e_on_docker.sh "$docker_command" $export_path

where you can provide the gsy_e_command and export path where the simulation results are stored. For example::

~# ./run_gsy_e_on_docker.sh "gsy-e -l ERROR run --setup default_2a -t 15s" $HOME/gsy_e-simulation

builds a gsy-e docker image (if not already present), runs the simulation with setup-file default_2a, tick-length 15s and stores the simulation output data into HOME/gsyesimulation.Ifnoexportpathisprovided,simulationresultswillbestoredinHOME/gsy_e-simulation. If no export_path is provided, simulation results will be stored in HOME/gsy_e-simulation.

_docker: https://docker.io

Detailed Documentation

Please refer to: https://gridsingularity.github.io/gsy-e/documentation/