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')
csv_writer = csv_sim_writer.CSVWriter(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.1 - 2024-05-17

  • [BUGFIX] Convert numpy data types to python scalars.

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.1.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

mosaik_csv-2.0.1-py2.py3-none-any.whl (15.2 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: mosaik-csv-2.0.1.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for mosaik-csv-2.0.1.tar.gz
Algorithm Hash digest
SHA256 449419148cf2906b5db8e1c27ce8f0a3e6e081f9ead4f24a34b8b7f1eec2fa1f
MD5 cf8e5eca26f35f9c603731e6897d0e97
BLAKE2b-256 68fb9c9fe27526e72f571445c3751413a428fed029a9b4199c0d5eed9c002c3a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mosaik_csv-2.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for mosaik_csv-2.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1be1cd4c7f8f7f5ce8d6b5f6693ee0030541d0deb78c221a7b8376e031059bc4
MD5 45d99d03829a4f5b342af15e464dd89f
BLAKE2b-256 f3a3a3164a867f1f5aa73b9e938674e3f0351c71b29d67bcb6ed969035bb8a86

See more details on using hashes here.

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