Skip to content

Latest commit

 

History

4,545 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

MIKE IO: input/output of MIKE files in Python

Python version Full test PyPI version OS Downloads License: BSD-3-Clause

Read, write and manipulate dfs0, dfs1, dfs2, dfs3, dfsu and mesh files.

MIKE IO facilitates common data processing workflows for MIKE files using Python.

Requirements

  • Windows or Linux operating system
  • Python x64 3.12 - 3.14
  • (Windows) VC++ redistributables (already installed if you have MIKE)

Installation

pip install mikeio

⚠️ Don't use conda to install MIKE IO! The version on conda-forge is several major versions behind.

Getting started

Read a file into a Dataset — a collection of named DataArrays sharing time and geometry:

>>> import mikeio
>>> ds = mikeio.read("HD2D.dfsu")
>>> ds
<mikeio.Dataset>
title: Output 1
dims: (time:9, element:884)
time: 1985-08-06 07:00:00 - 1985-08-07 03:00:00 (9 records)
geometry: Dfsu2D (884 elements, 529 nodes)
items:
  0:  Surface elevation <Surface Elevation> (meter)
  1:  U velocity <u velocity component> (meter per sec)
  2:  V velocity <v velocity component> (meter per sec)
  3:  Current speed <Current Speed> (meter per sec)

Select an item and extract a time series at a point:

>>> da = ds["Surface elevation"]
>>> da.sel(x=606200, y=6905480)
<mikeio.DataArray>
name: Surface elevation
dims: (time:9)
time: 1985-08-06 07:00:00 - 1985-08-07 03:00:00 (9 records)
geometry: GeometryPoint2D(x=606202.7806372638, y=6905474.639383219)
values: [0.4595, 0.807, ..., -0.6322]

Convert to pandas, or write the result back to a dfs file:

>>> df = mikeio.read("da_diagnostic.dfs0").to_dataframe()
>>> ds.to_dfs("output.dfsu")

See the user guide for more.

Where can I get help?

Testing

MIKE IO is tested extensively, with an overall statement coverage of ~95%. The test suite runs on every pull request against Python 3.12 and 3.14, and on a schedule on both Linux and Windows.

uv run pytest --cov=mikeio

Contributing

Contributions are welcome — see CONTRIBUTING.md. Key architectural decisions are documented as ADRs.

License

BSD-3-Clause

About

Read, write and manipulate dfs0, dfs1, dfs2, dfs3, dfsu and mesh files.

Topics

Resources

Code of conduct

Contributing

Stars

182 stars

Watchers

12 watching

Forks

Releases

Used by

Contributors

Languages