Skip to main content

Adaptor to use demod simulators in mosaik.

Project description

Demod mosaik adapter

This repository contains adapter classes for all demod classes into mosaik.

This works with mosaik versions 2 and 3.

demod

Demod is a Python library for assembling bottom-up domestic energy demand models.

github read the docs

mosaik

Mosaik’s main goal is to use existing simulators in a common context in order to perform a coordinated simulation of a given (Smart Grid) scenario.

read the docs

Usage

demo.py show usage example inside a mosaik simulation script.

Adapting a new simulator

If you want to adapt a new demod simulator, you can follow this instruction.

  1. Import the abstract adapter. If the demod simulator simulates various households, use the Household module. For a single value simulated (ex. climate), use The SingleValue module.
from mosaikdemod.adaptors import AbstractHouseholdsModule
from mosaikdemod.adaptors import AbstractSingleValueModule
  1. import demod library
import demod
  1. Inherit from the abstract module
class ComponentSimulator(AbstractHouseholdsModule):
  1. Specify the attributes of the simulator that can be accessed
    attributes_dict = {
        'attr_name_in_mosaik': 'get_demod_getter',
        'other__attr': 'get_smth_else',
        ...
    }
  1. Specify the inputs of the simulator that can be accessed
    step_inputs_dict = {
        'attr_name_in_mosaik': 'step_input_demod',
        'other_input': 'input_other',
        ...
    }
  1. Override the __init__() method
    def __init__(
        self,
        simulated_component='CompName',  # Name of what is simulated used for mosaik instances
        default_simulator=demod.simulators.example_simulators.ExampleSimulator,  # The simulator class you want to simulate
        step_size=60  # The mosaik step size (depend on your definition)
    ):
        super().__init__(simulated_component, default_simulator, step_size)
  1. Import your simulator to your mosaik scenario script.
# Define the Simulator
sim_config = {
    ...
    'CompNameSimulator': {
        'python': 'python_file_of_the_sim:ComponentSimulator',
    },
    ...
}

# Instantiate the simulator
sim = world.start('CompNameSimulator')


# Instantiate the households with parameters
component = actsim.HouseholdsGroupCompName(
    inputs_params={  # demod init params of sim
        'n_households': n_households,
        'start_datetime': START_DATETIME,
        ...
    }
)
# OR instantiate a  SingleValue simulator (remove HouseholdsGroup)
component = actsim.CompName(
    inputs_params={  # demod init params of sim
        'start_datetime': START_DATETIME,
        ...
    }
)
  1. Connect the simulators. You can connect a whole household group to another one if you use 2 demod components. Or you can also connect all the households individually by calling the children method
# Connect 2 demod components
# comp1 passes attr to comp2
world.connect(component1, component2, 'attr_name_in_mosaik')

# Connect 2 demod components with single value
# component_single_value passes attr to comp2
world.connect(component_single_value, component2, 'attr_name_in_mosaik')

# Connect a single household using the children
world.connect(component.children[42], other_mosaik_comp, 'attr_name_in_mosaik')

Examples

Some examples can be found in simulator_mosaik_modular.py.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mosaikdemod-0.1.tar.gz (18.0 kB view details)

Uploaded Source

Built Distribution

mosaikdemod-0.1-py3-none-any.whl (18.1 kB view details)

Uploaded Python 3

File details

Details for the file mosaikdemod-0.1.tar.gz.

File metadata

  • Download URL: mosaikdemod-0.1.tar.gz
  • Upload date:
  • Size: 18.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for mosaikdemod-0.1.tar.gz
Algorithm Hash digest
SHA256 444330fd1d951714e5573a651a8ec0a052d81dd8419685cda40014e840c53a7a
MD5 a0d72ea675ddc3bf3d5233021f516ebd
BLAKE2b-256 c0b0bd38ea5e0b375c41b3108b8fb45c99c4b59fe4857cfe0bb65fd60e41c1fb

See more details on using hashes here.

Provenance

File details

Details for the file mosaikdemod-0.1-py3-none-any.whl.

File metadata

  • Download URL: mosaikdemod-0.1-py3-none-any.whl
  • Upload date:
  • Size: 18.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for mosaikdemod-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5794dc7911aa281701c44eb07d0ee8398ebc9c2f3895509257e50594bdff29e9
MD5 39f4e369e3e08e5f97056c1a18b9bedc
BLAKE2b-256 7f94161924748103c384aefd829253cc4733c6f22d9b9bcb28d920a4b22b7b31

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page