Skip to main content
MIKE+Py

Streamline your MIKE+ workflows

Python version Full test PyPI version OS Downloads

MIKE+Py is an open-source Python package for interacting with MIKE+ model databases (.sqlite files). It enables automation of modelling tasks, programmatic data manipulation, scenario management, and simulation execution, enhancing the reproducibility and efficiency of MIKE+ workflows.

Installation

MIKE+Py can be installed from PyPI using uv (or pip):

uv pip install mikeplus

Note
Use of MIKE+Py requires a valid MIKE+ license.

To install a version compatible with a specific MIKE+ release year (e.g., MIKE+ 2025):

uv pip install mikeplus==2025.*

Quick Start

Here are a couple of quick examples to get you started:

Open a database and read table data into a Pandas DataFrame:

import mikeplus as mp

with mp.open("your_model.sqlite") as db:
    db.tables.msm_Node.to_dataframe()

Open a database and run the active simulation setup:

import mikeplus as mp

with mp.open("your_model.sqlite") as db:
    db.run() 

Key Features

  • Database Interaction: Programmatically open, create, and manage MIKE+ .sqlite databases.
  • Data Manipulation: Read and modify model data stored in various tables using a fluent API that supports Pandas DataFrames.
  • Scenario Management: Access, create, activate, and delete scenarios and alternatives.
  • Simulation Execution: Run MIKE+ simulations for different modules (CS, EPANET, SWMM) directly from Python.
  • Automation: Automate repetitive tasks such as parameter updates, scenario comparisons, and batch simulations.
  • Tools Integration: Programmatic access to some MIKE+ GUI tools.

Documentation

Comprehensive documentation is available at: https://dhi.github.io/mikepluspy/

  • MIKE IO: read and write MIKE files such as dfs0, dfs2 and dfsu.
  • MIKE IO 1D: read MIKE 1D network results.
  • ModelSkill: compare model results with observations.

Caution: Work with Database Copies

MIKE+Py directly modifies the .sqlite database file. There is no undo functionality within MIKE+Py for changes made to the database.

It is strongly recommended to always work on a copy of your MIKE+ database, not the original, to prevent accidental data loss or corruption.

Compatibility Issues

There are known compatibility issues when using MIKE+Py alongside other DHI libraries (e.g. MIKE IO, MIKE IO 1D, ModelSkill).

  • MIKE IO is not fully supported in the same Python process as MIKE+Py. MIKE+Py warns when both are loaded; import MIKE IO before MIKE+Py, or use separate processes if you run into problems.
  • Importing MIKE IO 1D before MIKE+Py is not supported and will cause errors.

The following is the suggest import order which works for most use cases, but could still run into issues:

import mikecore
import mikeio
import modelskill as ms
import mikeplus as mp
import mikeio1d

Metadata

Release files for mikeplus 2026.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for mikeplus 2026.1.0
File Interpreter ABI Platform
mikeplus-2026.1.0-py3-none-any.whl Python 3 none any Details

Release files / mikeplus-2026.1.0-py3-none-any.whl

Download URL mikeplus-2026.1.0-py3-none-any.whl
Size 323.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fbfcdb967e88a3870a9c9a132febcc6fdec11021098b0f53ebfa309424b2b6cb
BLAKE2b-256 checksum
How to use checksums
08c55b003ae8b3936c55d9a6033190fd86181a81870dccc5ed5c8dd61a02ba80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

2026.1.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page