quaquel / EMAworkbench

workbench for performing exploratory modeling and analysis
BSD 3-Clause "New" or "Revised" License
128 stars 90 forks source link
modeling python simulation

Build Status Coverage Status Documentation Status PyPi PyPi

Exploratory Modeling workbench

Exploratory Modeling and Analysis (EMA) is a research methodology that uses computational experiments to analyze complex and uncertain systems (Bankes, 1993). That is, exploratory modeling aims at offering computational decision support for decision making under deep uncertainty and robust decision making.

The EMA workbench aims at providing support for performing exploratory modeling with models developed in various modelling packages and environments. Currently, the workbench offers connectors to Vensim, Netlogo, Simio, Vadere and Excel.

The EMA workbench offers support for designing experiments, performing the experiments - including support for parallel processing on both a single machine as well as on clusters-, and analysing the results. To get started, take a look at the high level overview, the tutorial, or dive straight into the details of the API.

The EMA workbench currently under development at Delft University of Technology. If you would like to collaborate, open an issue/discussion or contact Jan Kwakkel.

Documentation

Documentation for the workbench is availabe at Read the Docs, including an introduction on Exploratory Modeling, tutorials and documentation on all the modules and functions.

There are also a lot of example models available at ema_workbench/examples, both for pure Python models and some using the different connectors. A release notes for each new version are available at CHANGELOG.md.

Installation

The workbench is available from PyPI, and currently requires Python 3.9 or newer. It can be installed with:

pip install -U ema_workbench

To also install some recommended packages for plotting, testing and Jupyter support, use the recommended extra:

pip install -U ema_workbench[recommended]

There are way more options installing the workbench, including installing connector packages, edible installs for development, installs of custom forks and branches and more. See Installing the workbench in the docs for all options.

Contributing

We greatly appreciate contributions to the EMA workbench! Reporting Issues such as bugs or unclairties in the documentation, opening a Pull requests with code or documentation improvements or opening a Discussion with a question, suggestions or comment helps us a lot.

Please check CONTRIBUTING.md for more information.

License

This repository is licensed under BSD 3-Clause License. See LICENSE.md.