Skip to main content

Presents CSV datasets to mosaik as models.

Project description

In this repository we have two modules: mosaik_csv and mosaik_csv_writer.

Installation

$ pip install mosaik-csv

If installation of psutil fails, installing python developer edition and gcc should help:

$ sudo apt-get install gcc python3-dev

mosaik_csv

This simulator reads CSV data and sends it to mosaik.

The following code shows an example how to use the mosaik_csv simulator. The date_format, delimiter parameter and type are optional. If they are not defined, the standard value is ‘YYYY-MM-DD HH:mm:ss’ for the date_format, ‘,’ for delimiter and time-based for type. The first line of the CSV file refers to the model name. If no model name is defined, ‘Data’ is set as the default:

sim_config = {
    'CSV': {
        'python': 'mosaik_csv:CSV',
    }
}
world = mosaik.World(sim_config)
csv_sim = world.start('CSV', sim_start='01.01.2016 00:00',
                             datafile='data.csv',
                             date_format='DD.MM.YYYY HH:mm',
                             delimiter=',',type=time-based)
csv = csv_sim.Data.create(20)

mosaik_csv_writer

This simulator writes simulation results to a CSV file.

The following code shows an example how to use the mosaik_csv_writer simulator. The date_format, delimiter parameter and print_results are optional. If they are not defined, the standard value is ‘YYYY-MM-DD HH:mm:ss’ for the date_format, ‘,’ for delimiter and False for print_results.

While creating the instance of the mosaik_csv_writer (csv_writer = csv_sim_writer.Monitor(buff_size = 30 * 60)) the user can define a buff_size depending on the simulation time (default buff_size = 500). This buff_size tells the simulator to write the data into a CSV file after every defined buffer duration. This feature speeds up the writing process of the simulator. In the given example the simulator will write the accumulated data into a CSV file after every 30 minutes simulation time (30 * 60 simulation steps):

sim_config = {
    'CSV_writer': {
        'python': 'mosaik_csv_writer:CSVWriter',
    }
}
world = mosaik.World(sim_config)
csv_sim_writer = world.start('CSV_writer', start_date = '01.01.2016 00:00',
                                           date_format='%Y-%m-%d %H:%M:%S',
                                           output_file='results.csv',
                                           print_results=False)
csv_writer = csv_sim_writer.Monitor(buff_size = 30 * 60)  # write data after every 30 mins

Tests

You can run the tests with:

$ git clone https://gitlab.com/mosaik/mosaik-csv.git
$ cd mosaik-csv
$ pip install -r requirements.txt
$ pip install -e .
$ pytest tests

Changelog

2.0.0 - 2023-11-21

  • [CHANGE] Use pandas for CSV reader.

  • [NEW] Add CSV writer.

1.2.0 - 2021-05-21

  • [CHANGE] Updated to mosaik-api 3.0.

1.1.0 - 2021-03-11

  • [FEATURE] Allow to define the delimiter.

  • [FEATURE] Allow to define the date format.

1.0.4 - 2021-03-04

  • [CHANGE] Adjustment to new arrow API.

1.0.3 – 2019-10-10

  • [CHANGE] Added closing of input file.

  • [CHANGE] Adjustment to new arrow API.

1.0.2 – 2014-09-22

  • [CHANGE] Updated to mosaik-api 2.0.

1.0.1 – 2014-06-23

  • [CHANGE] Updated to mosaik-api 2.0a3.

1.0 – 2014-03-26

  • Initial release

Authors

The original concepts for mosaik CSV reader were developed by Stefan Scherfke.

The author of mosaik CSV writer is Mohammad Arhum.

Additional contributors: Robin Huwa, Pranay Kasturi, Annika Ofenloch, Thomas Raub, Jan Sören Schwarz, Deborah Tolk

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

mosaik-csv-2.0.0.tar.gz (15.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mosaik_csv-2.0.0-py2.py3-none-any.whl (15.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file mosaik-csv-2.0.0.tar.gz.

File metadata

  • Download URL: mosaik-csv-2.0.0.tar.gz
  • Upload date:
  • Size: 15.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for mosaik-csv-2.0.0.tar.gz
Algorithm Hash digest
SHA256 5984e22f1dd53d8f37b9daf063fa058e7221b9083f264c1ada9374a20dd0ddf2
MD5 2c8a14a592e9ffa7197bac5864657c2e
BLAKE2b-256 d860ed34d532f634f207cfa100cfc828484e7f91c9a28f228164d0610db9150a

See more details on using hashes here.

File details

Details for the file mosaik_csv-2.0.0-py2.py3-none-any.whl.

File metadata

  • Download URL: mosaik_csv-2.0.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 15.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for mosaik_csv-2.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a0330b8018cf0fc39b3849e55982f75150a3e7b516c23e081067fdca9b933e1c
MD5 eceb0e5c50eda4bd167a80c147983f45
BLAKE2b-256 fa8c93074a658aa544271b4d95db30275bc1c97c313805078fc3b53bf3f5d150

See more details on using hashes here.

Supported by

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